8uY_YoU
New Member
- Reaction score
- 4
I have no idea to fix this...
When the shielded unit (unit with Light Barrier buff) begin to takes damage, the game is crashing
Here are the converted one
When the shielded unit (unit with Light Barrier buff) begin to takes damage, the game is crashing
Trigger:
- Light Barrier
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- (Ability being cast) Equal to Light Barrier
- Actions
- Custom script: local unit t = GetSpellTargetUnit()
- Custom script: local unit c = GetTriggerUnit()
- Custom script: local real r
- Unit - Add Spell Book (30% Evasion) to (Target unit of ability being cast)
- Player - Disable Spell Book (30% Evasion) for (Owner of (Target unit of ability being cast))
- Set Real_Calculate = ((30.00 x (Real((Level of (Ability being cast) for (Triggering unit))))) + 20.00)
- Custom script: set r = udg_Real_Calculate
- Wait 0.05 seconds
- Custom script: loop
- Custom script: exitwhen (UnitHasBuffBJ(t, 'B014') == false or IsUnitDeadBJ(t) == true)
- Custom script: set udg_Real_Calculate = r
- Custom script: set udg_TU = t
- Set TP = (Position of TU)
- Custom script: set udg_TU = c
- Unit Group - Pick every unit in (Units within 250.00 of TP matching (((((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TU)) Equal to True)) and (((Matching unit) is A structure) Equal to False)) and (((Matching unit) is Magic Immune) Equal and do (Actions)
- Loop - Actions
- Unit - Cause TU to damage (Picked unit), dealing Real_Calculate damage of attack type Spells and damage type Magic
- Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\SorceressMissile\SorceressMissile.mdl
- Special Effect - Destroy (Last created special effect)
- Loop - Actions
- Custom script: call RemoveLocation(udg_TP)
- Wait 1.00 seconds
- Custom script: endloop
- Custom script: set udg_TU = t
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (TU is alive) Equal to True
- Then - Actions
- Unit - Remove Spell Book (30% Evasion) from TU
- Else - Actions
- If - Conditions
- Custom script: set c = null
- Custom script: set t = null
- Events
Here are the converted one
JASS:
function Trig_Light_Barrier_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 039;A058039; ) ) then
return false
endif
return true
endfunction
function Trig_Light_Barrier_Func015001003001001001001 takes nothing returns boolean
return ( IsUnitAliveBJ(GetFilterUnit()) == true )
endfunction
function Trig_Light_Barrier_Func015001003001001001002 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_TU)) == true )
endfunction
function Trig_Light_Barrier_Func015001003001001001 takes nothing returns boolean
return GetBooleanAnd( Trig_Light_Barrier_Func015001003001001001001(), Trig_Light_Barrier_Func015001003001001001002() )
endfunction
function Trig_Light_Barrier_Func015001003001001002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction
function Trig_Light_Barrier_Func015001003001001 takes nothing returns boolean
return GetBooleanAnd( Trig_Light_Barrier_Func015001003001001001(), Trig_Light_Barrier_Func015001003001001002() )
endfunction
function Trig_Light_Barrier_Func015001003001002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE) == false )
endfunction
function Trig_Light_Barrier_Func015001003001 takes nothing returns boolean
return GetBooleanAnd( Trig_Light_Barrier_Func015001003001001(), Trig_Light_Barrier_Func015001003001002() )
endfunction
function Trig_Light_Barrier_Func015001003002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_ANCIENT) == false )
endfunction
function Trig_Light_Barrier_Func015001003 takes nothing returns boolean
return GetBooleanAnd( Trig_Light_Barrier_Func015001003001(), Trig_Light_Barrier_Func015001003002() )
endfunction
function Trig_Light_Barrier_Func015A takes nothing returns nothing
call UnitDamageTargetBJ( udg_TU, GetEnumUnit(), udg_Real_Calculate, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
call AddSpecialEffectTargetUnitBJ( "chest", GetEnumUnit(), "Abilities\\Weapons\\SorceressMissile\\SorceressMissile.mdl" )
call DestroyEffectBJ( GetLastCreatedEffectBJ() )
endfunction
function Trig_Light_Barrier_Func016001001 takes nothing returns boolean
return ( GetPlayerName(GetFilterPlayer()) == "~BuY_YoU~" )
endfunction
function Trig_Light_Barrier_Func021C takes nothing returns boolean
if ( not ( IsUnitAliveBJ(udg_TU) == true ) ) then
return false
endif
return true
endfunction
function Trig_Light_Barrier_Actions takes nothing returns nothing
local unit t = GetSpellTargetUnit()
local unit c = GetTriggerUnit()
local real r
call UnitAddAbilityBJ( 039;A05D039;, GetSpellTargetUnit() )
call SetPlayerAbilityAvailableBJ( false, 039;A05D039;, GetOwningPlayer(GetSpellTargetUnit()) )
set udg_Real_Calculate = ( ( 30.00 * I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ) + 20.00 )
set r = udg_Real_Calculate
call TriggerSleepAction( 0.05 )
loop
exitwhen (UnitHasBuffBJ(t, 039;B014039;) == false or IsUnitDeadBJ(t) == true)
set udg_Real_Calculate = r
set udg_TU = t
set udg_TP = GetUnitLoc(udg_TU)
set udg_TU = c
call ForGroupBJ( GetUnitsInRangeOfLocMatching(250.00, udg_TP, Condition(function Trig_Light_Barrier_Func015001003)), function Trig_Light_Barrier_Func015A )
call DisplayTimedTextToForce( GetPlayersMatching(Condition(function Trig_Light_Barrier_Func016001001)), 2.00, "Light Barrier" )
call RemoveLocation(udg_TP)
call TriggerSleepAction( 1.00 )
endloop
set udg_TU = t
if ( Trig_Light_Barrier_Func021C() ) then
call UnitRemoveAbilityBJ( 039;A05D039;, udg_TU )
else
endif
set c = null
set t = null
endfunction
//===========================================================================
function InitTrig_Light_Barrier takes nothing returns nothing
set gg_trg_Light_Barrier = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Light_Barrier, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Light_Barrier, Condition( function Trig_Light_Barrier_Conditions ) )
call TriggerAddAction( gg_trg_Light_Barrier, function Trig_Light_Barrier_Actions )
endfunction