cmd problem
#1

Код:
[19:31:53] [debug] Run time error 4: "Array index out of bounds"
[19:31:53] [debug]  Accessing element at index 65535 past array upper bound 999
[19:31:53] [debug] AMX backtrace:
[19:31:53] [debug] #0 001be24c in public cmd_makeadmin (playerid=1, params[]=@0192d8ec "") at gm.pwn:27658
[19:31:53] [debug] #1 native CallLocalFunction () from samp03svr
[19:31:53] [debug] #2 00009adc in public OnPlayerCommandText (playerid=1, cmdtext[]=@0192d898 "/makeadmin ") at D:\SAMP stuff\RPG \pawno\include\zcmd.inc:108
[19:31:58]
PHP код:
CMD:makeadmin(playeridparams[])
{
    if(
gPlayerLogged[playerid] == 0) return SendClientMessage(playeridCOLOR_LIGHTRED"You need to login first.");
    if(
IsPlayerConnected(playerid))
    {
        if (
PlayerInfo[playerid][pAdmin] >= || EstiFondator(playerid))
        {
            new 
id,adminlevel,sendername[30],giveplayer[30],string[200],escape[200];
            if(
sscanf(params"ui",id,adminlevel)) return SendClientMessage(playerid0xFFFFFFFF"{FF9900}Scrie: {33CCFF}/makeadmin` <Name/Playerid> <Admin Level>");
            if(
PlayerInfo[id][pAdmin] >= && !EstiFondator(playerid)) return SendClientMessage(playeridCOLOR_WHITE"Nu poti modifica admin level-ul unui admin 6+!.");
            if(
adminlevel && !EstiFondator(playerid)) return SendClientMessage(playeridCOLOR_WHITE"Only founders can make admin higher than 4.");
            if(
IsPlayerConnected(id))
            {
                if(
id != INVALID_PLAYER_ID)
                {
                    
GetPlayerName(idgiveplayersizeof(giveplayer));
                    
GetPlayerName(playeridsendernamesizeof(sendername));
                    
printf("AdmCmd: %s has promoted %s to a level %d admin."sendernamegiveplayeradminlevel);
                    
format(stringsizeof(string), "You've been promoted to level %d admin, by %s."adminlevelsendername);
                    
SendClientMessage(idCOLOR_YELLOWstring);
                    
format(stringsizeof(string), "You have promoted %s to a level %d admin."giveplayer,adminlevel);
                    
SendClientMessage(playeridCOLOR_YELLOWstring);
                    
format(stringsizeof(string), "* Admin %s set %s's admin level to %d."sendername,giveplayer,adminlevel);
                    
ABroadCast(COLOR_ADMIN,string,1);
                    
HLChat(COLOR_ADMCHAT,string);
                    
mysql_real_escape_string(stringescape);
                    
PlayerInfo[id][pAdmin] = adminlevel;
                    if(
adminlevel == 0)
                    {
                        
AdminDuty[id] = 0;
                    }
                    new 
str[256];
                    
mysql_format(SQL,str,sizeof(str),"UPDATE users SET `Admin`='%d' WHERE `name`='%s'",PlayerInfo[id][pAdmin],PlayerInfo[id][pNormalName]);
                    
mysql_tquery(SQL,str,"","");
                    
mysql_format(SQL,strsizeof(str), "INSERT INTO staff_logs (`text`) VALUES ('%s')"escape);
                    
mysql_tquery(SQL,str,"","");
                }
            }
            else
            {
                
SendClientMessage(playeridCOLOR_WHITE"{FFFFCC}Error: Player not connected.");
            }
        }
        else
        {
            
SendClientMessage(playeridCOLOR_ERRORAdminOnly);
        }
    }
    return 
1;

Reply
#2

pawn Код:
CMD:makeadmin(playerid, params[])
{
    if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to login first.");
    if(IsPlayerConnected(playerid))
    {
        if (PlayerInfo[playerid][pAdmin] >= 6 || EstiFondator(playerid))
        {
            new id,adminlevel,sendername[30],giveplayer[30],string[200],escape[200];
            if(sscanf(params, "ui",id,adminlevel)) return SendClientMessage(playerid, 0xFFFFFFFF, "{FF9900}Scrie: {33CCFF}/makeadmin` <Name/Playerid> <Admin Level>");
            if(adminlevel > 4 && !EstiFondator(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Only founders can make admin higher than 4.");
            if(IsPlayerConnected(id))
            {
                if(PlayerInfo[id][pAdmin] >= 6 && !EstiFondator(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Nu poti modifica admin level-ul unui admin 6+!.");  
                GetPlayerName(id, giveplayer, sizeof(giveplayer));
                GetPlayerName(playerid, sendername, sizeof(sendername));
                printf("AdmCmd: %s has promoted %s to a level %d admin.", sendername, giveplayer, adminlevel);
                format(string, sizeof(string), "You've been promoted to level %d admin, by %s.", adminlevel, sendername);
                SendClientMessage(id, COLOR_YELLOW, string);
                format(string, sizeof(string), "You have promoted %s to a level %d admin.", giveplayer,adminlevel);
                SendClientMessage(playerid, COLOR_YELLOW, string);
                format(string, sizeof(string), "* Admin %s set %s's admin level to %d.", sendername,giveplayer,adminlevel);
                ABroadCast(COLOR_ADMIN,string,1);
                HLChat(COLOR_ADMCHAT,string);
                mysql_real_escape_string(string, escape);
                PlayerInfo[id][pAdmin] = adminlevel;
                if(adminlevel == 0)
                {
                    AdminDuty[id] = 0;
                }
                new str[256];
                mysql_format(SQL,str,sizeof(str),"UPDATE users SET `Admin`='%d' WHERE `name`='%s'",PlayerInfo[id][pAdmin],PlayerInfo[id][pNormalName]);
                mysql_tquery(SQL,str,"","");
                mysql_format(SQL,str, sizeof(str), "INSERT INTO staff_logs (`text`) VALUES ('%s')", escape);
                mysql_tquery(SQL,str,"","");
            }
            else
            {
                SendClientMessage(playerid, COLOR_WHITE, "{FFFFCC}Error: Player not connected.");
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_ERROR, AdminOnly);
        }
    }
    return 1;
}
here is it...

The error was because you were using this
pawn Код:
if(PlayerInfo[id][pAdmin] >= 6 && !EstiFondator(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Nu poti modifica admin level-ul unui admin 6+!.");
before checking if 'id' the player is connected or not.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)