Помогите починить скрипт, пожалуйста

Xaкep Рабинович

Участник
Автор темы
129
22
Помогите пожалуйста, есть скрипт energybar.lua, он заурядными способами на Аризоне используя arizona events использует батончики если энергия падает ниже 70, но есть проблема. Кто разбирается можете исправить пожалуйста?

Две проблемы.
1: если при его запуске, и дальнейшем появлении энергии, уровень энергии уже ниже 70 - скрипт ничего не будет делать, он срабатывает только если энергия упала ниже 70 пока он работал, значит надо батончиками набирать ее выше вручную.
Нужно: чтобы если скрипт был включен, и увидел что энергии ниже 70, сколько бы ни было, то начал с периодичностью в 5 секунд кушать по батончику тем же принципом, что он уже умеет, пока энергия не станет выше 70, а дальше он итак умеет.
2: по неясным причинам, он автоматически съедает один батончик при выходе со скейта, почему - неизвестно, вроде как это прописано ему не было. Прошу исправить тоже.
 

Вложения

  • energybar.lua
    4.8 KB · Просмотры: 5

VQL Production

Новичок
3
1
Во-первых, у тебя стоит флаг used. После того как скрипт один раз съедает батончик, этот флаг становится true и больше не даёт использовать следующий батончик, пока энергия не станет 70 или выше. Поэтому он работает только один раз при падении энергии ниже 70.
Нужно убрать эту одноразовую блокировку и сделать нормальную проверку пока скрипт включён и текущая энергия ниже 70, он должен каждые 5 секунд использовать один батончик. Как только энергия стала 70 или выше цикл прекращается.
Во-вторых, значение энергии считывается через первое попавшееся число из всего пакета. Из-за этого при выходе со скейта скрипт, скорее всего, ловит какое-то другое число и думает, что энергия упала ниже 70.
Нужно вытаскивать число именно из события event.arizonahud.playerPower, сохранить его в отдельную переменную currentEnergy и уже по ней принимать решение.
Ещё желательно сохранять энергию даже тогда, когда автопоедание выключено. Тогда при включении скрипт сразу увидит, что энергия уже ниже 70, и начнёт использовать батончики, а не будет ждать следующего изменения энергии.
 
  • Нравится
Реакции: Xaкep Рабинович

Xaкep Рабинович

Участник
Автор темы
129
22
Во-первых, у тебя стоит флаг used. После того как скрипт один раз съедает батончик, этот флаг становится true и больше не даёт использовать следующий батончик, пока энергия не станет 70 или выше. Поэтому он работает только один раз при падении энергии ниже 70.
Нужно убрать эту одноразовую блокировку и сделать нормальную проверку пока скрипт включён и текущая энергия ниже 70, он должен каждые 5 секунд использовать один батончик. Как только энергия стала 70 или выше цикл прекращается.
Во-вторых, значение энергии считывается через первое попавшееся число из всего пакета. Из-за этого при выходе со скейта скрипт, скорее всего, ловит какое-то другое число и думает, что энергия упала ниже 70.
Нужно вытаскивать число именно из события event.arizonahud.playerPower, сохранить его в отдельную переменную currentEnergy и уже по ней принимать решение.
Ещё желательно сохранять энергию даже тогда, когда автопоедание выключено. Тогда при включении скрипт сразу увидит, что энергия уже ниже 70, и начнёт использовать батончики, а не будет ждать следующего изменения энергии.
Спасибо, ваши советы помогли довести всё до ума.