Здравствуйте суть моей проблемы в том что когда я обучаю юнита с помощью вот такого кода:
//===========================================================================
function Trig_Tratata_Func002Func007C takes nothing returns boolean 
    if ( not ( udg_Iron_ore > 0 ) ) then
        return false
    endif 
    return true
endfunction

function Trig_Tratata_Func002C takes nothing returns boolean
    if ( not ( GetTrainedUnitType() == 'hrif' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Tratata_Func003C takes nothing returns boolean
    if ( not ( GetTrainedUnitType() == 'hfoo' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Tratata_Actions takes nothing returns nothing
    call RemoveUnit( GetTrainedUnit() )
    if ( Trig_Tratata_Func002C() ) then
        call RemoveItem( GetItemOfTypeFromUnitBJ(gg_unit_hbla_0000, 'rat6') )
        call UnitAddItemByIdSwapped( 'rat3', gg_unit_hbla_0000 )
        call SetPlayerUnitAvailableBJ( 'hrif', true, Player(0) )
        call SetPlayerUnitAvailableBJ( 'hfoo', true, Player(0) )
        call EnableTrigger( gg_trg_Esle )
        if ( Trig_Tratata_Func002Func007C() ) then
            call IssueTrainOrderByIdBJ( gg_unit_hbla_0000, 'hrif' )
        else
            call DoNothing(  )
        endif
    else
        call DoNothing(  )
    endif
    if ( Trig_Tratata_Func003C() ) then
        call RemoveItem( GetItemOfTypeFromUnitBJ(gg_unit_hbla_0000, 'rat3') )
        call RemoveItem( GetItemOfTypeFromUnitBJ(gg_unit_hbla_0000, 'rat3') )
        call RemoveItem( GetItemOfTypeFromUnitBJ(gg_unit_hbla_0000, 'rat3') )
        call UnitAddItemByIdSwapped( 'frgd', gg_unit_hbla_0000 )
        call SetPlayerUnitAvailableBJ( 'hrif', true, Player(0) )
        call SetPlayerUnitAvailableBJ( 'hfoo', true, Player(0) )
        call EnableTrigger( gg_trg_Esle )
    else
    endif
endfunction

//===========================================================================
function InitTrig_Tratata takes nothing returns nothing
    set gg_trg_Tratata = CreateTrigger(  )
    call TriggerRegisterUnitEvent( gg_trg_Tratata, gg_unit_hbla_0000, EVENT_UNIT_TRAIN_FINISH )
    call TriggerAddAction( gg_trg_Tratata, function Trig_Tratata_Actions )
endfunction
//===========================================================================
То после этого я не могу вытаскивать или что либо делать с предметами обучающего
Конкретно скажу что это происходит после этого фрагмента:
//===========================================================================
if ( Trig_Tratata_Func002Func007C() ) then
            call IssueTrainOrderByIdBJ( gg_unit_hbla_0000, 'hrif' )
        else
            call DoNothing(  )
        endif
  • Почему это происходит?
  • Как это исправить?

Опиши что ты хочешь сделать.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
9
Hate:
да накой нам надо тупой конверт из гуи?
Я попросил ответить мне на вопрос
  • Почему?
  • Как исправить?
Со всем остальным попрошу воздержаться
24
Sparrow, поясняю для не особо понятливых: разбираться в конвертированном из ГУИ коде никто кроме мазохистов не будет - это геморрой.
9
prog:
Sparrow, поясняю для не особо понятливых: разбираться в конвертированном из ГУИ коде никто кроме мазохистов не будет - это геморрой.
Хорошо
Что от меня сейчас требуется?
15
Код нормально написать, или скрин триггера сделать.
9
Tobi123:
Код нормально написать, или скрин триггера сделать.
Пожалуйста
Загруженные файлы
Этот комментарий удален
24
Sparrow, если еще существует не конвертированная версия - скриншоты ГУИ, если нет - чистить код до удобочитаемого вида с осмысленными именами и по возможности избавляться от BJ, а потом уже показывать этот код людям. Ну и триггер gg_trg_Esle тоже в студию - нет ли в нем каких-либо реакций на приказы?
upd: скриншот уже увидел, удаление юнита до проверки его типа не самая мудрая мысль.
9
prog:
Sparrow, Ну и триггер gg_trg_Esle тоже в студию - нет ли в нем каких-либо реакций на приказы?
Там просто проверка целочисленной
т.е. переодическое событие которое проверяет равна ли i = n если да то устанавливает доступность обучения к примеру пехотинца,если нет,то наооборот.
Если возникнет вопрос откуда берется эта целочисленная:
Когда обучающий получает определенный предмет то устанавливается целочисленная как количество таких предметов
prog:
удаление юнита до проверки его типа не самая мудрая мысль.
А смысл проверять его тип если мне эти юниты не нужны и после обучения они сразу удаляются.
Мне это нужно лишь для получения предмета
Но если это имеет значение то вы правей меня и если нужно я исправлю
33
А смысл проверять его тип если мне эти юниты не нужны и после обучения они сразу удаляются.
Не знаю, в чём смысл. Но тем не менее, выложенный тобой триггер проверяет тип юнита, который уже удалён. Он нормально определяется?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.