Pawno-SAMP
Главная
Вход
Регистрация
Вторник, 15.07.2025, 19:03Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Мануал] Создаем бан на время
UlkiorraJeezyДата: Суббота, 14.07.2012, 12:56 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 71
Репутация: 0
Статус: Offline
1. Вставляем в самое начало мода
Code
#inculde <MxINI>
#include <mxdate>
// Для диалогов id меняйте на ваши свободные
#define DIALOGUNBAN 1 // id дилога для высвечивания даты  

Инклуд вы можете скачать тут mxdate http://rghost.ru/19684781
2. Ищем Stock и после всех,вставляем
Code
stock GetBan(playerid)
{
     new PlayerNick[MAX_PLAYER_NAME],string[255];
     GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME);
     format(string, sizeof(string), "banlist/%s.ini", PlayerNick);
     if(fexist(string))
     {
            new OpenBan = ini_openFile(string);
            new bantime, unbantime, PlayerBan[MAX_PLAYER_NAME], reason[128];
            ini_getInteger(OpenBan, "BanTime", bantime);
            ini_getInteger(OpenBan, "UnBanTime", unbantime);
            ini_getString(OpenBan, "PlayerBan", PlayerBan);
            ini_getString(OpenBan, "Reason", reason);
            ini_closeFile(OpenBan);
            if(gettime() >= unbantime) return UnBan(PlayerNick);
            else
            {
                  format(string, sizeof(string), "\
                  Дата бана: %s\n\
                  Дата Разбана: %s\n\
                  Забанил: %s\n\
                  Причина бана: %s\n\
                  ",
                  date("%dd.%mm.%yyyy в %hh:%ii:%ss",bantime),
                  date("%dd.%mm.%yyyy в %hh:%ii:%ss",unbantime),
                  PlayerBan,reason);
                  ShowPlayerDialog(playerid,DIALOGUNBAN,0,"Вы забанены",string,"Выйти","");
                  return Kick(playerid);
            }   
     }
     else return true;
}

stock UnBan(playerid[])
{
     new string[64];
     format(string, sizeof(string), "banlist/%s.ini", playerid);
     return fremove(string);
}

stock AddBan(player, playerid[], giveplayerid[], type = 1, chislo = 0, reason[])
{
     new totalban = 0;
     switch(type)
     {
          case 1: totalban = 60*chislo; // минуты
          case 2: totalban = 3600*chislo; // часы
          case 3: totalban = 86400*chislo; // сутки
          default: totalban = chislo; // секунды
     }
     new string[64];
     format(string, sizeof(string), "banlist/%s.ini", playerid);
     new OpenBan = ini_createFile(string);  
     if(OpenBan < 0) ini_openFile(string);  
     ini_setInteger(OpenBan, "BanTime", gettime());
     ini_setInteger(OpenBan, "UnBanTime", gettime()+totalban);
     ini_setString(OpenBan, "PlayerBan", giveplayerid);
     ini_setString(OpenBan, "Reason", reason);
     ini_closeFile(OpenBan); // Закрываем файл.   
     ShowPlayerDialog(player,DIALOGUNBAN,0,"Вы забанены","{FF0000}Вы забанены","Выйти","");  
     return Kick(player);
}  

3. В самое начало паблика OnPlayerConnect
Code
GetBan(playerid);  

4. Далее создадим команду бана и разбана
Code
if(strcmp(cmd, "/ban", true) == 0)
{
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
        giveplayerid = strval(tmp);
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
        new type = strval(tmp);
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
        new chislo = strval(tmp);
        if(PlayerInfo[playerid][pAdmin] >= 4)
        {
               if(giveplayerid != INVALID_PLAYER_ID)
               {
                      new length = strlen(cmdtext);
                      while ((idx < length) && (cmdtext[idx] <= ' ')) idx++;
                      new offset = idx;
                      new result[64];
                      while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                      {
                             result[idx - offset] = cmdtext[idx];
                             idx++;
                      }
                      result[idx - offset] = EOS;
                      if(!strlen(result)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
                      new PlayerNick[MAX_PLAYER_NAME], PlayerBan[MAX_PLAYER_NAME];
                      GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME);
                      GetPlayerName(giveplayerid, PlayerBan, MAX_PLAYER_NAME);
                      AddBan(giveplayerid, PlayerBan, PlayerNick, type, chislo, result);
                      return true;
               }//not connected
        }
        return true;
}  

5. Команда разбана,вставляем под команду бана
Code
if(strcmp(cmd,"/unban",true)==0)
{
        if(PlayerInfo[playerid][pAdmin] >= 8)
        {
               tmp = strtok(cmdtext,idx);
               if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GRAD1,"/unban [players nick]");
               UnBan(tmp);
        }
        return true;
}
 
GTAДата: Пятница, 18.04.2014, 07:27 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Здеалй что бы писало в общем чате "Администратор: Vysilii_Pupkin забанил Vyasa_Pupkin. Причина: Читы pray
"
 
BreezyДата: Вторник, 03.06.2014, 18:14 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
new str[256]; //globalka
Перед строчкой AddBan добавляем следующие строчки:
format(str, 128, "Администратор %s[%d] заблокировал аккаунт %s[%d]. Причина: %s", PlayerNick, playerid, PlayerBan, playerid, result);
SendMessageToAll(COLOR_LIGHTRED, str);
 
  • Страница 1 из 1
  • 1
Поиск:


Пожертвования на развитие сайта. Yandex: 410011459268530 © 2025
Создать бесплатный сайт с uCoz