В общем как запускаю цикл - фатал, как я понял перегруз памяти скорее всего это от бж, но я не уверен, что думете?
Убрал бж - не помогло
function Trig_model_Actions takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_700" )
    local integer i 
    set i = 1
    loop
        exitwhen i > 66
            call UnitAddAbility(udg_Slot[i], 'Agra' )
            call CreateDestructableLoc( 'B01D', GetUnitLoc(udg_Slot[i]), GetRandomDirectionDeg(), 1, 0 )
            call IssueTargetDestructableOrder( udg_Slot[i], "grabtree", GetLastCreatedDestructable() )
            call UnitRemoveAbility( udg_Slot[i], 'Agra' )
            call RemoveDestructable( GetLastCreatedDestructable() )
            call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_701" )
            set i = i + 1
    endloop
endfunction

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

nvc123:
function Trig_model_Actions takes nothing returns nothing
    local integer i =1
    local destructable last
    loop
        exitwhen i > 66
            call UnitAddAbility(udg_Slot[i], 'Agra' )
            last=CreateDestructable( 'B01D' ,GetUnitX(udg_Slot[i]), GetUnitY(udg_Slot[i]), 0, 1, 1 )
            call IssueTargetDestructableOrder( udg_Slot[i], "grabtree",last)
            call UnitRemoveAbility( udg_Slot[i], 'Agra' )
            call RemoveDestructable(last)
            set i = i + 1
    endloop
last=null
endfunction
Я и сам уже исправил - при значени выше чем 8 - фатал. Сейчас проверю еще раз функцию хейта
Hate, функция сработала только в для одного слота
хотя, я щас исправлю скорость реакции - прозевал я это
Все равно не помогло
Всем спасибо! Вопрос решен, одна функция случайно обнуляла переменную Slot[9] и из-за этого был вылет)
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
10 лет назад
0
ну а что дебаг показал? на каком месте вылетает, комментил кажду строчку?
утечки кстати имеются... и создавать декор нужно перед юнитом а не на нем
0
24
10 лет назад
Отредактирован darkowlom
0
Hate:
ну а что дебаг показал? на каком месте вылетает, комментил кажду строчку?
Вылет на создании разрушаемго объекта 2 строка, хотя я ее уже заменил на
           call CreateDestructable( 'B01D' ,GetUnitX(udg_Slot[i]), GetUnitY(udg_Slot[i]), 0, 1, 0 )
0
26
10 лет назад
0
еще раз, не на юните, а перед ним
0
24
10 лет назад
0
Hate:
еще раз, не на юните, а перед ним
Не помогло, смещение на 10 пов сем осям указал
0
26
10 лет назад
Отредактирован Hate
0
проблема не в модели и текстуре?
без цикла все работает?
0
15
10 лет назад
Отредактирован Tobi123
0
   local integer i 
    set i = 1
Исправьте
0
24
10 лет назад
0
Hate:
проблема не в модели и текстуре?
без цикла все работает?
Без цикла работает
Tobi123:
   local integer i 
    set i = 1
Исправьте
на что?
0
24
10 лет назад
Отредактирован prog
0
(udg_Slot[i], 'Agra'] )
только меня здесь смущает лишняя "]" ?
0
24
10 лет назад
0
prog:
(udg_Slot[i], 'Agra'] )
только меня здесь смущает лишняя "]" ?
опечатка - в самом коде этого нету
0
24
10 лет назад
Отредактирован prog
0
udg_Slot[i] тут всегда есть юнит или в какой-то момент его может не быть?
я сталкивался с ситуацией, когда попытка выдать способность несуществующему юниту вызывала краш
0
24
10 лет назад
0
есть всегда, при иницализации карты в массив заносится все 72 юнита, но текстуру нужно дать 66. Я сначала подумал что это из-за того что они все в одной точке стоят, расставил по карте - не помогло
0
26
10 лет назад
0
а если двум дать. трем. четырем и т.д.
0
24
10 лет назад
0
А код деструктабла правильно прописан? Попробуй создать другой деструктабл, например.
0
24
10 лет назад
0
Hate:
а если двум дать. трем. четырем и т.д.
prog:
А код деструктабла правильно прописан? Попробуй создать другой деструктабл, например.
Попробую, но код прописан верно - взял его сразу при конверте стандартного триггерного бж
0
24
10 лет назад
0
И что происходит если убрать строки
call UnitRemoveAbility( udg_Slot[i], 'Agra' )
call RemoveDestructable( GetLastCreatedDestructable() )
Удаление способностей в процессе их каста у меня тоже бывало вызывало фатал.
0
24
10 лет назад
0
prog:
И что происходит если убрать строки
call UnitRemoveAbility( udg_Slot[i], 'Agra' )
call RemoveDestructable( GetLastCreatedDestructable() )
Удаление способностей в процессе их каста у меня тоже бывало вызывало фатал.
Фатал все равно
2
26
10 лет назад
Отредактирован Hate
2
function SetTexture takes unit u, integer texture_id returns nothing 
        set bj_lastCreatedDestructable = CreateDestructable(texture_id, GetUnitX(u) + (10. * Cos(GetUnitFacing(u) * bj_DEGTORAD)), GetUnitY(u) + (10. * Sin(GetUnitFacing(u) * bj_DEGTORAD)), 0., 1., 0)
        call UnitAddAbility(u, 'Agra')
        call IssueTargetOrderById(u, order_grabtree, bj_lastCreatedDestructable)
        call UnitRemoveAbility(u, 'Agra')
        call RemoveDestructable(bj_lastCreatedDestructable)
        call SetUnitAnimation(u, "stand")
endfunction
пробуйте
юнит должен иметь мгновенную реакцию
0
24
10 лет назад
0
Еще вопрос - что происходит, если, например, кол-во итераций уменьшить до одной, до двух, до трех, до десяти?
Ну и да, getLastCreated вроде как не будет работать с не BJ функциями создания, хотя я давно последний раз редактор открывал и могу все путать.
2
26
10 лет назад
2
prog:
Еще вопрос - что происходит, если, например, кол-во итераций уменьшить до одной, до двух, до трех, до десяти?
Ну и да, getLastCreated вроде как не будет работать с не BJ функциями создания, хотя я давно последний раз редактор открывал и могу все путать.
кстати да, только бж фукнции забивают с lastDestructable
0
24
10 лет назад
0
order_grabtree
Выбавает ошибку о не назначенной переменной
prog:
Еще вопрос - что происходит, если, например, кол-во итераций уменьшить до одной, до двух, до трех, до десяти?
Ну и да, getLastCreated вроде как не будет работать с не BJ функциями создания, хотя я давно последний раз редактор открывал и могу все путать.
Если цикл уменьшить до 2 создает один деструктебл, но юнит абсолютно с ним ничего не делает, если это все делать вне цикла - юнит получает текстуру как положено
0
28
10 лет назад
0
prog, это джасс
тут обращение к null не вызывает фатала
darkowlom:
call CreateDestructable( 'B01D' ,GetUnitX(udg_Slot[i]), GetUnitY(udg_Slot[i]), 0, 1, 0 )
вариацию поставь 1
тоесть вот так
call CreateDestructable( 'B01D' ,GetUnitX(udg_Slot[i]), GetUnitY(udg_Slot[i]), 0, 1, 1 )
и убери GetLastCreatedDestructable()
юзай локалки лучше
0
26
10 лет назад
0
darkowlom:
order_grabtree
Выбавает ошибку о не назначенной переменной
эм, напиши выше #include "cj_order.j"
0
28
10 лет назад
Отредактирован nvc123
0
function Trig_model_Actions takes nothing returns nothing
    local integer i =1
    local destructable last
    loop
        exitwhen i > 66
            call UnitAddAbility(udg_Slot[i], 'Agra' )
            last=CreateDestructable( 'B01D' ,GetUnitX(udg_Slot[i]), GetUnitY(udg_Slot[i]), 0, 1, 1 )
            call IssueTargetDestructableOrder( udg_Slot[i], "grabtree",last)
            call UnitRemoveAbility( udg_Slot[i], 'Agra' )
            call RemoveDestructable(last)
            set i = i + 1
    endloop
last=null
endfunction
0
24
10 лет назад
0
nvc123:
function Trig_model_Actions takes nothing returns nothing
    local integer i =1
    local destructable last
    loop
        exitwhen i > 66
            call UnitAddAbility(udg_Slot[i], 'Agra' )
            last=CreateDestructable( 'B01D' ,GetUnitX(udg_Slot[i]), GetUnitY(udg_Slot[i]), 0, 1, 1 )
            call IssueTargetDestructableOrder( udg_Slot[i], "grabtree",last)
            call UnitRemoveAbility( udg_Slot[i], 'Agra' )
            call RemoveDestructable(last)
            set i = i + 1
    endloop
last=null
endfunction
Я и сам уже исправил - при значени выше чем 8 - фатал. Сейчас проверю еще раз функцию хейта
Hate, функция сработала только в для одного слота
хотя, я щас исправлю скорость реакции - прозевал я это
Все равно не помогло
Всем спасибо! Вопрос решен, одна функция случайно обнуляла переменную Slot[9] и из-за этого был вылет)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.