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

[GUI] Poison Trap v1.01

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: Deuterium
Poison Trap v1.01
by Amigurumi

Description
Summons a trap, which is invisible, and if an enemy
unit comes near that trap, it will be damaged, and get a damage over time effect.
A simple spell I made in my free time.
I hope, that this spell isn't to easy.

MPI/MUI/Leakless

Yes/Yes/Yes
Give credits if you use it.

v1.00
uploaded

v1.01
recycles PT_Index[2] if there's no spell left
changed the conditions for the target
changed lifespan of floating text
changed the trap model


Keywords:
Amigurumi, trap, poison, poisonous, dot, damage, over, time, spell, cookies
Contents

Poison Trap v1.01 (Map)

Reviews
14:59, 23rd Sep 2009 Deuterium: 1. Use Triggering unit instead of Summoned unit. Triggering unit is said to be faster than other alternatives. 2. Instead of all this: If (All Conditions are True) then do (Then Actions) else do (Else...

Moderator

M

Moderator

14:59, 23rd Sep 2009
Deuterium:

1. Use Triggering unit instead of Summoned unit. Triggering unit is said to be faster than other alternatives.


2. Instead of all this:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 1
    • Then - Actions
      • -------- This is the damage, when an enemy unit comes near the trap. --------
      • Set PT_Damage[PT_Index[2]] = 100.00
      • -------- This is the over time damage. --------
      • Set PT_DoTDamage[PT_Index[2]] = 15.00
      • -------- This is the range of the trap. --------
      • Set PT_Range[PT_Index[2]] = 150.00
      • -------- This is the timer, how long the DoT should last. --------
      • Set PT_Duration[PT_Index[2]] = 6
    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 2
        • Then - Actions
          • -------- Same in level 1 --------
          • Set PT_Damage[PT_Index[2]] = 150.00
          • Set PT_DoTDamage[PT_Index[2]] = 30.00
          • Set PT_Range[PT_Index[2]] = 150.00
          • Set PT_Duration[PT_Index[2]] = 6
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 3
            • Then - Actions
              • -------- Same in level 1 --------
              • Set PT_Damage[PT_Index[2]] = 200.00
              • Set PT_DoTDamage[PT_Index[2]] = 45.00
              • Set PT_Range[PT_Index[2]] = 150.00
              • Set PT_Duration[PT_Index[2]] = 6
            • Else - Actions
Make a trigger that runs at map initialization having this and use the level of the ability as an array in the spell's triggers:
  • -------- This is the damage, when an enemy unit comes near the trap. --------
  • Set PT_Damage[1] = 100.00
  • Set PT_Damage[2] = 150.00
  • Set PT_Damage[3] = 200.00
  • -------- This is the over time damage. --------
  • Set PT_DoTDamage[1] = 15.00
  • Set PT_DoTDamage[2] = 30.00
  • Set PT_DoTDamage[3] = 45.00
  • -------- This is the range of the trap. --------
  • Set PT_Range[1] = 150.00
  • Set PT_Range[2] = 150.00
  • Set PT_Range[3] = 150.00
  • -------- This is the timer, how long the DoT should last. --------
  • Set PT_Duration[1] = 6
  • Set PT_Duration[2] = 6
  • Set PT_Duration[3] = 6

3. Again, same thing for the floating texts, make them above the unit instead at a point.


4. You don't use this group:
  • Set PT_Group[2] = (Random 1 units from PT_Group[1])

5. The spell bugs: the trap doesn't fire when units are within range. It usually only fires if there already is another trap set.


6. You might want to do some adjustments so that PT Damage trigger doesn't keep on running for a certain instance after the trap is destroyed.


7. Are you using any third party GUI program? Because I see this on my World Editor:
  • (PT_SummUnit[PT_Index[3]] is Unknown) Equal to False


Well, in this spell you've got some real problems to fix, specially the bug. Work on doing so.
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
Well as I decided to go back to either doing full-reviews or not reviewing, here we go:

Deut's Spell Review:

[-]

1. All this could be replaced with 2 equations and 2 constants:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 1
    • Then - Actions
      • -------- This is the damage, when an enemy unit comes near the trap. --------
      • Set PT_Damage[PT_Index[2]] = 100.00
      • -------- This is the over time damage. --------
      • Set PT_DoTDamage[PT_Index[2]] = 15.00
      • -------- This is the range of the trap. --------
      • Set PT_Range[PT_Index[2]] = 150.00
      • -------- This is the timer, how long the DoT should last. --------
      • Set PT_Duration[PT_Index[2]] = 6
    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 2
        • Then - Actions
          • -------- This is the damage, when an enemy unit comes near the trap. --------
          • Set PT_Damage[PT_Index[2]] = 150.00
          • -------- This is the over time damage. --------
          • Set PT_DoTDamage[PT_Index[2]] = 30.00
          • -------- This is the range of the trap. --------
          • Set PT_Range[PT_Index[2]] = 150.00
          • -------- This is the timer, how long the DoT should last. --------
          • Set PT_Duration[PT_Index[2]] = 6
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 3
            • Then - Actions
              • -------- This is the damage, when an enemy unit comes near the trap. --------
              • Set PT_Damage[PT_Index[2]] = 200.00
              • -------- This is the over time damage. --------
              • Set PT_DoTDamage[PT_Index[2]] = 45.00
              • -------- This is the range of the trap. --------
              • Set PT_Range[PT_Index[2]] = 150.00
              • -------- This is the timer, how long the DoT should last. --------
              • Set PT_Duration[PT_Index[2]] = 6
            • Else - Actions

2. Here you forgot conditions such for structures, magic immune, etc...
  • Set PT_Group[1] = (Units within PT_Range[PT_Index[3]] of PT_Point[1] matching ((((Matching unit) is Unknown) Equal to False) and (((Owner of (Matching unit)) is an enemy of (Owner of PT_SummUnit[PT_Index[3]])) Equal to True)))

3. You don't seem to be recycling the Index:
  • Else - Actions
    • Set PT_Boolean[PT_Index[4]] = True
    • Set PT_Index[1] = (PT_Index[1] - 1)
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • PT_Index[1] Equal to 0
      • Then - Actions
        • Trigger - Turn off PT Damage <gen>
        • Trigger - Turn off PT DoT <gen>
      • Else - Actions

4. Bugs, where the trap won't function even when units are standing on it.


5. Use a nicer model for the trap.


6. You just have to add like an additional second for the life-span of the texttag compared to it's fading time, not four:
  • Floating Text - Change the lifespan of (Last created floating text) to 5.00 seconds
  • Floating Text - Change the fading age of (Last created floating text) to 1.00 seconds

7. If there's no target near the trap, in the PT DoT null locations would be destroyed at every instance.


8. Triggering could be improved, first and to start off, by using one Periodic Event instead of two and by summoning the trap through triggering, thus fully controlling the ability through the triggers.


9. Trap full invisibility makes spell imbalanced; transparency would be a nice idea, or make trap fully visible with ability's cooldown and mana both low.


[+]

10. MUI


11. Leakless


12. Nice idea


13. Well-documented


14. Adjustable and user friendly



[*]

Well this is a nicely done GUI, better then most. Yet, I believe it can be fairly improved. It is MUI and leakless, and only needs minor improvements.

I would recommend this spell to be used.


Well, some issue I didn't mention in the review is that I have no idea what this is supposed to do:
  • (PT_Target[PT_Index[4]] is Unknown) Equal to False
And try using summoning the trap through triggers, that way it could be fully customizable through triggers.

And you do need a nicer trap.

Good job!
 
I'm currently working on the spell
thx Deut, for the review. +rep

but I don't get these points:

4. Bugs, where the trap won't function even when units are standing on it. (why?)

9. Trap full invisibility makes spell imbalanced; transparency would be a nice idea, or make trap fully visible with ability's cooldown and mana both low. (Static trap of the with doctors are also invisible...)

(PT_Target[PT_Index[4]] is Unknown) Equal to False (lol? where did I use this?)
 
Level 14
Joined
Jul 19, 2007
Messages
767
It wasn't really like this I wanted. I wanted it to explode if an enemy walks on it and causes it to inflict poison DOT-effect to nearby enemies over a period after it explodes. This one did DOT-effect even if the trap wasn't exploded and did only affect the target who walked on it not all enemies in the area of it..
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
4. Well I didn't find why it bugs... but it did. I mean the units were standing on the trap and nothing was happening, but usually it only happens at first cast, but once happened at third...

9. I don't know anything about any of Blizzard's abilities... never tested them :p but I mean, invisibility + initial damage to multiple units + Dot... that's a bit too much. Making it with low mana and low cooldown but no invisibility would be much nicer and more balanced.

Amigurumi said:
(PT_Target[PT_Index[4]] is Unknown) Equal to False (lol? where did I use this?)
Ummm, in the conditions at the top of the DoT trigger...
 
Level 17
Joined
Mar 17, 2009
Messages
1,349

Deuterium's Brief Review


1. Use Triggering unit instead of Summoned unit. Triggering unit is said to be faster than other alternatives.


2. Instead of all this:
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 1
    • Then - Actions
      • -------- This is the damage, when an enemy unit comes near the trap. --------
      • Set PT_Damage[PT_Index[2]] = 100.00
      • -------- This is the over time damage. --------
      • Set PT_DoTDamage[PT_Index[2]] = 15.00
      • -------- This is the range of the trap. --------
      • Set PT_Range[PT_Index[2]] = 150.00
      • -------- This is the timer, how long the DoT should last. --------
      • Set PT_Duration[PT_Index[2]] = 6
    • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 2
        • Then - Actions
          • -------- Same in level 1 --------
          • Set PT_Damage[PT_Index[2]] = 150.00
          • Set PT_DoTDamage[PT_Index[2]] = 30.00
          • Set PT_Range[PT_Index[2]] = 150.00
          • Set PT_Duration[PT_Index[2]] = 6
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Level of Poison Trap for PT_Caster[PT_Index[2]]) Equal to 3
            • Then - Actions
              • -------- Same in level 1 --------
              • Set PT_Damage[PT_Index[2]] = 200.00
              • Set PT_DoTDamage[PT_Index[2]] = 45.00
              • Set PT_Range[PT_Index[2]] = 150.00
              • Set PT_Duration[PT_Index[2]] = 6
            • Else - Actions
Make a trigger that runs at map initialization having this and use the level of the ability as an array in the spell's triggers:
  • -------- This is the damage, when an enemy unit comes near the trap. --------
  • Set PT_Damage[1] = 100.00
  • Set PT_Damage[2] = 150.00
  • Set PT_Damage[3] = 200.00
  • -------- This is the over time damage. --------
  • Set PT_DoTDamage[1] = 15.00
  • Set PT_DoTDamage[2] = 30.00
  • Set PT_DoTDamage[3] = 45.00
  • -------- This is the range of the trap. --------
  • Set PT_Range[1] = 150.00
  • Set PT_Range[2] = 150.00
  • Set PT_Range[3] = 150.00
  • -------- This is the timer, how long the DoT should last. --------
  • Set PT_Duration[1] = 6
  • Set PT_Duration[2] = 6
  • Set PT_Duration[3] = 6

3. Again, same thing for the floating texts, make them above the unit instead at a point.


4. You don't use this group:
  • Set PT_Group[2] = (Random 1 units from PT_Group[1])

5. The spell bugs: the trap doesn't fire when units are within range. It usually only fires if there already is another trap set.


6. You might want to do some adjustments so that PT Damage trigger doesn't keep on running for a certain instance after the trap is destroyed.


7. Are you using any third party GUI program? Because I see this on my World Editor:
  • (PT_SummUnit[PT_Index[3]] is Unknown) Equal to False


Well, in this spell you've got some real problems to fix, specially the bug. Work on doing so.
 
Top