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

BladeStorm spell

Status
Not open for further replies.
Level 17
Joined
Nov 12, 2016
Messages
780
Hi everyone.

if anyone can help me i wanted to make a spell based on bladestorm only name it bloodstorm

whichever this one might be hard but i basiclly want a bladestorm ability to heal the hero based on half the damage it deals and also to stack all effected units with poison passive ability.
only the buff and icon will be diffrent and it will be called bloodstorm and the stacked buff will decrease the movment speed and attack rate of effected enemy units by 25% and will stop any HP regn it lasts 15 seconds.


i know this is a really hard ability :/
whichever i will give +4 rep points if anyone makes it also to include Special thanks when my map is posted.
 
Level 24
Joined
Feb 9, 2009
Messages
1,787
I'll take a whack
Using that same Damage system by Bribe, since his system can refer to the damage being dealt and heal accordingly

The life regen reduction is too difficult for me to achieve as every unit has different regen rates and trying to negate that would be way too unrealistic from my experience
 

Attachments

  • Bloodstorm-1d.w3x
    47.1 KB · Views: 70
Last edited:
Level 17
Joined
Nov 12, 2016
Messages
780
holy crab thanks man this works really nice.

i will give the rep points after the timer for the last one ends.

and one question how do i reamove those blue numbers i dont want them to be visible
 
Level 24
Joined
Feb 9, 2009
Messages
1,787
That's just "Damage Tag" in the "not required" section of the triggers, so just delete it if it pleases you.
The trigger refers to any damage being dealt and creates a floating text.

Bribe's System made this very simple so be sure to mention him in your map!

My only worry is that the hero that uses this ability if they have spell damage it will trigger the effect...

Edit, added fix, the Variable in "Bloodstorm Init": "BS_Basedamage" just needs to match the spells damage in the object editor. If you want to change the damage change "BS_ActualDamage"
This way the hero can cast other abilities and not heal or bleed targets when he's not using bloodstorm.
 
Last edited:
Level 17
Joined
Nov 12, 2016
Messages
780
nice and the hero i have uses a diffrent version of war stomp entangling roots and has 2 passives which one is based on a posion ability like the one dryads have and another passive that is based on a thorns aura but its only on the hero itself .
but whichever thanks for fixing it.
 
Level 17
Joined
Nov 12, 2016
Messages
780
well im having some troble copy pasting these stuff

becuse nearly all of the based abilites you have made are already used in my map specially the locust swarm one

for now the only thing thats happening when i test the map is that anyone that has a copy of a bladestorm shoots phonixe fires ability in some odd way

i have a modded phonixe fire given to my original locusts for a ability and its named holy aura but anyway when i test the map any unit that has bladestorm gets close to a hostile unit this phonixe fire will be casted on both them and to hero

and what are the lich unit
the fixed anti magic shield
the tidal gaurdian
the 2 types of spell reduction bracers one set to 2 one set to 1.67 (i do use the orginal one btw)
and the panic shield
and the mana shield made with a brilliance aura
and an orginal mana shield

or actually correct that any of my units that get close to any hostile enemy units shoot this modded phonixe fire that i made
 
Last edited:
Level 24
Joined
Feb 9, 2009
Messages
1,787
The Damage Engine has importing instructions that require modifications to Locust Swarm, Spell bracer, and two other abilities (Cheat death (+500,000) & Detect Spell damage) both of which must be added to your map and set to their respective variables in the Damage engine config
It sounds like when you copied it over the required changes were not made and instead the phoniex fire abiility fires in it's place
Just follow the intructions in the damage engine config or his main page when I quote it.

Majority of the custom units are from the original test map provided by Bribe for his Damage engine that display all the possibilities for the engine.
Fixed anti magic shield & the other mana shield are his and can be used if you want a custom mana shield / anti magic shield

The panic shield, and Passive mana shield (brilliance aura) are custom abilities, the lich, & tidal gaurdian are units I used to test the other custom abilties.
If you are interested I can post them.

If you need more help lemme know!


EDIT: Replicated the results, you need set the ability variables in the Damage engine config

below in the spoiler is the trigger you need to change, if you like you can pastebin me a copy of your map and i'll do it if it's too much trouble
  • Damage Engine Config
    • Events
    • Conditions
      • (UDexUnits[UDex] is A structure) Equal to False
    • Actions
      • -------- - --------
      • -------- This trigger's conditions let you filter out units you don't want detection for. --------
      • -------- NOTE: By default, units with Locust will not pass the check. --------
      • -------- TIP: The unit is called UDexUnits[UDex] and its custom value is UDex --------
      • -------- - --------
      • -------- Copy the Cheat Death Ability from Object Editor into your map and set the following variable respectively: --------
      • -------- - --------
      • Set DamageBlockingAbility = Cheat Death Ability (+500,000)
      • -------- - --------
      • -------- Copy the Detect Spell Damage Ability from Object Editor into your map and set the following variable respectively: --------
      • -------- - --------
      • Set SpellDamageAbility = Detect Spell Damage
      • -------- - --------
      • -------- You can add extra classifications here if you want to differentiate between your triggered damage --------
      • -------- Use DamageTypeExplosive (or any negative value damage type) if you want a unit killed by that damage to explode --------
      • -------- - --------
      • Set DamageTypeExplosive = -1
      • Set DamageTypeCriticalStrike = 1
      • Set DamageTypeHeal = 2
      • Set DamageTypeReduced = 3
      • Set DamageTypeBlocked = 4
      • -------- - --------
      • -------- Leave the next Set statement disabled if you modified the Spell Damage Reduction item ability to 1.67 reduction --------
      • -------- Otherwise, if you removed that ability from Runed Bracers, you'll need to enable this line: --------
      • -------- - --------
      • Set DmgEvBracers = Runed Bracers
      • -------- - --------
      • -------- Set the damage multiplication factor (1.00 being unmodified, increasing in damage over 1.00 and at 0 damage with 0.00) --------
      • -------- NOTE. With the default values, Runed Bracers is reduces 33%, Elune's Grace reduces 20% and Ethereal increases 67% --------
      • -------- - --------
      • Set DAMAGE_FACTOR_BRACERS = 0.67
      • Set DAMAGE_FACTOR_ELUNES = 0.80
      • Set DAMAGE_FACTOR_ETHEREAL = 1.67
      • -------- - --------
      • -------- Added 25 July 2017 to allow detection of things like Bash or Pulverize or AOE spread --------
      • -------- - --------
      • Set DamageEventAOE = 1
      • Set DamageEventLevel = 1
      • -------- - --------
      • -------- Do not enable any of the following lines as they are simply variable declarations to make copying easier --------
      • -------- - --------
      • Set AfterDamageEvent = (DamageEvent + (AOEDamageEvent + DamageModifierEvent))
      • Set ClearDamageEvent = (This trigger)
      • Set DamageEventAmount = DamageEventPrevAmt
      • Set DamageEventOverride = NextDamageOverride
      • Set DamageEventSource = DamageEventTarget
      • Set DamageEventTrigger = DmgEvTrig
      • Set DamageEventType = (LastDmgPrevType[0] + NextDamageType)
      • Set DamageEventsWasted = DmgEvRecursionN
      • Set DmgEvRunning = DmgEvStarted
      • Set IsDamageSpell = LastDmgWasSpell[0]
      • Set LastDamageHP = (Elapsed time for DmgEvTimer)
      • Set LastDmgPrevAmount[0] = LastDmgValue[0]
      • Set LastDmgSource[0] = LastDmgTarget[0]
      • Set HideDamageFrom[0] = False
      • Set UnitDamageRegistered[0] = False
      • Unit Group - Remove all units from DamageEventAOEGroup

Otherwise the requirements for the system to work properly

Taken directly from Bribe's System *the first four are required!*:
  • Necessary: Copy & paste the Unit Indexer trigger into your map.
  • Necessary: Copy & paste the Damage Engine trigger into your map
  • Necessary: Copy the Cheat Death Ability from Object Editor, and set it to the variable DamageBlockingAbility.
  • Necessary: Copy the Spell Damage Detector Ability from Object Editor, and set it to the variable SpellDamageAbility.
  • Recommended: Mana Shield abilities need their Damage Absorbed % reduced to 0.00. The test map has this implemented already.
  • Recommended: Anti-Magic Shell (amount-based) has to be triggered. I included the dummy ability, as well as the trigger, in the test map.
  • Recommended: Locust Swarm needs its Damage Return Factor changed from 0.75 to -0.75. The test map has this implemented already.
  • Recommended: Unlike in PDD, do not remove the Spell Damage Reduction ability from your Runed Bracers. Instead, modify the spell damage ability (in Object Editor, go to spells tab, then to special from the left column, then under items change Spell Damage Reduction's Damage Reduction) to 1.67 instead of .33. The test map has this implemented already. If you are switching from PDD and already had that ability removed, just implement the cross-compatibility PDD script I included below.
  • Recommended: Spell damage is converted into negative damage values without this system, so I recommend not using the event "Unit Takes Damage" and, instead, using Damage Engine to process those events (DamageEvent becomes Equal to 1.00).
  • Recommended: Life Drain doesn't heal the caster. To fix this, I have created a mostly-perfect trigger which heals the caster to the correct amount at the correct time. You can find this trigger in the test map.
  • Note: You can configure the script to detect certain conditions that may affect its spell resistance (ie. a different item than runed bracers or different variations of Elune's Grace). You can use a "DamageModifierEvent Equal to 1.00" trigger to adjust the damage amount manually, just by checking if DamageEventTarget has a certain item or ability.
  • Note: There is no need for Get/SetUnitLife functions, nor UnitDamageTargetEx. The system uses a Unit State event to detect when the unit's life has been adjusted for damage, and then an "AfterDamageEvent Equal to 1.00" event is fired.
 
Last edited:
Level 17
Joined
Nov 12, 2016
Messages
780
it took me some time before i noticed this.
there is a problem with this spell.

i thought i was doing sth wrong but after i paid some extra attention to your map i saw that no this problem is also happening in your map as well.

so short said if you play around with that ability you will see that the bleeding effect will be cast on the hero itself and he too will suffer -25% attackrate and movment speed. (including when you target an enemy unit then while the storm is still active go away from it)
also if you pay more attention as in testing this ability agaisnt a group of units that do 1 damage you will see while casting the spell the hero also takes damage.
 
Level 24
Joined
Feb 9, 2009
Messages
1,787
ah, whoops that's the dummy using the bleeding effect, it's owned by the target who's getting hit by the blademaster (foresight)
It's killing the target before the dummy can bleed the unit and it's left to it's own devices so it attacks our dear hero.
So I'll upload the fix to my first post but you can also change it by changing this line:
  • Unit - Create 1 Attacking Dummy for (Owner of DamageEventTarget) at TempPoint facing Default building facing degrees
and changing the owner of the unit to DamageEventSource instead of DamageEventTarget

Tl:dr
Butter Fingers - Fixed Hero taking bleed damage from his own ability when killing enemy units with bloodstorm in effect.

Edit: noticed I made a mistake of picking targets within the AOE of the target taking damage
making needless lag, updated first post
 
Last edited:
Level 17
Joined
Nov 12, 2016
Messages
780
Thank you !! the ability works fine now.
ive set the base damage to 90 instad of 50
but whichever the ability works really nice .
 
Status
Not open for further replies.
Top