[Spell] Satanic - Spell (Temporary Lifesteal)

Level 13
Joined
Sep 11, 2013
Messages
467
Greetings!

I wish to create a MUI spell (channel Instant (No Target)) with 5 levels that give me 15/20/25/30/35% (self only) lifesteal/hit for a set amount of time 10/15/20/25/30 seconds.

How can I do that? It is possible? :peasant-confused:

The help will be appreciated!
 
Level 13
Joined
Sep 11, 2013
Messages
467
There's an existing item ability that does just that, it's Vampiric Potion :>
Oh.. I didn't know that. Thanks a lot!

Edit: If I already have a channel spell and I want that channel to activate 2 (or more) spells on my hero. How can I put Vampiric Potion on that channel?

In this trigger I use channel to put cripple on me, but I also want to put Vampiric Potion on me when I use it, but Vampiric Potion do not have targeted order.. So how can I do that?

  • Velocity Ability AGI
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Velocity - Channel -
    • Actions
      • Set VariableSet TempPointVelocity = (Position of (Triggering unit))
      • Unit - Create 1 Wisp Cripple Dummy for (Owner of (Triggering unit)) at TempPointVelocity facing Default building facing degrees
      • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • Unit - Add Cripple - Dummy to (Last created unit)
      • Unit - Set level of Cripple - Dummy for (Last created unit) to (Level of Velocity - Channel - AGI for (Triggering unit))
      • Unit - Order (Last created unit) to Undead Necromancer - Cripple (Triggering unit)
      • Custom script: call RemoveLocation(udg_TempPointVelocity)
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Use Vampiric Potion as the base ability and then do this:
  • Velocity Ability AGI
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Velocity - Vampiric -
    • Actions
      • Set VariableSet TempPointVelocity = (Position of (Triggering unit))
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at TempPointVelocity facing Default building facing degrees
      • Set VariableSet TempDummy = (Last created unit)
      • Unit - Add a 0.20 second Generic expiration timer to TempDummy
      • Unit - Add Cripple - Dummy to TempDummy
      • Unit - Set level of Cripple - Dummy for TempDummy to (Level of Velocity - Channel - AGI for (Triggering unit))
      • Unit - Order TempDummy to Undead Necromancer - Cripple (Triggering unit)
      • Custom script: call RemoveLocation(udg_TempPointVelocity)
Dummy Settings: Copy the Locust, Set Model = None, Shadow = None, Attacks Enabled = None, Movement Type = None, Speed Base = 0.
Optional Settings: Use Vexorian's Dummy model to get access to Attachment Points. Then adjust Art fields for better Special Effect visuals.

I recommend having one reusable Dummy-type for handling ALL of your triggered spell casting needs.
However, you may need a Dummy-type that can Move around if you plan on using it as a missile. Although, I'd recommend using Special Effects for that.
 
Last edited:
Level 13
Joined
Sep 11, 2013
Messages
467
Use Vampiric Potion as the base ability and then do this:
  • Velocity Ability AGI
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Velocity - Vampiric -
    • Actions
      • Set VariableSet TempPointVelocity = (Position of (Triggering unit))
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at TempPointVelocity facing Default building facing degrees
      • Set VariableSet TempDummy = (Last created unit)
      • Unit - Add a 0.20 second Generic expiration timer to TempDummy
      • Unit - Add Cripple - Dummy to TempDummy
      • Unit - Set level of Cripple - Dummy for TempDummy to (Level of Velocity - Channel - AGI for (Triggering unit))
      • Unit - Order TempDummy to Undead Necromancer - Cripple (Triggering unit)
      • Custom script: call RemoveLocation(udg_TempPointVelocity)
Dummy Settings: Copy the Locust, Set Model = None, Shadow = None, Attacks Enabled = None, Movement Type = None, Speed Base = 0.
Optional Settings: Use Vexorian's Dummy model to get access to Attachment Points. Then adjust Art fields for better Special Effect visuals.

I recommend having one reusable Dummy-type for handling ALL of your triggered spell casting needs.
However, you may need a Dummy-type that can Move around if you plan on using it as a missile. Although, I'd recommend using Special Effects for that.
Thank you very much!

I'm just curious for example.. If I want to use 2 or more spells like Vampiric Potion (self cast) (that do not have targeted order) in a single spell(channel), How can i do that?
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
Thank you very much!

I'm just curious for example.. If I want to use 2 or more spells like Vampiric Potion (that do not have targeted order) in a single spell(channel), How can i do that?
1) Add the "instant" ability to your unit and Order it to cast it, then Remove the ability a moment later (account for Cast Point and other delays).

OR 2) Try to find a targeted alternative.

OR 3) Trigger everything yourself, relying on systems like this to make your life easier.
 
Level 13
Joined
Sep 11, 2013
Messages
467
1) Add the "instant" ability to your unit and Order it to cast it, then Remove the ability a moment later (account for Cast Point and other delays).

OR 2) Try to find a targeted alternative.

OR 3) Trigger everything yourself, relying on systems like this to make your life easier.
I was looking for the first option. Thank you! Very smart!

Is there a way to make cast point 0 with triggers when I cast the alternate "instant" ability and reset cast point back to normal after remove the alternate "instant" ability for triggering unit?
Second option is also very good If exist. Third option is way too much for me. I am just a little more than a beginner. :peasant-thumbs-up-cheers:

Edit: How can I order triggered unit to cast "Vampiric Potion" for example? I added this ability through trigger, but there is no order id for this spell :peasant-confused: ..

  • Unit - Add Vampiric Potion X to (Triggering unit)
  • Unit - Order (Triggering unit) to ???
  • Unit - Remove Vampiric Potion X from (Triggering unit)
 
Last edited:
Level 30
Joined
Aug 29, 2012
Messages
1,382
You need a bit of JASS because the function doesn't exist in GUI sadly, search for Custom script and add this:

JASS:
call IssueImmediateOrderById(GetTriggerUnit(),852623)

The numbers correspond to the order ID of the ability, you can find a very useful post here , as far as I know it's the only way to cast non-unit abilities
 
Level 13
Joined
Sep 11, 2013
Messages
467
You need a bit of JASS because the function doesn't exist in GUI sadly, search for Custom script and add this:

JASS:
call IssueImmediateOrderById(GetTriggerUnit(),852623)

The numbers correspond to the order ID of the ability, you can find a very useful post here , as far as I know it's the only way to cast non-unit abilities
Thank you again! It work perfectly, but sadly if I use Unit - Remove Vampiric Potion X from (Triggering unit) immediately after order, the spell don't have enough time to cast and disappears. Is there a way to make cast point 0 with triggers before I cast this ability and reset cast point back to normal after I remove this ability for triggering unit?

Something like that:

  • Velocity Ability AGI
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Velocity - Channel - AGI
    • Actions
  • "Set Cast Point 0 for triggering unit."
    • Unit - Add Vampiric Potion X to (Triggering unit)
    • Unit - Set level of Vampiric Potion X for (Triggering unit) to (Level of Velocity - Channel - AGI for (Triggering unit))
    • Custom script: call IssueImmediateOrderById(GetTriggerUnit(),852623)
    • Unit - Remove Vampiric Potion X from (Triggering unit)
  • "Set Cast Point 0.4 for triggering unit."
Maybe that will work? :peasant-confused:

Edit: Nevermind. If i set the cast point to 0 in object editor the trigger work, but a Bug appear. My base ability will not go on cooldown anymore if i use it..
 
Last edited:

Uncle

Warcraft Moderator
Level 73
Joined
Aug 10, 2018
Messages
7,866
You'll definitely want to adjust Cast Point BEFORE you start casting the ability. I assume the game stores that value during the "Begins" stage of casting and I doubt it would notice and respond to any changes until after it's done casting.

But I don't think that Cast Point can be changed at runtime, unfortunately. (Try anyway just in case I'm wrong)

I actually made a system to get around these issues, although it has it's own minor issues (worth the compromise imo).
 
Level 13
Joined
Sep 11, 2013
Messages
467
You'll definitely want to adjust Cast Point BEFORE you start casting the ability. I assume the game stores that value during the "Begins" stage of casting and I doubt it would notice and respond to any changes until after it's done casting.

But I don't think that Cast Point can be changed at runtime, unfortunately. (Try anyway just in case I'm wrong)

I actually made a system to get around these issues, although it has it's own minor issues (worth the compromise imo).
Thank you once again! I was just trying to learn a little bit more about what can I do in the future. Right now your first post with "Use Vampiric Potion as the base ability" is enough to solve my main problem :peasant-thumbs-up-cheers:
 
Level 45
Joined
Feb 27, 2007
Messages
5,578
In all of my years I have only ever one time needed to force a unit to cast a spell to hit itself. The vast majority of the time there’s either a targeted alternative, an easy trigger solution, or a clever way to make that ability the ability that is actively cast by the unit in question (and other effects can be cast by dummies).

I wouldn’t worry about it. My only use case was forcing a second (and third) target point for a spell after the first had been chosen. You probably won’t encounter such a situation.
 
Top