SA-MP Forums Archive
Kick Message. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Kick Message. (/showthread.php?tid=568541)



Kick Message. - BlueEyes - 23.03.2015

Hi Niggas,I have made /kick command it's working but i dont know how to give a kick message when a player gets kick.I want the message will be given to all other players,Please help me
This is my code:
CMD:kick(playerid,params[])
{
new TargetID,Reason[200];
if(sscanf(params, "u", TargetID))
{
SendClientMessage(playerid, COLOR_ERROR, "USAGE: /kick (Name/Id) (Reason).");
return 1;
}
sscanf(params, "us[200]", TargetID, Reason);
if(!IsPlayerConnected(TargetID) || TargetID == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, COLOR_ERROR, "That Player Is Not Connected.");
return 1;
}
if(IsPlayerNPC(TargetID))
{
SendClientMessage(playerid,COLOR_ERROR,"You Cannot Kick a BOT.");
return 1;
}
if(!strlen(Reason))
{
Reason = "No Reason Given.";
}
Kick(TargetID);
return 1;
}


Re: Kick Message. - JaydenJason - 23.03.2015

Код:
CMD:kick(playerid,params[])
{
new TargetID,Reason[200];
if(sscanf(params, "u", TargetID))
{
SendClientMessage(playerid, COLOR_ERROR, "USAGE: /kick (Name/Id) (Reason).");
return 1;
}
sscanf(params, "us[200]", TargetID, Reason);
if(!IsPlayerConnected(TargetID) || TargetID == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, COLOR_ERROR, "That Player Is Not Connected.");
return 1;
}
if(IsPlayerNPC(TargetID))
{
SendClientMessage(playerid,COLOR_ERROR,"You Cannot Kick a BOT.");
return 1;
}
if(!strlen(Reason))
{
Reason = "No Reason Given.";
}
SendClientMessageToAll(COLOR_RED/*idk what color*/," %s has been kicked from the server by %s,  reason: %s", GetPlayerName(TargetID),GetPlayerName(playerid), Reason);
Kick(TargetID);
return 1;
}



Re: Kick Message. - Mya - 23.03.2015

You need to put this on your kick command

PHP код:
    SendClientMessageToAll(COLOR_HEREYOURMESSEGE); 



Re: Kick Message. - CalvinC - 23.03.2015

If you want the kicked player to be able to see the message, you need to use a timer of about 100 milliseconds that kicks him.


Re: Kick Message. - BlueEyes - 23.03.2015

I have tested it but it shut'sdown the server! Anyways i will test the timer.


Re: Kick Message. - BlueEyes - 23.03.2015

CMD:kick(playerid,params[])
{
new TargetID,Reason[200];
if(sscanf(params, "u", TargetID))
{
SendClientMessage(playerid, COLOR_ERROR, "USAGE: /kick (Name/Id) (Reason).");
return 1;
}
sscanf(params, "us[200]", TargetID, Reason);
if(!IsPlayerConnected(TargetID) || TargetID == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, COLOR_ERROR, "That Player Is Not Connected.");
return 1;
}
if(IsPlayerNPC(TargetID))
{
SendClientMessage(playerid,COLOR_ERROR,"You Cannot Kick a BOT.");
return 1;
}
if(!strlen(Reason))
{
Reason = "No Reason Given.";
}
SetTimer ("Kick message",100,False);//Is it ok?
Kick(TargetID);
return 1;
}


AW: Kick Message. - Kaliber - 23.03.2015

No, write it like this:

PHP код:
CMD:kick(playerid,params[])
{
    new 
TargetID,Reason[145];
    if(
sscanf(params"uS(No reason)[144]"TargetIDReason)) return SendClientMessage(playeridCOLOR_ERROR"USAGE: /kick (Name/Id) (Reason).");
    if(!
IsPlayerConnected(TargetID)) return SendClientMessage(playeridCOLOR_ERROR"That Player Is Not Connected.");
    if(
IsPlayerNPC(TargetID)) return SendClientMessage(playerid,COLOR_ERROR,"You Cannot Kick a BOT.");
    if(!
Reason[0]) return SendClientMessage(playerid,COLOR_ERROR,"No Reason Given.");
    
format(Reason,sizeof Reason,"* %s kicked %s for %s!",GetName(playerid),GetName(TargetID),Reason);
    
SendClientMessageToAll(-1,Reason);
    
SetTimerEx("@Kick",100,0,"i",TargetID);
    return 
1;
}
@
Kick(i);@Kick(i) return Kick(i);
//If you dont have it:
stock GetName(playerid) {
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    return 
name;

Greekz


Re: Kick Message. - CalvinC - 23.03.2015

No, you have to time the kick, and send the message immediately in your cmd.


Re: Kick Message. - Konstantinos - 23.03.2015

Keep in mind that if the reason is not given, it'll keep giving the usage message so you've to use optional string in sscanf.

PHP код:
new
    
ID,
    
Reason[64];
if (
ssacnf(params"rS(No reason)[64]"IDReason)) return .. // usage message.. 
and just format it normally, it'll either show the reason you input or "No reason" if it was empty.

By the way, use a timer to delay the kick only if you want the player who is about to get kicked to see the message. If the message is shown to the rest of the players only, you don't need it.


Re: Kick Message. - BlueEyes - 23.03.2015

Ok Thanks,I will chect it