Решил написать и сразу перевести в нормальное состояние вот такой код.
Герой использует на союзнике способность, союзнику дается перерождение и вешается спецэффект на грудь( сияние типа броня) действует пока он жив. Когда умирает, то воскрешается и спецэффект удаляется. Все примитивно просто, но возникли большие проблемы в правильностью написания кода. Именно ошибки в самом синтаксисе
Герой использует на союзнике способность, союзнику дается перерождение и вешается спецэффект на грудь( сияние типа броня) действует пока он жив. Когда умирает, то воскрешается и спецэффект удаляется. Все примитивно просто, но возникли большие проблемы в правильностью написания кода. Именно ошибки в самом синтаксисе
- Ругается на то, что локальную u не видит, хоть она и объявлена.
- Ругается на, что заменил условие что он не мертв, на
return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
Код как он есть ниже. Заранее благодарю function
Trig_First_pit______________________2__________________________________________u_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A08B' ) ) then
return false
endif
return true
endfunction
function Trig_First_pit______________________2__________________________________________u_Func007001 takes nothing returns boolean
return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
endfunction
function Trig_First_pit______________________2__________________________________________u_Actions takes nothing returns nothing
local effect a
local unit u
set u = GetSpellTargetUnit()
call UnitAddAbility( u,'A08C' )
set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
set a = bj_lastCreatedEffect
loop
exitwhen ( Trig_First_pit______________________2__________________________________________u_Func007001() )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
endloop
call DestroyEffect (a)
set u= null
set a= null
endfunction
//===========================================================================
function InitTrig_First_pit______________________2__________________________________________u takes nothing returns nothing
set gg_trg_First_pit______________________2__________________________________________u = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_First_pit______________________2__________________________________________u, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_First_pit______________________2__________________________________________u, Condition( function Trig_First_pit______________________2__________________________________________u_Conditions ) )
call TriggerAddAction( gg_trg_First_pit______________________2__________________________________________u, function Trig_First_pit______________________2__________________________________________u_Actions )
endfunction
Видеоуроки xgm.guru/p/wc3/jass-videos
Все статьи с поиском xgm.guru/p/wc3/articles
Edited by SсRealm
Да. Главное что решили вопрос. Странно, что они смеются, хотя эти вопросы уже внутри изучения джасса, хотя до сих пор приходят ребята, которые даже гуи не понимают.
Статьи Сергея были хорошие, только его уже давно нет на хгм и многое из того, что там написано уже не актуально. К примеру он зачем то рекомендует сохранять в глобальную, потом кидать в локальную, потом возвращать назад. Не думаю, что в его время не было простого присвоения локальных.
Таким приемом мы можем гарантировать, что сколько бы файерболов не было выпущено, спецэффект будет создаваться над юнитом-целью и только над ним. Никаких сбоев не будет. Точно такой же прием с удалением спецэффекта через 3 секунды после создания. Все эти три секунды ссылка на спецэффект будет храниться в локальной переменной e. А затем мы перебросим ее значение в глобальную переменную se и удалим спецэффект....."
Edited by konvan5
Не путаем контексты)
custom script как бы никто не отменял