Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Помогите с командой /ban по дням

Статус
В этой теме нельзя размещать новые ответы.

DonJefferi

Умник
HTML:
Вот код
Код:
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,1,"Вы забанены",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);
}
Вот команда
HTML:
if(strcmp(cmd, "/ban", true) == 0)
    {
	       new giveplayerid = strval(tmp);
	       new string[128];
	       new playeri;
	       tmp = strtok(cmdtext, idx);
	       if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
	       giveplayerid = strval(tmp);
	       tmp = strtok(cmdtext, idx);
	       if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
	       new type = strval(tmp);
	       tmp = strtok(cmdtext, idx);
	       if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Используйте: /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, "Используйте: /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);
	                     format(string, sizeof(string), "Администратор %s забанил игрока %s на %d дней. Причина: %s", PlayerNick, PlayerBan, chislo, result);
	                     SendClientMessageToAll(COLOR_LIGHTRED,string);
	                     Kick(giveplayerid);
	                     AddBan(giveplayerid, PlayerBan, PlayerNick, type, chislo, result);
	                     return true;
	                     }
	                     }
	                     return true;
	}
Проблема в том что когда я забанил игрока, он перезаходит и у него не пишет когда заблокировали и т.д, а делает регистрацию.Мне нужно чтоб когда я забанил игрока его банило и он перезаходил и высвечивалась табличка о бане
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу