[Consola RCON]Comandos. -
BlackFCK - 05.03.2012
Hola, estoy agregando comandos para usar desde la consola RCON, cuando compilo me aparecen varios errores (idx etc.) pero se que el comando esta MUY mal hecho.
Este es el que uso dentro del servidor. Quisiera saber como pasarlo a RCON para usar desde la consola.
pawn Код:
if(strcmp(cmd, "msg", true) == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /msg [texto]");
format(string, sizeof(string), "* Admin: %s",result);
SendClientMessageToAll(COLOR_GREEN, string);
return 1;
}
Tambien si pueden ayudarme a hacer un comando de ban (para consola), para que aparezca **** fue baneado. Razon: **** y en la razon aparezca un mensaje.
Respuesta: [Consola RCON]Comandos. -
GaBO! - 05.03.2012
ese comando lo tienes en el GM?
Re: [Consola RCON]Comandos. -
BlackFCK - 05.03.2012
No, en el FS de admin.
Respuesta: [Consola RCON]Comandos. -
GaBO! - 05.03.2012
y que errores te sale?
Respuesta: [Consola RCON]Comandos. -
MrLevan - 06.03.2012
pawn Код:
if(strcmp(cmd, "msg", true) == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /msg [texto]");
format(string, sizeof(string), "* Admin: %s",result);
SendClientMessageToAll(COLOR_GREEN, string);
return 1;
}
}
Re: [Consola RCON]Comandos. -
BlackFCK - 06.03.2012
No, aparecen estos errores:
Код:
error 017: undefined symbol "playerid"
error 017: undefined symbol "cmdtext"
error 017: undefined symbol "idx"
error 029: invalid expression, assumed zero
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
Aclaro de nuevo que es para usar en
pawn Код:
public OnRconCommand(cmd[])
{
Y si agrego la definicion de la funcino abajo de OnRconCommand aparece esto:
Код:
warning 219: local variable "cmd" shadows a variable at a preceding level
undefined symbol "cmdtext"
undefined symbol "playerid"
undefined symbol "cmdtext"
undefined symbol "cmdtext"
invalid expression, assumed zero
invalid expression, assumed zero
fatal error 107: too many error messages on one line
Eso aparece si elimino el segundo } abajo del Return, si no lo elimino queda tildado y aparece "Pawn.exe ha detectado un problema y debe cerrarse" y queda colgado en el cuadro gris de los errores sin ningun error pero no compila.
Re: [Consola RCON]Comandos. -
GaBO! - 06.03.2012
En ese callback no esta definido el "playerid" y al no estar definido no puedes usar esas funciones como el "SendClientMessage" o cualquier otra que se ejecute hacia un jugador. de todas formas se puede definir y hacerlo funcionar como corresponde.
En ese callback tienes que usar "print o printf" porque los mensajes se muestran solo por consola rcon o estando logeado como rcon dentro del server.
prueba con este y me dices si te funciono, no lo e probado
pawn Код:
if(!strcmp(cmd, "msg", .length = 3))
{
new argumento = argpos(cmd), mensaje[128];
if ( !cmd[argumento] || cmd[argumento] < '0') print("Uso Correcto: msg [Mensaje]");
else
{
format(mensaje, sizeof(mensaje), "Admin RCON: %s", cmd[argumento]);
SendClientMessageToAll(COLOR_WHITE, mensaje);
printf("Admin RCON: %s", cmd[argumento] );
}
return 1;
}
recuerda que este call tiene que ir en un FS
Re: [Consola RCON]Comandos. -
BlackFCK - 06.03.2012
Hola, parece que ese funciona mejor.
Solamente aparece este error
Код:
error 017: undefined symbol "argpos"
en la linea
pawn Код:
new argumento = argpos(cmd), mensaje[128];
Re: [Consola RCON]Comandos. -
GaBO! - 06.03.2012
sorry no puse la funciуn
aquн te la dejo
pawn Код:
argpos(const string[], idx = 0, sep = ' '){for(new i = idx, j = strlen(string); i < j; i++)if (string[i] == sep && string[i+1] != sep) return i+1; return -1;}
Re: [Consola RCON]Comandos. -
BlackFCK - 06.03.2012
No.
Код:
error 017: undefined symbol "argpos"
error 017: undefined symbol "argpos"
error 029: invalid expression, assumed zero
error 017: undefined symbol "string"
fatal error 107: too many error messages on one line
En la linea
pawn Код:
argpos(const string[], idx = 0, sep = ' '){for(new i = idx, j = strlen(string); i < j; i++)if (string[i] == sep && string[i+1] != sep) return i+1; return -1;}
Respuesta: [Consola RCON]Comandos. -
GaBO! - 07.03.2012
prueba asi
pawn Code:
argpos(const string[], idx = 0, sep = ' ')
{
for(new i = idx, j = strlen(string); i < j; i++)
if (string[i] == sep && string[i+1] != sep)
return i+1;
return -1;
}
nose porque salio horizontal el codigo :S puede que eso te de problemas
Respuesta: [Consola RCON]Comandos. -
TheChaoz - 07.03.2012
Todos la complicaron demasiado:
pawn Code:
public OnRconCommand(cmd[])
{
if(!strcmp(cmd, "msg", true, 3)){
new str[128];
format(str, 128, "* Admin: %s", cmd[4]);
return SendClientMessageToAll(COLOR_GREEN, str);
}return 1;
}
Re: [Consola RCON]Comandos. -
BlackFCK - 07.03.2012
Ahi esta gracias a los dos.