FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975
Активность:
|
Trigger ругается на local unit :(
триггер сделан через custom scripts
function Trig_Spell_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
endfunction
function Trig_Spell_Func007Func001C takes nothing returns boolean
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), udg_DB_Item[udg_ED]) == true ) ) then
return false
endif
if ( not ( R2I(LoadRealBJ(2, udg_ED, GetLastCreatedHashtableBJ())) != 0 ) ) then
return false
endif
return true
endfunction
function Trig_Spell_Func008Func001C takes nothing returns boolean
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), udg_DB_Item[udg_ED]) == true ) ) then
return false
endif
if ( not ( LoadRealBJ(( 30 + udg_Cur_Cast_Spell_Ele[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] ), udg_ED, udg_ITEM_STATS) != 0.00 ) ) then
return false
endif
return true
endfunction
function Trig_Spell_Func009Func001C takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetTriggerUnit(), udg_ED_BUFF[udg_ED]) == true ) ) then
return false
endif
return true
endfunction
function Trig_Spell_Func011Func001C takes nothing returns boolean
if ( not ( UnitHasItemOfTypeBJ(GetTriggerUnit(), udg_DB_Item[udg_ED]) == true ) ) then
return false
endif
if ( not ( LoadRealBJ(( 20 + udg_Cur_Cast_Spell_Ele[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] ), udg_ED, udg_ITEM_STATS) >= 10 ) ) then
return false
endif
return true
endfunction
function Trig_Spell_Func013001 takes nothing returns boolean
return ( udg_ICS_CASTED[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] == true )
endfunction
function Trig_Spell_Func019001003 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) != true )
endfunction
function Trig_Spell_Func019A takes nothing returns nothing
set udg_Enum = GetEnumUnit()
set victim = udg_Enum
call MakeEleDamage(u, victim, dmg, ele)
set udg_Enum = null
set victim = null
endfunction
function Trig_Spell_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local real dmg = 0
local integer ele = 1
local unit victim
set udg_TT_point = GetSpellTargetLoc()
set udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = ( 15.00 + ( 10.00 * I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ) )
set udg_ED = 1
loop
exitwhen udg_ED > udg_DB_ITEMCOUNT
if ( Trig_Spell_Func007Func001C() ) then
set udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = ( ( udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] / 100.00 ) * ( 100.00 + LoadRealBJ(2, udg_ED, udg_ITEM_STATS) ) )
else
endif
set udg_ED = udg_ED + 1
endloop
set udg_ED = 1
loop
exitwhen udg_ED > udg_DB_ITEMCOUNT
if ( Trig_Spell_Func008Func001C() ) then
set udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = ( ( udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] / 100.00 ) * ( 100.00 + LoadRealBJ(( 30 + udg_Cur_Cast_Spell_Ele[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] ), udg_ED, udg_ITEM_STATS) ) )
else
endif
set udg_ED = udg_ED + 1
endloop
set udg_ED = 1
loop
exitwhen udg_ED > udg_EDB
if ( Trig_Spell_Func009Func001C() ) then
set udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = ( ( udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] / 100.00 ) * ( 100.00 + udg_ED_BUFF_COUNT[udg_ED] ) )
else
endif
set udg_ED = udg_ED + 1
endloop
set udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = ( udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] * ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true)) / 5.00 ) )
set udg_ED = 1
loop
exitwhen udg_ED > udg_DB_ITEMCOUNT
if ( Trig_Spell_Func011Func001C() ) then
set udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = ( udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] + LoadRealBJ(( 20 + udg_Cur_Cast_Spell_Ele[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] ), udg_ED, udg_ITEM_STATS) )
else
endif
set udg_ED = udg_ED + 1
endloop
set dmg = udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(u))]
loop
exitwhen ( Trig_Spell_Func013001() )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 0.10))
endloop
set udg_ELE_DMG_TYPE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 1
call AddSpecialEffectLocBJ( udg_TT_point, "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
call DestroyEffectBJ( GetLastCreatedEffectBJ() )
call AddSpecialEffectLocBJ( udg_TT_point, "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
call DestroyEffectBJ( GetLastCreatedEffectBJ() )
call ForGroupBJ( GetUnitsInRangeOfLocMatching(250.00, udg_TT_point, Condition(function Trig_Spell_Func019001003)), function Trig_Spell_Func019A )
call CreateTextTagLocBJ( ( I2S(R2I(udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])) + udg_String_ele[udg_ELE_DMG_TYPE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]] ), udg_TT_point, 60.00, 11.00, 100.00, 70.00, 0.00, 0 )
call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 0.60 )
call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 0.60 )
call SetTextTagAgeBJ( GetLastCreatedTextTag(), 0.00 )
call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 10.00, 90 )
call RemoveLocation(udg_TT_point)
set udg_ICS_CASTED[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = false
set udg_MAGIC_DAMAGE[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 0.00
set u = null
endfunction
//===========================================================================
function InitTrig_Spell takes nothing returns nothing
set gg_trg_Spell = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Spell, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Spell, Condition( function Trig_Spell_Conditions ) )
call TriggerAddAction( gg_trg_Spell, function Trig_Spell_Actions )
endfunction
Отредактировано ScorpioT1000, 02.11.2010 в 00:58.
|