• 0
Cunamiwe

[закрыто] Система деморгана

Вопросы

Выдается джаил,но время самого джаила почему то не идет и просто стоит на месте

Спойлер

CMD:jail(playerid, params[]) {
    if(PI[playerid][pAdmin] < 1 || dostup[playerid] == 0) return true;
    new time,text[31],string[144],giveplayerid;
    if(sscanf(params, "uds[30]",giveplayerid,time,text)) return SendEsp(playerid, "/jail [playerid] [минуты] [причина]");
    if(!IsPlayerConnected(giveplayerid)) return ErrorMessage(playerid,not_id);
    if(PI[giveplayerid][pJailTime]) return ErrorMessage(playerid, "Игрок в тюрьме");
    if(time > 300 || time < 5) return ErrorMessage(playerid, "От 5 до 300 минут");
    if(strlen(text) > 30) return ErrorMessage(playerid,"Причина должна быть меньше 30 символов");
    if(IsAIP(text))return 1;
    format(string, sizeof(string), "Вы посадили %s в тюрьму",player_name[giveplayerid]);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);

    format(string, sizeof(string), "Администратор %s посадил в ДеМорган %s на %d минут. Причина: %s",player_name[playerid],player_name[giveplayerid],time,text);
    SendClientMessageToAll(COLOR_LIGHTRED, string);

    A_SetPlayerSkin(playerid, 42);
    DelGun(giveplayerid);
    PI[giveplayerid][pJail] = 5;
    PI[giveplayerid][pJailTime] = time*60;

    UpdatePlayerData(giveplayerid,"pJailTime", PI[giveplayerid][pJailTime]);
    UpdatePlayerData(giveplayerid,"pJail", 5);

    GameTextForPlayer(giveplayerid, "~w~YOU IN ~R~JAIL", 5000, 4);
    format(string, sizeof(string), "Вы были посажены в тюрьму администратором %s на %i минут(ы). Причина: %s",player_name[playerid],time,text);
    SendOk(giveplayerid, string);
    SendOk(giveplayerid, "Время до выхода на свободу: "W"/time");
    PlayerSpawn(giveplayerid);
    if(giveplayerid != playerid) gAdmin[playerid][ADMIN_JAIL] ++;
    WriteLog(LOG_JAIL,player_name[playerid],player_name[giveplayerid],text);
    return true;

 

 

Отредактировано пользователем odosenok

Заметка от Cawfee , создано

3.2. Код больше 10 строк брать еще и под спойлер. Как это сделать рассказано в разделе "FAQ"

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение

3 ответа на этот вопрос

  • 0

Зачем ты скидываешь только код команды, что он даст? Таймер сюда

Поделиться сообщением


Ссылка на сообщение
  • 0
В 27.05.2020 в 02:19, SCRIPTMAN сказал:

Зачем ты скидываешь только код команды, что он даст? Таймер сюда

 

Спойлер

    if(PI[pJailTime] > 0) {
                PI[pJailTime] -= vip_status[PI[pVips]][vip_arrest];
                if(PI[pJailTime] <= 0) {
                    SetPlayerPosAC(i,camExit[PI[pJail]-1][0],camExit[PI[pJail]-1][1],camExit[PI[pJail]-1][2],0,0);
                    SetPlayerFacingAngle(i,camExit[PI[pJail]-1][3]);
                    SendClientMessage(i, CGOLD, "Âû çàïëàòèëè ñâîé äîëã îáùåñòâó, òåïåðü Âû ñâîáîäíû");
                    PI[pJailTime] = 0;
                    PI[pJail] = 0;
                    UpdatePlayerData(i,"pJailTime",0);
                    UpdatePlayerData(i,"pJail",0);
                    SetCameraBehindPlayer(i);
                    GameTextForPlayer(i,"~g~Freedom", 5000, 1);
                }

 

 

Отредактировано пользователем odosenok

Поделиться сообщением


Ссылка на сообщение
  • 0

@Cunamiwe, это единственный участок кода, который в таймере связан с арестом? И чему равно значение переменной?

vip_status[PI[pVips]][vip_arrest]

Чтобы это узнать, Вы можете после строки:

PI[pJailTime] -= vip_status[PI[pVips]][vip_arrest];

Добавить строку:

printf("vip_status[PI[pVips]][vip_arrest]: %d", vip_status[PI[pVips]][vip_arrest]);

И после повторной компиляции, перезапуска сервера, пребывания некоторого времени в тюрьме искать в консоли эту строку.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Артём Профиков
      От Артём Профиков
      У меня есть система подсказок вот так она выглядет
      ShowNotification(playerid, тип, "текст", время, "команда через /", "текст кнопки");
      Только есть вопрос как сделать так чтоб она активировалась в определенном радиусе? Заранее спасибо