Решил написать и сразу перевести в нормальное состояние вот такой код.
Герой использует на союзнике способность, союзнику дается перерождение и вешается спецэффект на грудь( сияние типа броня) действует пока он жив. Когда умирает, то воскрешается и спецэффект удаляется. Все примитивно просто, но возникли большие проблемы в правильностью написания кода. Именно ошибки в самом синтаксисе
Герой использует на союзнике способность, союзнику дается перерождение и вешается спецэффект на грудь( сияние типа броня) действует пока он жив. Когда умирает, то воскрешается и спецэффект удаляется. Все примитивно просто, но возникли большие проблемы в правильностью написания кода. Именно ошибки в самом синтаксисе
- Ругается на то, что локальную 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
Принятый ответ
Ориентируюсь по образцу: Модель, виджет, точки крепления
Но я честно не знаю, как правильно присваивать спецэффект кодом именно с локальной!Сам написал ответ и сам указал в коде по другому :D
Первый параметр - модель. Не юнит, а модель.set bj_lastCreatedEffect = AddSpecialEffectTarget("manaFlareTarget.mdx", u, "chest")
Надоело уже страдать. Пусть будет как у Лоха через bj по другому я просто не могу понять!
call AddSpecialEffectTargetUnitBJ( "chest", u, "ManaFlareTarget.mdx" )
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. konvan5
Не путаем контексты)
custom script как бы никто не отменял
Вот мы такие тупые значит. Если бы все было так просто, может люди и исходный движок Варика давно крякнули, чтобы заменить там оригинальный на чистый си и тогда бы все уже зажили по другому, и гуишники в том числе. Я за пять лет знакомства с редактором не смог даже джас понять, а кто -то может, редакторы делает, кто - то "затемнение" черт бы его побрал, чтобы автозамену глобалок на локалки делать, одного парня знал, который свои типы атак и защиты писал, то же удЖапи, вон какие чудеса мемхачит, правда запускается через отдельный лаунчер, но что поделаешь.