System Lightning

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 :eek:.
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
I don't understand. The attachment had nothing to do with that. I used it to learn how to use the system. 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 :|
 

Jesus4Lyf

Good Idea™
Reaction score
397
>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

I assume that is because you wanted to use both ChainLightning and ChainLightningEx at the same time? You could deal the damage through ChainLightningEx instead... ;)
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
No, when you set the boolean to hit allies, it will go for the closest ally, instead of going for ones that are missing hitpoints. This is my request, to make a boolean so that it bounces towards the closest unit missing hp (boolean toggled)
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
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 :|

I already said I don't understand it >_<
 

Jesus4Lyf

Good Idea™
Reaction score
397
This code is great for editing...
JASS:
    //===========================================================
    // 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&lt;Range then
                        set Range=ThisRange
                        set Target=Unit
                    endif
                endif
            endif
            return false
        endmethod
        static boolexpr FILTER_ON_AOE_$DIPLOMACY_CAPS$
    //! endtextmacro

Change
JASS:
                    set X2=GetUnitX(Unit)-X
                    set Y2=GetUnitY(Unit)-Y
                    set ThisRange=X2*X2+Y2*Y2

to
JASS:
                    set ThisRange=GetWidgetLife(Unit)

Should do it.
Edit: Oh, should also change:
JASS:
set Range=this.maxHopDistance*this.maxHopDistance

to
JASS:
set Range=&#039;HUGE&#039;

or something. ;)
 

Lmfaocj

Active Member
Reaction score
1
Sorry for being noob but anyone know why I keep crashing I think i did it right

JASS:
function Trig_MoonKey_Effect_Conditions takes nothing returns boolean
    if ( not ( UnitHasItemOfTypeBJ(GetEventDamageSource(), &#039;kymn&#039;) == true ) ) then
        return false
    endif
    if ( not ( GetRandomInt(1, 100) &lt;= 50 ) ) then
        return false
    endif
    return true
endfunction

function Trig_MoonKey_Effect_Actions takes nothing returns nothing
    call ChainLightning(GetEventDamageSource(),GetEventDamageSource(),GetTriggerUnit(), &quot;FORK&quot;,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


Edit: lol, Copy and Paste FTW

JASS:
//
//      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:
//          &lt;Your Jass NewGen folder&gt;\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.
    //              - &quot;boolean hitsEnemies&quot; 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.
    //              - &quot;integer id&quot; is the integer returned from the ChainLightningEx
    //                call.
    //              - &quot;unit target&quot; 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
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top