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

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

Закрытая тема
 
free0n
Бумбарявка
offline
Опыт: 4,736
Активность:
Выбор в радиусе
Не знаю как решить следующую траблу:
Мне нужно чтобы при смерти определённого здания(их будет не одно) в радиусе умирающего здания выбирались определённые типы юнитов и удалялись. Как это можно сделать? Плиз, хелп. Если можно то на джасе.
Старый 22.11.2006, 00:37
GadenbIsh
Просто Гад
offline
Опыт: 70,430
Активность:
Триггер:
Код:
Trigger G
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Dying unit)) Equal to Farm
    Actions
        Unit Group - Pick every unit in (Units within 512.00 of (Position of (Dying unit))) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        Or - Any (Conditions) are true
                            Conditions
                                (Unit-type of (Picked unit)) Equal to Footman
                                (Unit-type of (Picked unit)) Equal to Knight
                    Then - Actions
                        Unit - Remove (Picked unit) from the game
                    Else - Actions


Джас:
Код:
function Trig_Trigger_G_Conditions takes nothing returns boolean
    if ( not ( GetUnitTypeId(GetDyingUnit()) == 'hhou' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Trigger_G_Func001Func001Func002C takes nothing returns boolean
    if ( ( GetUnitTypeId(GetEnumUnit()) == 'hfoo' ) ) then
        return true
    endif
    if ( ( GetUnitTypeId(GetEnumUnit()) == 'hkni' ) ) then
        return true
    endif
    return false
endfunction

function Trig_Trigger_G_Func001Func001C takes nothing returns boolean
    if ( not Trig_Trigger_G_Func001Func001Func002C() ) then
        return false
    endif
    return true
endfunction

function Trig_Trigger_G_Func001A takes nothing returns nothing
    if ( Trig_Trigger_G_Func001Func001C() ) then
        call RemoveUnit( GetEnumUnit() )
    else
    endif
endfunction

function Trig_Trigger_G_Actions takes nothing returns nothing
    call ForGroupBJ( GetUnitsInRangeOfLocAll(512, GetUnitLoc(GetDyingUnit())), function Trig_Trigger_G_Func001A )
endfunction

//===========================================================================
function InitTrig_Trigger_G takes nothing returns nothing
    set gg_trg_Trigger_G = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Trigger_G, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_Trigger_G, Condition( function Trig_Trigger_G_Conditions ) )
    call TriggerAddAction( gg_trg_Trigger_G, function Trig_Trigger_G_Actions )
endfunction


hhou - тип здания

hfoo и hkni' - типы юнитов.
Вроде так
Старый 22.11.2006, 01:28
free0n
Бумбарявка
offline
Опыт: 4,736
Активность:
GadenbIsh Огромное человеческое спасибо! Тему можно клоз!
Старый 22.11.2006, 01:43
GadenbIsh
Просто Гад
offline
Опыт: 70,430
Активность:
Пожалуйста.
Старый 22.11.2006, 01:46
Закрытая тема

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

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

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

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



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