Frozenhelfir
set Gwypaas = Guhveepaws
- Reaction score
- 56
A feature request: If the hits enemies boolean is false on the Ex version, have it bounce to units that are missing health rather than ones at full health, or have a boolean for that .
It is too complicated for me to understand. Same with nesths stuff, and there don't seem to be any tutorials that cover the ground from beginning level to your level :|
//===========================================================
// Callback Snippets
//
//! textmacro CL__OnAoE takes DIPLOMACY, DIPLOMACY_CAPS
private static method onAoE$DIPLOMACY$ takes nothing returns boolean
set Unit=GetFilterUnit()
if IsUnit$DIPLOMACY$(Unit,Owner) and IsUnitAlive(Unit) then
if not (IsUnitInGroup(Unit,Hit) or IsUnitType(Unit,UNIT_TYPE_MAGIC_IMMUNE)) then
set X2=GetUnitX(Unit)-X
set Y2=GetUnitY(Unit)-Y
set ThisRange=X2*X2+Y2*Y2
if ThisRange<Range then
set Range=ThisRange
set Target=Unit
endif
endif
endif
return false
endmethod
static boolexpr FILTER_ON_AOE_$DIPLOMACY_CAPS$
//! endtextmacro
set ThisRange=GetWidgetLife(Unit)
set Range=this.maxHopDistance*this.maxHopDistance
set Range=039;HUGE039;
function Trig_MoonKey_Effect_Conditions takes nothing returns boolean
if ( not ( UnitHasItemOfTypeBJ(GetEventDamageSource(), 039;kymn039;) == true ) ) then
return false
endif
if ( not ( GetRandomInt(1, 100) <= 50 ) ) then
return false
endif
return true
endfunction
function Trig_MoonKey_Effect_Actions takes nothing returns nothing
call ChainLightning(GetEventDamageSource(),GetEventDamageSource(),GetTriggerUnit(), "FORK",120.00,3)
call ChainLightning_ColorLast(1,0,1)
endfunction
//===========================================================================
function InitTrig_MoonKey_Effect takes nothing returns nothing
local trigger t= CreateTrigger()
call TriggerAddCondition( t, Condition( function Trig_MoonKey_Effect_Conditions ) )
call TriggerAddAction( t, function Trig_MoonKey_Effect_Actions )
call Damage_RegisterEvent(t)
endfunction
//
// What is this?
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
// Implementing this allows the TESH syntax highlighter in Jass NewGen
// to highlight the syntax for this system (and autocomplete the functions).
//
// How to import?
// ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
// Copy this into a blank text file, and save it at:
// <Your Jass NewGen folder>\tesh\includes\name.j
function ChainLightning takes unit caster, unit source, unit target, string whichCode, real damage, integer hops returns nothing
// - Casts a simple damage chain lightning, dealing less damage each
// bounce.
// - The caster is the damage source (the unit dealing the damage).
// - The source is where the first hop comes from (usually the caster).
// - The target is where the first hop will land.
// - The damage is the damage on the first hop. After that, it will
// reduce by the hop damage factor on each hop - either the default
// or that explicitly set by using the SetLast function.
endfunction
function ChainLightning_SetLastHopDamageFactor takes real factor returns nothing
// - Use this to set the damage factor for the ChainLightning instance
// last created. Does not work with ChainLightningEx.
// - This must only be called immediately after calling ChainLightning..
endfunction
function ChainLightningEx takes unit caster, unit source, string whichCode, ChainLightning_Callback onHop, boolean hitsEnemies, integer hops returns integer
// - Similar to above, but takes a ChainLightning_Callback which
// will be called on each hop, passing in the target.
// - "boolean hitsEnemies" is true for hitting enemies, and false for
// hitting allies (healing wave, etc).
// - The integer returned is an index for attaching data to. It will
// be between 1 and 8191, and will be passed into the onHop callback
// when it is called.
endfunction
function interface ChainLightning_Callback takes integer id, unit target returns nothing
// - This is for passing a callback into ChainLightningEx. The callback
// passed in will be called every hop.
// - "integer id" is the integer returned from the ChainLightningEx
// call.
// - "unit target" is the unit being hopped to.
endfunction
function ChainLightning_StartLastEx takes unit target returns nothing
// - To be called after ChainLightningEx, and after all data has been
// attached to be used in the callback.
// - Only call this once for each ChainLightningEx.
// - This is necessary for the first hop (which occurs immediately).
// Otherwise, it would not be possible to pass the data to the onHop
// callback.
endfunction
function ChainLightning_Sound takes unit target returns nothing
// - For use in your callback, if you wish to have the lightning sound.
endfunction
function ChainLightning_ColorLast takes real r, real g, real b returns nothing
// - Sets the colour of the last created chain lightning to the red,
// greed and blue values passed into the function (r, g, b).
// - The values are real numbers ranging from 0 to 1.
// - This must only be called immediately after calling ChainLightning
// or ChainLightning_StartLastEx.
//
endfunction
function ChainLightning_SetLastTimeBetweenHops takes real time returns nothing
// - This sets the time between hops.
// - This must only be called immediately after calling ChainLightning
// or ChainLightning_StartLastEx.
endfunction
function ChainLightning_SetlastMaxHopDistance takes real distance returns nothing
// - Sets the maximum distance a chain lightning instance will bounce
// to get a new target.
// - This must only be called immediately after calling ChainLightning
// or ChainLightning_StartLastEx.
endfunction
That's a really good point. You may want to limit it to attacks from the user, by adding a check for Damage_IsAttack() being true..Maybe that is because chain lightning fires damage event again ?
I said that to him/her at the jass section but no reply at all o.oMaybe that is because chain lightning fires damage event again ?
That's a really good point. You may want to limit it to attacks from the user, by adding a check for Damage_IsAttack() being true..