делал мапу друга создал спелл пассивка когда у героя мана на максимуме то он бьет критами с малым увеличением создал триггер для этого но триггер не хочет работать
function True_Strike_Action takes nothing returns nothing
    local unit Attacker = GetAttacker()
    
    local real Max = GetUnitState(Attacker,UNIT_STATE_MAX_MANA)
    local real Cur = GetUnitState(Attacker,UNIT_STATE_MANA)
    call BJDebugMsg(R2S(Cur))
    call BJDebugMsg(R2S(Max))
    
    local integer Level = GetUnitAbilityLevel(Attacker, 'A00R')
    local integer PasLevel = GetUnitAbilityLevel(Attacker, 'A00T')
    
    call BJDebugMsg("Триггер работает")
    if Max > Cur  then
    
        call SetUnitAbilityLevel(Attacker,'A00T',1)
        call BJDebugMsg("Отключение работает")
        
    elseif Level > PasLevel then
    
            call SetUnitAbilityLevel(Attacker,'A00T',Level + 1)
            call BJDebugMsg("Включение работает")
    endif
    
    set Attacker = null
endfunction

function True_Strike_Condition takes nothing returns boolean
    return GetUnitAbilityLevel(GetAttacker(), 'A00R') > 0
endfunction

function InitTrig_True_Strike takes nothing returns nothing
    set gg_trg_True_Strike = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_True_Strike, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddCondition( gg_trg_True_Strike, Condition( function True_Strike_Condition ) )
    call TriggerAddAction( gg_trg_True_Strike, function True_Strike_Action )
endfunction
вроде все верно но if не хочет отвечать что может быть причиной? пробовал по разному без переменных, с переменными, без elseif но все без толку

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

Гуванч:
Хорошо, что ты поблему решил, но я не понимаю, почему у тебя не выполняется условие с маной. Вот, смотри. Пример триггера без уровня способности (чтоб нагляднее было). Все работает.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 года назад
0
Похожие вопросы:

ответ
Claw, SomeFire, Timoxxx, а теперь фокус
у него были гет локал плеер
я их убрал
но он карту после этого не тестил
говорит потестит после нового года
ответ
Закрываю вопрос
Нашел нормальный блокнот и через него отредактил
ответ
краш пропал сам собой, после смены варика. КАЧАЙТЕ ДЕФОЛТНЫЙ ВАРИК БЕЗ миксов и всякой дряни!

0
26
3 года назад
0
Сделай чуть проще для понимания условие: если текущая Мана = макс. Мана, то включай, иначе выключай.
0
14
3 года назад
0
Lord_Teo:
Сделай чуть проще для понимания условие: если текущая Мана = макс. Мана, то включай, иначе выключай.
пробовал не помогает
0
8
3 года назад
0
Без карты я конечно не смогу протестировать, но мана - флоат, поэтому возможно стоит считать условие выполненным, например, если у юнита кол-во маны меньше чем максимум минус 1, возможно проблема в этом.
0
11
3 года назад
0
Гуванч, У тебя написано если максимальная мана больше нынешний маны, это нормально?
0
26
3 года назад
Отредактирован Lord_Teo
0
В первый раз у тебя ур пассивки становится равным 1. Затем ты сравниваешь 1 ур сила с 1 ур пассивки и условие не выполняется. И больше не выполнится. Пока уровень скила не повысится.
0
14
3 года назад
Отредактирован Гуванч
0
goodlyhero:
Без карты я конечно не смогу протестировать, но мана - флоат, поэтому возможно стоит считать условие выполненным, например, если у юнита кол-во маны меньше чем максимум минус 1, возможно проблема в этом.
да, так сработал, странно....

ArhiMEN:
В первый раз у тебя ур пассивки становится равным 1. Затем ты сравниваешь 1 ур сила с 1 ур пассивки и условие не выполняется. И больше не выполнится. Пока уровень скила не повысится.
да по всячески пробовал не пашет не фига ставил даже "не равно" (!=)

Lord_Teo:
В первый раз у тебя ур пассивки становится равным 1. Затем ты сравниваешь 1 ур сила с 1 ур пассивки и условие не выполняется. И больше не выполнится. Пока уровень скила не повысится.
на первом уровне крита стоит 0% шанса типа ваще нет его а когда есть(начиная с 2 лвл) типа есть и бьет критами

goodlyhero:
Без карты я конечно не смогу протестировать, но мана - флоат, поэтому возможно стоит считать условие выполненным, например, если у юнита кол-во маны меньше чем максимум минус 1, возможно проблема в этом.
карта не моя а друга и мы ее почти сделали и думаю друг будет против давать открытую версию карты другим людям и делать новую карту с этими вещами не хочу устал голову ломать с этим триггером
0
11
3 года назад
Отредактирован ArhiMEN
0
if Max > Cur  then
Вот ошибка. У тебя никогда не выполняется условие. Максимальное количество маны больше текущего, если она не полноя, а если полная, то максимальное количество маны не может быть больше максимального количества маны.
If Max == Cur then
Сделай так

Ещё проверь при полной Мане какое количество выдают переменные max и cur и потом подстрой так, чтобы эти числа были равны в условии (если они и так не равны).
0
26
3 года назад
0
Гуванч:
Хорошо, что ты поблему решил, но я не понимаю, почему у тебя не выполняется условие с маной. Вот, смотри. Пример триггера без уровня способности (чтоб нагляднее было). Все работает.
Загруженные файлы
Принятый ответ
0
14
3 года назад
0
Lord_Teo:
Гуванч:
Хорошо, что ты поблему решил, но я не понимаю, почему у тебя не выполняется условие с маной. Вот, смотри. Пример триггера без уровня способности (чтоб нагляднее было). Все работает.
Пока не решил завтра мб с-кодом карту кину а так код сам видишь я даже пробовал с переменными та же фигня вот если отнять еденичку с Мах то все пашет иначе нет
0
27
3 года назад
0
А дебаг разве одинаковые значения выводит? Мб там Макс мана к примеру 100.000000, а текущая мана 100.000001. конвертируй в целочисленные значения и попробуй снова сравнить через текущая мана >= макс мана
0
26
3 года назад
0
rsfghd:
А дебаг разве одинаковые значения выводит? Мб там Макс мана к примеру 100.000000, а текущая мана 100.000001. конвертируй в целочисленные значения и попробуй снова сравнить через текущая мана >= макс мана
Почему в моем случае тогда ошибок нет? Я ничего не конвертировал. Повторить мой триггер дело 1 минуты. Сразу и убедишься.
0
27
3 года назад
0
Lord_Teo, если бы мне это нужно было я бы за пару секунд всё исправил, мне не в чём убеждаться
0
26
3 года назад
0
rsfghd:
Lord_Teo, если бы мне это нужно было я бы за пару секунд всё исправил, мне не в чём убеждаться
Согласен😌
0
14
3 года назад
0
всем спасибо за ответы, переместил включение поверх отключения и сделал 2 иф а не елсеиф и все заработало хз почему так случилось мб мой редактор глючит один день заходишь редактор англ. языке в другой на русском что то сверх естественное творится в моем компе
Чтобы оставить комментарий, пожалуйста, войдите на сайт.