Добавлен
Я встретил одну ошибку и не знаю как её пофиксить.
Есть действие которое призывает юнита, за ним идёт set Перменная1(предположим название переменной такое) = Last Created Unit.
После идёт wait, а за ним Order Переменная1 Двигаться (Ещё одна переменная, значение которой Target Poing Of Ability Being Cast).
После опять wait, а за ним действие Pick every unit in Units within 100.00 of Переменная1, затем действие которое наносит дамаг Picked Unit.
Почему то юниты выбираются в радиусе 100.00 у Triggering Unit, а не у юнитов в раудисе первой переменной.
В чём ошибка?

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

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

ответ
Проблема в Coordinate functions
ответ
Так ты всю либо кинь.
кат
//=====================================================================================================\\
library MainBar initializer InitSetBar

    native UnitAlive takes unit u returns boolean

    globals
        constant real br_updatePeriod = 0.2 //период обновления баров.
        integer array br_indHP //сохраняет текущий индекс модели хпбара,  чтобы сравнить, изменился ли он.
        integer array br_indMP //сохраняет текущий индекс модели мпбара,  чтобы сравнить, изменился ли он.
        integer array br_abilityHP
        integer array br_abilityMP
        integer br_unitCounter = 0
        effect array br_effHP //записывает хпбар, чтобы его можно было удалить и заменить другим.
        effect array br_effMP //записывает хпбар, чтобы его можно было удалить и заменить другим.
        region br_mapArea = null
        unit array br_unit
        boolean array br_unitIntimer
    endglobals
    
    nothing SetBar( ){ 
        integer i = 1
        integer iend = br_unitCounter
        integer indHP
        integer indMP
        loop{
            exitwhen i > iend
            if (UnitAlive(br_unit[i])) {
                indHP = R2I(GetUnitLifePercent(br_unit[i])/5)
                if (br_indHP[i] != indHP)  {
                    UnitRemoveAbility(br_unit[i], br_abilityHP[br_indHP[i]])
                    UnitAddAbility   (br_unit[i],  br_abilityHP[indHP])
                    br_indHP[i] = indHP
                }
                indMP = R2I(GetUnitManaPercent(br_unit[i])/5)
                if (br_indMP[i] != indMP) and (GetUnitState(br_unit[i], UNIT_STATE_MAX_MANA) > 0) {
                    UnitRemoveAbility(br_unit[i], br_abilityMP[br_indMP[i]])
                    UnitAddAbility   (br_unit[i],  br_abilityMP[indMP])
                    br_indMP[i] = indMP
                }
            }
            i++
        }
    }

    nothing TimerStartEx ( timer whichTimer, real period, boolean isPeriodic, code handlerFunc, integer userData ){ 
        TimerStart(whichTimer, I2R(userData), false, null)
        PauseTimer(whichTimer)
        TimerStart(whichTimer, period, isPeriodic, handlerFunc )
    }
 
    integer TimerGetUserData ( timer whichTimer ){ 
        return R2I(TimerGetRemaining(whichTimer )+0.5)
    }

    nothing ClearIDBar () {
        timer t = GetExpiredTimer()
        integer id = TimerGetUserData(t)
        if UnitAlive(br_unit[id]) == false {
            br_unit[id] = br_unit[br_unitCounter]
            br_effHP[id] = br_effHP[br_unitCounter]
            br_effMP[id] = br_effMP[br_unitCounter]
            br_indHP[id] = br_indHP[br_unitCounter]
            br_indMP[id] = br_indMP[br_unitCounter]
            br_unit[br_unitCounter] = null
            br_effHP[br_unitCounter] = null
            br_effMP[br_unitCounter] = null
            br_indHP[br_unitCounter] = 0
            br_indMP[br_unitCounter] = 0
            br_unitCounter = br_unitCounter - 1
        } else
        br_unitInTimer[id] = false
        DestroyTimer(t)
        t = null
    }
    
    nothing ClearRemoteUnits() {
        integer i = 1
        integer iend = br_unitCounter
        loop{
            exitwhen i > iend
            if (br_unit[i] == null) and (br_unitInTimer[i] == false) {
            BJDebugMsg("null " + I2S(i))
            }
            i++
        }
    }

    nothing ClearBarDeath ( ){ 
        integer i = 1
        integer iend = br_unitCounter
        integer id
        loop {
            exitwhen i > iend
            if br_unit[i] == GetTriggerUnit() {
                DestroyEffect(br_effHP[i])
                DestroyEffect(br_effMP[i])
                id = i
            }
            i++
        }
        timer t = CreateTimer()
        br_unitInTimer[id] = true
        TimerStartEx(t, 88, false, function ClearIDBar, id)
        t = null
    }
    
    nothing InitSetBar(){ 
        EnablePreSelect(false, false) //скрывает полоски здоровья и информацию при наведении на юнита.
        br_abilityHP[0] = 'HP00'
        br_abilityHP[1] = 'HP01'
        br_abilityHP[2] = 'HP02'
        br_abilityHP[3] = 'HP03'
        br_abilityHP[4] = 'HP04'
        br_abilityHP[5] = 'HP05'
        br_abilityHP[6] = 'HP06'
        br_abilityHP[7] = 'HP07'
        br_abilityHP[8] = 'HP08'
        br_abilityHP[9] = 'HP09'
        br_abilityHP[10] = 'HP10'
        br_abilityHP[11] = 'HP10'
        br_abilityHP[12] = 'HP12'
        br_abilityHP[13] = 'HP13'
        br_abilityHP[14] = 'HP14'
        br_abilityHP[15] = 'HP15'
        br_abilityHP[16] = 'HP16'
        br_abilityHP[17] = 'HP17'
        br_abilityHP[18] = 'HP18'
        br_abilityHP[19] = 'HP19'
        br_abilityHP[20] = 'HP20'
        br_abilityMP[0] = 'MP00'
        br_abilityMP[1] = 'MP01'
        br_abilityMP[2] = 'MP02'
        br_abilityMP[3] = 'MP03'
        br_abilityMP[4] = 'MP04'
        br_abilityMP[5] = 'MP05'
        br_abilityMP[6] = 'MP06'
        br_abilityMP[7] = 'MP07'
        br_abilityMP[8] = 'MP08'
        br_abilityMP[9] = 'MP09'
        br_abilityMP[10] = 'MP10'
        br_abilityMP[11] = 'MP11'
        br_abilityMP[12] = 'MP12'
        br_abilityMP[13] = 'MP13'
        br_abilityMP[14] = 'MP14'
        br_abilityMP[15] = 'MP15'
        br_abilityMP[16] = 'MP16'
        br_abilityMP[17] = 'MP17'
        br_abilityMP[18] = 'MP18'
        br_abilityMP[19] = 'MP19'
        br_abilityMP[20] = 'MP20'
        integer i = 0
        integer iend = 20
        unit u = CreateUnit( Player(0), 'hfoo' , 0, 0, 0)
        loop {
            exitwhen i > iend
            UnitAddAbility(u, br_abilityHP[i])
            UnitAddAbility(u, br_abilityMP[i])
            i++
        }
        KillUnit(u)
        RemoveUnit(u)
        u = null
        TimerStart(CreateTimer(), br_updatePeriod, true, function SetBar )
        TimerStart(CreateTimer(), 30, true, function ClearRemoteUnits)
        trigger trg_br_ClearIDBarDeath = CreateTrigger( )
        TriggerRegisterAnyUnitEventBJ( trg_br_ClearIDBarDeath, EVENT_PLAYER_UNIT_DEATH )
        TriggerAddAction( trg_br_ClearIDBarDeath, function ClearBarDeath )
    } 
 
endlibrary
 //=====================================================================================================\\
Ошибка была в том, что при удалении блока else, удалил только скобки, а else оставил.
ответ
Нужен 139 мдлвис
ответ
это разные функции, локалку сделали в одной, а в другой ее записываете. это как если бы вы поставили дома у себя холодильник, потом пришли к соседу и ищете свой холодильник что бы положить туда яйца
используйте глобалки

4
26
5 лет назад
4
печатать стену текста проще чем нажать принт скрин и прикепить скриншот?
явно же где то накосячили из-за невнимательности.
давайте договоримся, прежде чем создавать тему с нерабочим триггером вы проводите сами дебаг этого триггера, а затем уже если не поняли где ошибка, делаете вопрос
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.