• Check out the results of the Techtree Contest #19!
  • Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Creating some basic abilities

How I make the tigger?
my is this:

  • Atribute demage
    • Events
      • unit start efect of an abilyty
    • Conditios
      • ability begin cast equal to Attack
    • Actions
      • Set TempReal = (real agility of Razier(spectre) <gen>)
      • Unity Group - Pick every unit in (units with 150 of (Position of Raziel(Spectre) 0013 <gen>) maching (((Picked unit) belongs enemy of player 9 (gray)) Equal to (true)) and do action (Unit - cause Raziel(Spectre) 0013 <gen> to demage (picked unit) dealing (TempReal) demage of attack type (hero) and demage type (normal)

waths is wrong?
 
How I make the tigger?
my is this:

  • Atribute demage
    • Events
      • unit start efect of an abilyty
    • Conditios
      • ability begin cast equal to Attack
    • Actions
      • Set TempReal = (real agility of Razier(spectre) <gen>)
      • Unity Group - Pick every unit in (units with 150 of (Position of Raziel(Spectre) 0013 <gen>) maching (((Picked unit) belongs enemy of player 9 (gray)) Equal to (true)) and do action (Unit - cause Raziel(Spectre) 0013 <gen> to demage (picked unit) dealing (TempReal) demage of attack type (hero) and demage type (normal)

waths is wrong?
first of all, that trigger leaks 1 Point

use (Matching unit) instead of (Picked unit) in the condition

(Picked unit) is what unit is(in this case) taking damage

(Matching unit) is what unit is being Picked, before the actions are made

in short : (Matching unit) for conditions and (Picked unit) for actions when it comes to a "Pick every unit in"
 
  • Some Spell
  • Events
    • Unit - A unit Starts the effect of an ability
  • Conditions
    • (Ability being cast) Equal to War Stomp
  • Actions
    • Custom script: set bj_wantDestroyGroup = true
    • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) is A structure) equal to False) and do (Actions)
      • Unit - Cause (Triggering unit) to damage (Picked unit) dealing DAMAGEVAR damage with attack type Chaos and damage type Normal
 
I have a simple question. What is the number that i have to change to increase/decrease the chances to the custom aura work? I don't understand all the english text, and i'm new to the triggers, is a bit confusing to read those scripts in other language, so please help if you can.

Thanks.
 
idk i thought this was a really helpfull thread >.< but i wouldnt mind seeing a mass aoe spell like multiple flame strikes offset by degrees of caster :D!!
 
ok i followed ur blink strike move and put it into my map after tweaking it and adding special effects but it doesnt activate my move for a cooldown so i cant really use it in my map.... need helpwith that??
 
dummy skill based on thunder bolt

  • Blink Strike
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Blink Strike
    • Actions
      • Set TargetP = (Position of (Target unit of ability being cast))
      • Special Effect - Create a special effect attached to the origin of (Triggering unit) using Abilities\Spells\NightElf\Blink\BlinkCaster.mdl
      • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing (30.00 x (Real((Level of Blink Strike for (Triggering unit))))) damage of attack type Spells and damage type Normal
      • Unit - Move (Triggering unit) instantly to TargetP
      • Special Effect - Create a special effect attached to the origin of (Target unit of ability being cast) using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
      • Unit - Order (Triggering unit) to Attack (Target unit of ability being cast
      • Special Effect - Destroy (Last created special effect)
      • Custom script: call RemoveLocation(udg_TargetP))
 
no it doesnt give me a cool down i tryed a unit finishes casting an ability it gives the cd but then it doesnt do the actions and it uses the stun symbol on the unit.......and for the destroy effects thing.... i seen on someone elses map for trying to learn this that he had like 4 special effects and 1 destroy and it worked fine??
 
does anyone know how to make a spell where at night the hero gets increased AS and damage and movement speed and it also changes his model?
 
Here's a trick I found without the usage of the complicated trigger. You just make a puppet unit at an undisclosed location where you give the unit control for 1 second when the hero casts the spell and have that unit perform item illusion on the hero.
 
Can i ask something? How can i make the blink-strike abilty blinked exactly behind the enemy?

uhm theres a specific trick...
use triggers :D i say you how

  • Unit - Move (Triggering unit) instantly to ((Position of (Target unit of ability being cast)) offset by ((Facing of (Target unit of ability being cast)) + 180.00) towards 0.00 degrees), facing (Position of (Triggering unit))
but then you should use
  • Unit - Make (Triggering unit) face (Target unit of ability being cast) over 0.01 seconds
that the unit faces the Targeted Unit


You just teleport behind your targeted unit
then just use the things that paskovich uses
 
Great tutorial, though the knockback makes the target change direction when the caster moves. You could fix that by making some small changes though :thumbs_up:
 
Last edited by a moderator:
This is a brilliant tutorial, i learnt heaps about spell triggering from this (I knew barely anything before hand.) and i even learnt from fiddling with the variables in it, like what happens if a swap X and Y? ect. ended up with making a charge ability with the knockback, and a combination of the attribute damage and blink-strike.

Again, this tutorial was a great help!
 
Here's a trick I found without the usage of the complicated trigger. You just make a puppet unit at an undisclosed location where you give the unit control for 1 second when the hero casts the spell and have that unit perform item illusion on the hero.

you dont need an unit at a undisclosed location...
you can spawn them ... without models
change the model path to .mdl
and delete the shadow and give him locust abilitiy and the illusion spell..
then make a trigger that it spawns the unit and cast ability on the triggering unit.
(sry for my english:wink:)
 
Someone can help me?

if - "A unit Starts the effect of an Ability", the cooldown of that ability wont move...
and if - "A unit finishes casting an Ability" - sometime the effect wont happen....

please help me!
 
Ok, so i've tried forever and i simply cant get past this part. I get everything else but im still screwing up somewhere in the process and make the second part of set variable start as real->to integer, i cant seem to figure out what everyone else does to get it working right -.- plz help i know it needs to go integer to real but i just cant find how to do that.


Set TempReal = (Integer((Real((Strength of (Triggering unit) (Include bonuses))))))
 
Yeye good spells you learn how to make stuff, but i cant see were to find for example ((Attacking Unit has Buff).... and what kind of varibles i should use =P
 
Hey i tried to make an ability simmilar to Pudge's " Rot " from DotA and here is how i made it before you told me the great ideea about making the buffs diffrent on each level :
  • Stygian Aura On
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Issued order) Equal to (Order(immolation))
    • Actions
      • Set StygianCaster = (Ordered unit)
      • Set StygianActivate = True
This is how i turned it on .
  • Stygian Aura Off
    • Events
      • Unit - A unit Is issued an order with no target
    • Conditions
      • (Issued order) Equal to (Order(unimmolation))
    • Actions
      • Set StygianCaster = No unit
      • Set StygianActivate = False
      • Custom script: call RemoveLocation(udg_StygianPosition)
This is how i turned if off .
  • Stygian Aura l3lackKnight
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
      • StygianActivate Equal to True
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of |cffffcc00S|rtygian Aura for (Triggering unit)) Equal to 1
        • Then - Actions
          • Set StygianDamage = (((Life of StygianCaster) / 100.00) x 5.00)
          • Unit - Set life of StygianCaster to ((Life of StygianCaster) - StygianDamage)
          • Set StygianPosition = (Position of StygianCaster)
          • Unit Group - Pick every unit in (Units within 600.00 of StygianPosition matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of and do (Actions)
            • Loop - Actions
              • Custom script: local texttag StygianDamageText
              • Custom script: local effect StygianDamageEffect
              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
              • Custom script: set StygianDamageEffect = GetLastCreatedEffectBJ()
              • Unit - Cause StygianCaster to damage (Picked unit), dealing StygianDamage damage of attack type Spells and damage type Normal
              • Floating Text - Create floating text that reads (String((Integer(StygianDamage)))) above (Picked unit) with Z offset 10.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Custom script: set StygianDamageText = GetLastCreatedTextTag()
              • Custom script: call SetTextTagVelocityBJ( StygianDamageText, 64, 90 )
              • Custom script: call SetTextTagPermanentBJ( StygianDamageText, false )
              • Custom script: call SetTextTagLifespanBJ( StygianDamageText, 1.00 )
              • Wait 1.00 seconds
              • Custom script: call DestroyEffect(StygianDamageEffect)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of |cffffcc00S|rtygian Aura for (Triggering unit)) Equal to 2
            • Then - Actions
              • Trigger - Turn off (This trigger)
            • Else - Actions
              • Do nothing
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of |cffffcc00S|rtygian Aura for (Triggering unit)) Equal to 2
        • Then - Actions
          • Set StygianDamage = (((Life of StygianCaster) / 100.00) x 10.00)
          • Unit - Set life of StygianCaster to ((Life of StygianCaster) - StygianDamage)
          • Set StygianPosition = (Position of StygianCaster)
          • Unit Group - Pick every unit in (Units within 600.00 of StygianPosition matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of and do (Actions)
            • Loop - Actions
              • Custom script: local texttag StygianDamageText
              • Custom script: local effect StygianDamageEffect
              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
              • Custom script: set StygianDamageEffect = GetLastCreatedEffectBJ()
              • Unit - Cause StygianCaster to damage (Picked unit), dealing StygianDamage damage of attack type Spells and damage type Normal
              • Floating Text - Create floating text that reads (String((Integer(StygianDamage)))) above (Picked unit) with Z offset 10.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Custom script: set StygianDamageText = GetLastCreatedTextTag()
              • Custom script: call SetTextTagVelocityBJ( StygianDamageText, 64, 90 )
              • Custom script: call SetTextTagPermanentBJ( StygianDamageText, false )
              • Custom script: call SetTextTagLifespanBJ( StygianDamageText, 1.00 )
              • Wait 1.00 seconds
              • Custom script: call DestroyEffect(StygianDamageEffect)
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of |cffffcc00S|rtygian Aura for (Triggering unit)) Equal to 3
            • Then - Actions
              • Trigger - Turn off (This trigger)
            • Else - Actions
              • Do nothing
      • Custom script: call RemoveLocation(udg_StygianPosition)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of |cffffcc00S|rtygian Aura for (Triggering unit)) Equal to 3
        • Then - Actions
          • Set StygianDamage = (((Life of StygianCaster) / 100.00) x 15.00)
          • Unit - Set life of StygianCaster to ((Life of StygianCaster) - StygianDamage)
          • Set StygianPosition = (Position of StygianCaster)
          • Unit Group - Pick every unit in (Units within 600.00 of StygianPosition matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is Magic Immune) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of and do (Actions)
            • Loop - Actions
              • Custom script: local texttag StygianDamageText
              • Custom script: local effect StygianDamageEffect
              • Special Effect - Create a special effect attached to the chest of (Picked unit) using Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl
              • Custom script: set StygianDamageEffect = GetLastCreatedEffectBJ()
              • Unit - Cause StygianCaster to damage (Picked unit), dealing StygianDamage damage of attack type Spells and damage type Normal
              • Floating Text - Create floating text that reads (String((Integer(StygianDamage)))) above (Picked unit) with Z offset 10.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
              • Custom script: set StygianDamageText = GetLastCreatedTextTag()
              • Custom script: call SetTextTagVelocityBJ( StygianDamageText, 64, 90 )
              • Custom script: call SetTextTagPermanentBJ( StygianDamageText, false )
              • Custom script: call SetTextTagLifespanBJ( StygianDamageText, 1.00 )
              • Wait 1.00 seconds
              • Custom script: call DestroyEffect(StygianDamageEffect)
        • Else - Actions
          • Do nothing
And this is the actual spell wich has 3 levels cause its an ulti .:hohum:Not very good right ? I also tried splitting it into 3 diffrent triggers wich would turn off when you learn another level of the spell ( if you learn Stygian Aura level 2 then the trigger 4 the level 1 would be turned off ) . Well tell me what you think .........:infl_thumbs_up:

Isn't pudge rot just slow and damge? can be more simple, just make trigger when he use you add a slow aura (which dont have any icon and won't be seen) and then a trigger you turn off you remove it. =)
 
This tutorial is really, really useful. I think every map maker should read this first before asking potentially stupid questions.
 
It would be nice if you could show the basic abilities that your custom abilities were based on,
also i found that when i tried to use devotion aura for a custom armor reducing aura, I couldnt give the "stat - armor bonus:" a negative value....
(maybe its just me... or my editor...) any help on this one?
 
Hey there, just a quick question.

I tried out the AttributeDamage spell and it did work, except the first time I cast the ability it doesn't do any damage. How do i fix this..?
 
blizzard spell: help?

hey, i am actually a newb mapper and i'd like to know how to make a blizzard-like spell that is dealing GUI-set damage. I just dont know a string/command/action/trigger to stop the damage dealing if caster isn't standing and channeling.
My trigger is like:
a unit starts channeling an ability

ability being cast equal to blizzard

*set variables thingy*
if unit is channeling the spell then activate blizzard damage trigger

which is:

every 0.5 second deal damage to point set as target of blizzard.


I don't know how to make "if unit is channeling" string...help someone please?
 
nice tutorial but i kinda don't like the knockback, is there another way to make a knockback spell? i would like to see it. :)
 
I would Just like to point out that, the part about the aura is wrong. There is a way to detect the level:

After getting your unit you put
[trigger=My Trigger]MyTrigger
Events
Unit - A unit Is attacked
Conditions
(Level of Bash for (Attacking unit)) Equal to 0
Actions
Unit - Cause (Attacking unit) to damage (Attacked unit), dealing (Real((Level of Bash for (Attacking unit)))) damage of attack type Normal and damage type Normal[/trigger]
(You can use either the condition or the action)
 
II. A simple blink-strike spell What to do about the cooldown? If i change the cooldown ability(Blink Strike) to X seconds the ability stay with 0 seconds.
 
Back
Top