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

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

Ответ
 
DioD

offline
Опыт: 45,184
Активность:
Переделаные под джаз тригеры
Атака союзников...
Код:
//                                                                                               //
function Players_TA_Condition takes nothing returns boolean                                      //
    if GetIssuedOrderId() == 851983 then                                                         //
        return IsUnitEnemy(GetOrderTargetUnit(),GetOwningPlayer(GetOrderedUnit()))!=true         //
    else                                                                                         //
        return false                                                                             //
    endif                                                                                        //
endfunction                                                                                      //
//                                                                                               //
//                                                                                               //
function Players_TA_Action takes nothing returns nothing                                         //
    local unit Orde_U_1 = GetOrderedUnit    ( )                                                  //
    local unit Targ_U_1 = GetOrderTargetUnit( )                                                  //
    //                                                                                           //
    if GetUnitAbilityLevel      ( Orde_U_1 , TowerMark( ) ) == 0 then                            //
        call IssuePointOrderById(Orde_U_1, 851983 ,GetUnitX(Targ_U_1) , GetUnitY ( Targ_U_1) )   //
    else                                                                                         //
        call PauseUnit               ( Orde_U_1 , true   )                                       //
        call IssueImmediateOrderById ( Orde_U_1 , 851972 )                                       //
        call PauseUnit               ( Orde_U_1 , false  )                                       //
    endif                                                                                        //
    //                                                                                           //
    set Orde_U_1 = null                                                                          //
    set Targ_U_1  = null                                                                         //
endfunction                                                                                      //
//                                                                                               //
//                                                                                               //
function InitTrig_Players_TA takes nothing returns nothing                                       //
    local trigger Trigger = CreateTrigger()                                                      //
    //                                                                                           //
    call RegisterUnitEvent   ( Trigger, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER       )            //
    call TriggerAddCondition ( Trigger, Condition ( function Players_TA_Condition ) )            //
    call TriggerAddAction    ( Trigger, function  Players_TA_Action                 )            //
endfunction                                                                                      //
//                                                                                               //


Все вопросы по смыслу той или иной строки задавть тут.

DioD добавил:
удаление трупов

Код:
function CleanUp_Condition takes nothing returns boolean
    return IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO) != true
endfunction

function CleanUp_Action takes nothing returns nothing
    local unit Dead_U_1 = GetTriggerUnit()
    local real Xcoo_R_1 = GetUnitX(Dead_U_1)
    local real Ycoo_R_1 = GetUnitY(Dead_U_1)
    local string Effe_S_1 = "Abilities\\Spells\\Orc\\MirrorImage\\MirrorImageDeathCaster.mdl"
    call TriggerSleepAction(3)
    if IsUnitType(GetDyingUnit(), UNIT_TYPE_STRUCTURE) then
    else
        if Effe_S_1 != "" then
            call SFX_Delay(Effe_S_1,Xcoo_R_1,Ycoo_R_1,1)
        endif
    endif
    call RemoveUnit(Dead_U_1)
    set Dead_U_1 = null
endfunction

function InitTrig_CleanUp takes nothing returns nothing
    local trigger Trig_T_1 = CreateTrigger(  )
    call RegisterUnitEvent  ( Trig_T_1, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( Trig_T_1, Condition( function CleanUp_Condition ) )
    call TriggerAddAction   ( Trig_T_1, function CleanUp_Action )
endfunction

Отредактировано DioD, 13.08.2006 в 02:25.
Старый 13.08.2006, 02:55
J
expert
offline
Опыт: 48,747
Активность:
у нас почти тоже самое разве что твое на локал тригах с созданием их при загрузке карты... это имеет разницу?
Старый 13.08.2006, 03:06
DioD

offline
Опыт: 45,184
Активность:
Те изменения что я внёс имеют смысл.
Можкшь протестить и убедиться.
Старый 13.08.2006, 03:53
J
expert
offline
Опыт: 48,747
Активность:
протестить не получится потому что он жалуецо на подчеркнутое... что это за функция такая? говорит что отсутствует название, ты наверо опять забыл что-то выложить:)
Код:
if GetUnitAbilityLevel      ( Orde_U_1 , TowerMark( ) ) == 0 then

Отредактировано Jon, 13.08.2006 в 04:23.
Старый 13.08.2006, 04:11
DioD

offline
Опыт: 45,184
Активность:
Всем здания должна быть выдана маркер абилка.
Но так как здания игрокам не принадлежат это можно вобще убрать
Старый 13.08.2006, 08:05
DioD

offline
Опыт: 45,184
Активность:
Код:
function CleanUp_Condition takes nothing returns boolean
    return IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO) != true
endfunction

function CleanUp_Child takes nothing returns nothing
    local integer Slot_I_1 = H2I(GetExpiredTimer())-1048675

    if GetUnitState(udg_LH_Unit_1[Slot_I_1],UNIT_STATE_MAX_LIFE) == 0 then
        call DestroyTimer(udg_LH_Timer_1[Slot_I_1])
        set udg_LH_Unit_1[Slot_I_1] = null
        set udg_LH_Timer_1[Slot_I_1]= null
        call Text("Maxlife")
        return
    endif
    
    if GetUnitState(udg_LH_Unit_1[Slot_I_1],UNIT_STATE_LIFE) != 0 then
        call DestroyTimer(udg_LH_Timer_1[Slot_I_1])
        set udg_LH_Unit_1[Slot_I_1] = null
        set udg_LH_Timer_1[Slot_I_1]= null
        call Text("State")
        return
    endif
    
    if IsUnitLoaded(udg_LH_Unit_1[Slot_I_1]) == true then
        call TimerStart(GetExpiredTimer(),30,false,function CleanUp_Child)
        call Text("Loaded Restart timer")
        return
    endif

    call Text("Normal")    
    call SFX_Timed_Loc("Abilities\\Spells\\NightElf\\Starfall\\StarfallCaster.mdx",GetUnitX(udg_LH_Unit_1[Slot_I_1]),GetUnitY(udg_LH_Unit_1[Slot_I_1]),0.5)
    call RemoveUnit(udg_LH_Unit_1[Slot_I_1])
    call DestroyTimer(udg_LH_Timer_1[Slot_I_1])
    set udg_LH_Unit_1[Slot_I_1] = null
    set udg_LH_Timer_1[Slot_I_1]= null
endfunction

function CleanUp_Action takes nothing returns nothing
    local unit    Dead_U_1 = GetDyingUnit()
    local timer   Time_T_1 = CreateTimer()
    local integer Slot_I_1 = H2I(Time_T_1)-1048675
    set udg_LH_Unit_1[Slot_I_1]  = Dead_U_1
    set udg_LH_Timer_1[Slot_I_1] = Time_T_1
    call TimerStart(udg_LH_Timer_1[Slot_I_1],10,false,function CleanUp_Child)
    set Time_T_1 = null
    set Dead_U_1 = null
endfunction

function InitTrig_CleanUp takes nothing returns nothing
    local trigger Trig_T_1 = CreateTrigger(  )
    call RegisterUnitEvent  ( Trig_T_1, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( Trig_T_1, Condition( function CleanUp_Condition ) )
    call TriggerAddAction   ( Trig_T_1, function CleanUp_Action )
endfunction

Высвобождение трупов (грамотное и без кеша)
Старый 15.08.2006, 12:00
Ответ

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

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

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

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



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