Как сделать так,что бы локальный юнит ссылался из одного триггера в другой?
И попутный вопрос: Допустим у меня есть функция которая берет неизвестный юнит(takes unit u), то как ее вызвать так,что бы неизвестный юнит задавался локальным из триггера?
P.S. Я это спрашиваю потому что для того что мне нужно,надо что бы из 1-го триггера локальный юнит ссылался на 2-ой,а из 2-го в функцию.

Принятый ответ

silence_AZ,
Вот вам пример, идите разбирайте его и читайте все статьи, что есть.
function UnitAddEffect takes unit u, real x, real y returns nothing
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Undead\\AnimateDead\\AnimateDeadTarget.mdl", x, y))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl", GetUnitX(u), GetUnitY(u)))
endfunction

function Action takes nothing returns nothing
    local unit u = GetOrderedUnit()
    local real x = GetOrderPointX()
    local real y = GetOrderPointY()
    call UnitAddEffect(u, x, y)
endfunction

function InitTrig_Effect takes nothing returns nothing
    local trigger t = CreateTrigger()
    local integer i = 0
    loop
        call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, null)
        set i = i + 1
        exitwhen i == 16
    endloop
    call TriggerAddAction( t, function Action )
endfunction
Создайте триггер "Effect", конвертируйте в текст, удалите все что там есть, копирните и вставьте мое, запускайте карту и побегайте юнитами.
То что я написал можно и нужно оптимизировать, но так как вам нужен пример создания пользовательский функций, то я сделал именно так.
Вот на всякий случай оптимизированный вариант.
cJass
    define{
        func = function
        void = nothing
        GetX(u) = GetUnitX(u)
        GetY(u) = GetUnitY(u)
        //Constants
        Effect_OnUnit = "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl"
        Effect_OnXY = "Abilities\\Spells\\Undead\\AnimateDead\\AnimateDeadTarget.mdl"
    }

    void Action(){
        unit u = GetOrderedUnit();
        DestroyEffect(AddSpecialEffect(Effect_OnXY, GetOrderPointX(), GetOrderPointY()));
        DestroyEffect(AddSpecialEffect(Effect_OnUnit, GetX(u), GetY(u)));
    }

    void InitTrig_Effect(){
        trigger t = CreateTrigger()
        integer i = 0
        loop{
            TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER, null);
            i++;
            exitwhen i == 16;
        }
        TriggerAddAction( t, func Action );
    }
этот вариант будет оптимальнее в туче кода, хоть такая фигня и не нужна никому, но тем не менее..
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
10 лет назад
Отредактирован Buulichkaa
0
удалите то что после mdl и до запятой, это автоматом вставляется на сайте
вот код файлом
Создайте триггер Effect и вставьте туда код из файла, а то тут появляются символы из html
Загруженные файлы
0
9
10 лет назад
0
Buulichkaa:
удалите то что после mdl и до запятой, это автоматом вставляется на сайте
вот код файлом
Вот там указано "DestroyEffect" значит удалить я так понял?
(если удалить то откуда тогда он возьмется?
0
28
10 лет назад
0
Buulichkaa, тебе не надоело?
это ведь всё в статьях есть
0
21
10 лет назад
0
nvc123, модер жи -_-
секретность наше все
надоело
silence_AZ, пожалуйста, вставьте в игру, убедитесь что все работает
и посмотрите что стоит в ()
0
9
10 лет назад
0
Buulichkaa:
nvc123, модер жи -_-
секретность наше все
надоело
silence_AZ, пожалуйста, вставьте в игру, убедитесь что все работает
и посмотрите что стоит в ()
Я то вставил,но как это все вызвать?
0
28
10 лет назад
0
Buulichkaa, если бы в прочее такое началось я бы удалил вопрос
silence_AZ, объясни мне
какого чёрта ты не читаешь статьи и игнорируешь всё что тебе пишут
это что троллинг?
0
21
10 лет назад
Отредактирован Buulichkaa
0
silence_AZ, это уже шуточки пошли? лол делаете триггер Effect удаляете все что в нем есть, вставляете код из файла, расставляете юнитов на карте, и попробуйте ними походить.
Госпадзе какой jass...
nvc123, Ну надо же чтоб он наконец-то допер?
0
9
10 лет назад
0
nvc123:
Buulichkaa, если бы в прочее такое началось я бы удалил вопрос
silence_AZ, объясни мне
какого чёрта ты не читаешь статьи и игнорируешь всё что тебе пишут
это что троллинг?
В статьях не указано как переместить локальную переменную из одного триггера в другой не используя глобальные
0
21
10 лет назад
0
silence_AZ, это как бы надежда на то что до вас и так дойдет -___- не учите джасс
0
28
10 лет назад
0
silence_AZ, из триггера?
никак
триггер это отдельный поток
между потоками нельзя передавать локальные данные
Buulichkaa, ответ дан и не 1,закрой вопрос
0
21
10 лет назад
0
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.