rodead
Active Member
- Reaction score
- 42
this is my first Jass Spell anything that i can make better?
or tips?
or things that i need to learn?
everything is welcome...
or tips?
or things that i need to learn?
everything is welcome...
JASS:
function Trig_Frozen_Wave_1_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 039;A003039; ) ) then
return false
endif
return true
endfunction
function Trig_Frozen_Wave_1_Actions takes nothing returns nothing
set udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))] = GetUnitLoc(GetSpellAbilityUnit())
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 0.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 30.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 60.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 90.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 120.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 150.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 180.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 210.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 240.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 270.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 300.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call CreateNUnitsAtLoc( 1, 039;h000039;, GetOwningPlayer(GetSpellAbilityUnit()), udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 330.00 )
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 256, GetUnitFacing(GetLastCreatedUnit()))
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit())) + 12 )] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 1])
endfunction
//===========================================================================
function InitTrig_Frozen_Wave_1 takes nothing returns nothing
set gg_trg_Frozen_Wave_1 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Frozen_Wave_1, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Frozen_Wave_1, Condition( function Trig_Frozen_Wave_1_Conditions ) )
call TriggerAddAction( gg_trg_Frozen_Wave_1, function Trig_Frozen_Wave_1_Actions )
endfunction
JASS:
function Trig_Frozen_Wave_2_Conditions takes nothing returns boolean
if ( not ( GetUnitTypeId(GetDyingUnit()) == 039;h000039; ) ) then
return false
endif
return true
endfunction
function Trig_Frozen_Wave_2_Actions takes nothing returns nothing
set udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetDyingUnit()))] = GetUnitLoc(GetDyingUnit())
set udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetDyingUnit())) + 12 )] = PolarProjectionBJ(udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))], 800.00, ( 180.00 + GetUnitFacing(GetDyingUnit()) ))
call CreateNUnitsAtLocFacingLocBJ( 1, 039;h003039;, GetOwningPlayer(GetDyingUnit()), udg_Frozen_Wave_Point[( GetConvertedPlayerId(GetOwningPlayer(GetDyingUnit())) + 12 )], udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetSpellAbilityUnit()))] )
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", udg_Frozen_Wave_Point[GetConvertedPlayerId(GetOwningPlayer(GetDyingUnit()))] )
call UnitApplyTimedLifeBJ( 2.00, 039;BTLF039;, GetLastCreatedUnit() )
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 13])
call RemoveLocation (udg_Frozen_Wave_Point[GetPlayerId( GetOwningPlayer( GetSpellAbilityUnit() ) ) + 1])
endfunction
//===========================================================================
function InitTrig_Frozen_Wave_2 takes nothing returns nothing
set gg_trg_Frozen_Wave_2 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Frozen_Wave_2, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_Frozen_Wave_2, Condition( function Trig_Frozen_Wave_2_Conditions ) )
call TriggerAddAction( gg_trg_Frozen_Wave_2, function Trig_Frozen_Wave_2_Actions )
endfunction
JASS:
function Trig_Frozen_Wave_3_Func001002002 takes nothing returns boolean
return ( UnitHasBuffBJ(GetFilterUnit(), 039;B000039;) == true )
endfunction
function Trig_Frozen_Wave_3_Func002A takes nothing returns nothing
call UnitDamageTargetBJ( udg_Hero, GetEnumUnit(), ( ( I2R(GetHeroStatBJ(bj_HEROSTAT_INT, udg_Hero, true)) / 10.00 ) / 2.50 ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
endfunction
function Trig_Frozen_Wave_3_Actions takes nothing returns nothing
set udg_Frozen_Wave_Group = GetUnitsInRectMatching(GetPlayableMapRect(), Condition(function Trig_Frozen_Wave_3_Func001002002))
call ForGroupBJ( udg_Frozen_Wave_Group, function Trig_Frozen_Wave_3_Func002A )
call DestroyGroup (udg_Frozen_Wave_Group)
endfunction
//===========================================================================
function InitTrig_Frozen_Wave_3 takes nothing returns nothing
set gg_trg_Frozen_Wave_3 = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Frozen_Wave_3, 0.10 )
call TriggerAddAction( gg_trg_Frozen_Wave_3, function Trig_Frozen_Wave_3_Actions )
endfunction