26.04.2014, 17:05
Quando eu do /tempban ele bane mais quando alguem tenta entrar no server ele da kick por causa do sistema
Se puderen me ajudar desde ja agradeзo e muito
Erro=//bug no tempbancheck desde kickar o player banido ele kickaqualquer 1
COMANDO
CHECA TEMPBAN QUE O PLAYER ESTA
QUANDO ELE CHECA ELE DA KICK PODE SER QUALQUER UM SEM ESTAR BANIDO
POR CAUSA DESTI BUG NO TempBanCheck
JA TIREI O Kick(playerid) da certo mais o cara banido consegue entrar por causa disso ai
Se puderen me ajudar desde ja agradeзo e muito
Erro=//bug no tempbancheck desde kickar o player banido ele kickaqualquer 1
COMANDO
PHP код:
if(strcmp(cmd, "/tempban", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 4)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, ORANGE, "USAGE: /tempban [playerid] [day] [reason]");
SendClientMessage(playerid, ORANGE, "FUNЗГO: Proibiзгo tenporaria.");
return 1;
}
giveplayerid = ReturnUser(tmp);
new string[128];
if(IsPlayerConnected(giveplayerid))
{
tmp = strtok(cmdtext, idx);
if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /tempban [playerid] [day] [reason]");
new days = strval(tmp);
new reason[128];
reason = bigstr(cmdtext, idx);
if (!strlen(reason)) return SendClientMessage(playerid, ORANGE, "USAGE: /tempban [playerid] [day] [REASON]");
new ip[15];
new name[MAX_PLAYER_NAME];
GetPlayerIp(giveplayerid,ip,15);
GetPlayerName(playerid, name, sizeof name);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new File:tempban = fopen("TempBans.txt", io_append);
if (tempban)
{
new year,month,day;
getdate(year, month, day);
day += days;
if (IsMonth31(month))
{
if (day > 31)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 31) day -= 31;
}
else while(day > 31) day -= 31;
}
}
else if (!IsMonth31(month))
{
if (day > 30)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 30) day -= 30;
}
else while(day > 30) day -= 30;
}
}
else if (!IsMonth31(month) && IsMonth29(year) && month == 2)
{
if (day > 29)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 29) day -= 29;
}
else while(day > 29) day -= 29;
}
}
else if (!IsMonth31(month) && !IsMonth29(year) && month == 2)
{
if (day > 28)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 28) day -= 28;
}
else while(day > 28) day -= 28;
}
}
format(string, sizeof string, "%d|%d|%d|%s\n", day, month, year, ip);
fwrite(tempban, string);
fclose(tempban);
}
format(string,128,"|- Administrador %s proibiu temporariamente %s Para %d dia(s). [Motivo: %s] -|",name,giveplayer,days,reason);
SendClientMessageToAll(ADMIN_RED,string);
Kick(giveplayerid);
}
else
{
format(string, sizeof(string), "%d nгo й um jogador ativo.", giveplayerid);
SendClientMessage(playerid, RED, string);
}
}
else return SendClientMessage(playerid, RED, "Voce nao й um administrador.");
return true;
}
PHP код:
public OnPlayerConnect(playerid)
{
TempBanCheck(playerid);
POR CAUSA DESTI BUG NO TempBanCheck
JA TIREI O Kick(playerid) da certo mais o cara banido consegue entrar por causa disso ai
PHP код:
stock TempBanCheck(playerid)
{
new ip[15];
new str[128];
new load[4][32];
new ban_day, ban_month, ban_year, ban_ip[15];
GetPlayerIp(playerid, ip, sizeof ip);
new year, month, day;
getdate(year, month, day);
new File:file = fopen("TempBans.txt",io_read);
if (file)
{
while (fread(file, str, sizeof str))
{
split(str, load, '|');
ban_day = strval(load[0]);
ban_month = strval(load[1]);
ban_year = strval(load[2]);
strmid(ban_ip, load[3], 0, strlen(load[3])-1, 15);
if (!(year >= ban_year && month >= ban_month && day >= ban_day && !strcmp(ban_ip, ip, true)))
{
format(str, sizeof str, "|- Vocк estб temporariamente banido do servidor atй: %d/%d/%d -|", ban_day, ban_month, ban_year);
SendClientMessage(playerid, ADMIN_RED, str);
return Kick(playerid);
}
}
}
return true;
}
PHP код: