Kick Command Bug
#1

So when my friend types a command that needs to kick me it needs to say:

<MYNAME> was kicked by <MYFRIENDNAME>.

But when my friend does the command on me i mean he type /kick <MYNAME>

It says <MYFRIENDNAME> was kicked by <MYFRIENDNAME> WHY??

Why it says when my friend kick me says that he kicked himself but he kicked me

Please help me.

Here is the command: (IGNORE THE BUGGED TEXT, IT WAS ON DIFFERENT LANGUAGE)

Код:
CMD:kick(playerid, params[])
{
   if(PlayerInfo[playerid][pAdmin] >= 1)
   {
      new PID;
      new reason[64];
      new str[128];
      new Playername[MAX_PLAYER_NAME], Adminname[MAX_PLAYER_NAME];
      GetPlayerName(playerid, Adminname, sizeof(Adminname));
      GetPlayerName(PID, Playername, sizeof(Playername));
      if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_SYSTEM, "SERVER: {FF1E00}/kick [playerid] [причина]");
      if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Този играч не е в сървъра!");
      if(PID == playerid) return SendClientMessage(playerid, COLOR_GREY, "Не можете да използвате тази команда върху себе си!");
      format(str, sizeof(str), "{FF1E00}ADMIN: %s е кикнат от администратор %s. [Причина: %s]", Playername, Adminname, reason);
      SendClientMessageToAll(COLOR_SYSTEM, str);
      KickEx(PID);
   }
   else
   {
      SendClientMessage(playerid, COLOR_GREY, "Трябва да сте поне 1 левел Админ!");
   }
   return 1;
}
Reply
#2

PHP код:
CMD:kick(playeridparams[])
{
   if(
PlayerInfo[playerid][pAdmin] >= 1)
   {
      new 
PID;
      new 
reason[64];
      new 
str[128];
      new 
KickedName[MAX_PLAYER_NAME], AdminName[MAX_PLAYER_NAME];
      
GetPlayerName(playeridAdminNamesizeof(AdminName));
      
GetPlayerName(PIDKickedNamesizeof(KickedName));
      if(
sscanf(params"us[64]"PID,reason)) return SendClientMessage(playeridCOLOR_SYSTEM"SERVER: {FF1E00}/kick [playerid] [reason]");
      if(!
IsPlayerConnected(PID)) return SendClientMessage(playeridCOLOR_GREY"????????");
      if(
PID == playerid) return SendClientMessage(playeridCOLOR_GREY"????????");
      
format(strsizeof(str), "{FF1E00}ADMIN: Player %s was kicked by Admin %s. [Reason: %s]"KickedNameAdminNamereason);
      
SendClientMessageToAll(COLOR_SYSTEMstr);
      
KickEx(PID);
   }
   else
   {
      
SendClientMessage(playeridCOLOR_GREY"????????");
   }
   return 
1;

Try with this?
Reply
#3

Ignore what David said, because it seems he didn't figure what the issue is.

Код:
GetPlayerName(PID, Playername, sizeof(Playername));
      if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_SYSTEM, "SERVER: {FF1E00}/kick [playerid] [причина]");
      if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Този играч не е в сървъра!");
      if(PID == playerid) return SendClientMessage(playerid, COLOR_GREY, "Не можете да използвате тази команда върху себе си!");
You didn't even go through sscanf to define what a PID is and you already do GetPlayerName. It must be like that:

Код:
      if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_SYSTEM, "SERVER: {FF1E00}/kick [playerid] [причина]");
      if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Този играч не е в сървъра!");
      if(PID == playerid) return SendClientMessage(playerid, COLOR_GREY, "Не можете да използвате тази команда върху себе си!");
     GetPlayerName(PID, Playername, sizeof(Playername));
Oh, and I can bet it was writing he kicked himself simply because his ID was 0, and upon definition, PID's value was equal 0.
Reply
#4

Quote:
Originally Posted by Maxandmov
Посмотреть сообщение
Ignore what David said, because it seems he didn't figure what the issue is.

Код:
GetPlayerName(PID, Playername, sizeof(Playername));
      if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_SYSTEM, "SERVER: {FF1E00}/kick [playerid] [причина]");
      if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Този играч не е в сървъра!");
      if(PID == playerid) return SendClientMessage(playerid, COLOR_GREY, "Не можете да използвате тази команда върху себе си!");
You didn't even go through sscanf to define what a PID is and you already do GetPlayerName. It must be like that:

Код:
      if(sscanf(params, "us[64]", PID,reason)) return SendClientMessage(playerid, COLOR_SYSTEM, "SERVER: {FF1E00}/kick [playerid] [причина]");
      if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Този играч не е в сървъра!");
      if(PID == playerid) return SendClientMessage(playerid, COLOR_GREY, "Не можете да използвате тази команда върху себе си!");
     GetPlayerName(PID, Playername, sizeof(Playername));
Oh, and I can bet it was writing he kicked himself simply because his ID was 0, and upon definition, PID's value was equal 0.
Oh, yea, i didn't even think about it.. lol'z my bad.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)