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

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

Ответ
 
ZeToX2007

offline
Опыт: 7,009
Активность:
Скрытый патруль
Название говорит само за себя, дает дополнительное место для 1 скила.

Для импорта требуется:
1. JassNewGenPack

2. Скопировать единственный триггер LIB себе в карту
3. Извлечь и скопировать 2 текстовых файла, по такому же пути, в свою карту
4. Отключить всем нужным юнитам "показать UI" в РО

» code

Код:
library Patrol  initializer Init
    globals
        trigger TR = CreateTrigger()
        hashtable HT = InitHashtable()
        group  GR = CreateGroup()
        unit Max = null
        unit uuu = null
        item Max2= null
        real Record = 0
        real M_x1 = 0
        real M_y1 = 0
    endglobals

    function ItemFilter takes nothing returns boolean
        local item u = GetFilterItem()
        local real dist = SquareRoot((GetItemX(u)-M_x1)*(GetItemX(u)+M_x1) + (GetItemY(u)+M_y1)*(GetItemY(u)+M_y1))
        if dist > Record then
            set Record = dist
            set Max2 = u
        endif
        return false
    endfunction

    
    function UnitFilter takes nothing returns boolean
        local unit u = GetFilterUnit()
        local real dist = SquareRoot((GetUnitX(u)-M_x1)*(GetUnitX(u)+M_x1) + (GetUnitY(u)+M_y1)*(GetUnitY(u)+M_y1))
        if dist > Record and IsUnitEnemy(u,GetOwningPlayer(uuu)) then
            set Record = dist
            set Max = u
        endif
        return false
    endfunction

    function Cond takes nothing returns boolean
        return  OrderId2String(GetIssuedOrderId()) == "patrol" 
    endfunction

    function TrigAn takes nothing returns nothing
        local timer t = GetExpiredTimer()
        local unit u = LoadUnitHandle(HT,GetHandleId(t),3)
        local real x = LoadReal(HT,GetHandleId(t),1)
        local real y = LoadReal(HT,GetHandleId(t),2)
        local boolexpr bl= Filter(function UnitFilter)
        local rect recct
        set M_x1 = x
        set M_y1 = y
        set uuu =  u
     
        call GroupEnumUnitsInRange(GR,x,y,50,bl)
        
        if Max != null then
            call IssueTargetOrder(u, "attack", Max)
        else
            
            set recct = Rect(x-65,y-65,x+65,y+65)
            call EnumItemsInRect(recct,null, function ItemFilter)
            call RemoveRect(recct)
            if Max2 != null then
                call IssueTargetOrder(u, "attack", Max2)
            else
                call IssuePointOrder(u,"attack",x,y)
            endif
        endif
        set Max = null
        set Record = 0
        set Max2 = null
        call FlushChildHashtable(HT,GetHandleId(t))
        call DestroyTimer(t)
        call DestroyBoolExpr(bl)
        set bl = null
        set u = null
        set recct = null
        set t = null
    endfunction
    

        
    function MAIN takes nothing returns nothing
        local timer t
        if GetOrderTargetUnit() != null then
            call IssueTargetOrder(GetTriggerUnit(), "attack", GetOrderTargetUnit() )
        else
        set t = CreateTimer()
        call SaveReal(HT,GetHandleId(t),1,GetOrderPointX())
        call SaveReal(HT,GetHandleId(t),2,GetOrderPointY())
        call SaveUnitHandle(HT,GetHandleId(t),3,GetTriggerUnit())
        call TimerStart(t,0.0,false,function TrigAn)

        endif
        

    
    endfunction
    
    
    function Init takes nothing returns nothing
        local integer i = 0
  
 

        loop
            exitwhen i>=11
            call TriggerRegisterPlayerUnitEvent(TR,Player(i),EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDE  R,null)
            call TriggerRegisterPlayerUnitEvent(TR,Player(i),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)  
            call TriggerRegisterPlayerUnitEvent(TR,Player(i),EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER  ,null)
            set i = i+1
        endloop
        call TriggerAddCondition(TR, Condition( function Cond ) )
        call TriggerAddAction( TR, function MAIN )
    
    
    endfunction

endlibrary





Прикрепленные файлы
Тип файла: w3x DelPatr.w3x (25.0 Кбайт, 115 просмотров )

Отредактировано Msey, 22.02.2012 в 19:05.
Старый 22.02.2012, 18:27
Msey
????
offline
Опыт: 67,346
Активность:
В натуре четко, никогда бы до такого не додумался
5 баллов )
[+] замечание от Msey: самоуправство, пардон >_<
Старый 22.02.2012, 18:55
Ответ

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

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

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

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



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