XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Daemonik

offline
Опыт: 5,084
Активность:
Будет ли лучше если вместо GetLastCreatedUnit() напрямую использовать bj_lastCreatedUnit??
Старый 29.06.2009, 19:29
J
expert
offline
Опыт: 48,447
Активность:
будет лучше вообще это не использовать
Старый 29.06.2009, 19:30
Daemonik

offline
Опыт: 5,084
Активность:
Ну а если надо?
Ситуация такая.
Выбирается герой, вместе с ним появляется животное, которое таскается за героем и берет вещи.
И для того что бы оно постоянно следовало за героем приходиться использовать переменную в которую вносится LastCreatedUnit.
Если есть еще какой способ то подскажите.
Выбор персонажа
Код:
function Trig_Arthas_____________________u_Conditions takes nothing returns boolean
    return GetTriggerUnit() == gg_unit_e000_0056
endfunction

function Trig_Arthas_____________________u_Actions takes nothing returns nothing
    call CreateUnitAtLoc(GetOwningPlayer(GetTriggerUnit()), 'H00D',  GetRectCenter(gg_rct________________007), bj_UNIT_FACING )
    set udg_u11 = bj_lastCreatedUnit
    call CreateUnitAtLoc( GetOwningPlayer(GetTriggerUnit()),'h009',  GetRectCenter(gg_rct________________007), bj_UNIT_FACING )
    set udg_u12 = bj_lastCreatedUnit
    call IssueTargetOrder( udg_u12, "move", udg_u11 )
    call SetUnitInvulnerable( udg_u12, true )
    call RemoveUnit( GetTriggerUnit() )
    call UnitAddItemByIdSwapped( 'I00C', udg_u11 )
    call UnitAddItemByIdSwapped( 'I00D', udg_u11 )
    call UnitAddItemByIdSwapped( 'I00E', udg_u11 )
    call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), GetRectCenter(gg_rct________________007), 0 )
endfunction

//===========================================================================
function InitTrig_Arthas_____________________u takes nothing returns nothing
    set gg_trg_Arthas_____________________u = CreateTrigger(  )
    call TriggerRegisterEnterRectSimple( gg_trg_Arthas_____________________u, gg_rct________________008 )
    call TriggerAddCondition( gg_trg_Arthas_____________________u, Condition( function Trig_Arthas_____________________u_Conditions ) )
    call TriggerAddAction( gg_trg_Arthas_____________________u, function Trig_Arthas_____________________u_Actions )
endfunction


Следование
Код:
function Trig_stash_Actions takes nothing returns nothing
    if  (IsUnitType(udg_u11, UNIT_TYPE_HERO) == (GetUnitState(udg_u11, UNIT_STATE_LIFE) >= 0)) then
        call IssueTargetOrder( udg_u12, "move", udg_u11 )
    else
        loop
            exitwhen ( IsUnitType(udg_u11, UNIT_TYPE_HERO) != (GetUnitState(udg_u11, UNIT_STATE_LIFE) <= 0) )
            call TriggerSleepAction(1.0)
        endloop
        call SetUnitPositionLoc( udg_u12, GetUnitLoc(udg_u11) )
    endif
endfunction

//===========================================================================
function InitTrig_stash takes nothing returns nothing
    set gg_trg_stash = CreateTrigger(  )
    call TriggerRegisterTimerEvent( gg_trg_stash, 2, true )
    call TriggerAddAction( gg_trg_stash, function Trig_stash_Actions )
endfunction


Я бы рад убрать ГУИ, но пока еще учусь. Поэтому сюда и обращаюсь.

Отредактировано Daemonik, 29.06.2009 в 20:07.
Старый 29.06.2009, 20:02
J
expert
offline
Опыт: 48,447
Активность:
создать свою глобальную переменную и заносить туда это животное
Старый 29.06.2009, 20:03
SRes
1110101000
offline
Опыт: 9,997
Активность:
Код:
local unit u = CreateUnit( GetOwningPlayer( hero), 'vasya', 0, 0, 0)

Чего сложного ?

P.S. Спрячь ужасные ГУИ триггеры...
Старый 29.06.2009, 20:04
Daemonik

offline
Опыт: 5,084
Активность:
SRes в общем ты предлагаешь 2 триггера в один совместить что бы можно было пользоваться локалкой?
Или можно локалку из одного триггера в другой перенести?
J я так и делаю, но мне же нужно именно то животное которое у меня появляется, а кроме как GetLastCreatedUnit я больше не знаю способов(
Старый 29.06.2009, 20:14
J
expert
offline
Опыт: 48,447
Активность:
Daemonik судя по всему ты не читал ни одной статьи по джассу, а если и читал то невнимательно, так что иди читай
Старый 29.06.2009, 20:19
Daemonik

offline
Опыт: 5,084
Активность:
Читал. Правда не все. На основу убил кучу времени.
Старый 29.06.2009, 20:29
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Daemonik мдя, ты же переносишь из трига в триг глобалкой юнита ну дык сеть ее сразу,
set udg_u = CreateUnit(Player,'TYPE',X,Y,FacingAngle)
Старый 29.06.2009, 20:34
Daemonik

offline
Опыт: 5,084
Активность:
Мда... я дурак. Спасибо.
Я понял одну вещь.
ГУИ мешает видеть простые решения...

Daemonik добавил:
Появился очередной вопрос.
Может он и глупый, или это где-то затрагивалось в статьях, но я не нашел.
Предположим у меня есть 50 триггеров, выполняющих одно и то же действие, но с разными условиями.
Что будет лучше, так и оставить их, или засунуть все в один?

Отредактировано Daemonik, 29.06.2009 в 20:49.
Старый 29.06.2009, 23:28
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Не засунуть все в один, а правильно поставить условия.
Старый 29.06.2009, 23:39
Daemonik

offline
Опыт: 5,084
Активность:
Ну это я и имел ввиду.
Суть в том что так лучше будет, да?
Старый 29.06.2009, 23:50
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Ну разумеется.
Старый 29.06.2009, 23:51
Daemonik

offline
Опыт: 5,084
Активность:
Спасибо
Старый 30.06.2009, 00:05
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:45.