Вопросы

Sergey_Turner
Освоившийся

Написал системку, но увы она не работает, кто что думает/знает?

 

    if(newstate == PLAYER_STATE_DRIVER && PLAYER_STATE_EXIT_VEHICLE)
    {
        if(DostavCC[playerid] >= 1)
        {
			if(ArendaDostavCar[playerid] == 1)
            {
                SCM(playerid,-1,"{FF0000}[Информация]{FFFFFF} Вы вышли из транспорта! У вас есть {FF0000}2 минуты{FFFFFF} чтобы вернуться обратно!");
                SCM(playerid,-1,"{FF0000}[Информация]{FFFFFF} В противном случае ваша работа будет {FF0000}завершена{FFFFFF)!");
                SetTimer("ExitVehicleCC", 10000, 0);
			}
		}
    }
forward ExitVehicleCC(playerid);
public ExitVehicleCC(playerid)
{
	SetVehicleToRespawn(IdCarPogruzka);
	SCM(playerid,-1,"{FF0000}[Информация] {FFFFFF}Вас небыло в транспорте более {FF0000}2-х минут{FFFFFF}. Работа {FF0000}окончена{FFFFFF}!");
	return 1;
}

 

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

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


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

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

  • 0
Sergey_Turner
Освоившийся

Благодарю всех за помощь.
Решение оказалось довольно простым. Уже был создан паблик OnPlayerExitVehicle, куда и заносились все системы связанные с выходом из т/с.

Тема может быть закрыта модерацией.

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


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

Проверяйте выводом сообщений в консоль. Например, до return 1 в таймере поставьте print("[debug] таймер сработал");
Таким способом можно вычислить какой участок кода не срабатывает.

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Sergey_Turner, я так полагаю проблема в том, что при возвращении в автомобиль в течение 2 минут вам все равно пишет, что не было в транспорте больше 2 минут?

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


Ссылка на сообщение
  • 0
Sergey_Turner
Освоившийся
  В 11/8/2021 в 14:03, Jawn сказал:

@Sergey_Turner, я так полагаю проблема в том, что при возвращении в автомобиль в течение 2 минут вам все равно пишет, что не было в транспорте больше 2 минут?

Читать далее...  

Нет, при выходе из транспорта ничего не происходит

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Sergey_Turner, обратите внимание на свое условие:

if(newstate == PLAYER_STATE_DRIVER && PLAYER_STATE_EXIT_VEHICLE)

Вы должны убедиться, что старое состояние (oldstate) игрока - PLAYER_STATE_DRIVER, а новое (newstate) - PLAYER_STATE_EXIT_VEHICLE. Соответственно, правильно должно быть так:

if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_EXIT_VEHICLE)

 

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


Ссылка на сообщение
  • 0
Sergey_Turner
Освоившийся
  В 11/8/2021 в 14:17, Jawn сказал:

@Sergey_Turner, обратите внимание на свое условие:

if(newstate == PLAYER_STATE_DRIVER && PLAYER_STATE_EXIT_VEHICLE)

Вы должны убедиться, что старое состояние (oldstate) игрока - PLAYER_STATE_DRIVER, а новое (newstate) - PLAYER_STATE_EXIT_VEHICLE. Соответственно, правильно должно быть так:

if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_EXIT_VEHICLE)

 

Читать далее...  

Проблема всё равно остаётся

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


Ссылка на сообщение
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

В проверке на положение игрока сделайте так: printf("oldstate: %s, newstate: %s, arendadostavcar: %d, dostavcc: %d", oldstate, newstate, ArendaDostavCar[playerid], DostavCC[playerid]);

Так же, не понял момента с респавном транспорта в таймере, а именно этот участок кода:

SetVehicleToRespawn(IdCarPogruzka);

Что такое IdCarPogruzka? Дополнительный параметр в таймер у Вас не передается.

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


Ссылка на сообщение
  • 0
Sergey_Turner
Освоившийся
  В 11/8/2021 в 14:58, glvde. сказал:

В проверке на положение игрока сделайте так: printf("oldstate: %s, newstate: %s, arendadostavcar: %d, dostavcc: %d", oldstate, newstate, ArendaDostavCar[playerid], DostavCC[playerid]);

Так же, не понял момента с респавном транспорта в таймере, а именно этот участок кода:

SetVehicleToRespawn(IdCarPogruzka);

Что такое IdCarPogruzka? Дополнительный параметр в таймер у Вас не передается.

Читать далее...  

IdCarPogruzka - переменная в которой хранится ID авто в котором игрок сидел до этого

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


Ссылка на сообщение
  • 0
Sergey_Turner
Освоившийся

Все проверки делал, в консоли пусто, как будто этот участок с самого начала не работает

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


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

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

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

    • watson
      От watson
      Привет всем!

      Выкладываю рабочий инструмент, который лично писал под задачи для крупных бонусных проектов. От меня недавно произошла доработка - теперь при записи маршрута сохраняются все сообщения, которые вы пишете в чат.
       
      Как это работает Запуск записи:
      Вводите /route с названием скрипта (или биндите на клавишу) — скрипт начинает фиксировать всё ваше передвижение (onfoot/incar/aim пакеты) и любые ваши сообщения в чат. Завершение:
      Ещё раз /route с названием скрипта или /stop — сохраняется маршрут вместе с чатом в файл формата .rt в папке MoonLoader/rakbotRoutes. Воспроизведение:
      Через команду !play <название> в консоли RakSamp LITE — бот воспроизводит маршрут один в один с вашими действиями, повторяет весь ввод, а так-же отправляет в чат все сохранённые сообщения (имитация через Enter). Поддержка цикла:
      Можно включить повтор маршрута (!loop), пока не надоест. Что важно в коде
      Запись всех синк-пакетов (движения, анимации, aim и т.д.):
      Пакеты по движению (onfoot/incar/aim) записываются подробно — никакой халтуры, каждое значение (позиция, кватернион, скорость, анимации, флаги и т.д.) фиксируется для полной копии.  

       
      Запись сообщений чата по индексам
      Каждое сообщение, которое отправляется в чат во время записи маршрута, сохраняется в отдельную таблицу с текущим индексом (counter). То есть при воспроизведении бот знает, на каком этапе какой текст нужно “цитировать” в чат.  

       
      Воспроизведение маршрута и чата
      На каждом этапе воспроизведения проверяется, было ли сообщение в этот момент — если да, оно “отправляется” как будто в оригинале, без задержек и рассинхрона. Пакеты проигрываются по индексу — как только доходит до конца, скрипт сам решает, останавливать ли выполнение или запускать по кругу (если включен loop).  

       
      Формат сохранения
      Файл маршрута содержит не только действия, но и отдельную секцию [chat], что позволяет воспроизвести всё как было, а не только беготню.  

       
       
      Если кому-то реально нужна автоматизация для бонусных серверов и не только как например фейковые игроки и вам важна последовательность действий и чата — этот инструмент сэкономит часы времени. Всё написано максимально просто для внедрения.

      P.S. Если есть определённые проблемы, вопросы или даже идеи для доработки — пишите.
      Desktop.zip
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

    • gooding
      От gooding


      Скачать файл PAR RP | Уникальный мод без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • bezd2rr
      От bezd2rr
      Как по итогу то забилдить свой лаунчер с гта са? Взять за основу дефолт гта са и засунуть либку билд 69 и все?