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

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

Ответ
 
AAOC

offline
Опыт: 524
Активность:
Как запретить тим кил?
темой всё сказано для тех кто в танке повторяю: Как сделать так чтобы нельзя было убивать союзников?
Старый 12.11.2009, 21:36
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
function somefunc takes nothing returns nothing
    local unit a = GetAttacker()
    call IssueImmediateOrderById(a,851972)
    set a = null
endfunction
это при условии not(IsUnitEnemy(GetAttacker(),GetOwningPlayer(GetTriggerUnit()))) и ивенте unit_attacked
Старый 12.11.2009, 21:43
Killer574
Временно присутствующий.
offline
Опыт: 3,373
Активность:
вроде бы иногда юнит успевает провести атаку по крайней мере раньше в мультиплеере замечал, поэтому лучше паузить юнита, стопить и анпаузить.

Отредактировано alexkill, 13.11.2009 в 10:42.
Старый 13.11.2009, 09:23
GoblinKing

offline
Опыт: 115
Активность:
А что если потавить разрешенные цели: герои, враги.. союзники в этом случае будут как недопустимые цели..
Старый 13.11.2009, 09:33
Killer574
Временно присутствующий.
offline
Опыт: 3,373
Активность:
GoblinKing, может я криво проверял, но не работает.
Старый 13.11.2009, 10:00
Nekit1234007

offline
Опыт: 11,916
Активность:
Создаёшь триг FF и копипасть это:
Код:
function Break takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local unit a=GetAttacker()
    local player p=GetOwningPlayer(a)
    local real hp=GetWidgetLife(u)

    local real r=25.

    if IsUnitAlly(u,p) and hp>=.405 and hp/GetUnitState(u,UNIT_STATE_MAX_LIFE)*100.>=r then
        call IssueImmediateOrderById(a,851972)
    endif

    set u=null
    set a=null
endfunction

function InitTrig_FF takes nothing returns nothing
    local trigger t=CreateTrigger()
    local integer i=0

    loop
        call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_ATTACKED,null)
        set i=i+1
        exitwhen(i==16)
    endloop

    call TriggerAddAction(t,function Break)

    set t=null
endfunction
Вместо 25. можешь поставить свой процент хп атакованного юнита, при котором его можно будет атаковать (aka денайдить)
Старый 13.11.2009, 10:08
AAOC

offline
Опыт: 524
Активность:
У тебя случайно нет карты с этим триггером? А то буквы в глазах плывут...
[+] замечание от alexkill: 1.3 (учим *русский* язык)

Отредактировано alexkill, 13.11.2009 в 12:05.
Старый 13.11.2009, 11:36
V_1_R_U_S
Небезопасный!
offline
Опыт: 3,596
Активность:
вот вчерашняя тем а с этим вопросом, что трудно заглянуть в друие темы не говоря уже о пойске.
Старый 13.11.2009, 12:09
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
вроде бы иногда юнит успевает провести атаку
бред, этот ивент срабатывает всегда в момент замахивания юнита оружием, до самой атаки есть еще куча времени, чтобы сбросить приказ.
Старый 13.11.2009, 14:02
Ответ

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

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

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

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



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