При использовании loop перестает работать функция, без loop все работает отлично
В чем может быть проблема?
Код:
scope Spell3 initializer Spell3Init {

    bool Spell3Cond() {
    return GetSpellAbilityId() == 'A002'
    }
    
    void Spell3Act2() {
    timer t = GetExpiredTimer()
    int id = GetHandleId(t)
    unit c = LoadUnitHandle( h, id, 1 )
    float x = LoadReal( h, id, 2 )
    float y = LoadReal( h, id, 3 )
    unit d = LoadUnitHandle( h, id, 4 )
    float x1 = GetUnitX(d)
    float y1 = GetUnitY(d)
    player p = GetOwningPlayer(c)
    GroupEnumUnitsInRange( G, x1, y1, 500, null )
    loop
        E = FirstOfGroup(G)
        exitwhen E == null
        if IsUnitEnemy(E,p) and IsUnitType(E,UNIT_TYPE_DEAD) == false and IsUnitType(E,UNIT_TYPE_STRUCTURE) == false
        UnitDamageTarget( c, E, 500, false, false, null, null, null )
        endif
        GroupRemoveUnit( G, E )
    endloop
    KillUnit( d )
    FlushChildHashtable( h, id )
    c = null
    d = null
    t = null
    p = null
    }

    void Spell3Act() {
    unit c = GetSpellAbilityUnit()
    timer t = CreateTimer()
    int id = GetHandleId(t)
    float x = GetUnitX(c)
    float y = GetUnitY(c)
    float f = GetUnitFacing(c)
    player p = GetOwningPlayer(c)
    unit d = CreateUnit( p, 'hfoo', x, y, f )
    UnitAddAbility(d, 'A001' )
    SaveUnitHandle( h, id, 1, c )
    SaveReal( h, id, 2, x )
    SaveReal( h, id, 3, y )
    SaveUnitHandle( h, id, 4, d )
    TimerStart( t, 10.00, false, function Spell3Act2 )
    c = null
    t = null
    p = null
    }


    void Spell3Init() {
    trigger t = CreateTrigger( )
    int i
    i = 0
    loop
        TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
        i = i + 1
        exitwhen i == bj_MAX_PLAYER_SLOTS
    endloop
    TriggerAddCondition( t, Condition( function Spell3Cond ) )
    TriggerAddAction( t, function Spell3Act )
    t = null
    }

    }
Помогите пожалуйста!!!

nvc123, У него там отсутствует CreateGroup()
А ещё она в заголовке globals не null'ась

Я о group G
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
nvc123, Посмотрел
((Код
if ( G == null ) {
BJD( "G == null" )
else
BJD( "G! == null" )
if ( FirstOfGroup(G) == null ) {
BJD ( "FirstOfGroup(G) == null" )
else
BJD(GetUnitName(FirstOfGroup(G)))
}
}
))
Ничего не написало.
1
    GroupEnumUnitsInRange( G, x1, y1, 500, null )
29
nvc123, У него там отсутствует CreateGroup()
А ещё она в заголовке globals не null'ась

Я о group G
Принятый ответ
1
nvc123, Вот что до нее выводило
KingMaximax, ох тыж епт заработало
такую дыру сделал
в глобалке группу написал но не прописал CreateGroup()
KingMaximax, Благодарю
nvc123, Вам тоже спасибо, только мозг запутал вам
Загруженные файлы
28
именно поэтому я и просил полный дебаг чтобы знать состояние переменной G
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.