• Страница 1 из 1
  • 1
Форум » PAWNO » Уроки Pawno » [Мануал] Делаем систему бана с автоматическим разбаном ((Как на Samp-Rp))
[Мануал] Делаем систему бана с автоматическим разбаном
Дмитрий Дата: Суббота, 06.04.2013, 11:12 | Сообщение # 1 | Сообщить о нерабочей теме


Аватар для Дмитрий

Делаем систему бана с автоматическим разбаном (Как на Samp-Rp).

[admin]Автор: Maks5[/admin]
[moder]P.S. Работает точно уже проверина и не раз...Теперь аккаунты не слетают.[/moder]

[spoiler="Скрин"][/spoiler]

Цитата
К enum pInfo добавляем:

Код
pBanTime,  
pBanData  


Цитата
В public OnPlayerRegister(playerid, password[]) добавляем:

Код
ini_setInteger(File, "BanTime",PlayerInfo[playerid][pBanTime]);  
ini_setInteger(File, "BanData",PlayerInfo[playerid][pBanData]);


Цитата
В public public OnPlayerLogin(playerid, password[]) добавляем:

Код
ini_getInteger(File, "BanTime",PlayerInfo[playerid][pBanTime]);  
ini_getInteger(File, "BanData",PlayerInfo[playerid][pBanData]);  


Цитата
В public OnPlayerUpdateRL(playerid) добавляем:

Код
ini_setInteger(File, "BanTime",PlayerInfo[playerid][pBanTime]);  
ini_setInteger(File, "BanData",PlayerInfo[playerid][pBanData]);  


Цитата
Теперь в команды /ban и /warn добавляем ниже где

Код
PlayerInfo[giveplayerid][pLocked] = 1;  


Цитата
пишем:

Код
PlayerInfo[giveplayerid][pBanTime] = curdate+days;  
PlayerInfo[giveplayerid][pBanData] = curdate;  


Цитата
А выше где new в /ban и /warn пишем:

Код
new curdate = getdate();  
new days = 7;  


Цитата
Поясняю: Где

Код
new days = 7;  


Цитата
видно что есть число 7 да? Это значит что автоматически игрока разбанит через 7 дней [Неделя].
Ищем это:


Код
if(PlayerInfo[playerid][pLocked] == 1)  
{  
     SendClientMessage(playerid, COLOR_LIGHTRED, "К сожалению, этот аккаунт заблокирован!");  
     SendClientMessage(playerid, COLOR_WHITE, "Введите /q, чтобы выйти!");  
     Kick(playerid);  
}  


Цитата
И заменяем на это:

Код
new curdate = getdate();  
if(PlayerInfo[playerid][pBanTime] > 0 && PlayerInfo[playerid][pBanTime] != curdate && PlayerInfo[playerid][pLocked] == 1)  
{  
     new ostalos=PlayerInfo[playerid][pBanTime]-curdate;  
     format(string, sizeof(string), "{d95841}Этот аккаунт заблокирован\nРазбан через %d дней\n\nВведите ''/q'' чтобы выйти",ostalos);  
     ShowPlayerDialog(playerid,78,0,"{c22000}Внимание",string,"Закрыть","");  
     Kick(playerid);  
     return 1;  
}  
if(PlayerInfo[playerid][pBanTime] > 0 && PlayerInfo[playerid][pBanTime] == curdate && PlayerInfo[playerid][pLocked] == 1)  
{  
            PlayerInfo[playerid][pLocked] = 0;  
            PlayerInfo[playerid][pBanTime] = 0;  
            PlayerInfo[playerid][pBanData] = 0;  
}  


Цитата
Ищем команду /unban и заменяем на мою:

Код
  if(strcmp(cmd, "/unban", true) == 0)  
     {  
         if(PlayerInfo[playerid][pAdmin] >= 4)  
         {  
             tmp = strtok(cmdtext, idx);  
             if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /unban [name]");  
             format(string, sizeof(string), "%s.ini", tmp);  
             if(fexist(string))  
             {  
                 format(string, sizeof(string), "%s.ini", tmp);  
                 new File = ini_openFile(string);  
                 ini_setInteger(File, "Ban",0);  
                 ini_setInteger(File, "BanTime",0);  
                 ini_setInteger(File, "BanData",0);  
                 ini_closeFile(File);  
                 GetPlayerName(playerid, sendername, sizeof(sendername));  
                 format(string, sizeof(string), "Администратор %s разбанил %s",sendername,tmp);  
                 ABroadCast(COLOR_LIGHTRED, string, 1);  
             }  
             else  
             {  
                 SendClientMessage(playerid, COLOR_GREY, "Аккаунт не найден");  
             }  
         }  
         return true;  
     }  
Прикрепления: 7218423.png (115.7 Kb)


From Russia With Love!
Форум » PAWNO » Уроки Pawno » [Мануал] Делаем систему бана с автоматическим разбаном ((Как на Samp-Rp))
  • Страница 1 из 1
  • 1
Поиск: