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

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

Закрытая тема
 
VIRUS_97

offline
Опыт: 389
Активность:
Проблема в коде
По идее при применении спелла должны создаваться вертолёты, лететь к точке применения и бомбить её.
Вертолёты создаются, но не двигаются с места ((
» код
((код jass
function Trig_air_craft_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A005' ) ) then
return false
endif
return true
endfunction
scope AirStrike{
private nothing r(){
RemoveUnit(GetEnumUnit())
}
private function Remove takes nothing returns nothing
timer t = GetExpiredTimer()
group g = LoadGroupHandle(AirCraft,GetHandleId(t),1)
ForGroupBJ( g, function r )
endfunction
private function GetSpell takes nothing returns nothing
BJDebugMsg("t")
IssuePointOrderLocBJ( GetEnumUnit(), "clusterrockets", LoadLocationHandle(AirCraft,1,1) )
endfunction
hashtable AirCraft = InitHashtable()
private function Trig_air_craft_Actions takes nothing returns nothing
CreateNUnitsAtLocFacingLocBJ( GetUnitAbilityLevelSwapped('A005', GetTriggerUnit()), 'h002', GetTriggerPlayer(), GetRectCenter(gg_rct________________008), GetUnitLoc(GetTriggerUnit()) )
group g = GetLastCreatedGroup()
location l = GetSpellTargetLoc()
ForGroupBJ( g, function GetSpell )
timer t = CreateTimer()
SaveLocationHandle(AirCraft,1,1,l)
SaveGroupHandle(AirCraft,GetHandleId(t),1,g)
TimerStart(t,DistanceBetweenPoints(GetRectCenter(gg_rct________________008), l),false,function Remove)
g = null
RemoveLocation(l)
l = null
endfunction

===========================================================================
function InitTrig_air_craft takes nothing returns nothing
set gg_trg_air_craft = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_air_craft, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_air_craft, Condition( function Trig_air_craft_Conditions ) )
call TriggerAddAction( gg_trg_air_craft, function Trig_air_craft_Actions )
endfunction
}
))
P.S. Debug сообщение выводится корректно
Старый 15.03.2011, 17:03
Hanabishi
COOL STATUS
offline
Опыт: отключен
alexprey, хотя да, нормально устанавливается (я с cjass не работал так, привык стандартно локалки объявлять)
RemoveLocation(l)
ты уничтожаешь точку, а потом пытаешься её использовать
делай это после отдачи приказа
Старый 15.03.2011, 18:36
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
VIRUS_97, кст да. Ты сперва сохраняешь локацию, а потом удаляешь её из памяти. Удалять следует только в том случае, если уже не требуется эта переменная.
Старый 15.03.2011, 18:53
Закрытая тема

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

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

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

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



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