Chaos_Knight
New Member
- Reaction score
- 39
When i just used Damage( By J4L ), i added it to my passive spell. But now it does nothing. i think this quite simple to solve, but i can't get why.
Thanks
//Chaos_Knight
JASS:
library MovingStrike initializer Init requires Damage
// +-------------------------------------------------------------------------------+
// | Moving Strikes - Created by Chaos_Knight. Requires a vJass preprocessor! |
// +-------------------------------------------------------------------------------+
// | Gives a small chance to move the Attacker to the GetAttacker() and |
// | deals damage to the GetTriggerUnit() |
// +-------------------------------------------------------------------------------+
// | How to Import: |
// | - Create a new trigger |
// | - Convert it to Custom text (Edit > Convert to Custom Text) |
// | - Replace everything there with this code |
// | - Change the constants to suit yourself |
// | - Enjoy! |
// +-------------------------------------------------------------------------------+
// |-------------|
// | Constants: |
// |-------------|
globals
// The effect created on the target when it is being possessed:
private constant string EFFECT = "Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile_mini.mdl"
private constant string EFFECT2 = "Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl"
private constant string EFFECT3 = "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl"
private constant string EFFECT4 = "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl"
private constant string EFFECT6 = "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl"
// Which is attached to the targets:
private constant string EFFECT_POSITION = "weapon,left"
private constant string EFFECTPOSITION = "hand,right"
private constant string EFFECTPOS = "origin"
private constant boolean SHOWEFFECT = true //Will Show the effects(6).
private constant boolean IS_RANGED = true //If the damage is ranged
private constant boolean IS_MEELE = true //If the damage is from meele combat(128 Warcraft metres).
private constant integer RED = 90 //Red color.
private constant integer GREEN = 0 //Green color.
private constant integer BLUE = 110 //Blue color.
private constant integer ALPHA = 255 //Alpha(how much the TextTag's visible).
private constant boolean SHOWDAMAGE = true //Will create the TextTag, if true.
private constant integer DAMAGE = 35
private constant integer C = 100 // Testing Purposes.
//I Reccomend having it 1% chance. setting beyond this value may make it unbalanced.
private constant integer FROMTARGET = 128 //How Far you are moving
private constant attacktype AtkType = ATTACK_TYPE_CHAOS //Selfexplaining
private constant damagetype DmgType = DAMAGE_TYPE_FIRE//^ same
private constant weapontype WepType = WEAPON_TYPE_WHOKNOWS//No idea...
// The Raw code of the ability
private constant integer ID = 039;A000039;
endglobals
private constant function CHANCE takes integer level returns integer
return C * level
endfunction
private constant function DMG takes integer Lvl returns integer
return DAMAGE * Lvl
endfunction
// |------------------|
// | End of Constants |
// |------------------|
// DO NOT EDIT BELOW THIS LINE!
private function Cons takes nothing returns boolean
return IsUnitEnemy(GetTriggerUnit() , GetOwningPlayer(GetAttacker())) and GetRandomInt(0, 100) <= CHANCE(GetUnitAbilityLevel(GetAttacker(), ID)) and not IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) and GetUnitAbilityLevel(GetAttacker() , ID) > 0
endfunction
private function Moving takes nothing returns nothing
local unit u = GetAttacker()
local unit t = GetTriggerUnit()
local real x1 = GetUnitX( u )
local real y1 = GetUnitY( u )
local real x2 = GetUnitX( t )
local real y2 = GetUnitY( t )
local real angle = Atan2(y2 - y1, x2 - x1)
local texttag TT = CreateTextTag()
if SHOWEFFECT then
call DestroyEffect(AddSpecialEffectTarget(EFFECT, u, EFFECT_POSITION))
call DestroyEffect(AddSpecialEffectTarget(EFFECT2, u, EFFECTPOSITION))
call DestroyEffect(AddSpecialEffectTarget(EFFECT3, t, EFFECTPOS))
call DestroyEffect(AddSpecialEffectTarget(EFFECT4, t, EFFECTPOS))
call DestroyEffect(AddSpecialEffectTarget(EFFECT6, t, EFFECTPOS))
endif
if SHOWDAMAGE then
call SetTextTagText (TT,R2S(DMG(GetUnitAbilityLevel(u, ID))) + "!", 0.023)
call SetTextTagPosUnit (TT, u, 10 )
call SetTextTagColor (TT, RED, GREEN, BLUE, 255 )
call SetTextTagVelocity (TT, 0.0355 * Cos(90. * bj_DEGTORAD), 0.0355 * Sin(90. * bj_DEGTORAD))
call SetTextTagVisibility (TT, true)
call SetTextTagFadepoint (TT, 2.00)
call SetTextTagLifespan (TT, 2.00)
call SetTextTagPermanent (TT, false)
endif
call SetUnitX( u , x2 + FROMTARGET * Cos(angle))
call SetUnitY( u , y2 + FROMTARGET * Sin(angle))
call UnitDamageTarget( u , t , DMG(GetUnitAbilityLevel(u, ID)) , IS_RANGED , IS_MEELE , AtkType , DmgType , WepType )
set u = null
set TT = null
set t = null
endfunction
//------------------------------------------------------------------
private function Init takes nothing returns nothing
local trigger t = CreateTrigger()
call Damage_RegisterEvent(t)
call TriggerAddAction( t , function Moving)
endfunction
endlibrary
Thanks
//Chaos_Knight