Здравствуйте суть моей проблемы в том что когда я обучаю юнита с помощью вот такого кода:
//===========================================================================
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
  • Почему это происходит?
  • Как это исправить?

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
качество всегда на первом месте!
качество зависит от сроков и оплаты
24
Sparrow, кроме тебя твой код никто не видит, а вид кода на работоспоспособноть влияет редко, хоть справа налево пиши, если работает также хорош
28
darkowlom, он скорее всего имеет ввиду качество работы
хотя качество написания тоже важно
платят как правило за исходник
а за индуский код в исходнике ничего не платят
24
платят как правило за исходник
платят, как правило, за результат, но потом вносить при необходимости изменения в свой залежалый индусский код это дикая боль в известном месте.
28
prog, смотря где платят
на фрилансе да
за результат
а если командное задание то за индуский код могут уволить
24
индуский код
Так мы об индусском и не говорим,а засунуть вейт это костыль а не индусский код Стандартные триггеры конвертированные в текст- это индусский код
28
darkowlom, засунуть вейт это пичаль
а не костыль
darkowlom, и это кстати и есть стандартный триггер конвертированный в текст
9
Я вас конечно понимаю что конвертированный ГУИ это бред и я сам с этим согласен
Но у меня такая стратегия сначала написать что-то на ГУИ (Если возможно)
А потом уже писать по этому ГУИ код
Т.е. беру этот ГУИ как справочник какие функции мне нужны (так как я новичок в JASS"-е)
  • Сам процесс идет так:
  • Я написал триггер на ГУИ.
  • Убедился что все работает как часики.
  • Взял от туда функцию и начинаю ее изучать в формате JASS, как она выглядит, какие утечки и как их справить и т.д. (и так с каждой функцией)
  • Если что-то не получается я возвращаюсь в базу статей
  • Если в статьях нет того чего мне нужно я иду в Q/A
  • После чего я пишу уже оптимизированные функции в код чистого триггера.
  • В конечном итоге составляю триггер на JASS
P.S. таким способом я изучаю функции JASS что бы потом не бегать за каждой функцией в "кладовку" а сразу брать ее из "кармана" причем уже оптимизированную
В данный момент я остановился на создании ГУИ триггера т.к. наткнулся на ошибку данную в этом вопросе.
28
Sparrow, неправильный процесс
сначала идёт создание алгоритма
а лишь потом его написание
а ты в лоб пишешь триггер
не особо думая о том что пишешь и каким образом
в результате получаешь баганый и не оптимальный алгоритм
17
Опиши что ты хочешь сделать.
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.