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

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

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

offline
Опыт: 5,084
Активность:
Конфликт
У меня есть три триггера
//Воскрешение героя
function Trig_Renistal_Conditions takes nothing returns boolean
    return IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) 
endfunction

function Timer1 takes nothing returns nothing
    call ReviveHero(u1[0], GetRectCenterX(gg_rct________________020), GetRectCenterY(gg_rct________________020), false)
    if ( GetLocalPlayer() == Player(0) ) then
        call PanCameraToTimed(GetRectCenterX(gg_rct________________020) , GetRectCenterY(gg_rct________________020) , 0.00)
    endif
    if (GetLocalPlayer() == Player(0)) then
        call TimerDialogDisplay(d[0], false)
    endif
    call PauseTimer(ti[0])
endfunction

function Trig_Renistal_Actions takes nothing returns nothing
    set ti[0] = CreateTimer()
    set d[0] = CreateTimerDialog(ti[0])
    call DisplayTextToPlayer(Player(0) , 0 , 0 , "Твой герой был повержен в бою. Ты потерял немного золота, до появления героя 25 секунд.")
    call SetPlayerState(Player(0) , PLAYER_STATE_RESOURCE_GOLD , ( GetPlayerState(Player(0) , PLAYER_STATE_RESOURCE_GOLD) - 200 ))
    if ( GetLocalPlayer() == Player(0) ) then
        call TimerDialogDisplay(d[0] , true)
    endif
    call TimerDialogSetTitle(d[0] , "Время до возрождения")
    call TimerStart(ti[0] , 25.00 , false , function Timer1)
    call SetUnitPosition(u2[0] , GetUnitX(u1[0]), GetUnitY(u1[0]))
endfunction

//===========================================================================
function InitTrig_Renistal takes nothing returns nothing
    set gg_trg_Renistal = CreateTrigger(  )
    call TriggerRegisterPlayerUnitEvent(gg_trg_Renistal, Player(0), EVENT_PLAYER_UNIT_DEATH, null)
    call TriggerAddCondition( gg_trg_Renistal, Condition( function Trig_Renistal_Conditions ) )
    call TriggerAddAction( gg_trg_Renistal, function Trig_Renistal_Actions )
endfunction
//Смена точки воскрешения
function Trig_Repick_Town_Hero_Actions takes nothing returns nothing  
    call TriggerSleepAction( 0.50 )
    call AddSpecialEffect ("Abilities\\Spells\\Human\\Resurrect\\ResurrectCaster.mdl", GetRectCenterX(gg_rct________________080), GetRectCenterY(gg_rct________________080))
    call DisableTrigger( GetTriggeringTrigger() )
    call DisableTrigger( gg_trg_Renistal )
    call DisableTrigger( gg_trg_Renistal2 )
    call DisableTrigger( gg_trg_Renistal3 )
    call DisableTrigger( gg_trg_Renistal4 )
    call DisableTrigger( gg_trg_Renistal5 )
    call DisableTrigger( gg_trg_Renistal6 )
    call DisableTrigger( gg_trg_Renistal7 )
    call DisableTrigger( gg_trg_Renistal8 )
    call EnableTrigger( gg_trg_Repic_HERO_1 )
    call EnableTrigger( gg_trg_Repic_HERO_2 )
    call EnableTrigger( gg_trg_Repic_HERO_3 )
    call EnableTrigger( gg_trg_Repic_HERO_4 )
    call EnableTrigger( gg_trg_Repic_HERO_5 )
    call EnableTrigger( gg_trg_Repic_HERO_6 )
    call EnableTrigger( gg_trg_Repic_HERO_7 )
    call EnableTrigger( gg_trg_Repic_HERO_8 )
endfunction

//===========================================================================
function InitTrig_Repick_Town_Hero takes nothing returns nothing
    local region r = CreateRegion()
    set gg_trg_Repick_Town_Hero = CreateTrigger(  )
    call RegionAddRect(r, gg_rct________________072)
    call TriggerRegisterEnterRegion(gg_trg_Repick_Town_Hero, r, null)
    call TriggerAddAction( gg_trg_Repick_Town_Hero, function Trig_Repick_Town_Hero_Actions )
endfunction
//Новое воскрешение
function Trig_Repic_HERO_1_Conditions takes nothing returns boolean
    return IsUnitType(GetDyingUnit() , UNIT_TYPE_HERO)
endfunction

function Timer_1 takes nothing returns nothing
    call ReviveHero(u1[0] , GetRectCenterX(gg_rct________________072) , GetRectCenterY(gg_rct________________072) , false)
    if ( GetLocalPlayer() == Player(0) ) then
        call PanCameraToTimed(GetRectCenterX(gg_rct________________072) , GetRectCenterY(gg_rct________________072) , 0.00)
    endif
    call EnableTrigger(gg_trg_Repick_Town)
    if (GetLocalPlayer() == Player(0)) then
        call TimerDialogDisplay(td[0], false)
    endif
    call PauseTimer(tt[0])
endfunction

function Trig_Repic_HERO_1_Actions takes nothing returns nothing
    set tt[0] = CreateTimer()
    set td[0] = CreateTimerDialog(tt[0])
    call DisplayTextToPlayer(Player(0) , 0 , 0 , "Твой герой был повержен в бою. Ты потерял немного золота, до появления героя 25 секунд.")
    call SetPlayerState(Player(0) , PLAYER_STATE_RESOURCE_GOLD , ( GetPlayerState(Player(0) , PLAYER_STATE_RESOURCE_GOLD) - 200 ))
    if ( GetLocalPlayer() == Player(0) ) then
        call TimerDialogDisplay(td[0] , true)
    endif
    call TimerDialogSetTitle(td[0] , "Время до возрождения")
    call TimerStart(tt[0] , 25.00 , false , function Timer_1)
    call SetUnitPosition(u2[0] , GetUnitX(u1[0]), GetUnitY(u1[0]))
    call DisableTrigger(gg_trg_Repick_Town)
endfunction

//===========================================================================
function InitTrig_Repic_HERO_1 takes nothing returns nothing
    set gg_trg_Repic_HERO_1 = CreateTrigger()
    call DisableTrigger( gg_trg_Repic_HERO_1 )
    call TriggerRegisterPlayerUnitEvent(gg_trg_Repic_HERO_1 , Player(0) , EVENT_PLAYER_UNIT_DEATH , null)
    call TriggerAddCondition(gg_trg_Repic_HERO_1 , Condition(function Trig_Repic_HERO_1_Conditions))
    call TriggerAddAction(gg_trg_Repic_HERO_1 , function Trig_Repic_HERO_1_Actions)
endfunction
Проблема в том, что герой воскрешается только во второй точке.
Если до герой умрет не дойдя до 2 точки, то он не возрождается.
Старый 31.07.2009, 16:22
Daemonik

offline
Опыт: 5,084
Активность:
Закрывайте все работает.
Старый 31.07.2009, 22:34
Закрытая тема

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

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

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

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



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