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

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

Ответ
 
Anthrax
Level 8
offline
Опыт: 4,850
Активность:
ошибка в коде
я только начал осваивать жасс, и не пойму почему неработает способность
я скапировал код из опен доты 6.41, и заменил там некоторые значения, карта сохраняется и работает нормально, но сам тригер почемуто не работает
Смысл тригера: юнит получает урон, и там шанс востановить здоровье (BackTrack из доты)
Код:
// Objects used:
// 'A00Q' = Backtrack (Faceless Void : Darkterror)
function Trig_Backtrack_Conditions takes nothing returns boolean
return GetLearnedSkill()=='A00Q'and IsUnitIllusion(GetTriggerUnit())==false
endfunction

function Backtrack_Main takes nothing returns nothing
local unit lfo=GetTriggerUnit()
local real lf7=GetEventDamage()
if(lf7>0)then
if(GetRandomInt(1,100)<=(70+(5*GetUnitAbilityLevel(lfo,'A00Q'))))then
call SetUnitState(lfo,UNIT_STATE_LIFE,GetUnitState(lfo,UNIT_STATE_LIFE)+lf7*2)
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\WingedSerpentMissile\\WingedSerpentMissile.mdl",lfo,"chest"))
endif
endif
endfunction

function Trig_Backtrack_Actions takes nothing returns nothing
local trigger ltt
if GetUnitAbilityLevel(GetTriggerUnit(),'A00Q')==1 then
set ltt=CreateTrigger()
call TriggerRegisterUnitEvent(ltt,GetTriggerUnit(),EVENT_UNIT_DAMAGED)
call TriggerAddAction(ltt,function Backtrack_Main)
endif
endfunction

function StartTrigger_Backtrack takes nothing returns nothing
set gg_trg_Backtrack=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Backtrack,EVENT_PLAYER_HERO_SKILL)
call TriggerAddCondition(gg_trg_Backtrack,Condition(function Trig_Backtrack_Conditions))
call TriggerAddAction(gg_trg_Backtrack,function Trig_Backtrack_Actions)
endfunction

function InitTrig_Backtrack takes nothing returns nothing
endfunction
Старый 14.04.2009, 22:03
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Попробуй так.
» code
Код:
// Objects used:
// 'A00Q' = Backtrack (Faceless Void : Darkterror)
function Trig_Backtrack_Conditions takes nothing returns boolean
return GetLearnedSkill()=='A00Q'and IsUnitIllusion(GetTriggerUnit())==false
endfunction

function Backtrack_Main takes nothing returns nothing
local unit lfo=GetTriggerUnit()
local real lf7=GetEventDamage()
if(lf7>0)then
if(GetRandomInt(1,100)<=(70+(5*GetUnitAbilityLevel(lfo,'A00Q'))))then
call SetUnitState(lfo,UNIT_STATE_LIFE,GetUnitState(lfo,UNIT_STATE_LIFE)+lf7*2)
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\WingedSerpentMissile\\WingedSerpentMissile.mdl",lfo,"chest"))
endif
endif
endfunction

function Trig_Backtrack_Actions takes nothing returns nothing
local trigger ltt
if GetUnitAbilityLevel(GetTriggerUnit(),'A00Q')==1 then
set ltt=CreateTrigger()
call TriggerRegisterUnitEvent(ltt,GetTriggerUnit(),EVENT_UNIT_DAMAGED)
call TriggerAddAction(ltt,function Backtrack_Main)
endif
endfunction

function StartTrigger_Backtrack takes nothing returns nothing
set gg_trg_Backtrack=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Backtrack,EVENT_PLAYER_HERO_SKILL)
call TriggerAddCondition(gg_trg_Backtrack,Condition(function Trig_Backtrack_Conditions))
call TriggerAddAction(gg_trg_Backtrack,function Trig_Backtrack_Actions)
endfunction

function InitTrig_Backtrack takes nothing returns nothing
call StartTrigger_Backtrak()
endfunction
Старый 14.04.2009, 22:46
Anthrax
Level 8
offline
Опыт: 4,850
Активность:
РАБОТАЕТ!!!
А почему в тригере ДОТЫ, небыло строк:
function InitTrig_Backtrack takes nothing returns nothing
call StartTrigger_Backtrack()
endfunction
Старый 14.04.2009, 23:00
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Anthrax, очевидно он там запускался из какого-то своего кода, который инициализировал все триггеры. Вообще можешь просто скопировать все внутренности функции StartTrigger_Backtrack в функцию InitTrig_Backtrack, разумеется удалив то, что я добавил. И тогда будет меньше кода, а работать будет так же.
Старый 14.04.2009, 23:08
Anthrax
Level 8
offline
Опыт: 4,850
Активность:
Можеш поподробнее???
Я только начал работать с жассом
Старый 14.04.2009, 23:08
Ответ

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

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

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

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



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