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

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

Ответ
 
0pJl9lTa

offline
Опыт: 2,997
Активность:
Спел с использованием RB
Буду делать первый спел с RB
А вы мне надеюсь в этом поможете. Спел заключается вот в чем. Должен создоваться тригер, с событием каждые 0.04 сек. Который должен перемещать героя, использовавший спел в течении 10 сек. Я сделал на ГУИ, со вставки кустом скрипта. У меня он является мультинстанс, но трубет 1 глоб. переменную типа группа. Я хочу вообще без нее, и так мой код. Вот что я смог сделать для спела конечног оварианта.
Событие и проверка есть, пишу тока действия.
function H2I takes handle h, integer a returns integer
return h
return 0
endfunction
function tr_Actions takes nothing returns nothing
Тут простое перемещение
endfunction
function Trig_GreenFlash_Actions takes nothing returns nothing
local unit cast = GetSpellAbilityUnit()
local integer a
local location loc
local location loca = GetUnitLoc(cast)
local player p = GetOwningPlayer(cast)
local trigger tr = CreateTrigger ()
call StoreInteger (cashe, XXX, "casting", H2I(GetAbilitySpellUnit())
call TriggerRegisterTimerEventPeriodic( tr, 0.03 )
call TriggerAddAction(tr, function tr_Actions )
endfunction
Так вот теперь вопросы.
1 Как правилно сохранить юнита в кеш?
2 Как его извлеч в др. триге.
Старый 14.01.2006, 23:23
Медведь
ФффыррфррфффФФфф!
offline
Опыт: 21,702
Активность:
GetStoredIntegerBJ ([u]string[/i] key, [u]string[/i] missionKey, [u]gamecache[/i] cache) returns integer - Если ты спрашивал об этом...

А меня вот что интересует - в читающий триггер нужно будет передать интегер (чтобы узнать, откуда читать указатель на юнита) Так вот - как это сделать? Ведь на это понадобится глобалка...
Старый 14.01.2006, 23:45
zibada

offline
Опыт: отключен
http://xgm.guru/articles.php?section=wc3&name=using_game_cache_with_jass
там, в частности, разобрано, как делать передачу значений между периодическими вызовами одного триггера и их инициализацию...

DimonT добавил:
Медведь
очевидно так (если не использовать функции-обертки типа get_object_iparam, SetHandleInt или как там их еще можно назвать):
call StoreInteger(udg_cache, I2S(H2I(tr)), "key", value)
где tr - локальный триггер, который мы только что создали;

чтение из самого триггера:
GetStoredInteger(udg_cache, I2S(H2I(GetTriggerringTrigger())), "key")


со вспомогательными функциями проще:
set_object_iparam(tr, "key", value)
get_object_iparam(GetTriggeringTrigger(), "key")

коды функций есть все в той же статье.
Старый 15.01.2006, 01:45
Медведь
ФффыррфррфффФФфф!
offline
Опыт: 21,702
Активность:
DimonT Спасибо!
Старый 15.01.2006, 01:59
0pJl9lTa

offline
Опыт: 2,997
Активность:
DimonT Пасиб большое.
Старый 15.01.2006, 09:19
Ответ

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

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

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

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



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