• 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.

Corruption (v1.3)

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: 13oot-Me and Losam
Corrupts the target area. Enemies inside the area will have their armor reduced 2/3/4/5. Corpses inside the area are converted into skeletal warriors which last 10/15/20/25 sec.
Cooldown: 10 sec.

It is my first spell here in the hive. I hope that you can give me comments or suggestions on how to improve it in anyway. Good luck and have fun.

  • Corruption Remove
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • Set TempUnit = (Triggering unit)
      • Set TempUnitType = (Unit-type of TempUnit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • TempUnitType Equal to Corruption (Level 1)
              • TempUnitType Equal to Corruption (Level 2)
              • TempUnitType Equal to Corruption (Level 3)
              • TempUnitType Equal to Corruption (Level 4)
        • Then - Actions
          • Set TempPoint = (Position of TempUnit)
          • Unit - Create 1 Remover for (Triggering player) at TempPoint facing (Facing of TempUnit) degrees
          • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_TempPoint)
        • Else - Actions

The trigger has been updated. The spell is now leak-free.
Thank you guys for helping me fix the leaks. Especially you deathismyfriend. You are like a compiler hehe.

Keywords:
Death, Dark, Darkness, Corrupt, Undead, Corruption, Doom,
Contents

Corruption (Map)

Reviews
12th Dec 2015 IcemanBo: Too long as NeedsFix. Rejected. Corruption (v1.3) | Reviewed by Maker | 17th Aug 2013 NEEDS FIX [tr][td] You should add importing instructions. The ability requires one to import 24 objects which is kind of much. If...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.


Corruption (v1.3) | Reviewed by Maker | 17th Aug 2013
NEEDS FIX

You should add importing instructions.
The ability requires one to import 24 objects which is kind of much.
If you relied more on triggering, it would help a lot.
[tr][td]
 
I've read the rules, nothing is said about the spells should be triggered. Please show me the complete rules, I must have missed something. Chaosy, in my opinion, making spells should be practical. Yes, I can make this using triggers, but it will only complicate the process. Plus, trigger are more prone to errors. Thanks for you comment though
 
Yes, I saw that entry. It was the holy spell pack if I remember it right. And yes, the location leaks. Can you show me the script for removing location? Im not familiar with the custom script. I have a question though, why do you have to make it a trigger version when most parts can be done in the object editor? Is it because you are saving file size? and Triggering this would use less dummy units. I guess you dont like the concept. Thanks for looking at my work though
 
call RemoveLocation(location) is the custom script line for removing locations. The reason we trigger most or all our work if we can, is because it's a lot more configurable, has a lot more merit to it, and yes lower filesize, fewer dummy units (normally 1 for an entire spell or system) and generally because we like advanced things here, basic stuff has to be -perfect- to be approved
 
Finally, the custom script. Thank you so much. I'm gonna fix it. Anyway, think of it that what I've submitted here is not the way I built the structure of the spell's trigger. Mainly bacause it doesn't have a trigger. What I've done here is the concept of the spell. I'll think of a new concept and hopefully do it using triggers. Can I ask one more thing? Can you show me the complete set of rules when uploading spells or other stuffs. I've read the rules, but I think there are some rules that I am not aware of. Thanks so much.
 
  • Unit - Create 1 Remover for (Owner of (Dying unit)) at (Position of (Dying unit)) facing (Facing of (Dying unit)) degrees
Leaks.
set a variable to it then destroy the point using Call RemoveLocation(udg_PointVariable)//Replace PointVariable with your point variable

basic stuff has to be -perfect- to be approved
Perfection :D
 
Level 9
Joined
Apr 23, 2010
Messages
312
Looks good, but I would make the changes as deathismyfriend has said. Also, I don't remember if anyone told you to create a variable for things that are used more than once like triggering unit, so I did that too. Other than those things it works great!

  • Corruption Remove
    • Events
    • Unit - A unit Dies
    • Conditions
    • Actions
      • Set TempUnit = Triggering Unit
      • If - Conditions
        • Or - Any (Conditions) are true
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 2)
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 3)
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 4)
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 1)
      • Then - Actions
        • Unit - Create 1 Remover for (Owner of (TempUnit)) at (Position of (TempUnit) facing (Facing of (TempUnit)) degrees
        • Set RemovePoint = (Position of (Last created unit))
        • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        • Custom script: call RemoveLocation(udg_RemovePoint)
      • Else - Actions
 
this is still pretty bad 13oot-me
this can be stored to a temp unit type
  • (Unit-type of (TempUnit))
this leaks
  • Unit - Create 1 Remover for (Owner of (TempUnit)) at (Position of (TempUnit) facing (Facing of (TempUnit)) degrees
this still leaks also.
  • Set RemovePoint = (Position of (Last created unit))
  • Custom script: call RemoveLocation(udg_RemovePoint)
  • Corruption Remove
    • Events
    • Unit - A unit Dies
    • Conditions
    • Actions
      • Set TempUnit = Triggering Unit
      • If - Conditions
        • Or - Any (Conditions) are true
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 2)
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 3)
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 4)
          • (Unit-type of (TempUnit)) Equal to Corruption (Level 1)
      • Then - Actions
        • Unit - Create 1 Remover for (Owner of (TempUnit)) at (Position of (TempUnit) facing (Facing of (TempUnit)) degrees
        • Set RemovePoint = (Position of (Last created unit))
        • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        • Custom script: call RemoveLocation(udg_RemovePoint)
      • Else - Actions
  • Corruption Remove
    • Events
    • Unit - A unit Dies
    • Conditions
    • Actions
      • Set tempUnit = Triggering Unit
      • Set tempUnitType = (Unit-type of (tempUnit))
      • If - Conditions
        • Or - Any (Conditions) are true
          • tempUnitType Equal to Corruption (Level 2)
          • tempUnitType Equal to Corruption (Level 3)
          • tempUnitType Equal to Corruption (Level 4)
          • tempUnitType Equal to Corruption (Level 1)
      • Then - Actions
        • Set tempPoint = (Position of (tempUnit))
        • Unit - Create 1 Remover for (Owner of (tempUnit)) at tempPoint facing (Facing of (tempUnit)) degrees
        • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
        • Custom script: call RemoveLocation(udg_tempPoint)
      • Else - Actions
i also used the proper naming in the fixes
 
this
  • Untitled Trigger 002
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
converts to this. notice the event player unit death. that is a player event so triggering player can be used.
JASS:
function Trig_Untitled_Trigger_002_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_Untitled_Trigger_002 takes nothing returns nothing
    set gg_trg_Untitled_Trigger_002 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Untitled_Trigger_002, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddAction( gg_trg_Untitled_Trigger_002, function Trig_Untitled_Trigger_002_Actions )
endfunction
 
Top