30.12.2013, 13:35
Here is my /kick command.
So..
When I kick someone I want him to get the reason why he is kicked.
How to do it?
Код:
//---------------------------------------------[Kick]----------------------------------------------------- if(strcmp(cmd, "/kick", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /kick [playerid/PartOfName] <reason>"); return 1; } giveplayerid = ReturnUser(tmp); if(giveplayerid != playerid && Untouchable[giveplayerid]) return SendClientMessage(playerid, COLOR_GREY, "* You Can't Do this on This player!"); new targetlevel = PlayerInfo[giveplayerid][pAdmin]; new playerlevel = PlayerInfo[playerid][pAdmin]; if(targetlevel > playerlevel) return SendClientMessage(playerid, COLOR_GREY, "* You can not Kick People that is higher Than You!"); if (PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid)) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[128]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { new y, m, d; new h,mi,s; getdate(y,m,d); gettime(h,mi,s); format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Has been kicked by %s, No Reason Given",d,m,y,h,mi,s,giveplayer,sendername); KickLog(string); format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Kicked by %s - No Reason Given.",d,m,y,h,mi,s,sendername); AddPunishment(giveplayerid, string); format(string, sizeof(string), "%s (%d), Has been kicked by Administrator %s, No Reason Given", giveplayer, giveplayerid, sendername); SendClientMessageToAll(COLOR_NICERED, string); format(string, sizeof(string), "You have Been Kicked by Administrator %s, No Reason Given", sendername); SendClientMessage(giveplayerid,COLOR_LIGHTBLUE, string); SafeSetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391); SafeSetPlayerInterior(giveplayerid, 6); GameTextForPlayer(giveplayerid, "~r~~h~Admin Kicked: ~n~~r~No Reason Given", 6000, 3); //SetTimerEx("KickPlayer", 1000, false, "i", playerid); Kick(giveplayerid); return 1; } new y, m, d; new h,mi,s; getdate(y,m,d); gettime(h,mi,s); format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Has been kicked by %s for: %s",d,m,y,h,mi,s,giveplayer,sendername, (result)); KickLog(string); format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Kicked by %s - Reason: %s",d,m,y,h,mi,s,sendername,(result)); AddPunishment(giveplayerid, string); format(string, sizeof(string), "%s (%d), Has been kicked by Administrator %s for: %s", giveplayer, giveplayerid, sendername, (result)); SendClientMessageToAll(COLOR_NICERED, string); format(string, sizeof(string), "You have Been Kicked by Administrator %s for: %s", sendername, (result)); SendClientMessage(giveplayerid,COLOR_LIGHTBLUE, string); SafeSetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391); SafeSetPlayerInterior(giveplayerid, 6); format(string, sizeof(string), "~r~~h~Admin Kicked: ~n~~r~%s",(result)); GameTextForPlayer(giveplayerid, string, 6000, 3); //SetTimerEx("KickPlayer", 1000, false, "i", playerid); Kick(giveplayerid); return 1; } } } else { format(string, sizeof(string), "** %d is not an active player.", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }
When I kick someone I want him to get the reason why he is kicked.
How to do it?