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

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

Закрытая тема
 
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
TriggerAddActions
Добрый день.
Хотел бы узнать узнать поподробнее об этой функции вызова действия
Из стандартных манипуляций\конвертаций в текст, этой функцией в триггер в функции инит вызывается действие.
Вопрос:
1)правильно ли я описал ф-цию
2)вызов ее в других вариантах как правильно осуществлять
3)попробовал вызов через кондишн, почему то не вышло;
объясните пожалуйста почему
Код:
function Trig_SmUdar_Actions takes nothing returns nothing
endfuntion

function Trig_Avoid_Actions takes nothing returns nothing
endfuntion

function Trig_Avoid_Conditions takes nothing returns boolean
    call BJDebugMsg("Begin COndition")
if GetUnitAbilityLevel(GetTriggerUnit(),'A01Z')>0 and GetRandomInt(1,100)<=r1 then
    call TriggerAddAction(gg_trg_Avoid,function Trig_Avoid_Actions)
    call BJDebugMsg("AVOID")
elseif GetUnitAbilityLevel(GetAttacker(),'A01X')>0 and IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE)==false and IsUnitEnemy(GetTriggerUnit(),GetOwningPlayer(GetAttacker()))and GetRandomInt(1,100)<=r2 then
    call TriggerAddAction(gg_trg_Avoid,function Trig_SmUdar_Actions)
    call BJDebugMsg("HOOK")
endif
return false
endfunction
//===========================================================================
function InitTrig_Avoid takes nothing returns nothing
    set gg_trg_Avoid = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Avoid,EVENT_PLAYER_UNIT_ATTACKED)
    call TriggerAddCondition(gg_trg_Avoid, Condition( function Trig_Avoid_Conditions))
endfunction
// gde r1,r2 moy integer

ифы все проходят как нужно, только действие не включатеся =\, обьясните.
Описание: до этого триггер был написан на двух триггерах(событие юнит атакован), но вероятность выпадения не устраивала, для этого и перенес в один
Старый 22.03.2010, 22:33
ScorpioT1000
Работаем
offline
Опыт: отключен
это очень бредово написанный триггер, советую посмотреть как это работает на ГУИ
Старый 22.03.2010, 22:41
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
4)или же мне нужно было также оставить стандартом в ините адд акшн, и просто добавить второе если достоверно условие? (вообщем проверю =\)

AlexKARASb добавил:
ScorpioT1001, это очень неопытно сляпаный триггер вместе
как на гуи тоже проверю спасибо за совет

AlexKARASb добавил:
ScorpioT1001, беру свои слова назад, это действительно был бред
изменил
нашел 2 варианта исполнения

1)твой совет на гуи
2)ор в ретурне
последний вопрос:
5)какой нуи слово подобрал =\ я быстрее?
Старый 22.03.2010, 22:48
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
1) Что за "ор в ретурне" ?
2) Эта функция добавляет действия к триггеру. Они запустятся тогда, когда запустится триггер. Если он уже запущен, то действия не запустятся, если триггер ещё раз не запустится.
Старый 22.03.2010, 22:53
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
ну вообщем спасибо тему можно закрыть
впредь постараюсь подумать прежде чем писать вопрос

AlexKARASb добавил:
return условие для 1 адд Актионс *or* условие для второй адд Актионс
Старый 22.03.2010, 22:54
Закрытая тема

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

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

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

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



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