28.01.2009, 10:50
Big Strtok Function (Not by me, Dunno who made it.)
/kick with big strtok function.
pawn Код:
stock bigstrtok(const string[], &idx)
{
new length = strlen(string);
while ((idx < length) && (string[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = string[idx];
idx++;
}
result[idx - offset] = EOS;
return result;
}
pawn Код:
if(strcmp(cmd, "/kick", true) == 0)
{
new reason[128]; // 128 cells.
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /kick [playerid] [reason]");
new id = ReturnUser(tmp);
GetPlayerName(id, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
reason = bigstrtok(cmdtext, idx); // The reason becomes as a big strtok.
if(!strlen(reason)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /kick [playerid] [reason]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_GREY,"SERVER: Invalid Player ID");
format(string, sizeof(string), "Administrator %s has kicked %s, the reason: %s", sendername, giveplayer, reason); // Reason = big strtok.
SendClientMessageToAll(COLOR_GREY, string);
Kick(id);
return 1;
}