Сообщение от
DeimoS
PHP код:
AddInTimeBanList(giveplayer[], ip[16], unbandate){
new File:file=fopen("TimeBanList.txt", io_append);
new BanStr[256];
format(BanStr, MAX_STRING, "%s:%s:%d\n",giveplayer, ip, unbandate);
fwrite(file, BanStr);
fclose(file);
}
Ох... и всего лишь. Спасибо Вам большое. У меня к вам еще одна просьба будет, DeimoS.
Вот при OnPlayerConnect выполняется след. функция. Если IP адрес есть в файле и unbantime > 0, то у игрока стоит бан. А как мне ко всему этому приписать кроме проверки на IP еще проверку на ник, Допустим если IP отсутствует, то проверяем ник и если ник есть в файле то кикаем игрока? Буду очень благодарен.
PHP код:
new PlayerIP[16];
GetPlayerIp(playerid, PlayerIP, sizeof(PlayerIP));
new UnBanTime = CheckTimeBanList( PlayerIP );
if(UnBanTime-GetTimeStamp() > 0){
new ubDay, ubHour, ubMin, ubSec, ubMSec;
timeconvert((UnBanTime-GetTimeStamp())*1000,ubMin,ubSec,ubMSec);
ubHour = ubMin/60;
ubMin = ubMin%60;
ubDay = ubHour/24;
ubHour = ubHour%24;
new UnBanTimeStr[256];
format(UnBanTimeStr, sizeof(UnBanTimeStr), ":::WARNING: Вы забанены, осталось %d дней %d часов %d минут и %d секунд", ubDay, ubHour, ubMin, ubSec);
SendClientMessage(playerid, admin2, UnBanTimeStr);
pStats[playerid][Nevid] = 1;
return Kick(playerid);
}
Вот CheckTimeBanList
PHP код:
CheckTimeBanList(ip[16]){
if(!fexist("TimeBanList.txt")) return 0;
new File:file = fopen("TimeBanList.txt", io_read);
new TempStr[256];
new colon;
new currentIP[16];
new unbantime;
while( fread(file, TempStr, sizeof(TempStr)) ){
for(new i=0;i<strlen(TempStr);i++){
if(TempStr[i] == ':'){
colon = i;
break;
}
}
strmid(currentIP, TempStr, 0, colon, sizeof(currentIP));
strmid(TempStr, TempStr, colon+1, strlen(TempStr), sizeof(TempStr));
unbantime = strval(TempStr);
if( strcmp(ip, currentIP, true) == 0 && strlen(ip) == strlen(currentIP) ){
fclose(file);
if(unbantime-GetTimeStamp() <= 0) DeleteFromTimeBanList(currentIP);
return unbantime;
}
}
fclose(file);
return 0;
}