Имеется вот такая штука:
 local integer i = 1
    local integer k = 400
    loop
        exitwhen i > k
           if (  IsUnitGroupEmptyBJ(udg_group[i]) == true )  then
            udg_groupCount = i
            i = i  + k          
        endif
        set i = i + 1
    endloop       
    set udg_group[udg_groupCount] = GetUnitsOfPlayerMatching(p, Condition(function unitType))
    call CreateNUnitsAtLoc( 1, ut, p, ul, bj_UNIT_FACING )  
Все работает, но если добавить это:
call GroupAddUnitSimple( GetLastCreatedUnit(), udg_group[udg_groupCount] )
То карта не открывается
И еще вопрос, можно ли LastCreatedUnit занести в локальную переменную?

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

неожиданно заработало
2
15
7 лет назад
Отредактирован EnergyFrost
2
У тебя логическая ошибка в цикле. На первом витке, если группа пустая, то i увеличиться на 400! На следующем еще на 400. В итоге, ты при выходе получаешь индекс 400*400+1. Но я не уверен, что до этого дойдет. При 819*, не помню макс размер массива,у тебя просто накроется все. В общем, у тебя логическая ошибка
И, да, ласткриейтедюнит можно занести в локальную переменную, т.к.лайс* - глобалка из common типа unit
0
8
7 лет назад
0
неожиданно заработало
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.