How to make Curse of the Silence??

Joeza8901

Member
Reaction score
0
Curse of the Silent (C)
Afflicts a target with the Curse of the Silent. The target will lose hp and mana per second until it casts a spell. Lasts 10 seconds.
Level 1 - 10hp/5mana per second.
Level 2 - 20hp/10mana per second.
Level 3 - 30hp/15mana per second.
Level 4 - 40hp/20mana per second.
Mana Cost: 105/ 115/ 125/ 135
Cooldown: 25

Please help im new for world editor Thx :)
 

inevit4ble

Well-Known Member
Reaction score
38
Do you want it to be AoE like in the newer dotas or single target like the older ones?
 

Joeza8901

Member
Reaction score
0
i want to make AoE but if you make other in single target it would be good to me for learning :)

(I've try in Flame Strike but it doesnt burn target mana and they does not died :banghead:)
 

inevit4ble

Well-Known Member
Reaction score
38
The first trigger is for the casting of the spell
All the values are set in this 1 so if you need to edit anything it can all be done here
Trigger:
  • Spell Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Curse
    • Actions
      • Set CurseUnit = (Triggering unit)
      • Set MyPoint = (Target point of ability being cast)
      • Set CurseTargets = (Units within 450.00 of MyPoint matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) is A Hero) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))))
      • Set Damage = (10 x (Level of Curse for (Triggering unit)))
      • Countdown Timer - Start CurseDurationTimer as a One-shot timer that will expire in 10.05 seconds
      • Trigger - Turn on Periodic Damage <gen>
      • Trigger - Turn on Spell Exit <gen>
      • Custom script: call RemoveLocation(udg_MyPoint)
This is for damage and mana loss
Trigger:
  • Periodic Damage
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in CurseTargets and do (Actions)
        • Loop - Actions
          • Unit - Cause CurseUnit to damage (Picked unit), dealing (Real(Damage)) damage of attack type Spells and damage type Normal
          • Unit - Set mana of (Picked unit) to ((Mana of (Picked unit)) - ((Real(Damage)) / 2.00))
This is for when duration of spell ends
Trigger:
  • Spell End
    • Events
      • Time - CurseDurationTimer expires
    • Conditions
    • Actions
      • Trigger - Turn off Periodic Damage <gen>
      • Trigger - Turn off Spell Exit <gen>
      • Custom script: call DestroyGroup(udg_CurseTargets)
This is to stop the damage if unit casts
Trigger:
  • Spell Exit
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • ((Triggering unit) is in CurseTargets) Equal to True
    • Actions
      • Unit Group - Remove (Triggering unit) from CurseTargets

Things You Need To Do:
>Create Spell
>Create Dummy Unit
>Create Dummy Spell
>Create Curse Buff
>Add to the first trigger this UnitGroup Loop to add the buff
Trigger:
  • Unit Group - Pick every unit in CurseTargets and do (Actions)
    • Loop - Actions
      • Set MyPoint = (Position of (Picked unit))
      • Unit - Create 1 <DummyUnit> for (Owner of (Triggering unit)) at MyPoint facing Default building facing degrees
      • Unit - Add a 0.20 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to <Cast Dummy Spell for Buff> (Picked unit)
      • Custom script: call RemoveLocation(udg_MyPoint)
 

Joeza8901

Member
Reaction score
0
Wut This? :confused:

>Add to the first trigger this UnitGroup Loop to add the buff

Trigger:
Unit Group - Pick every unit in CurseTargets and do (Actions)
Loop - Actions
Set MyPoint = (Position of (Picked unit))
Unit - Create 1 <DummyUnit> for (Owner of (Triggering unit)) at MyPoint facing Default building facing degrees
Unit - Add a 0.20 second Generic expiration timer to (Last created unit)
Unit - Order (Last created unit) to <Cast Dummy Spell for Buff> (Picked unit)
Custom script: call RemoveLocation(udg_MyPoint)
 

inevit4ble

Well-Known Member
Reaction score
38
Its the UnitGroup Loop that you will add into the first trigger at the end. It will allow you to add a buff/effect to the target units
 

Joeza8901

Member
Reaction score
0
Why when i use it its extreme lag? and the damage didnt stop i need help again
i use Flame strike for hero spell and Banshee Curse for dummy wut i do wrong because damage didnt stop :mad:
 

merlinds

Member
Reaction score
15
I think you can use mass silence. Change the "Effect" of it to a dummy effect that does nothing. Then when you use the spell it will aplies a "buff" on all units in the AoE speell. Then you can use the "buff" to check if the unis have it you applies the damage and Mana burn. Then you create a trigger that when a unit casts a spell and have the specific "buff" on it, you remove that buff from the unit.
 

inevit4ble

Well-Known Member
Reaction score
38
Hmm, try preloading the spell at Map Initialization.
ie.
Trigger:
  • Melee Initialization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Unit - Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
      • Unit - Add Animate Dead to (Last created unit)
      • Unit - Remove (Last created unit) from the game

That might help

Otherwise I can make it in jass which should speed it up
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
i would do it like this:

Trigger:
  • Cast
    • Events
      • Unit - A unit finishes casting an ability
    • Conditions
      • Ability - Ability being cast is Curse of Silence
    • Actions
      • Set Temp_Group_Curse[Level of ability being cast] = Units in target area of cast matching condition (owner of matching unit is an enemy of owner of triggering unit)
      • Unit Group - Pick all Units in Temp_Group_Curse[Level of ability being cast] and do actions
        • Loop Actions
          • Hashtable - Save Triggering unit as X of (key Picked unit) in Spell_hashtable
          • Hashtable - Save (duration integer) as X+1 of (Key Picked unit) in Spell_Hashtable
      • Trigger - Turn on Curse Effect &lt;gen&gt;
      • Trigger - Turn on Remove from Group &lt;gen&gt;


Trigger:
  • Curse Effect
    • Events
      • Time - Periodic event, every 1 second
    • Conditions
    • Actions
      • For Integer A from 1 to 4 do actions
        • Loop Actions
          • Unit Group - Pick every unit in Temp_Group_Curse[Integer A] and do actions
            • Loop Actions
              • Hashtable - Save ((load integer X+1 of (Key Picked unit) in Spell_Hashtable) - 1) as X+1 of (Key Picked Unit) in Spell_Hashtable
              • Unit - Set mana of picked unit equal to Mana of picked unit - (Real(Integer A) x 5)
              • Unit - Cause (load X of (key picked unit) in Ability_Hashtable) to damage Picked unit for (Real(Integer A) x 10)
              • If then else
                • If
                  • Integer - (load Integer X+1 of (Key Picked Unit) in Spell_Hashtable) is equal to 0
                • Then
                  • Unit Group - Remove Picked unit from Temp_Group_Curse[Integer A]
      • For Integer A from 1 to 4 do actions
        • Loop Actions
          • If then else
            • If
              • Integer - Number of units in Temp_Group_Curse[Integer A] is equal to 0
            • Then
              • Set Temp_Integer = Temp_Integer + 1
            • Else
      • If then else
        • If
          • Temp_Integer is equal to 4
        • Then
          • Trigger - turn off this trigger
          • Trigger - turn off Curse Effect &lt;gen&gt;
        • Else

Trigger:
  • Remove from group
    • Events
      • Unit - A unit begins casting an ability
    • Conditions
      • Unit Group - Unit is in Temp_Group_Curse
    • Actions
      • Set Temp_Integer = 0
      • For Integer A from 1 to 4 do actions
        • Loop Actions
          • Unit Group - Remove triggering unit from Temp_Group_Curse[Integer A]
          • If then else
            • If
              • Integer - Number of Units in Temp_Group_Curse[Integer A] is equal to 0
            • Then
              • Set Temp_Integer = temp_integer + 1
              • Custom Script: Call Destroyunitgroup(UDG_Temp_Group_Curse[Integer A]
            • Else
      • If then else
        • If
          • Temp_Integer is equal to 4
        • Then
          • Trigger - turn off this trigger
          • Trigger - turn off Curse Effect &lt;gen&gt;
        • Else


EDIT: I just realized you got it done... bummer, mine wrapped it up nicely without leaks and without huge spam :/
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
i wasnt saying urs did, i didnt even get a chance to go over it : (... but i generally assume they dont, others not so much
 
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