cr4xzZz
Also known as azwraith_ftL.
- Reaction score
- 51
My first JASS spellpack. Don't expect to see something amazing.. Each spell has only one level.
MUI? - Ofcourse
Leakless - As far as I know yes
Lagless - Yes (not counting the 1st time u cast)
Battle Roar /yeah, it's similar do DotA's Primal Roar/
Rexxar unleashes a terrifying roar, causing a target enemy unit to be stunned and lose 250 hit points. Units that are caught in the Roar's path will be slowed greatly for a short duration.
Screenie: http://img219.imageshack.us/img219/7739/battleroarop4.jpg
Code:
-----------------------------------------------
Deep Wound
Rexxar strikes an enemy unit with great power, creating an open wound. The target will take critical damage, losing random number of hit points over 10 seconds. The target cannot cast spells and if it gets affected by Battle Roar's slow it will die.
Screenie: http://img391.imageshack.us/img391/9337/deepwoundsb2.jpg
Code:
MUI? - Ofcourse
Leakless - As far as I know yes
Lagless - Yes (not counting the 1st time u cast)
Battle Roar /yeah, it's similar do DotA's Primal Roar/
Rexxar unleashes a terrifying roar, causing a target enemy unit to be stunned and lose 250 hit points. Units that are caught in the Roar's path will be slowed greatly for a short duration.
Screenie: http://img219.imageshack.us/img219/7739/battleroarop4.jpg
Code:
JASS:
function BRConditions takes nothing returns boolean
return GetSpellAbilityId() == 039;A004039;
endfunction
function BRGroupConditions takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false ) and ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true )
endfunction
function BRActions takes nothing returns nothing
local unit brcaster = GetTriggerUnit ()
local location point1 = GetUnitLoc (brcaster)
local location point2 = PolarProjectionBJ(point1, 150.00, GetUnitFacing(brcaster))
local location point3 = PolarProjectionBJ(point2, 150.00, GetUnitFacing(brcaster))
local location point4 = PolarProjectionBJ(point3, 150.00, GetUnitFacing(brcaster))
local group g1
local group g2
local group g3
local unit p
local location pl
local unit d
call DestroyEffect(AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl", point1))
call DestroyEffect(AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Taunt\\TauntCaster.mdl", point2))
call DestroyEffect(AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl", point3))
call DestroyEffect(AddSpecialEffectLoc("Abilities\\Spells\\NightElf\\Taunt\\TauntCaster.mdl", point4))
call TerrainDeformationWaveBJ( 0.5, point1, point4, 160.00, 90, 0 )
set g1 = GetUnitsInRangeOfLocMatching(175.00, point2, Condition( function BRGroupConditions) )
loop
set p = FirstOfGroup(g1)
exitwhen p == null
set pl = GetUnitLoc(p)
set d = CreateUnitAtLoc(GetOwningPlayer (brcaster), 039;hfoo039;, pl, 270)
call UnitAddAbility(d, 039;A002039;)
call IssueTargetOrder( d, "slow", p )
call UnitApplyTimedLife(d, 039;BTLF039;, 2.00)
if GetUnitAbilityLevel(p, 039;B001039;) > 0 then
call KillUnit (p)
endif
call GroupRemoveUnit(g1, p)
call RemoveLocation (pl)
endloop
call DestroyGroup (g1)
set g2 = GetUnitsInRangeOfLocMatching(150.00, point3, Condition( function BRGroupConditions) )
loop
set p = FirstOfGroup(g2)
exitwhen p == null
set d = CreateUnitAtLoc(GetOwningPlayer (brcaster), 039;hfoo039;, pl, 270)
call UnitAddAbility(d, 039;A002039;)
call IssueTargetOrder( d, "slow", p )
call UnitApplyTimedLife(d, 039;BTLF039;, 2.00)
if GetUnitAbilityLevel(p, 039;B001039;) > 0 then
call KillUnit (p)
endif
call GroupRemoveUnit(g2, p)
endloop
call DestroyGroup (g2)
set g3 = GetUnitsInRangeOfLocMatching(150.00, point4, Condition( function BRGroupConditions) )
loop
set p = FirstOfGroup(g3)
exitwhen p == null
set d = CreateUnitAtLoc(GetOwningPlayer (brcaster), 039;hfoo039;, pl, 270)
call UnitAddAbility(d, 039;A002039;)
call IssueTargetOrder( d, "slow", p )
call UnitApplyTimedLife(d, 039;BTLF039;, 2.00)
if GetUnitAbilityLevel(p, 039;B001039;) > 0 then
call KillUnit (p)
endif
call GroupRemoveUnit(g3, p)
endloop
call DestroyGroup (g3)
set brcaster = null
set point1 = null
set point2 = null
set point3 = null
set point4 = null
set g1 = null
set g2 = null
set g3 = null
set p = null
set pl = null
set d = null
endfunction
//===========================================================================
function InitTrig_Battle_Roar takes nothing returns nothing
set gg_trg_Battle_Roar = CreateTrigger ( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Battle_Roar, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Battle_Roar, Condition(function BRConditions) )
call TriggerAddAction( gg_trg_Battle_Roar, function BRActions )
endfunction
-----------------------------------------------
Deep Wound
Rexxar strikes an enemy unit with great power, creating an open wound. The target will take critical damage, losing random number of hit points over 10 seconds. The target cannot cast spells and if it gets affected by Battle Roar's slow it will die.
Screenie: http://img391.imageshack.us/img391/9337/deepwoundsb2.jpg
Code:
JASS:
function DWConditions takes nothing returns boolean
return GetSpellAbilityId() == 039;A003039;
endfunction
function DWActions takes nothing returns nothing
local unit dwcaster = GetTriggerUnit ()
local unit dwtarget = GetSpellTargetUnit ()
local location dwtpos
local real r
local integer duration = 1
call SetUnitAnimation (dwcaster, "attack")
loop
exitwhen duration > 32
set dwtpos = GetUnitLoc (dwtarget)
set r = GetRandomReal(5.00, 10.00)
if GetUnitState(dwtarget, UNIT_STATE_LIFE) >= 0.406 then
call DestroyEffect(AddSpecialEffectLoc( "Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl", dwtpos ))
call UnitDamageTarget( dwcaster, dwtarget, r , true, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS )
endif
call RemoveLocation (dwtpos)
set duration = duration + 1
call PolledWait (0.10)
endloop
set dwcaster = null
set dwtarget = null
set dwtpos = null
endfunction
function InitTrig_Deep_Wound takes nothing returns nothing
set gg_trg_Deep_Wound = CreateTrigger ( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Deep_Wound, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Deep_Wound, Condition(function DWConditions) )
call TriggerAddAction( gg_trg_Deep_Wound, function DWActions )
endfunction