Playerid bug
#1

Code
pawn Код:
dcmd_kick(playerid,params[])
{
    if(AccInfo[playerid][LoggedIn] == 1)

    {
        if(AccInfo[playerid][Level] >= 3)
        {
            new Index;
            new tmp[256];  tmp  = strtok(params,Index);
            new tmp2[256]; tmp2 = strtok(params,Index);
            if(!strlen(params)) return
            SendClientMessage(playerid, LIGHTBLUE2, "Usage: /kick [PlayerID] [Reason]") &&
            SendClientMessage(playerid, orange, "Function: Will Kick the specified player");
            new player1;
            new string[128];
            new playername[MAX_PLAYER_NAME];
            //new adminname [MAX_PLAYER_NAME];
            player1 = strval(tmp);

            if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (AccInfo[player1][Level] != ServerInfo[MaxAdminLevel]))
             {
                //GetPlayerName(playerid, adminname, sizeof(adminname));
                GetPlayerName(playerid, playername, sizeof(playername));
                SendCommandToAdmins(playerid,"Kick");
                if(!strlen(tmp2))
                {
                format(string,sizeof(string),"%s(%d) has been kicked by an admin.",playername,playerid);
                SendClientMessageToAll(GREEN,string);
                SaveIn("KickLog",string);
                print(string);
                return Kick(player1);
                }
                else
                {
                format(string,sizeof(string),"%s(%d) has been kicked by an admin reason:",playername,playerid,params[2]);
                SendClientMessageToAll(GREEN,string);
                SaveIn("KickLog",string); print(string);
                return Kick(player1);
                }
            }
            else return ErrorMessages(playerid, 3);
        }
        else return ErrorMessages(playerid, 1);
    }
    else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
}
In game
it happens like this
%s(%d) has been kicked by an admin reason:
Jack(0) has been kicked by an admin reason: lala

IT GIVES ADMINS ID not the players ID
Reply
#2

This should work:
pawn Код:
dcmd_kick(playerid,params[])
{
    if(AccInfo[playerid][LoggedIn] == 1)

    {
        if(AccInfo[playerid][Level] >= 3)
        {
            new Index;
            new tmp[256];  tmp  = strtok(params,Index);
            new tmp2[256]; tmp2 = strtok(params,Index);
            if(!strlen(params)) return
            SendClientMessage(playerid, LIGHTBLUE2, "Usage: /kick [PlayerID] [Reason]") &&
            SendClientMessage(playerid, orange, "Function: Will Kick the specified player");
            new player1;
            new string[128];
            new playername[MAX_PLAYER_NAME];
            //new adminname [MAX_PLAYER_NAME];
            player1 = strval(tmp);

            if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (AccInfo[player1][Level] != ServerInfo[MaxAdminLevel]))
             {
                //GetPlayerName(playerid, adminname, sizeof(adminname));
                GetPlayerName(player1, playername, sizeof(playername));
                SendCommandToAdmins(playerid,"Kick");
                if(!strlen(tmp2))
                {
                format(string,sizeof(string),"%s(%d) has been kicked by an admin.",playername,player1);
                SendClientMessageToAll(GREEN,string);
                SaveIn("KickLog",string);
                print(string);
                return Kick(player1);
                }
                else
                {
                format(string,sizeof(string),"%s(%d) has been kicked by an admin reason:",playername,player1,params[2]);
                SendClientMessageToAll(GREEN,string);
                SaveIn("KickLog",string); print(string);
                return Kick(player1);
                }
            }
            else return ErrorMessages(playerid, 3);
        }
        else return ErrorMessages(playerid, 1);
    }
    else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
}
Tell me if you got any error.
Reply
#3

What did you change?
Reply
#4

Ahh yes I see what I did wrong thanks anyways!
That was the solution
Reply
#5

DOES NOT WORK NOW IT GIVES ADMIN NAME AND ID
Reply
#6

Add me on Skype I will help fix it, jimmycherfan
Reply
#7

This should work:
pawn Код:
dcmd_kick(playerid,params[])
{
    if(AccInfo[playerid][LoggedIn] == 1)

    {
        if(AccInfo[playerid][Level] >= 3)
        {
            new Index;
            new tmp[256];  tmp  = strtok(params,Index);
            new tmp2[256]; tmp2 = strtok(params,Index);
            if(!strlen(params)) return
            SendClientMessage(playerid, LIGHTBLUE2, "Usage: /kick [PlayerID] [Reason]") &&
            SendClientMessage(playerid, orange, "Function: Will Kick the specified player");
            new player1;
            new string[128];
            new playername[MAX_PLAYER_NAME];
            //new adminname [MAX_PLAYER_NAME];
            player1 = strval(tmp);

            if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (AccInfo[player1][Level] != ServerInfo[MaxAdminLevel]))
             {
                //GetPlayerName(playerid, adminname, sizeof(adminname));
                GetPlayerName(player1, playername, sizeof(playername));
                SendCommandToAdmins(playerid,"Kick");
                if(!strlen(tmp2))
                {
                format(string,sizeof(string),"%s(%d) has been kicked by an admin.",playername,player1);
                SendClientMessageToAll(GREEN,string);
                SaveIn("KickLog",string);
                print(string);
                return Kick(player1);
                }
                else
                {
                format(string,sizeof(string),"%s(%d) has been kicked by an admin reason: %s",playername,player1,params[2]);
                SendClientMessageToAll(GREEN,string);
                SaveIn("KickLog",string); print(string);
                return Kick(player1);
                }
            }
            else return ErrorMessages(playerid, 3);
        }
        else return ErrorMessages(playerid, 1);
    }
    else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
}
Reply
#8

nope ...
Reply
#9

Grr this is weird! It's almost the same command as the one I have, but it's not working...
I swear the one I have on my script is the same but without the ID thing.

Tip from me: If this doesn't get a solution, remove the ID thing(You don't need it anyway, the player has already disconnected).
Reply
#10

Try it:

PHP код:
dcmd_kick(playerid,params[])
{
    if(
AccInfo[playerid][LoggedIn] == 1)
    {
        if(
AccInfo[playerid][Level] >= 3)
        {
            new 
Index;
            new 
tmp[256];  tmp  strtok(params,Index);
            new 
tmp2[256]; tmp2 strtok(params,Index);
            if(!
strlen(params)) return
            
SendClientMessage(playeridLIGHTBLUE2"Usage: /kick [PlayerID] [Reason]") &&
            
SendClientMessage(playeridorange"Function: Will Kick the specified player");
            new 
player1;
            new 
string[128];
            
player1 strval(tmp);
            if(
IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (AccInfo[player1][Level] != ServerInfo[MaxAdminLevel]))
             {
                
SendCommandToAdmins(playerid,"Kick");
                if(!
strlen(tmp2))
                {
                
format(string,sizeof(string),"%s(%d) has been kicked by an admin."Name(player1),player1);
                
SendClientMessageToAll(GREEN,string);
                
SaveIn("KickLog",string);
                print(string);
                return 
Kick(player1);
                }
                else
                {
                
format(string,sizeof(string),"%s(%d) has been kicked by an admin reason:",Name(player1),player1,params[2]);
                
SendClientMessageToAll(GREEN,string);
                
SaveIn("KickLog",string); print(string);
                return 
Kick(player1);
                }
            }
            else return 
ErrorMessages(playerid3);
        }
        else return 
ErrorMessages(playerid1);
    }
    else return 
SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
}
stock Name(playerid)
{
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    return 
name;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)