Добавлен SсRealm
Виджет, эффект над головой персонажа не отображается.
По идее должен быть имя, виджет и аттач, но в таком порядке варик ругается.
Написал как аттач, имя и виджет. В таком виде ошибки нет, но виджет не отображается на персонаже, в чем моя ошибка?
По идее должен быть имя, виджет и аттач, но в таком порядке варик ругается.
Написал как аттач, имя и виджет. В таком виде ошибки нет, но виджет не отображается на персонаже, в чем моя ошибка?
function Trig_CarbaneSpeedUp_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A02H' ) ) then
return false
endif
if ( not ( GetSpellAbilityUnit() == udg_Sveta ) ) then
return false
endif
return true
endfunction
if ( not ( GetSpellAbilityId() == 'A02H' ) ) then
return false
endif
if ( not ( GetSpellAbilityUnit() == udg_Sveta ) ) then
return false
endif
return true
endfunction
function Trig_CarbaneSpeedUp_Actions takes nothing returns nothing
local effect u
call UnitRemoveAbility( udg_Sveta,'A0CG')
call UnitAddAbility( udg_Sveta,'A04E' )
set bj_lastCreatedEffect = AddSpecialEffectTarget( "overhead", udg_Sveta, "Buff_Speed Up.mdx" )
set u = bj_lastCreatedEffect
call UnitAddAbility( udg_Sveta,'A04E' )
call WAIT_EX(20.)
call UnitRemoveAbility(udg_Sveta, 'A04E' )
call UnitAddAbility( udg_Sveta,'A0AM' )
call DestroyEffect( u)
set u = null
endfunction
local effect u
call UnitRemoveAbility( udg_Sveta,'A0CG')
call UnitAddAbility( udg_Sveta,'A04E' )
set bj_lastCreatedEffect = AddSpecialEffectTarget( "overhead", udg_Sveta, "Buff_Speed Up.mdx" )
set u = bj_lastCreatedEffect
call UnitAddAbility( udg_Sveta,'A04E' )
call WAIT_EX(20.)
call UnitRemoveAbility(udg_Sveta, 'A04E' )
call UnitAddAbility( udg_Sveta,'A0AM' )
call DestroyEffect( u)
set u = null
endfunction
===========================================================================
function InitTrig_CarbaneSpeedUp takes nothing returns nothing
set gg_trg_CarbaneSpeedUp = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_CarbaneSpeedUp, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_CarbaneSpeedUp, Condition( function Trig_CarbaneSpeedUp_Conditions ) )
call TriggerAddAction( gg_trg_CarbaneSpeedUp, function Trig_CarbaneSpeedUp_Actions )
endfunction
function InitTrig_CarbaneSpeedUp takes nothing returns nothing
set gg_trg_CarbaneSpeedUp = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_CarbaneSpeedUp, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_CarbaneSpeedUp, Condition( function Trig_CarbaneSpeedUp_Conditions ) )
call TriggerAddAction( gg_trg_CarbaneSpeedUp, function Trig_CarbaneSpeedUp_Actions )
endfunction
Принятый ответ
SсRealm, сначала
ПУТЬ
ЮНИТ(ВИДЖЕТ)
АТТАЧ
ЮНИТ(ВИДЖЕТ)
АТТАЧ
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. Netherstorm
set u = bj_lastCreatedEffect
Ред. SсRealm
Не работает, потому что в таком случаи я присваиваю локалку к необъявленному эффекту!
Ред. Netherstorm
Ред. Netherstorm
ЮНИТ(ВИДЖЕТ)
АТТАЧ
Например так
Ред. EugeAl
Просто у языков программирования есть косяк, что если переменная не обнулена сразу, то она "не имеет значения внутри себя" и если к ней что либо потом обратится, то там выйдет не 0 или не null
В принципе они не нужны. Они представляют собой добавление фильтра boolexpr, который тебе потребуется только в 2 случаях
1 - жёстко привязать проверку к событию триггера
2 - сделать аналог массива функций
Пока сложно это переварить. Но так то понятно, что проще написать если а ==b то там уже всякое, чем городить конструкции