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

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

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