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

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

Ответ
 
EviLInside

offline
Опыт: 3,543
Активность:
вопрос по SCV
Тока начал разбиратся с SCV есть вопрос
Короче я хочу локального юнита сохранить в кеш, и загрузить его в функции в нестандартном коде.Что для этого нужно зделать.
Вобщем щас смысл спелла расскажу , по нему зделайте карту пример плиз, очень хочу разобратся.
К локальному юниту X , приравнивается юнит-кастер , но т.к локальные действуют только в этом триггере мне нужно как то сохранить - что локальный юнит под именем X , является юнитом кастером , и нужно загрузить его в функции в нестандартном коде ( ну или в другом триггере ) коде где и начнутся дальнешие с ним действия.
Старый 22.08.2007, 18:31
Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт: 6,885
Активность:
Зачем карта-пример, можно и прям так...
» H2I+I2U

function H2I takes handle h returns integer
return h
return 0
endfunction
//=============================
function I2U takes integer i returns unit
return i
return null
endfunction

» твой спелл

function Spell takes nothing returns nothing
local unit u = GetSpellAbilityUnit()
local timer t = CreateTimer()
local real timeout = 0.01//нужное время, после которого запуститься функция SpellAction
call StoreInteger(udg_Cache, I2S(H2I(t)), "Caster", H2I(u))
call TimerStart(t, timeout, false, function SpellAction)
//...
endfunction

» для получения юнита

function SpellAction takes nothing returns nothung
local timer t = GetExpiredTimer()
local unit u = I2U(GetStoredInteger(udg_Cache, I2S(H2I(t)), "Caster"))
call DestroyTimer(t)
endfunction

Такой способ подойдет для отсроченного действия, например триггерный яд(чтобы узнать, от имени какого юнита наносить урон, в этом случае нужно создавать доп. таймер, наносящий урон, только уже периодический, а первый таймер будет считать, когда остановить 2-й таймер)
Старый 22.08.2007, 19:00
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
local real timeout = 0.01//нужное время, после которого запуститься функция SpellAction

Цитата:
call TimerStart(t, timeout, false, function SpellAction)

а не легче ли
Код:
call TimerStart(t, 0.01, false, function SpellAction)
Старый 23.08.2007, 10:46
Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт: 6,885
Активность:
ADOLF, знаю, что легче, но может тот, кому я это написал, не догадается изменить в функции TimerStart, а тут я прям написал, что это такое!
Старый 23.08.2007, 13:44
EviLInside

offline
Опыт: 3,543
Активность:
Большое спасибо , понятно всё объяснил.
Старый 23.08.2007, 20:30
Ответ

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

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

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

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



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