Argumentos [Ayuda]
#1

Hola amigos del samp aqui pidiendoles su ayuda.

quise poner unos argumentos a mi DIALOG_STYLE_MSGBOX para que se viera como esta imagen:



pero al momento de copilar me sale estos errores.


pawn Код:
C:\Users\User\Desktop\LADMIN(3995) : warning 202: number of arguments does not match definition
C:\Users\User\Desktop\LADMIN(3995) : warning 202: number of arguments does not match definition
C:\Users\User\Desktop\LADMIN(3995) : warning 202: number of arguments does not match definition
C:\Users\User\Desktop\LADMIN\(3995) : warning 202: number of arguments does not match definition
C:\Users\User\Desktop\LADMIN\(3995)  : warning 202: number of arguments does not match definition
C:\Users\User\Desktop\LADMIN\(3995) : warning 202: number of arguments does not match definition
mi funcion:

pawn Код:
ShowPlayerDialog(player1, ID_DIALOG, DIALOG_STYLE_MSGBOX, "INFO: Baneado", "Tu estas baneado para este servidor, por incumplir la reglas.", "Cerrar", "");
como quise ponerlo yo, y me salio mal XDDDD

pawn Код:
ShowPlayerDialog(player1, ID_DIALOG, DIALOG_STYLE_MSGBOX, "CUENTA BANEADA", "Estas bloqueado del servidor.\n\nNick: %s\nBaneado por: %s\nRazon: %s\nFecha: %d/%d/%d\nPuedes apelar tu desbaneo en www.web.tk", "Cerrar", "",playername,adminname,params[2],day,month,year);
edit:

dejo mi funcion completa por si lo necesitan

pawn Код:
dcmd_ban(playerid,params[]) {
    new pame[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pame, sizeof(pame));
    if(PlayerInfo[playerid][LoggedIn] == 1) {
        if(PlayerInfo[playerid][Level] >= 6) {
            new tmp[256], tmp2[256], Index;     tmp = strtok(params,Index), tmp2 = strtok(params,Index);
            if(!strlen(params)) return SendClientMessage(playerid, red, "[USA]: /ban [playerid] [razуn]") &&
        SendClientMessage(playerid, orange, "[Funciуn]: Expulsas del Server a Especificado Jugador sin que este pueda entrar otra vez!");
            if(!strlen(tmp2)) return SendClientMessage(playerid, red, "{ff0000}[ERROR]:{ffffff} Debes aсadir una razуn para banear a este player");
            new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[256];
            player1 = strval(tmp);

            if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) ) {
                GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
                new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second);
                CMDMessageToAdmins(playerid,"BAN");
                format(string,sizeof(string),"%s ha sido Baneado por el Administrador %s [Razуn: %s] [Fecha: %d/%d/%d]",playername,adminname,params[2],day,month,year);
                SendClientMessageToAll(red,string);
                SaveToFile("BanLog",string);
                print(string);
                if(udb_Exists(PlayerName2(player1)) && PlayerInfo[player1][LoggedIn] == 1) dUserSetINT(PlayerName2(player1)).("banned",1);
                format(string,sizeof(string),"Ud fue Baneado por el Administrador %s. Razуn: %s", adminname, params[2] );
                ShowPlayerDialog(player1, ID_DIALOG, DIALOG_STYLE_MSGBOX, "INFO: Baneado", "Tu estas baneado para este servidor, por incumplir la reglas.", "Cerrar", "");
               return Banear(player1);
            } else return SendClientMessage(playerid, red, "El player no estб conectado o es usted mismo");
        } else return SendClientMessage(playerid,red,"{ff0000}[ERROR]:{ffffff} Necesitas ser level 6 para usar este comando");
    } else return SendClientMessage(playerid,red,"{ff0000}[ERROR]:{ffffff} Debes estar logeado para usar este comando");
}
gracias
Reply
#2

La funciуn como tal no tiene parбmetros para aсadir mбs argumentos, Tu error se solucionarнa de esta manera:

PHP код:
new string[160];
format(stringsizeof(string), "Estas bloqueado del servidor.\n\n");
format(stringsizeof(string), "%sNick: %s\nBaneado por: %s\nRazon: %s\n"stringplayername,adminname,params[2);
format(stringsizeof(string), "%sFecha: %d/%d/%d\nPuedes apelar tu desbaneo en www.crazy-landia.tk"stringday,month,year);
ShowPlayerDialog(player1ID_DIALOGDIALOG_STYLE_MSGBOX"CUENTA BANEADA"string"Cerrar"""); 
Pero si quieres hacer algo como lo que tъ intentabas hacer, te dejo una funciуn.

PHP код:
stock ShowPlayerDialogEx(playeriddialogidstylecaption[], info[], button1[], button2[], {Float,_}:...)
{
    static
        
string[1024],
        
start,
        
end;
    if (
numargs() > 7)
    {
        
#emit ADDR.pri button2
        #emit STOR.pri start
        
for (end start + (numargs() << 2) - 28end startend -= 4)
        {
            
#emit LREF.pri end
            #emit PUSH.pri
        
}
        
#emit PUSH.S info
        #emit PUSH.C 1024
        #emit PUSH.C string
        #emit LOAD.S.pri 8
        #emit CONST.alt 16
        #emit SUB
        #emit PUSH.pri
        #emit SYSREQ.C format
        #emit LCTRL 5
        #emit SCTRL 4
        
ShowPlayerDialog(playeriddialogidstylecaptionstringbutton1button2);
    }
    else
    {
        
ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);
    }
    return 
1;

HOOK:

PHP код:
#if defined _ALS_ShowPlayerDialog
    #undef ShowPlayerDialog
#else
    #define _ALS_ShowPlayerDialog
#endif
 
#define ShowPlayerDialog ShowPlayerDialogEx 
y listo, puedes usarla asн:

PHP код:
    ShowPlayerDialog(playerid5215DIALOG_STYLE_MSGBOX"Hola""Bienvenido! Tu id es %d""Gracias,"""playerid); 
sin errores.
Reply
#3

Quote:
Originally Posted by _Zume
Посмотреть сообщение
La funciуn como tal no tiene parбmetros para aсadir mбs argumentos, Tu error se solucionarнa de esta manera:

pawn Код:
new string[160];
format(string, sizeof(string), "Estas bloqueado del servidor.\n\n");
format(string, sizeof(string), "%sNick: %s\nBaneado por: %s\nRazon: %s\n", string, playername,adminname,params[2);
format(string, sizeof(string), "%sFecha: %d/%d/%d\nPuedes apelar tu desbaneo en www.web.tk", string, day,month,year);
ShowPlayerDialog(player1, ID_DIALOG, DIALOG_STYLE_MSGBOX, "CUENTA BANEADA", string, "Cerrar", "");
Pero si quieres hacer algo como lo que tъ intentabas hacer, te dejo una funciуn.

pawn Код:
stock ShowPlayerDialogEx(playerid, dialogid, style, caption[], info[], button1[], button2[], {Float,_}:...)
{
    static
        string[1024],
        start,
        end;

    if (numargs() > 7)
    {
        #emit ADDR.pri button2
        #emit STOR.pri start

        for (end = start + (numargs() << 2) - 28; end > start; end -= 4)
        {
            #emit LREF.pri end
            #emit PUSH.pri
        }
        #emit PUSH.S info
        #emit PUSH.C 1024
        #emit PUSH.C string

        #emit LOAD.S.pri 8
        #emit CONST.alt 16
        #emit SUB
        #emit PUSH.pri

        #emit SYSREQ.C format
        #emit LCTRL 5
        #emit SCTRL 4

        ShowPlayerDialog(playerid, dialogid, style, caption, string, button1, button2);
    }
    else
    {
        ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
    }
    return 1;
}
HOOK:

pawn Код:
#if defined _ALS_ShowPlayerDialog
    #undef ShowPlayerDialog
#else
    #define _ALS_ShowPlayerDialog
#endif
 
#define ShowPlayerDialog ShowPlayerDialogEx
y listo, puedes usarla asн:

pawn Код:
ShowPlayerDialog(playerid, 5215, DIALOG_STYLE_MSGBOX, "Hola", "Bienvenido! Tu id es %d", "Gracias,", "", playerid);
sin errores.
*.* funciono mucha gracias me quedo con la segunda opciуn +rept
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)