• 🏆 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!

Amazon Spellpack v1.5

Some of the spells I made for my ORPG. Don't worry, in the ORPG the damage will be much more better. I just modified it for that upload.

Special thanks to Maker for his kick-ass spell calling system.
Thanks to JetFangInferno for his white roar model.

Impaling ArrowShoots a powerful arrow straight forward that damages and knocks back enemy units.

Triggers may be outdated
  • Impaling Arrow
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • IAHas[IALastRecycled] Equal to True
        • Then - Actions
          • Set IAMax = (IAMax + 1)
          • Set IAIndex = IAMax
        • Else - Actions
          • Set IAIndex = IALastRecycled
          • Set IALastRecycled = IARecycledList[IALastRecycled]
      • Set IACaster[IAIndex] = (Triggering unit)
      • Set IATargetPoint[IAIndex] = (Target point of ability being cast)
      • Set IACasterPoint[IAIndex] = (Position of IACaster[IAIndex])
      • Set IAMaxDistance[IAIndex] = (800.00 + (200.00 x (Real((Level of Impaling Arrow for IACaster[IAIndex])))))
      • Set IADistance[IAIndex] = 0.00
      • Set IADamage[IAIndex] = (50.00 x (Real((Level of Impaling Arrow for IACaster[ARIndex]))))
      • Set IAHas[IAIndex] = True
      • Set IACount = (IACount + 1)
      • Set IAAngle[IAIndex] = (Angle from IACasterPoint[IAIndex] to IATargetPoint[IAIndex])
      • Unit - Create 1 Arrow Dummy for (Triggering player) at IACasterPoint[IAIndex] facing IAAngle[IAIndex] degrees
      • Set IAArrow[IAIndex] = (Last created unit)
      • Custom script: set udg_IADMGGroup[udg_IAIndex] = CreateGroup()
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Impaling Arrow Loop <gen> is on) Equal to False
        • Then - Actions
          • Trigger - Turn on Impaling Arrow Loop <gen>
        • Else - Actions
  • Impaling Arrow Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer IAInteger) from 0 to IAMax, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • IAHas[IAInteger] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • IADistance[IAInteger] Less than IAMaxDistance[IAInteger]
                • Then - Actions
                  • Set IADistance[IAInteger] = (IADistance[IAInteger] + 50.00)
                  • Set TempLoc = (IACasterPoint[IAInteger] offset by IADistance[IAInteger] towards IAAngle[IAInteger] degrees)
                  • Unit - Move IAArrow[IAInteger] instantly to TempLoc
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within 100.00 of TempLoc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in IADMGGroup[IAInteger]) Equal to Fa and do (Actions)
                    • Loop - Actions
                      • Unit Group - Add (Picked unit) to IADMGGroup[IAInteger]
                      • Unit - Cause IACaster[IAInteger] to damage (Picked unit), dealing IADamage[IAInteger] damage of attack type Pierce and damage type Normal
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (IADistance[IAInteger] mod 400.00) Equal to 0.00
                    • Then - Actions
                      • Unit - Create 1 Pulse for (Owner of IACaster[IAInteger]) at TempLoc facing IAAngle[IAInteger] degrees
                      • Animation - Change (Last created unit)'s vertex coloring to (50.00%, 50.00%, 50.00%) with 75.00% transparency
                      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                    • Else - Actions
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within 100.00 of TempLoc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of IACaster and do (Actions)
                    • Loop - Actions
                      • Set TempLoc2 = (Position of (Picked unit))
                      • Set TempLoc3 = (TempLoc2 offset by 20.00 towards (Angle from IACasterPoint[IAInteger] to TempLoc2) degrees)
                      • Unit - Move (Picked unit) instantly to TempLoc3
                      • Special Effect - Create a special effect at TempLoc2 using Abilities\Spells\Orc\Devour\DevourEffectArt.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Custom script: call RemoveLocation (udg_TempLoc2)
                      • Custom script: call RemoveLocation (udg_TempLoc3)
                  • Custom script: call RemoveLocation (udg_TempLoc)
                • Else - Actions
                  • Unit - Explode IAArrow[IAInteger]
                  • Unit Group - Remove all units from IADMGGroup[IAInteger]
                  • Custom script: call DestroyGroup (udg_IADMGGroup[udg_IAInteger])
                  • Custom script: call RemoveLocation (udg_IATargetPoint[udg_IAInteger])
                  • Custom script: call RemoveLocation (udg_IACasterPoint[udg_IAInteger])
                  • Set IACount = (IACount - 1)
                  • Set IAHas[IAInteger] = False
                  • Set IARecycledList[IAInteger] = IALastRecycled
                  • Set IALastRecycled = IAInteger
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • IACount Equal to 0
                    • Then - Actions
                      • Set IARecycledList[IAInteger] = 0
                      • Set IALastRecycled = 0
                      • Set IAMax = 0
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
            • Else - Actions
Arrow RainShoots an arrow to the sky that splits into pieces then falls down damagind enemy units in the target area.

  • Arrow Rain
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ARHas[ARLastRecycled] Equal to True
        • Then - Actions
          • Set ARMax = (ARMax + 1)
          • Set ARIndex = ARMax
        • Else - Actions
          • Set ARIndex = ARLastRecycled
          • Set ARLastRecycled = ARRecycledList[ARLastRecycled]
      • Set ARCaster[ARIndex] = (Triggering unit)
      • Set ARTargetPoint[ARIndex] = (Target point of ability being cast)
      • Set ARDelay[ARIndex] = 1.00
      • Set ARHas[ARIndex] = True
      • Set ARArrows[ARIndex] = (35 + (5 x (Level of Arrow Rain for ARCaster[ARIndex])))
      • Set ARCount = (ARCount + 1)
      • Set ARDamage[ARIndex] = (20.00 + (5.00 x (Real((Level of Arrow Rain for ARCaster[ARIndex])))))
      • Set TempLoc = (Position of ARCaster[ARIndex])
      • Unit - Create 1 Small Arrow Dummy Up for (Triggering player) at TempLoc facing Default building facing degrees
      • Animation - Change (Last created unit) flying height to 1500.00 at 2500.00
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Custom script: call RemoveLocation (udg_TempLoc)
      • Custom script: set udg_ARArrowsGroup[udg_ARIndex] = CreateGroup()
      • Custom script: set udg_ARArrowsGroup2[udg_ARIndex] = CreateGroup()
      • For each (Integer A) from 1 to ARArrows[ARIndex], do (Actions)
        • Loop - Actions
          • Unit - Create 1 Small Arrow Dummy for (Triggering player) at ARTargetPoint[ARIndex] facing Default building facing degrees
          • Unit Group - Add (Last created unit) to ARArrowsGroup[ARIndex]
          • Animation - Change (Last created unit) flying height to 1500.00 at 0.00
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Arrow Rain Loop <gen> is on) Equal to False
        • Then - Actions
          • Trigger - Turn on Arrow Rain Loop <gen>
        • Else - Actions
  • Arrow Rain Loop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer ARInteger) from 0 to ARMax, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ARHas[ARInteger] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ARDelay[ARInteger] Greater than 0.00
                • Then - Actions
                  • Set ARDelay[ARInteger] = (ARDelay[ARInteger] - 0.03)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • (Number of units in ARArrowsGroup[ARInteger]) Greater than 0
                          • (Number of units in ARArrowsGroup2[ARInteger]) Greater than 0
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • (Number of units in ARArrowsGroup[ARInteger]) Greater than 0
                        • Then - Actions
                          • Set TempUnit = (Random unit from ARArrowsGroup[ARInteger])
                          • Set ARArrows[ARInteger] = (ARArrows[ARInteger] - 1)
                          • Unit Group - Add TempUnit to ARArrowsGroup2[ARInteger]
                          • Unit Group - Remove TempUnit from ARArrowsGroup[ARInteger]
                          • Set TempLoc = (ARTargetPoint[ARInteger] offset by (Random real number between 0.00 and 150.00) towards (Random angle) degrees)
                          • Unit - Move TempUnit instantly to TempLoc
                          • Custom script: call RemoveLocation (udg_TempLoc)
                        • Else - Actions
                      • Unit Group - Pick every unit in ARArrowsGroup2[ARInteger] and do (Actions)
                        • Loop - Actions
                          • Set TempReal = ((Current flying height of (Picked unit)) - 50.00)
                          • Animation - Change (Picked unit) flying height to TempReal at 0.00
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • TempReal Less than or equal to 0.00
                            • Then - Actions
                              • Unit - Add a 1.00 second Generic expiration timer to (Picked unit)
                              • Set TempLoc = (Position of (Picked unit))
                              • Custom script: set bj_wantDestroyGroup = true
                              • Unit Group - Pick every unit in (Units within 50.00 of TempLoc matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of ARCaster[ and do (Actions)
                                • Loop - Actions
                                  • Unit - Cause ARCaster[ARInteger] to damage (Picked unit), dealing ARDamage[ARInteger] damage of attack type Pierce and damage type Normal
                              • Custom script: call RemoveLocation (udg_TempLoc)
                              • Unit Group - Remove (Picked unit) from ARArrowsGroup2[ARInteger]
                            • Else - Actions
                    • Else - Actions
                      • Set ARCount = (ARCount - 1)
                      • Set ARHas[ARInteger] = False
                      • Custom script: call RemoveLocation (udg_ARTargetPoint[udg_ARInteger])
                      • Custom script: call DestroyGroup (udg_ARArrowsGroup[udg_ARInteger])
                      • Custom script: call DestroyGroup (udg_ARArrowsGroup2[udg_ARInteger])
                      • Set ARRecycledList[ARInteger] = ARLastRecycled
                      • Set ARLastRecycled = ARInteger
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ARCount Equal to 0
                        • Then - Actions
                          • Set ARRecycledList[ARInteger] = 0
                          • Set ARLastRecycled = 0
                          • Set ARMax = 0
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
            • Else - Actions
Flare ArrowLaunches an enchanted arrow above a target point, which reveals that area and blinds enemy units. Blinded units can miss on attack.

  • Flare Arrow
    • Events
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FAHas[FALastRecycled] Equal to True
        • Then - Actions
          • Set FAMax = (FAMax + 1)
          • Set FAIndex = FAMax
        • Else - Actions
          • Set FAIndex = FALastRecycled
          • Set FALastRecycled = FARecycledList[FALastRecycled]
      • Set FACaster[FAIndex] = (Triggering unit)
      • Set FAHas[FAIndex] = True
      • Set FACount = (FACount + 1)
      • Set FATargetPoint[FAIndex] = (Target point of ability being cast)
      • Set FATimer[FAIndex] = 5.00
      • Set FADelay[FAIndex] = 1.00
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Flare Arrow Loop <gen> is on) Equal to False
        • Then - Actions
          • Trigger - Turn on Flare Arrow Loop <gen>
        • Else - Actions
  • Flare Arrow Loop
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • For each (Integer FAInteger) from 0 to FAMax, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • FAHas[FAInteger] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • FADelay[FAInteger] Greater than 0.00
                • Then - Actions
                  • Set FADelay[FAInteger] = (FADelay[FAInteger] - 0.10)
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • FATimer[FAInteger] Greater than 0.00
                    • Then - Actions
                      • Set FATimer[FAInteger] = (FATimer[FAInteger] - 0.10)
                      • Custom script: set bj_wantDestroyGroup = true
                      • Set TempInt = (Level of Flare Arrow for FACaster[FAInteger])
                      • Unit Group - Pick every unit in (Units within 250.00 of FATargetPoint[FAInteger] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of ( and do (Actions)
                        • Loop - Actions
                          • Unit - Create 1 Dummy for (Owner of FACaster[FAInteger]) at FATargetPoint[FAInteger] facing Default building facing degrees
                          • Set TempUnit = (Last created unit)
                          • Unit - Add Blind to TempUnit
                          • Unit - Set level of Blind for TempUnit to TempInt
                          • Unit - Add a 1.00 second Generic expiration timer to TempUnit
                          • Unit - Order TempUnit to Undead Banshee - Curse (Picked unit)
                    • Else - Actions
                      • Set FACount = (FACount - 1)
                      • Set FAHas[FAInteger] = False
                      • Custom script: call RemoveLocation (udg_FATargetPoint[udg_FAInteger])
                      • Set FARecycledList[FAInteger] = FALastRecycled
                      • Set FALastRecycled = FAInteger
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • FACount Equal to 0
                        • Then - Actions
                          • Set FARecycledList[FAInteger] = 0
                          • Set FALastRecycled = 0
                          • Set FAMax = 0
                          • Trigger - Turn off (This trigger)
                        • Else - Actions
            • Else - Actions
Split Cold ArrowsShoots an arrow that splits into several pieces to damage enemy units around the target unit slowing and damaging them.

  • Split Cold Arrows
    • Events
    • Conditions
    • Actions
      • Set Caster = (Triggering unit)
      • Set Target = (Target unit of ability being cast)
      • Set TempLoc = (Position of Caster)
      • Set TempLoc2 = (Position of Target)
      • Set TempGroup = (Units within 250.00 of TempLoc2 matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Triggering playe
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in TempGroup) Greater than 1
        • Then - Actions
          • Set TempReal = ((Real((Agility of Caster (Include bonuses)))) / ((Real((Number of units in TempGroup))) / 2.00))
        • Else - Actions
          • Set TempReal = (Real((Agility of Caster (Include bonuses))))
      • Set TempInt2 = (Level of Split Cold Arrows for Caster)
      • Unit Group - Pick every unit in TempGroup and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy Attack for (Triggering player) at TempLoc facing Default building facing degrees
          • Set TempUnit = (Last created unit)
          • Unit - Add Dummy Damage to TempUnit
          • Unit - Set level of Dummy Damage for TempUnit to (Integer(TempReal))
          • Unit - Add Split Cold Arrows Dummy to TempUnit
          • Unit - Set level of Split Cold Arrows Dummy for TempUnit to TempInt2
          • Unit - Add a 1.00 second Generic expiration timer to TempUnit
          • Unit - Order TempUnit to Neutral Naga Sea Witch - Activate Frost Arrows
          • Unit - Order TempUnit to Attack Once (Picked unit)
      • Custom script: call RemoveLocation (udg_TempLoc)
      • Custom script: call RemoveLocation (udg_TempLoc2)
      • Custom script: call DestroyGroup (udg_TempGroup)
Shadow ShotCreates a shadow of the hero behind the target to damage it. The damage dealt is equal to the hero's agility.

  • Shadow Shot
    • Events
    • Conditions
    • Actions
      • Set Caster = (Triggering unit)
      • Set Target = (Target unit of ability being cast)
      • Set TempLoc = (Position of Target)
      • Set TempLoc2 = (TempLoc offset by 500.00 towards ((Facing of Target) + (Random real number between 160.00 and 200.00)) degrees)
      • Unit - Create 1 Dummy Amazon Attack for (Triggering player) at TempLoc2 facing TempLoc
      • Special Effect - Create a special effect at TempLoc2 using Abilities\Spells\Items\AIil\AIilTarget.mdl
      • Special Effect - Destroy (Last created special effect)
      • Set TempUnit = (Last created unit)
      • Set TempInt = (Agility of Caster (Include bonuses))
      • Animation - Change TempUnit's vertex coloring to (50.00%, 50.00%, 50.00%) with 50.00% transparency
      • Unit - Add Dummy Damage to TempUnit
      • Unit - Set level of Dummy Damage for TempUnit to TempInt
      • Unit - Add a 1.00 second Generic expiration timer to TempUnit
      • Unit - Order TempUnit to Attack Once (Picked unit)
      • Custom script: call RemoveLocation (udg_TempLoc)
      • Custom script: call RemoveLocation (udg_TempLoc2)
v1.5
minor improvements
major bug fix
v1.4
minor fixes
v1.3
minor fixes
v1.2
changes made
v1.1
minor changes made
v1.0
release


Keywords:
arrow, rain, shadow, shot, impale, impaling, knockback, index, hashtable, hash, blind, split, cold, magic, agility, archer
Contents

Just another Warcraft III map (Map)

Reviews
Approved. Good spell pack. The spells are original and the effects are fine.

Moderator

M

Moderator

Maker, 2nd Aug, Amazon Spellpack v1.3

Approved. Good spell pack. The spells are original and the effects are fine.
 
Level 10
Joined
Apr 25, 2009
Messages
296
Several of the spells constantly call (GetLastCreatedUnit()) and (GetEnumUnit())... if you set them to a variable it could help with efficiency.

(Level of Split Cold Arrows for Caster) set that to a variable to help with efficiency, and just re-call the variable.

Unit - Kill IAArrow[IAInteger] - I've heard that you should use Unit - Explode instead.

Shadow Shot is fairly simple, triggering wise, which can be good and bad.

The spells are triggered very well, if you wish to increase the efficiency just do what I listed.
 
Level 9
Joined
May 14, 2011
Messages
524
Shadow shot don't always hit the targeted unit? Or you wanted it like that? Put some invisible units in the map for the testers to see if the flare arrow reveals invisible units or not but thats not important,its up to u :x you should really add a blood effect when the impaling arrow hits ^^
PS:Shadow arrow's shadow should be checked using triggers,not just using a dummy but that's hard so you should ask maker to help u :)
 
Level 9
Joined
May 14, 2011
Messages
524
Sry dint read properly for the flare arrow,for the shadow arrow you should check with other triggerers,im not that good,just a suggestion but i think you should replace the knockback effect with blood effect ^^ all the best
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
You don't need this:
  • Custom script: set udg_IADMGGroup[udg_IAIndex] = CreateGroup()
In GUI, Globals automatically initialize ( They go to the globals header of the map and initialize (CreateGroup for groups, InitHashtable for hashtables, CreateRegion for regions, etc...)

Well just try to remove it... You have to pre-set the arrayed groups before you can use add and remove on them. If you don't, the game don't know if that group really exists and does nothing with these functions.
 
Level 37
Joined
Mar 6, 2006
Messages
9,240

Remove the OR, this shouldn't be on all the time.
  • Clean Dummy
    • Events
      • Unit - A unit Dies
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Triggering unit)) Equal to Dummy Amazon Attack
    • Actions
      • Unit - Remove (Triggering unit) from the game
This function could use reals since it can give the same output with differeent input values:
  • Set TempInt = ((Agility of Caster (Include bonuses)) / ((Number of units in TempGroup) / 2))
For example
27/(3/2) => 27
27/(2/2) => 27
with reals
27/(3/2) => 18
27/(3/2) => 27

How can this be 0 if is not subtracted from: IACount Equal to 0? The check is in the wrong place. Do the change in all looping spells.

Impaling arrow travels on the ground.

  • Set ARArrows[ARIndex] = (35 + (5 x (Level of Unknown (A00Q) for ARCaster[ARIndex])))
Unit group leak:
  • Unit Group - Pick every unit in (Random 1 units from ARArrowsGroup[ARInteger]) and do (Actions)
    • Loop - Actions


And GUI arrays are not auto-initialized. Things like timers, groups and dialogs have to be created by the user with calling the create function or setting the initial size of the array, like Adiktuz said.

Only indexes 0 and 1 are not automatically null.
 
Level 9
Joined
May 14, 2011
Messages
524
Btw the spells lag when I cast them for the first time,I don't know if its my comp or your spell,but if its your spell i think its the spell calling system
 
Level 16
Joined
Jun 24, 2009
Messages
1,409
Oh, the comment wasn't pointed at you, you're using CreateGroup so no problem there :)

Glad to hear that :) Moment and I upload the new version.

Edit: Done!

Btw the spells lag when I cast them for the first time,I don't know if its my comp or your spell,but if its your spell i think its the spell calling system

I'm not sure if the spell calling system is it. The strange thing that annoys me that the simpliest spell creates the biggest lagg.
 
Level 12
Joined
Nov 5, 2007
Messages
730
Only on the first cast as I said.

Any way to fix it? I love your spellpack but that lag is very obvious and pretty annoying, even though it just happens once. I'm not that good with triggers so I don't know how to fix it myself :/
 
Level 3
Joined
Dec 4, 2008
Messages
24
Is there any way to change the damage output to somthing better than in this systems default damage cause the dummy damage u use is very limited
(Ex. what if the agi of the caster is higher than the ones listed on the dummy damage u use)
any replies to this matter is appreciated :ogre_haosis:
 
Top