t1 = CreateTimer()
cot4 = function buran
if GetUnitAbilityLevel(u1,'A01E') > 0 and attack == normal and damage == d[4] then
call UnitAddAbility(u,'A01G')
call UnitAddAbility(u,'A01F')
call TimerStart(t1,1,true,cot4)
call SaveUnitHandle(Hash,GetHandleId(t1),1,u)
set dummy[3] = CreateUnit(pu1,'u00E',5082.9,8169.9,0)
call UnitApplyTimedLife(dummy[3],'BTLF',3.00)
call IssueTargetOrder(dummy[3],"curse",u)
endif
добавляются способности но вывожу дебагом не стартует таймер что делать

Принятый ответ

Extremator:
Ельнур:
заработало с даммиком спасибо теперь не буду юзать +1 глобалы в таймерах
Ну просто если у тебя будет использоваться эта же переменная в другом потоке, то будет идти её же перезапись (пишешь в одно место данные из разных источников).
Если хочешь юзать число, то либо бей массив, либо записывай это число в свой хэш (так же, как записываешь юнита).
да я понял что там локальная таймер создается отдельно на каждого вот и глобальная путается
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
4 года назад
0
Похожие вопросы:

ответ
8gabriel8:
ох, прошу прощения, не так понял вопрос
секунду
а для выбора конкретного таймера юзаем переменную таймера
странно, что ты этого не нашел.
ответ
XGM Bot:
Похожие вопросы:

ответ
Используй способность "ракеты" с изменённой моделью дальной атаки на огненные стрелы и запихни её в книгу заклинаний.
И дай эту книгу даммику.
ответ
Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Если хотите плавные анимации, то пишите на Jass.
ответ
Да, будут баги. Чтобы их не было, сделай переменную name caster с массивом.
ответ
Если перемещать юнита периодично по координатам, а не точкам, ему нельзя будет отдать приказ перемещаться. При этом можно проигрывать нужную анимацию по индексу. Так устроенны системы перемещения на стрелках, но это можно применить и в данном случае.
Конечно, понадобятся дополнительные проверки, вроде не оглушён ли юнит и т.д.
ответ
Загугли "Jass New Gen Pack Rebuild", вылезет ссылка на сайт xgm (то есть на этот сайт) с постом о нужном тебе редакторе.

ответ
~8gabriel8:
Файл - Параметры - Проверка карты - "Фиксированный случайный разброс"
ответ
мультиборд в карте на ГУИ? в гуи функциях внутри часто необнуляются локальные переменные объектов
если код то мб не используется MultiboardReleaseItem и итемы остаются висеть
ответ
если юнита бьют, он может нажать кнопку и заменит себя на бревно, исчезнет(hide), появится бревно, эффекты и звук, и через 1.5 секунды появится(unhide) в точке, которая указана, как цель заклинания. А если не бьют, то ничего не произоидёт. Так же эффект работает всего 1 секунду(то есть применять типо надо прям перед ударом)
Если это то, о чём идёт речь, то я бы делал так:
  1. Создаётся триггер
    событие — юнит атакован (то есть был отдан приказ атаки с этим юнитом в качестве цели и он находится в пределах дальности атаки атакующего)
    условие — атакованный юнит имеет эту абилку
    действия — сохранить на юнита-цель флаг "сейчас можно применить Каварими но Дзюцу" (как я понимаю, это ты и делаешь в коде в посте), затем создать таймер и запустить его на функцию, в которой этот флаг поменяется на обратное значение/удалится (больше ничего).
  2. Создаётся ещё один триггер
    событие — юнит применяет способность Каварими но Дзюцу
    условие — для применяющего юнита сохранён флаг "сейчас можно применить Каварими но Дзюцу"
    действия — скрыть кастера, создать таймер, сохранить на этот таймер кастера и целевые координаты применённой способности, затем запустить его с задержкой 1.5 секунды на функцию, в которой из таймера будут выгружены координаты с юнитом, юнит будет в них перемещён (кстати, перемещать ничто не мешает сразу, разницы в игре не будет, а данных меньше таскать/хранить) и раскрыть кастера.

0
7
4 года назад
Отредактирован Ельнур
0
таймер не так работает чтоли я сделал проверку если глобальная интегер = глобальная интегер + 1 равно 13 то уничтожить таймер, я так понял если поставить галку true он же каждые секунд по 1 должен добавляться? когда убрал глобальная интегер = глобальная интегер +1 то отображает

даже поставил false все равно не отображает если не убрать глобальный интегер
0
27
4 года назад
0
Ельнур, где сама функция buran? В ней весь смысл
0
7
4 года назад
Отредактирован Феникс
0
Феникс:
Ельнур, где сама функция buran? В ней весь смысл
выше
function buran takes nothing returns nothing
local timer t1 = GetExpiredTimer()
local unit u = LoadUnitHandle(Hash,GetHandleId(t1),1)
local group g = CreateGroup()
local boolexpr filterfaua = Condition(function removebuff)
local code cot = function filterremovebuff
set Buransec = Buransec + 1
if GetUnitAbilityLevel(u,'B006') > 0 then
call SetUnitAbilityLevel(u,'A01G',GetUnitAbilityLevel(u,'A01G')+1)
call SetUnitAbilityLevel(u,'A01F',GetUnitAbilityLevel(u,'A01F')+1)
endif
call DebugMsg("true")
if Buransec == 13 then
call GroupEnumUnitsInRange(g,-139.0,-1811.5,99999999999,filterfaua)
call ForGroup(g,cot)
endif
if GetUnitAbilityLevel(u,'A01G') > 0 then
else
set Buransec = 0
call FlushChildHashtable(Hash,GetHandleId(t1))
call DestroyTimer(t1)
endif
set cot = null
call DestroyBoolExpr(filterfaua)
set filterfaua = null
set u = null
call GroupClear(g)
call DestroyGroup(g)
set g = null
set t1 = null
endfunction
когда я убираю Buransec то все работает

Феникс:
Ельнур, где сама функция buran? В ней весь смысл
даммику дать таймер 13 сек и через него отлавливать?)

вот почему говорят даммики и таймера)

заработало с даммиком спасибо тепер ьне буду юзать +1 глобалы в таймерах
0
26
4 года назад
0
Ельнур:
заработало с даммиком спасибо теперь не буду юзать +1 глобалы в таймерах
Ну просто если у тебя будет использоваться эта же переменная в другом потоке, то будет идти её же перезапись (пишешь в одно место данные из разных источников).
Если хочешь юзать число, то либо бей массив, либо записывай это число в свой хэш (так же, как записываешь юнита).
0
7
4 года назад
0
Extremator:
Ельнур:
заработало с даммиком спасибо теперь не буду юзать +1 глобалы в таймерах
Ну просто если у тебя будет использоваться эта же переменная в другом потоке, то будет идти её же перезапись (пишешь в одно место данные из разных источников).
Если хочешь юзать число, то либо бей массив, либо записывай это число в свой хэш (так же, как записываешь юнита).
да я понял что там локальная таймер создается отдельно на каждого вот и глобальная путается
Принятый ответ
0
26
4 года назад
0
Ельнур:
да я понял что там локальная таймер создается отдельно на каждого вот и глобальная путается
А причём тут тот таймер?
Ты его создаёшь и удаляешь своевременно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.