SA-MP Forums Archive
[Consola RCON]Comandos. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Consola RCON]Comandos. (/showthread.php?tid=323424)



[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.