Не работает триггерная способность! Что делать?

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

MrFox, попробуй это

ульт я не понял что должен делать, поэтому его почти не трогал, но он вроде и так работает
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
2 года назад
0
Похожие вопросы:

ответ
Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Если хотите плавные анимации, то пишите на Jass.
ответ
Вместо
function InitTrig_CreepSpell takes nothing returns nothing
    set gg_trg_CreepSpell = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_CreepSpell, Player(1), EVENT_PLAYER_UNIT_SPELL_EFFECT, function CreepSpellFilter) 
    call TriggerAddAction(gg_trg_CreepSpell, function CreepSpellActivation)
endfunction
сделай так:
function InitTrig_CreepSpell takes nothing returns nothing
    set gg_trg_CreepSpell = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_CreepSpell, Player(1), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) //function CreepSpellFilter
    call TriggerAddCondition(gg_trg_CreepSpell, Condition(function CreepSpellFilter))
    call TriggerAddAction(gg_trg_CreepSpell, function CreepSpellActivation)
endfunction
и вот здесь:
if IsUnitEnemy(GetFilterUnit(), Player(10)) then
        set Dummy = CreateUnit(Player(1), 'e004', CasterX, CasterY, bj_RADTODEG*Atan2(TargetY - CasterY, TargetX - CasterX))
		call IssuePointOrder(Dummy, "attackground", TargetX, TargetY)
        call UnitApplyTimedLife(Dummy, 'BTLF', 3)
        set Dummy = null
    endif
поменяй местами IssuePointOrder и UnitApplyTimedLife, чтобы было вот так:
    if IsUnitEnemy(GetFilterUnit(), Player(10)) then
        set Dummy = CreateUnit(Player(1), 'e004', CasterX, CasterY, bj_RADTODEG*Atan2(TargetY - CasterY, TargetX - CasterX))
        call UnitApplyTimedLife(Dummy, 'BTLF', 3)
        call IssuePointOrder(Dummy, "attackground", TargetX, TargetY)
        set Dummy = null
    endif
ответ
Вот условие на проверку баффа. Но тут может быть проблема, если у тебя есть станящие способности, которые используют не этот бафф.
Но мой способ, предложенный выше, также должен работать, причём независимо от того, какой станящий бафф наложен.
ответ
Здравствуй, посмотрел карту, на счет вейтов кстати не думаю хорошая идея ими пользоваться, но вызывать какую именно "щупальце" в принципе можно сделать так(проверкой на уровень способности) и все это будет одним триггером
тоже самое можно и с первыми 3 сократить в 1, простой проверкой на уровень способности
ответ
Mr.Hollaris:
В общем, проблема была, судя по всему, с драйверами видеокарты. После установки обновления и перезагрузки, всё стало работать как надо.

0
27
2 года назад
0
закинь нормальный русификатор
Загруженные файлы
0
1
2 года назад
0
Вот я закинул
Загруженные файлы
0
27
2 года назад
Отредактирован rsfghd
0
MrFox, странно, не понимаю что может мешать работе кроме вейта, но он вроде как только при попытке взять координаты точки каста может нулевые значения выдать

сделай пример на отдельной карте и скинь её сюда, я попробую решить и скинуть обратно
0
26
2 года назад
0
Значит обрисовываю в чём проблема - у тебя теряется ссылка на юнита, либо её даже не создаётся. Как это проверяется? - в момент срабатывания триггера выведи на экран сообщение с именем нужного юнита (у тебя это "юнит-цель применяемой способности"). Если имени/названия юнита нет, то значит либо отсутствует такой юнит, либо ссылка потерялась (да, такое бывает с рядом ссылок после вэйтов).
  1. Замени событие триггера на "Приводит способность в действие", это даст тебе рабочую ссылку "юнит-цель каста".
  2. Замени повсеместное обращение к "цели каста" на переменную, в которую ты изначально запишешь эту самую цель каста.
  3. Убери вэйты (действие из категории "ждать"), они здесь не будут нужны вообще.
  4. Если у тебя JNGP, то ты можешь переделать создание спецэффекта в следующий формат - идёт действие "Удалить эффект" Внутри которого ты можешь указать "создать нужный эффект на юните...". Если у тебя нет JNGP, то советую на него перейти и пользоваться им как и обычным старым редактором пока не освоишься в премудростях редакторских )).

Ещё забыл один пункт, ты можешь не мроверять уровень способности, а уменьшать ману юнита на числа помноженное на этот самый уровень. Т.е. типа так:
Установить ману юнита как ( его мана - ( уровень * 40 + 20 ) )
На 1м уровне это будет 1*40+20 = 40+20 = 60
На 2м уровне это будет 2*40+20 = 80+20 = 100
На 3м уровне это будет 3*40+20 = 120+20 = 140
0
1
2 года назад
0
rsfghd, Вот там 3 триггерных способностей и все не работают
Загруженные файлы
0
27
2 года назад
0
Extremator,
  1. для некоторых эффектов приходится делать вейты, я очень расстроился когда узнал об этом (была проблема с эффектом хила)
  1. не нужно менять событие, ссылка рабочая даже после вейтов
  1. кастом гуи не есть хорошо, но можно, да
  1. после вейта всё работает

MrFox, проблема в том, что ты нигде не указал переменную Curator, не присвоил ей юнита, оно и не работает, ты хочешь узнать уровень абилки у не существующего юнита

странно, но если после каста сразу же отдать любой другой приказ то после вейта ничего не достанешь уже

ладно, неважно, я тут вижу так же абуз с автоатакой, так что попробую немного переделать это дело
0
27
2 года назад
0
MrFox, попробуй это

ульт я не понял что должен делать, поэтому его почти не трогал, но он вроде и так работает
Загруженные файлы
Принятый ответ
2
26
2 года назад
2
Ссылка рабочая после вэйтов, только если на карте в этот промежуток времени больше никто ничего не юзает. Иначе - она обнуляется.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.