09.02.2011, 00:29
Sistema de ban ta banindo todos, tem algo errado com o codigo ?
pawn Код:
if(strcmp(cmd, "/ban", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new playersip[64];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /ban [playerid/Nome] <motivo>");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerIp(giveplayerid,playersip,sizeof(playersip));
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))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /ban [playerid/Nome] [motivo]");
return 1;
}
if(giveplayerid != playerid && Untouchable[giveplayerid]) return SendClientMessage(playerid, COLOR_GREY, "* Vocк nгo pode fazer isto com Este Jogador!");
new targetlevel = PlayerInfo[giveplayerid][pAdmin];
new playerlevel = PlayerInfo[playerid][pAdmin];
if(targetlevel > playerlevel) return SendClientMessage(playerid, COLOR_GREY, "* Vocк nгo pode fazer isso com rank maior que o seu!");
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 Foi Banido Pelo Admin %s Motivo: %s",d,m,y,h,mi,s,giveplayer,sendername, (result));
BanLog(string);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Foi Banido Pelo Admin %s - Motivo: %s",d,m,y,h,mi,s,sendername,(result));
AddPunishment(giveplayerid, string);
format(string, sizeof(string), "%s (%d), Foi Banido Pelo Administrador %s Por %s", giveplayer, giveplayerid, sendername, (result));
SendClientMessageToAll(COLOR_NICERED, string);
format(string, sizeof(string), "[ADMIN]: %s Foi Adicionado Na Lista De Bans Por %s", playersip, sendername);
SendAdminMessage(COLOR_WHITE, string);
format(string, sizeof(string), "Vocк Foi Banido Pelo Admin %s Motivo %s", sendername, (result));
SafeSetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391);
SafeSetPlayerInterior(giveplayerid, 6);
PlayerInfo[giveplayerid][pJailTime] = 300;
PlayerInfo[giveplayerid][pJailed] = 1;
format(string, sizeof(string), "~r~~h~Ban: ~n~~r~%s",(result));
GameTextForPlayer(giveplayerid, string, 6000, 3);
PlayerInfo[giveplayerid][pPending] = 0;
Ban(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "** %d nгo й um jogador ativo.", giveplayerid);
SendClientMessage(playerid, COLOR_BLUE, string);
}
}
return 1;
}