Вопросы

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
SCRIPTMAN
Великий Гуру

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

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


Ссылка на сообщение
  • 0
Cunamiwe
Новичок
В 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
Cawfee
Великий Гуру

@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 пользователей онлайн

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

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

    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба