SA-MP Forums Archive
Ayuda con este warning - 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: Ayuda con este warning (/showthread.php?tid=556153)



Ayuda con este warning - FlavioCesar - 09.01.2015

Hola, necesito que me aclaren este warning, por que me lo da?

Код:
warning 202: number of arguments does not match definition
pawn Код:
new nombre[MAX_PLAYER_NAME];
            GetPlayerName(playerid, nombre, sizeof(nombre));
            SendClientMessage( playerid, colorrojo, "%s kickeado por estar en pausa", nombre );
            SetTimerEx("KickJugador",500,false,"i",playerid );
            return 1;
La linea del warning es la de SendClientMessage

Saludos!


Respuesta: Ayuda con este warning - Zume - 09.01.2015

pawn Код:
new
    nombre[MAX_PLAYER_NAME],
    string[64];

GetPlayerName(playerid, nombre, sizeof(nombre));
format(string, sizeof(string), "%s kickeado por estar en pausa", nombre);
SendClientMessage( playerid, colorrojo, string);
SetTimerEx("KickJugador",500,false,"i",playerid);
Te falto el format (valga le redundancia, lo que setee un string, o sea, algo que concadene la variable a una cadena), sin embargo te comparto una funciъn que comъnmente uso. Hace exactamente lo que tъ querнas hacer.

pawn Код:
stock SendClientMessageEx(playerid, color, const str[], {Float,_}:...)
{
    static
        args,
        start,
        end,
        string[144]
    ;
    #emit LOAD.S.pri 8
    #emit STOR.pri args

    if (args > 12)
    {
        #emit ADDR.pri str
        #emit STOR.pri start

        for (end = start + (args - 12); end > start; end -= 4)
        {
            #emit LREF.pri end
            #emit PUSH.pri
        }
        #emit PUSH.S str
        #emit PUSH.C 144
        #emit PUSH.C string
        #emit PUSH.C args
        #emit SYSREQ.C format

        SendClientMessage(playerid, color, string);

        #emit LCTRL 5
        #emit SCTRL 4
        #emit RETN
    }
    return SendClientMessage(playerid, color, str);
}
puedes poner lo primero que te puse o cambiar el 'SendClientMessage' de tu codigo por 'SendClientMessageEx' a menos que quieras hookearlo.

pawn Код:
#if defined _ALS_SendClientMessage
    #undef SendClientMessage
#else
    #define _ALS_SendClientMessage
#endif
 
#define SendClientMessage SendClientMessageEx
En caso de que utilices la funciуn tu cуdigo quedarнa de la siguiente manera:

pawn Код:
new
    nombre[MAX_PLAYER_NAME];

GetPlayerName(playerid, nombre, sizeof(nombre));
SendClientMessageEx( playerid, colorrojo, "%s kickeado por estar en pausa", nombre);
SetTimerEx("KickJugador",500,false,"i",playerid);



Respuesta: Ayuda con este warning - jotajeda - 09.01.2015

Solucion:
pawn Код:
new nombre[MAX_PLAYER_NAME],string[40];
            GetPlayerName(playerid, nombre, sizeof(nombre));
            format(string, sizeof(string), "%s kickeado por estar en pausa", nombre );
            SendClientMessage( playerid, colorrojo, string);
            SetTimerEx("KickJugador",500,false,"i",playerid );
            return 1;



Respuesta: Ayuda con este warning - FlavioCesar - 10.01.2015

Gracias a los 2, pero me funcionу y ademбs fue mбs simple el de jotajeda. +rep