D.V.D
Make a wish
- Reaction score
- 73
Holy Light
By: D.V.D
Spell Type: No Target
Code Type: Jass
Levels: 10
Description: The Caster brings down the lights fromk the heaven dealing making many shines hit the ground. Each shine heals all allies in 250 range of it and damages all enemies in 250 range.
The spell is almost MUI and MPI. Some waits will be cut off when 2 units cast the ability at the same time but the difference is unotisable.
Level 1: 8 shines, 30 damage/heal
Level 2: 10 shines, 60 damage/heal
Level 3: 12 shines, 130 damage/heal
Level 4: 13 shines, 200 damage/heal
Level 5: 15 shines, 375 damage/heal
Level 6: 17 shines, 560 damage/heal
Level 7: 18 shines, 1250 damage/heal
Level 8: 20 shines, 4675 damage/heal
Level 9: 24 shines, 6780 damage/heal
Level 10: 30 shines, 8000 damage/heal
Screenshot:
Code:
Idea from Hero Line Wars RoC v5.0
http://gamezonezelda.blogspot.com/
By: D.V.D
Spell Type: No Target
Code Type: Jass
Levels: 10
Description: The Caster brings down the lights fromk the heaven dealing making many shines hit the ground. Each shine heals all allies in 250 range of it and damages all enemies in 250 range.
The spell is almost MUI and MPI. Some waits will be cut off when 2 units cast the ability at the same time but the difference is unotisable.
Level 1: 8 shines, 30 damage/heal
Level 2: 10 shines, 60 damage/heal
Level 3: 12 shines, 130 damage/heal
Level 4: 13 shines, 200 damage/heal
Level 5: 15 shines, 375 damage/heal
Level 6: 17 shines, 560 damage/heal
Level 7: 18 shines, 1250 damage/heal
Level 8: 20 shines, 4675 damage/heal
Level 9: 24 shines, 6780 damage/heal
Level 10: 30 shines, 8000 damage/heal
Screenshot:
Code:
JASS:
function Conditions takes nothing returns boolean
return GetSpellAbilityId() == 039;A001039;
endfunction
function Check1 takes nothing returns boolean
return GetOwningPlayer(GetEnumUnit()) == GetOwningPlayer(GetTriggerUnit())
endfunction
function Check2 takes nothing returns boolean
return GetOwningPlayer(GetEnumUnit()) != GetOwningPlayer(GetTriggerUnit())
endfunction
function UnitGroupActions takes nothing returns nothing
local unit Caster = GetTriggerUnit()
local integer array dh
set dh[1] = 30
set dh[2] = 60
set dh[3] = 130
set dh[4] = 200
set dh[5] = 375
set dh[6] = 560
set dh[7] = 1250
set dh[8] = 4675
set dh[9] = 6780
set dh[10] = 8000
if ( Check1() ) then
call SetWidgetLife(GetEnumUnit(), GetWidgetLife(GetEnumUnit()) + I2R(dh[GetUnitAbilityLevel(Caster, 039;A001039;)]))
else
endif
if ( Check2() ) then
call UnitDamageTargetBJ( Caster, GetEnumUnit(), I2R(dh[GetUnitAbilityLevel(Caster, 039;A001039;)]), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
else
endif
endfunction
function Actions takes nothing returns nothing
local unit Caster = GetTriggerUnit()
local unit dummy
local location p0 = GetUnitLoc(Caster)
local location p1
local location p2
local integer array i
local integer t = 0
local group unitgroup
set i[1] = 8
set i[2] = 10
set i[3] = 12
set i[4] = 13
set i[5] = 15
set i[6] = 17
set i[7] = 18
set i[8] = 20
set i[9] = 24
set i[10] = 30
call TriggerSleepAction( 0.40 )
loop
exitwhen t > i[GetUnitAbilityLevel(Caster, 039;A001039;)]
set p1 = PolarProjectionBJ(p0, GetRandomReal(250.00, 550.00), GetRandomDirectionDeg())
call CreateNUnitsAtLocFacingLocBJ( 1, 039;h001039;, GetOwningPlayer(Caster), p1, p1 )
set dummy = GetLastCreatedUnit()
call PauseUnitBJ( true, dummy )
set p2 = GetUnitLoc(dummy)
set unitgroup = GetUnitsInRangeOfLocAll(( I2R(GetUnitAbilityLevel(Caster, 039;A001039;)) * 100.00 ), p2)
call UnitApplyTimedLifeBJ( 1.00, 039;BTLF039;, dummy )
call TriggerSleepAction( 0.20 )
call ForGroup( unitgroup, function UnitGroupActions )
set t = t + 1
endloop
call RemoveLocation( p0 )
call RemoveLocation( p1 )
call RemoveLocation( p2 )
call DestroyGroup( unitgroup )
set Caster = null
set dummy = null
endfunction
//===========================================================================
function InitTrig_Holy_Light takes nothing returns nothing
local trigger t = CreateTrigger()
local integer i = 0
loop
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set i = i + 1
exitwhen i == bj_MAX_PLAYER_SLOTS
endloop
call TriggerAddCondition( t, Condition( function Conditions ) )
call TriggerAddAction( t, function Actions )
endfunction
Idea from Hero Line Wars RoC v5.0
http://gamezonezelda.blogspot.com/