Добавлен DopaMine
У меня есть луп, который ожидает условия. В функции для этого лупа необходимо загружать данные из основной функции. Как я понял,
local unit u = GetTrigerUnit()
local integer h = GetHandleId(u)
Не сработает...А как ещё - не знаю, это же не таймер. Подскажите, что делать.
function WaitForAttack takes nothing returns boolean
local unit u = GetTriggerUnit()
local integer h = GetHandleId(u)
local real i = LoadReal(udg_hash,h,StringHash("stop"))
if (i < 1) then
return LoadBoolean(udg_hash,h,StringHash("attackedUnit")) == true
call SaveReal(udg_hash,h,StringHash("stop"),i + 0.10)
else
call SaveBoolean(udg_hash,h,StringHash("attackedUnit"), false)
call DisplayTimedTextToForce( GetPlayersAll(), 30, "фолс")
set u = null
return false
endif
endfunction
И вот тот луп:
loop
exitwhen ( WaitForAttack() )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 0.1))
endloop
Принятый ответ
DopaMine, создаёшь таймер
сохраняешь на этот таймер всю необходимую информацию (юнита и прочее)
запускаешь таймер
всё
примеров того как это сделать в статьях куча
открываем и читаем
сохраняешь на этот таймер всю необходимую информацию (юнита и прочее)
запускаешь таймер
всё
примеров того как это сделать в статьях куча
открываем и читаем
можешь начать с этой
вообще есть куча статей и готовых систем
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
см. в теме 7 сообщение тебе уж объясняли в этой теме
см в теме 16 сообщение и скачай текстовый файл
ты же сам хранишь этот параметр "True/False" в хэше. И изменяешь в зависимости от срабатывания события вроде юза абилити, таймера истек GetExpiredTimer(). Зачем тебе создавать лишний таймер, и периодически проверять => лишняя работа. Можно напрямую узнать в хэше. Если значение изменится, ты сам узнаешь через сработки события юза абилити или завершения таймера
Отредактирован DopaMine
Скилл первый - ударить. Работает так: в области перед кастером выбирается отряд, в нём выбирается(pick) ближайший юнит к кастеру, у кастера проигрывается анимация удара со скоростью, зависящей от ловкости кастера, и через время анимации цели наносится урон, зависящий от силы кастера.
Скилл второй - уворот от первого скилла.(из наруто - каварими но дзюцу. Уже описывал подобное в другом вопросе, но там я делал уворот от автоатак, а щас делаю от "Ударить").
Он работает так: кастер жмёт кнопку(каварими но дзюцу)(направленная на точку) - и если в течение секунды после нажатия кастер становится (pick)-юнитом( из предыдущей способности), то кастер мгновенно(в момент становления PICK-юнитом из первой абилки) прячется(hide), и через 1.5 секунды появляется в точке - цель заклинания. Если же кастер просто нажал абилку и так и не стал выбранным юнитом предыдущей абилки, то просто пойдёт кулдаун. Это для того, чтоб надо было микрить и доджить, успевать нажать за время анимации врага. А если тот прокачен и у него анимация 0.2 секунды, то типо не поможет навык микроконтроля, так как враг КРУТОй НИНДЯ)))))))))))))))))))0
Второе я сделал. Правда, корявенько, надо переписывать, чтоб устранить все утечки(предварительно найдя, как именно это делается, а то мне писали здесь, что я обнуляю переменную после возврата из функции).
А вот с первой абилкой беда - пока у меня урон наносится сразу после того, как определилась цель(pick) и со скоростью анимации я не работал и не знаю даже, можно ли влиять на скорость проигрывания анимации. Если узнаю, что нельзя - я удалю варкрафт.)
Steal nerves:
DopaMine:
DopaMine:
Отредактирован PT153
сохраняешь на этот таймер всю необходимую информацию (юнита и прочее)
запускаешь таймер
всё
примеров того как это сделать в статьях куча
открываем и читаем
PT153: