Spellpack Blood Mage's Flame

waaaks!

Zinctified
Reaction score
255
I introduce you my second spellpack. Some of may notice that some of the triggers i used are from Vexorian's samples, but doesn't mean that my spells are already made by Vexorian's sample, because i combined the functions made by Vex to a spell i want to implement.

System Used: Caster System
Spell: Not MUI (I don't know?)
Spell: JASS (not JESP, i still don't k now)
Import Difficulty: Average

Inferno: Fires an inferno missile to a target unit, that creates fire burning inferno on the target's position, and damaging it overtime. Last 10 seconds.
Level 1: 15 mana cost 10 second cooldown
Level 2: 10 mana cost 5 second cooldown
Level 3: 5 mana cost 0 second cooldown
infernonq9.jpg


Death Arrow: Shoots a flaming arrow to the target location, when the missile arrives to the destination, it deals damage to enemy units in 350 radius.( works like grenade from vex )
Level 1: 100 damage, 1000 cast range
Level 2: 200 damage, 1500 cast range
Level 3: 300 damage, 2000 cast range
deatharrowop9.jpg


Firestorm:Creates pulses of flame from the caster slowing and damaging enemy units within 400 radius. Pulses increase per level.( the spell is based on channel and cant be canceled by yourself, you can use the starfall as the base ability )
Level 1: 5 second channel
Level 2: 10 second channel
Level 3: 15 second channel
firestormew8.jpg


Polymorph:The Caster curses his enemies, stunning and hexing enemy units within 500 radius for two successful curses, the curse increases depending on the caster's, unspent skill points ( i used unspent skill points for the loop, because if i used range or range, the spell would be undefeated, i tried to use group but it seems hard, and i keep getting errors when i used group )
polymorphak6.jpg


I didnt get the screenshots right, it would be more cool in-game

Codes
Inferno
JASS:
//**************************************************************************************************
//*Requires the CasterSytem get it now on <a href="http://www.wc3campaigns.net/vexorian" target="_blank" class="link link--external" rel="nofollow ugc noopener">www.wc3campaigns.net/vexorian</a>                            *
//*Polymorph: copy first the latest dummy from the caster system then copy this trigger to your map*
//*and change some fields below                                                                    *
//**************************************************************************************************

// #Inferno start#
constant function iid takes nothing returns integer
 return &#039;A005&#039; // &#039;A005&#039; raw code of the spell Inferno
endfunction

constant function ida takes nothing returns integer
 return &#039;A006&#039; // raw code of the spell used by the dummy (flamestrike)
endfunction

constant function ids takes nothing returns string
 return &quot;flamestrike&quot; // base order id of the spell used by the dummy
endfunction

constant function ispeed takes nothing returns real
 return 900.0 // missile speed of the spell inferno
endfunction

function Trig_Inferno1_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == iid() )
endfunction

function Trig_Inferno1_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit() // Triggering unit
    local location loc1 = GetUnitLoc(u) // Position of Triggering unit
    local location loc2 = GetUnitLoc(GetSpellTargetUnit()) // Position of target
    local real wait
    set wait = DistanceBetweenPoints(loc1, loc2) / ispeed()
    call PolledWait(wait)
    call CasterCastAbilityPointLoc(GetOwningPlayer(u), ida(), ids(), loc2, true)
    call RemoveLocation(loc1)
    call RemoveLocation(loc2)
    set u = null
    set loc1 = null
    set loc2 = null
endfunction

//===========================================================================
function InitTrig_Inferno1 takes nothing returns nothing
    set gg_trg_Inferno1 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Inferno1, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Inferno1, Condition( function Trig_Inferno1_Conditions ) )
    call TriggerAddAction( gg_trg_Inferno1, function Trig_Inferno1_Actions )
endfunction
// #Inferno end#


Death Arrow
JASS:
//***************************************************************************************************
//*Requires the CasterSytem get it now on <a href="http://www.wc3campaigns.net/vexorian" target="_blank" class="link link--external" rel="nofollow ugc noopener">www.wc3campaigns.net/vexorian</a>                             *
//*Death Arrow: copy first the latest dummy from the caster system then copy this trigger to your map*
//*and change some fields below                                                                     *
//*************************************************************************************************** 

//#Death Arrow start#
constant function rda takes nothing returns integer
    return &#039;A002&#039;
endfunction

constant function daatk takes nothing returns string
    return &quot;attack&quot; //animation applied to the caster
endfunction

constant function dasfx takes nothing returns string
    // special effect used for the missile
    return &quot;Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl&quot;
endfunction

constant function daspeed takes nothing returns integer
    return 800 // missile&#039;s speed
endfunction

constant function daarc takes nothing returns real
    return 0.05 // missile&#039;s arc (works like the world editor)
endfunction

constant function dastart takes nothing returns real
    return 50.0 // starting height of the missile
endfunction

constant function daend takes nothing returns real
    return 0.0 // the height where the missile land
endfunction

constant function darad takes nothing returns integer
    return 350 // radius of the damage
endfunction

function Trig_DeathArrow_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == rda() ) // raw code of the spell Death Arrow
endfunction

function Trig_DeathArrow_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit() // triggering unit
    local location loc1 = GetUnitLoc(u) // position of triggering unit
    local location loc2 = GetSpellTargetLoc() // position of target location
    local integer l
    local real d
    local integer dopt
    set l = GetUnitAbilityLevel( u, rda())
    set d = l*100.00
    call SetUnitAnimation( u, daatk() )
    set dopt = DamageTypes(ATTACK_TYPE_SIEGE,DAMAGE_TYPE_FORCE)
    set dopt = dopt + DamageOnlyTo(UNIT_TYPE_GROUND) + DamageOnlyVisibles() + DontDamageSelf()
    call DamagingProjectileLaunchAOELoc(u, dasfx(), daspeed(), daarc(), loc1, dastart(), loc2, daend(), darad(), d, false, dopt)
    call RemoveLocation(loc1)
    call RemoveLocation(loc2)
    set u = null
    set loc1 = null
    set loc2 = null
endfunction

//===========================================================================
function InitTrig_DeathArrow takes nothing returns nothing
    set gg_trg_DeathArrow = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_DeathArrow, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_DeathArrow, Condition( function Trig_DeathArrow_Conditions ) )
    call TriggerAddAction( gg_trg_DeathArrow, function Trig_DeathArrow_Actions )
endfunction
//#Death Arrow end#


Firestorm
JASS:
//**************************************************************************************************
//*Requires the CasterSytem get it now on <a href="http://www.wc3campaigns.net/vexorian" target="_blank" class="link link--external" rel="nofollow ugc noopener">www.wc3campaigns.net/vexorian</a>                            *
//*Firestorm: copy first the latest dummy from the caster system then copy this trigger to your map*
//*and change some fields below                                                                    *
//*also copy the variable DamageOptions                                                            *
//*and paste it on your variables                                                                  *
//**************************************************************************************************

//#Firestorm start#
constant function rf takes nothing returns integer
 return &#039;A003&#039; // &#039;A003&#039; raw code for the spell firestorm
endfunction

constant function fa takes nothing returns string
 return &quot;Firestorm_Actions&quot;
endfunction

constant function farea takes nothing returns real
 return 450.0 //radius of the spell
endfunction

constant function fid takes nothing returns string
 return &quot;starfall&quot; //base order id of the spell
endfunction

constant function fsfx1 takes nothing returns string
 //special effect attached to triggering unit
 return &quot;Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl&quot;
endfunction

constant function fsfx2 takes nothing returns string
 // the four special effect that surrounds the caster
 return &quot;Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl&quot;
endfunction

constant function fds takes nothing returns string
 // base order id of the dummy spell
 return &quot;thunderclap&quot;
endfunction

constant function fda takes nothing returns integer
 return &#039;A004&#039; // raw code for the dummy spell
endfunction

constant function fdel takes nothing returns real
 return 0.75 // a delay to cast the dummy spell and damage unit
endfunction

function InitTrig_Firestorm takes nothing returns nothing
    call OnAbilityEffect( rf(), fa() )
endfunction

function Firestorm_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit() //triggering unit
    local location loc1 = GetUnitLoc(u) // position of triggering unit
    local location pol
    local real x = GetUnitX(u) 
    local real y = GetUnitY(u)
    local real off
    local integer dopt
    local integer l = GetUnitAbilityLevel(u, rf()) // level of spell Firestorm
    local integer i   
    local real dmg = 25.0*l //damage dealt 
    loop
        exitwhen (GetUnitCurrentOrder(u) != OrderId(fid()))
        call DestroyEffect( AddSpecialEffectLoc( fsfx1(), loc1) )
        set off = GetRandomReal(0, 36.0)
        set i = 0
        loop
        exitwhen i&gt;4
        set pol = PolarProjectionBJ(loc1, 100.0, off+i*72.0)
        call DestroyEffect( AddSpecialEffectLoc( fsfx2(), pol ) )
        call RemoveLocation(pol)
        set i = i+1
        endloop
        set dopt=DamageTypes(ATTACK_TYPE_CHAOS,DAMAGE_TYPE_DIVINE) + DamageException(UNIT_TYPE_UNDEAD,3.0)
        call DamageUnitsInAOEExLoc(u, dmg, loc1, farea(), false, udg_DamageOptions)
        call CasterCastAbilityPoint(GetOwningPlayer(u), fda(), fds(), x, y, false) 
        call PolledWait(fdel())
    endloop
    call RemoveLocation(loc1)
    set loc1 = null
    set pol = null
    set u = null
endfunction
//#Firestorm end#


Polymorph
JASS:
//**************************************************************************************************
//*Requires the CasterSytem get it now on <a href="http://www.wc3campaigns.net/vexorian" target="_blank" class="link link--external" rel="nofollow ugc noopener">www.wc3campaigns.net/vexorian</a>                            *
//*Polymorph: copy first the latest dummy from the caster system then copy this trigger to your map*
//*and change some fields below                                                                    * 
//**************************************************************************************************

//#Polymorph start#
constant function tunit takes nothing returns unit
    return GetTriggerUnit() // triggering unit
endfunction

constant function rpoly takes nothing returns integer
    return &#039;A000&#039; // raw code for polymorph
endfunction

constant function rhex takes nothing returns integer
    return &#039;A001&#039; // raw code of the hex ability used on enemies
endfunction

constant function rstorm takes nothing returns integer
    return &#039;AHtb&#039; //  raw code of the storm bolt, i used normal storm bolt from human
endfunction

constant function shex takes nothing returns string
    return &quot;hex&quot; // base string id for the hex ability
endfunction

constant function sstorm takes nothing returns string
    return &quot;thunderbolt&quot; // base string id for the normal stormbolt
endfunction

constant function tdelay takes nothing returns real
    return 0.35 // the delay on hexing and stunning units again
endfunction

function Trig_Polymorph_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == rpoly() )
endfunction

function Polymorph_NoTrig takes nothing returns boolean
    return ( GetTriggerUnit() != GetFilterUnit() )
endfunction

globals
    boolexpr Polymorph_Filter = null
endglobals

function Trig_Polymorph_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit()
    local group g = CreateGroup()
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    local integer i = 1
    local integer n = GetHeroSkillPoints(u) + 2 // skillpoints of the caster +2 
    call CS_EnumUnitsInAOE(g, x, y, 500.0, Polymorph_Filter)
    loop
        exitwhen i&gt;n
        call PolledWait(tdelay())
        call CasterCastAbilityGroup(GetOwningPlayer(tunit()), rhex(), shex(), g, true)
        call CasterCastAbilityGroup(GetOwningPlayer(tunit()), rstorm(), sstorm(), g, false)
        set i = i + 1
    endloop
    call DestroyGroup(g)
    set g = null
    set u = null         
endfunction

//===========================================================================
function InitTrig_Polymorph takes nothing returns nothing
    set Polymorph_Filter = Condition(function Polymorph_NoTrig)
    set gg_trg_Polymorph = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Polymorph, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Polymorph, Condition( function Trig_Polymorph_Conditions ) )
    call TriggerAddAction( gg_trg_Polymorph, function Trig_Polymorph_Actions )
endfunction
//#Polymorph end#


enjoy and feedbacks are welcome...:p

EDIT: Finish Update 1

EDIT: Finish Update 2
 

Attachments

  • waaaks! CS spells v1.w3x
    163.5 KB · Views: 441

PurgeandFire

zxcvmkgdfg
Reaction score
509
--More comments to be added--

JASS:
function Trig_Inferno1_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == &#039;A005&#039; ) // \&#039;A005\&#039; raw code of the spell Inferno
endfunction

function Trig_Inferno1_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit() // Triggering unit
    local location loc1 = GetUnitLoc(u) // Position of Triggering unit
    local location loc2 = GetUnitLoc(GetSpellTargetUnit()) // Position of target
    local integer s = &#039;A006&#039; // raw code of the spell used by the dummy (flamestrike)
    local string d = &quot;flamestrike&quot; // base order id of the spell used by the dummy
    local real speed = 900.00 // missile speed of the spell inferno
    local real wait
    set wait = DistanceBetweenPoints(loc1, loc2) / speed
    call PolledWait(wait)
    call CasterCastAbilityPointLoc(GetOwningPlayer(u), s, d, loc2, true)
    call RemoveLocation(loc1)
    call RemoveLocation(loc2)
    set u = null
    set loc1 = null
    set loc2 = null
endfunction

//===========================================================================
function InitTrig_Inferno1 takes nothing returns nothing
    set gg_trg_Inferno1 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Inferno1, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Inferno1, Condition( function Trig_Inferno1_Conditions ) )
    call TriggerAddAction( gg_trg_Inferno1, function Trig_Inferno1_Actions )
endfunction

Optimize it to this:
JASS:

constant function rawcode takes nothing returns integer
    return &#039;A006&#039;
endfunction
constant function flamestring takes nothing returns string
    return &quot;flamestrike&quot;
endfunction
constant function speed takes nothing returns real
    return 900.00
endfunction 

function Trig_Inferno1_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == &#039;A005&#039; ) // \&#039;A005\&#039; raw code of the spell Inferno
endfunction

function Trig_Inferno1_Actions takes nothing returns nothing
    local location casterloc = GetUnitLoc(GetTriggerUnit()) // Position of Triggering unit
    local location targetloc = GetUnitLoc(GetSpellTargetUnit()) // Position of target
    call PolledWait(DistanceBetweenPoints(casterloc,targetloc) / speed() )
    call CasterCastAbilityPointLoc(GetOwningPlayer(GetTriggerUnit()), rawcode(), flamestring(), targetloc, true)
    call RemoveLocation(targetloc)
    call RemoveLocation(casterloc)
    set casterloc = null
    set targetloc = null
endfunction

//===========================================================================
function InitTrig_Inferno1 takes nothing returns nothing
    set gg_trg_Inferno1 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Inferno1, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Inferno1, Condition( function Trig_Inferno1_Conditions ) )
    call TriggerAddAction( gg_trg_Inferno1, function Trig_Inferno1_Actions )
endfunction


This optimizes the whole code making it small, adding constants, getting rid of pointless variables, and I think it may be JESP though I'm not entirely sure. I'm pretty sure it is MUI though. ;)

//===========================================================================

Change the Death Arrow code to this:
JASS:
constant function rawcode takes nothing returns integer
    return &#039;A002&#039;
endfunction

constant function attackstring takes nothing returns string
    return &quot;attack&quot;
endfunction

constant function sfx takes nothing returns string
    return &quot;Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl&quot; // special effect used for the missile
endfunction

constant function speed takes nothing returns integer
    return 800 // missile&#039;s speed
endfunction

constant function arc takes nothing returns real
    return 0.05 // missile&#039;s arc (works like the world editor)
endfunction

constant function startheight takes nothing returns real
    return 50.
endfunction

constant function endheight takes nothing returns real
    return 0.
endfunction

constant function radius takes nothing returns integer
    return 350
endfunction

constant function damage takes nothing returns integer
    return GetUnitAbilityLevel(GetTriggerUnit(),rawcode())*100
endfunction 


function Trig_DeathArrow_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == &#039;A002&#039; ) // raw code of the spell Death Arrow
endfunction

function Trig_DeathArrow_Actions takes nothing returns nothing
    local location casterloc       = GetUnitLoc(GetTriggerUnit()) // position of triggering unit
    local location targetloc       = GetSpellTargetLoc() // position of target location
    local integer dopt             = DamageTypes(ATTACK_TYPE_SIEGE,DAMAGE_TYPE_FORCE) + DamageOnlyTo(UNIT_TYPE_GROUND) + DamageOnlyVisibles() + DontDamageSelf()

    call SetUnitAnimation( GetTriggerUnit(), attackstring() )
    call PolledWait(0.10)
    call DamagingProjectileLaunchAOELoc(GetTriggerUnit(), sfx(), speed(), arc(), casterloc, startheight(), targetloc, endheight(), radius(), damage(), false, dopt)
    call RemoveLocation(casterloc)
    call RemoveLocation(targetloc)
    
    set casterloc                  = null
    set targetloc                  = null
endfunction

//===========================================================================

function InitTrig_DeathArrow takes nothing returns nothing
    set gg_trg_DeathArrow = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_DeathArrow, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_DeathArrow, Condition( function Trig_DeathArrow_Conditions ) )
    call TriggerAddAction( gg_trg_DeathArrow, function Trig_DeathArrow_Actions )
endfunction
 

Ryuu

I am back with Chocolate (:
Reaction score
64
I ain't good in any JASS, but this JASS code is much more optimized.

JASS:
constant function rawcode takes nothing returns integer
    return &#039;A006&#039;
endfunction
constant function flamestring takes nothing returns string
    return &quot;flamestrike&quot;
endfunction
constant function speed takes nothing returns real
    return 900.00
endfunction 

function Trig_Inferno1_Conditions takes nothing returns boolean
    return ( GetSpellAbilityId() == &#039;A005&#039; ) // \\&#039;A005\\&#039; raw code of the spell Inferno
endfunction

function Trig_Inferno1_Actions takes nothing returns nothing
    local location casterloc = GetUnitLoc(GetTriggerUnit()) // Position of Triggering unit
    local location targetloc = GetUnitLoc(GetSpellTargetUnit()) // Position of target
    call PolledWait(DistanceBetweenPoints(casterloc,targetloc) / speed() )
    call CasterCastAbilityPointLoc(GetOwningPlayer(GetTriggerUnit()), rawcode(), flamestring(), targetloc, true)
    call RemoveLocation(targetloc)
    call RemoveLocation(casterloc)
    set casterloc = null
    set targetloc = null
endfunction

//===========================================================================
function InitTrig_Inferno1 takes nothing returns nothing
    set gg_trg_Inferno1 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Inferno1, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Inferno1, Condition( function Trig_Inferno1_Conditions ) )
    call TriggerAddAction( gg_trg_Inferno1, function Trig_Inferno1_Actions )
endfunction


Nevertheless, good job. +rep
 

waaaks!

Zinctified
Reaction score
255
i really dont use constant function, but variables, maybe ill optimize it, and this will be the first time ill use constant function, thanks purge...
 

PurgeandFire

zxcvmkgdfg
Reaction score
509
@Ryuu: Did you c'n'p exactly what I put because they seem exactly the same. Just wondering, it doesn't matter. :D

@waaaks!: Well, constant functions can be a necessity to spells that use many variables.

Here is a "pretty much" optimized code for Firestorm:
JASS:
constant function rawcode takes nothing returns integer
    return &#039;A003&#039;
endfunction
constant function fire_storm_string takes nothing returns string
    return &quot;Firestorm_Actions&quot;
endfunction
constant function starfall takes nothing returns string
    return &quot;starfall&quot; //order string of the spell
endfunction
constant function volcanofx takes nothing returns string
    return &quot;Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl&quot; //special effect attached to triggering unit
endfunction
constant function phoenix_misfx takes nothing returns string
    return &quot;Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl&quot; // the four special effects that surround the caster
endfunction
constant function damage takes nothing returns real
    return 25.*GetUnitAbilityLevel(GetTriggerUnit(),rawcode())
endfunction
constant function radius takes nothing returns real
    return 450.
endfunction
constant function thunderclap takes nothing returns string
    return &quot;thunderclap&quot; //String order for the ability cast//
endfunction
constant function dum_code takes nothing returns integer
    return &#039;A004&#039; //Raw code for the dummy spell//
endfunction
constant function delay takes nothing returns real
    return 0.75 //A delay for the dummy unit to cast the spell
endfunction

function InitTrig_Firestorm takes nothing returns nothing
    call OnAbilityEffect( rawcode(), fire_storm_string() ) // \&#039;A003\&#039; raw code for the spell firestorm
endfunction

function Firestorm_Actions takes nothing returns nothing
    local location casterloc            = GetUnitLoc(GetTriggerUnit()) // position of triggering unit
    local real casterx                  = GetUnitX(GetTriggerUnit())
    local real castery                  = GetUnitY(GetTriggerUnit())
    local integer dopt                  = DamageTypes(ATTACK_TYPE_CHAOS,DAMAGE_TYPE_DIVINE) + DamageException(UNIT_TYPE_UNDEAD,3.0)
    local integer i                     = 0
    local real off
    local location polar
    loop
        exitwhen (GetUnitCurrentOrder(GetTriggerUnit()) != OrderId(starfall()))
        call DestroyEffect( AddSpecialEffectLoc( volcanofx(), casterloc) )
        set off                         = GetRandomReal(0, 36.0)
        loop
            exitwhen i&gt;4
            set polar = PolarProjectionBJ(casterloc, 100.0, off+i*72.0)
            call DestroyEffect( AddSpecialEffectLoc( phoenix_misfx(), polar ) )
            call RemoveLocation(polar)
            set i = i+1
        endloop 
        call DamageUnitsInAOEExLoc(GetTriggerUnit(), damage(), casterloc, radius(), false, udg_DamageOptions)
        call CasterCastAbilityPoint(GetOwningPlayer(GetTriggerUnit()), dum_code(), thunderclap(), casterx, castery, false)
        call PolledWait(delay())
    endloop
    call RemoveLocation(casterloc)
    set casterloc                      = null
    set polar                          = null
endfunction


//========================================================================

I will check the others later

-------------

Overall from what I've seen, these are pretty darn good spells. The code was pretty good and did things even I didn't think of.

Good job! I forgot to mention that: +REP! :D
 

waaaks!

Zinctified
Reaction score
255
thanks again purge

the next spellpack i make will be optimized and i will use constant function as well...
 

Sim

Forum Administrator
Staff member
Reaction score
534
> the next spellpack i make will be optimized and i will use constant function as well...

Why not this one?

----------------------------------------------------

Interesting spells.

Few bugs and glitches though :p

--> Polymorph

Original spell, although the name is already taken by a default warcraft 3 spell so I suggest changing it. Very liked the idea of skill points improving the spell ^^

--> Death Arrow

The caster pauses for a short duration at the beginning. A bit annoying :p 2 projectiles also get launched at the same time, which looks odd.

--> Fire Storm

A bit straightforward, but nice ;)

--> Inferno

Don't base your spells off auto-castable ones. Tooltip disappears.

A simple projectile along with Flame Strike is a bit "not enough" if you ask me.
 

waaaks!

Zinctified
Reaction score
255
> the next spellpack i make will be optimized and i will use constant function as well...

Why not this one?
ok ill optimize it...

--> Polymorph

Original spell, although the name is already taken by a default warcraft 3 spell so I suggest changing it. Very liked the idea of skill points improving the spell ^^
Ill change it and thanks...

--> Death Arrow

The caster pauses for a short duration at the beginning. A bit annoying 2 projectiles also get launched at the same time, which looks odd.

ill remove the delay, two projectiles? do u mean the sphere ability?

--> Fire Storm

A bit straightforward, but nice
thanks

--> Inferno

Don't base your spells off auto-castable ones. Tooltip disappears.

A simple projectile along with Flame Strike is a bit "not enough" if you ask me.
I would like to make it an auto-castable spell, but it wont work, it only works when you use it, not auto-cast it, i wonder how did dota do the autocastable spell, like impetus and glaives of wisdom
like even if auto-cast the spell, it still triggers...

all in all thanks....

EDIT: oh yeah! Dax can you show me where the bugs are, because ill remove the bugs at the same time ill optimize it
based on my testing, i found only 1 bug, and it is from death arrow
when you go to a place where there are boundaries, and your hero is too close to the boundaries, and when you start the spell, the projectile stucks at the boundaries
thats the only bug i found, thats why im still searching for any bug...
 

Sim

Forum Administrator
Staff member
Reaction score
534
Didn't really acknowledge any bug, only annoyances (such as the pausing).

> ill remove the delay, two projectiles? do u mean the sphere ability?

Yup, the little green sphere the blood mage throws when attacking. You need to get rid of it.

I think I saw somewhere a way to make auto-cast spells work with triggers when auto-casted. I need to trace it back.
 

waaaks!

Zinctified
Reaction score
255
ok ill remove it then, but not now maybe later, because this isnt my computer (i always use this computer for internet, because my computer has no internet)

thanks again dax

EDIT: finish optimizing it Dax...
 

Sim

Forum Administrator
Staff member
Reaction score
534
Remove Auto-cast on Inferno.

Death Arrow still pauses a bit.

FireStorm shouldn't pause your hero. Make it channeling and interruptible instead.

Other than that... Great! Just fix those.

EDIT: Maybe Death Arrow pauses the caster because of Caster System. Hard time finding where and how exactly though :p
 

waaaks!

Zinctified
Reaction score
255
Death Arrow...i removed the delay already, maybe thats because i based my spell on channel, ill change that...

ok ill fix it again

OFFTOPIC:
do u know why im lazy fixing things in maps and triggers because
  1. First i get replies on fix this, and that...
  2. Second, ill turn this office compuer off
  3. third leave the office
  4. fourth go to my computer room(with no internet)
  5. fifth open WE
  6. sixth edit what they suggested
  7. seventh copy map
  8. eight paste it on removable disk F
  9. turn off computer
  10. go back here
  11. upload map
  12. finish...

thats the step ill do every day...
but im not saying im not going to fix it....
ill fix it later after im done downloading 100 mb part 2 cube.rar (PSP game)
 

Sim

Forum Administrator
Staff member
Reaction score
534
Honestly the delay isn't that bad. Try some things and if it doesn't work leave it be.

Other things need to be fixed though ;)
 

waaaks!

Zinctified
Reaction score
255
maybe ill change the base spell, because sometimes when u use channel, theres always a delay

EDIT: finish second update, take a look
 

waaaks!

Zinctified
Reaction score
255
the spell inferno...please read the info of the spell

after youve read it id like to make it autocast

no more feedbacks already?
ill keep watching this till it is approved...
 

Sim

Forum Administrator
Staff member
Reaction score
534
> DOes the autocast works like searing arrows (Trigger fires when you attack)??

It is no longer an auto-cast spell.

-------------

Approved.

One thing though: Inferno's Slame Strike should have a greater AoE. I know you want the spell to damage only the original target, but it's just too unrealistic to see the fire under a nearby unit while it doesn't take damage.
 
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