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

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

Ответ
 
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
Отсутствует сивол '
Выкладываю функцию целиком.
Замысел - поджег который будет наносить цели урон в течении 5 секунд с момента поджега. Ошибку выдает на всех строках связанных с запуском таймера.
((код JASS
function BurnUnitFS takes unit c, unit v, integer i returns nothing
local effect e
local real dmg = 0
local timer t1 = CreateTimer()
local timer t2 = CreateTimer()
local timer t3 = CreateTimer()
local timer t4 = CreateTimer()
local timer t5 = CreateTimer()
local timer Ef = CreateTimer()
call AddSpecialEffectTargetUnitBJ( "chest", v, "Abilities\\Spells\\Other\\BreathOfFire\\BreathOfFireDamage.mdl" )
set e = GetLastCreatedEffectBJ()
call TimerStart(Ef,ix, function DestroyEffectBJ(e))
call SaveUnitHandle(udg_Hashtable_Spells, GetHandleId(t1), 0, v)
call TimerStart(t1, 1.0, function burn(c,v,i))
call SaveUnitHandle(udg_Hashtable_Spells, GetHandleId(t2), 0, v)
call TimerStart(t2, 2.0, function burn(c,v,i))
call SaveUnitHandle(udg_Hashtable_Spells, GetHandleId(t3), 0, v)
call TimerStart(t3, 3.0, function burn(c,v,i))
call SaveUnitHandle(udg_Hashtable_Spells, GetHandleId(t4), 0, v)
call TimerStart(t4, 4.0, function burn(c,v,i))
call SaveUnitHandle(udg_Hashtable_Spells, GetHandleId(t5), 0, v)
call TimerStart(t5, 5.0, false, function burn(c,v,i))
endfunction
))

Отредактировано X, 03.11.2010 в 16:38.
Старый 03.11.2010, 16:23
Doc

offline
Опыт: 63,163
Активность:
FKoFF, ахаххаа, разбежался запускать из таймера с аргументами.
Doc добавил:
FKoFF, по твоему хеш тогда на что?
Старый 03.11.2010, 16:24
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
и как это по твоему в таком случае должно выглядить?
((код JASS
call SaveUnitHandle(udg_Hashtable_Spells, GetHandleId(t1), 0, c)
call SaveUnitHandle(udg_Hashtable_Spells, GetHandleId(t1), 1, v)
call SaveInteger(udg_Hashtable_Spells, GetHandleId(t1), 0, i)
call TimerStart(t1, 1.0, function burn)
))
а саму функцию перепаять на
((код JASS
function burn takes nothing returns nothing
local timer t = GetExiredTimer()
local unit c = LoadUnitHandle(udg_Hashtable_Spells, GetHandleId(t), 0)
local unit v = LoadUnitHandle(udg_Hashtable_Spells, GetHandleId(t), 1)
local integer i = LoadInteger(udg_Hashtable_Spells, GetHandleId(t), 0)
))
действия на базе локалок
чистка локалок
endfunction
я правильно понимаю?

Отредактировано X, 03.11.2010 в 16:38.
Старый 03.11.2010, 16:30
Nekit1234007

offline
Опыт: 11,916
Активность:
Ага. Но только этот твой интегер i нужно на 2ую ячейку, а не на 0евую. Советую почитать.
Старый 03.11.2010, 16:34
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
FKoFF, очень похоже на правду. Ставь, пожалуйста, теги для выделения кода.
Старый 03.11.2010, 16:35
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
Отлично. Поехали к следующей теме.
Старый 03.11.2010, 16:53
Ответ

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

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

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

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



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