• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Infernal Cyclone v. 1.3.2.0

  • Like
Reactions: Daffa
Infernal Cyclone

Spell Info:
BOqWlWG.png


The Spell is Exclusive for KB3D, meaning it is made for using the KB3D system

For whoever wants to know, the third number in the version is for an update of the KB3D System without changes to the Spell

Enjoy using this Eye-Candy Spell :)

Credits:
  • -Credits for WILL THE ALMIGHTY for the FlameThrower Model
  • -Credits for UgoUgo for the OrbofFire Model
  • -Credits for aki15 for the PyroBlast Icon


Jrl7pXA.png

y66x.png

c2jRGhf.png

9yfgAzx.png

ud46.png

uQ2CmKF.png

auam.png

  • IC INIT
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • -------- Initialization of all the Variables --------
      • -------- Make Sure to Import the Icon --------
      • -------- You MUST Configure these values after importing because they will change --------
      • Set IC_Ability = Infernal Cyclone
      • Set IC_Dummy = IC Dummy
      • -------- End --------
      • -------- Possible Configurations of the Spell --------
      • -------- Effects --------
      • -------- Model Path of the Looping Missiles --------
      • Set IC_MissileFx = OrbOfFire.mdl
      • -------- Model Path of the Big Explosion --------
      • Set IC_Fx1 = Abilities\Weapons\DemolisherFireMissile\DemolisherFireMissile.mdl
      • -------- Model Path of the Shards created at the End of the Spell --------
      • Set IC_Fx2 = Flamethrower.mdl
      • -------- Model Path of the Small Explosion from the shards --------
      • Set IC_Fx3 = Abilities\Weapons\DemolisherFireMissile\DemolisherFireMissile.mdl
      • -------- End of Effects --------
      • -------- Z offset reached by the looping Missiles (Main Missiles) --------
      • Set IC_Zoffset[1] = 500.00
      • Set IC_Zoffset[2] = 600.00
      • Set IC_Zoffset[3] = 700.00
      • -------- Damage Dealt when the Falling Missile hits the ground --------
      • Set IC_EndDamage[1] = 100.00
      • Set IC_EndDamage[2] = 125.00
      • Set IC_EndDamage[3] = 150.00
      • -------- Damage dealt by Shards --------
      • Set IC_SpreadDamage[1] = 20.00
      • Set IC_SpreadDamage[2] = 40.00
      • Set IC_SpreadDamage[3] = 60.00
      • -------- AoE of the DPS dealt by the Looping Missiles --------
      • Set IC_DAoE[1] = 150.00
      • Set IC_DAoE[2] = 150.00
      • Set IC_DAoE[3] = 150.00
      • -------- DPS dealt by the Looping Missiles, in the DAoE --------
      • Set IC_DPS[1] = 20.00
      • Set IC_DPS[2] = 40.00
      • Set IC_DPS[3] = 60.00
      • -------- Amount of Looping Missiles --------
      • Set IC_Flames[1] = 18
      • Set IC_Flames[2] = 18
      • Set IC_Flames[3] = 18
      • -------- Total AoE of the Spell, AoE raeched by the Looping Missiles, and End Damage AoE --------
      • Set IC_AoE[1] = 300.00
      • Set IC_AoE[2] = 350.00
      • Set IC_AoE[3] = 400.00
      • -------- Amount of shards created at the end of the spell --------
      • Set IC_Shards[1] = 8
      • Set IC_Shards[2] = 12
      • Set IC_Shards[3] = 16
      • -------- AoE where the shards can be targeted --------
      • Set IC_XAoE[1] = (2.00 x IC_AoE[1])
      • Set IC_XAoE[2] = (2.00 x IC_AoE[2])
      • Set IC_XAoE[3] = (2.00 x IC_AoE[3])
      • -------- Allowed Targets, note that Structures are Mechanicals, so you may need to enable both of them to target structures --------
      • Set IC_Target_Allies = False
      • Set IC_Target_Magic_Imminue = False
      • Set IC_Target_Mechanicals = True
      • Set IC_Target_Structures = False
      • -------- Attack Type of the Damages --------
      • Set IC_AType = Magic
      • -------- Damage Type of the Damages --------
      • Set IC_DType = Magic
      • -------- Intelligent Targeting enables iKB, which makes the units get KBed and damaged if they are near the damager in Flying Heights --------
      • Set IC_iKB_IntelligentTargeting = True
      • -------- Destroys Trees around the Missiles all over the spell --------
      • Set IC_DestroyTree = True
      • -------- Delay for the Looping missiles to reach the Z offset, and the delay for the falling missile to reach the ground --------
      • -------- Note that This value is prefered to be maintained to 1.5, or else, the Effect of the spell will be ruined --------
      • Set IC_Delay[1] = 1.50
      • Set IC_Delay[2] = 1.50
      • Set IC_Delay[3] = 1.50
      • -------- End of Configurations --------
      • -------- Variable Creating --------
      • Skip remaining actions
      • Set IC_Instances = 0
      • Set IC_Counter = 0
      • Set IC_HA = IC_HA
      • Set IC_Timer = IC_Timer

JASS:
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
//            Infernal Cyclone v. 1.3.1.0         [JASS - GUI]             //
//                                           by Jad AKA DotCa              //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
//            Credits and others                                           //
//                                                                         //
//    -This Spell uses Knock-Back 3D v. 1.7.1 for it's use, you can        //
//         choose to not import the KB3D Folder from the test map if       //
//         and only IF you have the same KB3D version or newer             //
//    -Credits for WILL THE ALMIGHTY for the FlameThrower Model            //
//    -Credits for UgoUgo for the OrbofFire Model                          //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
//         Importing Process                                               //
//                                                                         //
//   -Make Sure to Import the Icons in the test map for the spell          //
//   -Check that Create Unknown variables is checked in your WE preferences//
//  it can be found in:     File --> Preferences --> General               //
//   -Copy&Paste Infernal Cyclone Folder into your map                     //
//   -If and only IF you haven't the v. 1.7.1 of KB3D or later then CnP the//
//    Knock-Back 3D Folder into your map                                   //
//   -Create the nessesary dummy unit and import the Models to your map    //
//   -Configure IC_Dummy and IC_Ability to the right values                //
//   -Start Using the Spell!                                               //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////

function IC_Loop takes nothing returns nothing
    local real T = 0
    local integer i = 1
    local unit U
    local unit U1
    local real x
    local real y
    local integer ix = 1
    local integer level
    loop
        exitwhen i > udg_IC_Counter
        if LoadBoolean(udg_IC_HA, i, 4) then
            set T = LoadReal(udg_IC_HA, i, 1)
            call SaveReal(udg_IC_HA, i, 1, T - 0.03125)
            if T <= 0.03125 then
                if LoadBoolean(udg_IC_HA, i, -1) then
                    set level = LoadInteger(udg_IC_HA, i, 0)
                    set x = LoadReal(udg_IC_HA, i, 2)
                    set y = LoadReal(udg_IC_HA, i, 3)
                    set U1 = LoadUnitHandle(udg_IC_HA, i, 5)
                    set U = CreateUnit(GetOwningPlayer(U1), udg_IC_Dummy, x, y, 0)
                    set udg_KB3D_AllowOutSiding = true
                    set udg_KB3D_Angle = 0
                    set udg_KB3D_AoE = udg_IC_AoE[level]
                    set udg_KB3D_AoEEndDamage = udg_IC_EndDamage[level]
                    set udg_KB3D_DamageType = udg_IC_DType
                    set udg_KB3D_AttackType = udg_IC_AType
                    set udg_KB3D_Damager = U1
                    set udg_KB3D_DestroyTree = udg_IC_DestroyTree
                    set udg_KB3D_AoEKB = true
                    set udg_KB3D_Range = 1
                    set udg_KB3D_Speed = 1/(udg_IC_Delay[level])
                    set udg_KB3D_Unit = U
                    set udg_KB3D_UnpathableStop = false
                    set udg_KB3D_Zoffset = 0
                    set udg_KB3D_KillatEnd = true
                    set udg_KB3D_iKB = false
                    set udg_KB3D_AoEDamage = udg_IC_DPS[level]
                    set udg_KB3D_D_MAGIC_IMMINUE = udg_IC_Target_Magic_Imminue
                    set udg_KB3D_D_ALLY = udg_IC_Target_Allies
                    set udg_KB3D_D_MECHANICAL = udg_IC_Target_Mechanicals
                    set udg_KB3D_D_STRUCTURE = udg_IC_Target_Structures
                    call TriggerEvaluate( udg_KB3D_Registration )
                    //
                    set U = CreateUnit(GetOwningPlayer(U1), udg_IC_Dummy, x, y, GetRandomReal(0,360))
                    call SaveEffectHandle(udg_IC_HA, i, 2, AddSpecialEffectTarget(udg_IC_MissileFx, U, "origin"))
                    call SaveReal(udg_IC_HA, i, 1, udg_IC_Delay[level])
                    call SaveReal(udg_IC_HA, i, 0, udg_IC_Delay[level])
                    call SaveReal(udg_IC_HA, i, 6, x)
                    call SaveReal(udg_IC_HA, i, 7, y)
                    call SavePlayerHandle(udg_IC_HA, i, 8, GetOwningPlayer(U1))
                    call SaveInteger(udg_IC_HA, i, 3, level)
                    call SaveBoolean(udg_IC_HA, i, -1, false)
                    call SetUnitFlyHeight(U, udg_IC_Zoffset[level], 0)
                    call SetUnitFlyHeight(U, 0, udg_IC_Zoffset[level]/(udg_IC_Delay[level]))
                    call SetUnitScale(U, 2, 0, 0)
                    call UnitApplyTimedLife(U, 'BTLF', udg_IC_Delay[level])
                    call RemoveSavedHandle(udg_IC_HA, i, 5)
                else
                    set level = LoadInteger(udg_IC_HA, i, 3)
                    set x = LoadReal(udg_IC_HA, i, 6)
                    set y = LoadReal(udg_IC_HA, i, 7)
                    call SaveBoolean(udg_IC_HA, i, 4, false)
                    call DestroyEffect(LoadEffectHandle(udg_IC_HA, i, 2))
                    set U = CreateUnit(Player(15), udg_IC_Dummy, x, y, 0)
                    call SetUnitScale(U, udg_IC_AoE[level]*0.008, 0, 0)
                    call DestroyEffect(AddSpecialEffectTarget(udg_IC_Fx1, U, "origin"))
                    call KillUnit(U)
                    //Boulders
                    loop
                        exitwhen ix == udg_IC_Shards[level]
                        set udg_KB3D_Angle = GetRandomReal(0,360)
                        set U = CreateUnit(LoadPlayerHandle(udg_IC_HA, i, 8), udg_IC_Dummy, x, y, udg_KB3D_Angle)
                        set udg_KB3D_AllowOutSiding = true
                        set udg_KB3D_AoE = udg_IC_DAoE[level]
                        set udg_KB3D_AoEEndDamage = udg_IC_SpreadDamage[level]
                        set udg_KB3D_DamageType = udg_IC_DType
                        set udg_KB3D_AttackType = udg_IC_AType
                        set udg_KB3D_Damager = U
                        set udg_KB3D_TrailFx = udg_IC_Fx2
                        set udg_KB3D_Fx_Attach = "origin"
                        set udg_KB3D_DestroyTree = udg_IC_DestroyTree
                        set udg_KB3D_Range = GetRandomReal(udg_IC_XAoE[level]/4, udg_IC_XAoE[level])
                        set udg_KB3D_Speed = 450
                        set udg_KB3D_Unit = U
                        set udg_KB3D_D_MAGIC_IMMINUE = udg_IC_Target_Magic_Imminue
                        set udg_KB3D_D_ALLY = udg_IC_Target_Allies
                        set udg_KB3D_D_MECHANICAL = udg_IC_Target_Mechanicals
                        set udg_KB3D_D_STRUCTURE = udg_IC_Target_Structures
                        set udg_KB3D_UnpathableStop = false
                        set udg_KB3D_Zoffset = udg_IC_Zoffset[level]/1.5
                        set udg_KB3D_EndFx = udg_IC_Fx3
                        set udg_KB3D_KillatEnd = true
                        set udg_KB3D_iKB = udg_IC_iKB_IntelligentTargeting
                        call TriggerEvaluate( udg_KB3D_Registration )
                        set ix = ix + 1
                    endloop
                    call FlushChildHashtable(udg_IC_HA, i)
                    set udg_IC_Instances = udg_IC_Instances - 1
                    if udg_IC_Instances == 0 then
                        call PauseTimer(udg_IC_Timer)
                        set udg_IC_Counter = 0
                    endif
                endif
            endif
        endif
        set i = i + 1
    endloop
    set U1 = null
    set U = null
endfunction

function IC_Cast takes nothing returns boolean
    local unit U
    local unit u1
    local integer level
    local integer i
    local real x
    local real y
    if GetSpellAbilityId() == udg_IC_Ability then
        set i = 0
        set U = GetTriggerUnit()
        set level = GetUnitAbilityLevel(U, udg_IC_Ability)
        set x = GetSpellTargetX()
        set y = GetSpellTargetY()
        set udg_IC_Instances = udg_IC_Instances + 1
        set udg_IC_Counter = udg_IC_Counter + 1
        call SaveInteger(udg_IC_HA, udg_IC_Counter, 0, level)
        call SaveReal(udg_IC_HA, udg_IC_Counter, 1, udg_IC_Delay[level])
        call SaveReal(udg_IC_HA, udg_IC_Counter, 2, x)
        call SaveReal(udg_IC_HA, udg_IC_Counter, 3, y)
        call SaveBoolean(udg_IC_HA, udg_IC_Counter, 4, true)
        call SaveBoolean(udg_IC_HA, udg_IC_Counter, -1, true)
        call SaveUnitHandle(udg_IC_HA, udg_IC_Counter, 5, U)
        set u1 = CreateUnit(Player(15), udg_IC_Dummy, x, y, 0)
        call SetUnitScale(u1, udg_IC_AoE[level]*0.008, 0, 0)
        call DestroyEffect(AddSpecialEffectTarget(udg_IC_Fx1, u1, "origin"))
        call KillUnit(u1)
        loop
            exitwhen i == udg_IC_Flames[level]
            //Register the KB3D
            set u1 = CreateUnit(GetTriggerPlayer(), udg_IC_Dummy, x, y, 0)
            set udg_KB3D_AllowOutSiding = true
            set udg_KB3D_Angle = 360/udg_IC_Flames[level] * i
            set udg_KB3D_AoE = udg_IC_DAoE[level]
            set udg_KB3D_Arc = udg_IC_Delay[level]*4
            set udg_KB3D_AoEDamage = udg_IC_DPS[level]
            set udg_KB3D_DamageType = udg_IC_DType
            set udg_KB3D_AttackType = udg_IC_AType
            set udg_KB3D_Damager = U
            set udg_KB3D_DestroyTree = udg_IC_DestroyTree
            set udg_KB3D_Range = udg_IC_Delay[level]*udg_IC_AoE[level]*2
            set udg_KB3D_Speed = udg_IC_AoE[level]
            set udg_KB3D_TrailFx = udg_IC_MissileFx
            set udg_KB3D_Fx_Attach = "origin"
            set udg_KB3D_Unit = u1
            set udg_KB3D_iKB = udg_IC_iKB_IntelligentTargeting
            set udg_KB3D_UnpathableStop = false
            set udg_KB3D_Zoffset = udg_IC_Zoffset[level]
            set udg_KB3D_KillatTime = udg_IC_Delay[level]
            set udg_KB3D_D_MAGIC_IMMINUE = udg_IC_Target_Magic_Imminue
            set udg_KB3D_D_ALLY = udg_IC_Target_Allies
            set udg_KB3D_D_MECHANICAL = udg_IC_Target_Mechanicals
            set udg_KB3D_D_STRUCTURE = udg_IC_Target_Structures
            call TriggerEvaluate( udg_KB3D_Registration )
            set i = i + 1
        endloop
        if (udg_IC_Counter == 1) then
            call TimerStart(udg_IC_Timer, 0.031250000, true, function IC_Loop )
        endif
        set U = null
        set u1 = null
    endif
    return false
endfunction

//===========================================================================
function InitTrig_Infernal_Cyclone takes nothing returns nothing
    local trigger T = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(T, EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition( T, Condition( function IC_Cast ) )
    set udg_IC_HA = InitHashtable()
endfunction

v. 1.0.0.0
Release
v. 1.0.1.0
Trigger Optimization
v. 1.0.2.0
Trigger Optimization
v. 1.0.3.0
Bug Fix
v. 1.1.0.0

  • Attack Type and Damage Type are now configurable
  • Many Trigger Optimization
v. 1.1.1.1

  • Small Changes in the Spell's configs
  • Updated to KB3D v. 1.6.0 with iKB
v. 1.2.0.0

  • Updated with KB3D v. 1.6.X, used the new features like targets allowed
  • Small Trigger Changes
v. 1.2.1.0

  • Trigger Fixes
  • Bug Fixes
v. 1.2.2.0

  • Trigger Changes (Preloading)
  • Tooltip Changed
v. 1.3.0.0

  • Updated to KB3D v. 1.7.0
  • Icon Changed
  • Balanced
  • Better Instructions/Documentation
  • Possibility to configure iKB (damaging and KBing)
  • Possibility to configure Destroy Tree
  • Better Code
v. 1.3.1.0

  • Updated to KB3D v. 1.7.1
  • Spell Follow through time added, better casting experience
  • Trigger optimization
  • Changed Z offset from 650 to 500/600/700
v. 1.3.1.0

  • Updated to KB3D v. 1.8.3
  • I doubt there is more to enhance here :p


Keywords:
Infernal, Cyclone, Loop, Fire, KB3D, Loop, Eye-Candy
Contents

Infernal Cyclone (Map)

Reviews
Infernal Cyclone v. 1.3.0.0 | Reviewed by Maker | 26th October 2013 Concept[/COLOR]] The spell is quite creative, fun to cast and good looking Triggers[/COLOR]] Good configuration options No leaks and MUI Objects[/COLOR]] No...
Level 16
Joined
Jul 31, 2012
Messages
2,217
Update

v. 1.0.0.0
Release
v. 1.0.1.0
Trigger Optimization
v. 1.0.2.0
Trigger Optimization
v. 1.0.3.0
Bug Fix
v. 1.1.0.0
  • Attack Type and Damage Type are now configurable
  • Many Trigger Optimization
v. 1.1.1.1
  • Small Changes in the Spell's configs
  • Updated to KB3D v. 1.6.0 with iKB
v. 1.2.0.0
  • Updated with KB3D v. 1.6.X, used the new features like targets allowed
  • Small Trigger Changes
v. 1.2.1.0
  • Trigger Fixes
  • Bug Fixes
Note that i didn't understand the blizzard tooltip part :) all other notices were fixed
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
What does this do?

JASS:
function iPreload takes string s returns nothing
    local string S = ""
    local integer x = 0
    loop
        exitwhen (x >= StringLength(s))
        set x = x + 1
        if (SubString(s, x-1,x) == "\\") then
            set S = S + "\\" + "\\"
        else
            set S = S + SubString(s, x-1,x)
        endif
    endloop
    call Preload(S)
endfunction
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
I don't get why that is needed, wouldn't GUI already convert that properly for you?
  • String WTF
    • Events
    • Conditions
    • Actions
      • Set str = Abilities\YadaYada\MoreYadaYada\YadaDoey.mdl
converted:
JASS:
function Trig_String_WTF_Actions takes nothing returns nothing
    set udg_str = "Abilities\\YadaYada\\MoreYadaYada\\YadaDoey.mdl"
endfunction

//===========================================================================
function InitTrig_String_WTF takes nothing returns nothing
    set gg_trg_String_WTF = CreateTrigger(  )
    call TriggerAddAction( gg_trg_String_WTF, function Trig_String_WTF_Actions )
endfunction
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
Update

v. 1.0.0.0
Release
v. 1.0.1.0
Trigger Optimization
v. 1.0.2.0
Trigger Optimization
v. 1.0.3.0
Bug Fix
v. 1.1.0.0
  • Attack Type and Damage Type are now configurable
  • Many Trigger Optimization
v. 1.1.1.1
  • Small Changes in the Spell's configs
  • Updated to KB3D v. 1.6.0 with iKB
v. 1.2.0.0
  • Updated with KB3D v. 1.6.X, used the new features like targets allowed
  • Small Trigger Changes
v. 1.2.1.0
  • Trigger Fixes
  • Bug Fixes
v. 1.2.2.0
  • Trigger Changes (Preloading)
  • Tooltip Changed
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Review


Infernal Cyclone v1.2.2.0
This spell had been reviewed by jakeZinc.


Trigger Code
JASS:
if LoadBoolean(udg_IC_HA, i, 4) then
    set T = LoadReal(udg_IC_HA, i, 1)
    call SaveReal(udg_IC_HA, i, 1, T - 0.03125)
    if T <= 0.03125 then
JASS:
endif
endif
Please fix the indentation in here so that it will increase the readability of the code. Indentation is four spaces in JASS and every block is required
to be indented, with the rare exception of indenting the contents of
an all-encompassing library or scope because it's usually obvious
then. References: JPAG in this link you can read the proper convention names of the functions variables etc. set u1 = CreateUnit(GetTriggerPlayer(), udg_IC_Dummy, x, y, 0) store the GetTriggerPlayer() to the hashtable so that you won't use the GetOwningPlayer(U1) and I see there that you used that two times. The trigger is looks ok right now and it does not have any issues about it.
Documentation
  • -------- Z offest reached by the looping Missiles --------
you have a mistake here lol, the documentation must be explained not juts only like this:
  • -------- DPS dealt by the Looping Missiles --------
because some of them might not understand what DPS means and they'll ask what is looping missile? the shard or the etc.? The documentation in the configuration trigger is hard to read maybe seperate them by a clear comments to increase the readability of the spell ^^.
Configuration
set udg_KB3D_DestroyTree = true Destroying trees must be enabled in configurability of the spell because what if some users don't want to destroy trees if they use this spell so that you must add it ^^. I think that is the only left in the configuration and you make it all configurability values.
Pros
MUI and leakless spell. Fun to cast, It has a swag and beautiful eye candy effects like the cyclone event that the missile spins to the target location but it seems like from the Melting Phoenixes ^^.
Cons
It does lag in execution of the spell and when casted two times which doesn't really good :(.
Importing Instruction
// -Check that Create Unknown variables is checked in your WE preferences// You must tell them that preferences can be found at File --> Preferences --> General because this is lacking of information. Also the import, you must tell them that it is from the F12 Import manager but I think there's not a problem with that ^^. That's all I can say and it has an importing instruction.
Special Effects
It is really nice that you add a spinning effects, knockback effects, explosion and blast of the shards. Maybe reducing some effects or objects because this effects can drop my FPS below. It has a beautiful effects and good looking!.The effect looks great and the movement of the fire is well done
Usefulness
Useful in reducing outnumbered armies!: Flying units and ground units can be destroyed in the spell which can show it's usefulness ^^.
Suggestions
Reduce some effects of the spell so that lags will not show up. Decrease the spell damage because it is Imbalanced that's why the Knockback Event has only a 40% chance to execute the knockback. Other than that none.
Description Tooltip
The tooltip supports every level of the spell. It does follow the blizzard standard tooltip ^^.

jakeZinc Score Board
Rejected: 1-10
Unacceptable : 11-30
Lacking : 31-49
Useful : 50-69
Recommended : 70-90
Highly Recommended : 91-100
Director Cut : 101-105
Scores
1) Triggering - 17/20
2) Documentation - 7/10
3) Importing Instruction - 6/10
4) Special Effects - 14/15
5) Usefulness - 17/20
6) Tooltip - 8/10
7) Configuration - 8/10
Ratings
Total Score - 77/105
jakeZinc Rating - 3.7/5
Status - Recommended
The rating will be higher if you reduce the lag of the spell and balanced it.
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
Update

v. 1.0.0.0
Release
v. 1.0.1.0
Trigger Optimization
v. 1.0.2.0
Trigger Optimization
v. 1.0.3.0
Bug Fix
v. 1.1.0.0
  • Attack Type and Damage Type are now configurable
  • Many Trigger Optimization
v. 1.1.1.1
  • Small Changes in the Spell's configs
  • Updated to KB3D v. 1.6.0 with iKB
v. 1.2.0.0
  • Updated with KB3D v. 1.6.X, used the new features like targets allowed
  • Small Trigger Changes
v. 1.2.1.0
  • Trigger Fixes
  • Bug Fixes
v. 1.2.2.0
  • Trigger Changes (Preloading)
  • Tooltip Changed
v. 1.3.0.0
  • Updated to KB3D v. 1.7.0
  • Icon Changed
  • Balanced
  • Better Instructions/Documentation
  • Possibility to configure iKB (damaging and KBing)
  • Possibility to configure Destroy Tree
  • Better Code
 
Level 18
Joined
Sep 14, 2012
Messages
3,413
JASS:
local integer i = 0
I told you once to initiate your locals after the condition.
Otherwise every time a spell is casted you allocate the place for local and you initiate :/
No need to initiate if the spell isn't the one casted.

JASS:
set U = null
set u1 = null
Put this inside the if block.
Because when they are created locals got no value.
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
Update

v. 1.0.0.0
Release
v. 1.0.1.0
Trigger Optimization
v. 1.0.2.0
Trigger Optimization
v. 1.0.3.0
Bug Fix
v. 1.1.0.0
  • Attack Type and Damage Type are now configurable
  • Many Trigger Optimization
v. 1.1.1.1
  • Small Changes in the Spell's configs
  • Updated to KB3D v. 1.6.0 with iKB
v. 1.2.0.0
  • Updated with KB3D v. 1.6.X, used the new features like targets allowed
  • Small Trigger Changes
v. 1.2.1.0
  • Trigger Fixes
  • Bug Fixes
v. 1.2.2.0
  • Trigger Changes (Preloading)
  • Tooltip Changed
v. 1.3.0.0
  • Updated to KB3D v. 1.7.0
  • Icon Changed
  • Balanced
  • Better Instructions/Documentation
  • Possibility to configure iKB (damaging and KBing)
  • Possibility to configure Destroy Tree
  • Better Code
v. 1.3.1.0
  • Updated to KB3D v. 1.7.1
  • Spell Follow through time added, better casting experience
  • Trigger optimization
  • Changed Z offset from 650 to 500/600/700
 
Top