Selfdestruction - damage not working

The newbie

New Member
Reaction score
0
Trigger:
  • Explode
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Selfdestruct (Goblin Blaster)
    • Actions
      • Set SelfdestructUnit = (Casting unit)
      • Set TempPoint = (Position of SelfdestructUnit)
      • Unit Group - Pick every unit in (Units within 800.00 of TempPoint) and do (Actions)
        • Loop - Actions
          • Unit - Cause SelfdestructUnit to damage (Picked unit), dealing (Life of SelfdestructUnit) damage of attack type Spells and damage type Magic
      • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Human\FlameStrike\FlameStrike1.mdl
      • Set SpecialFX = (Last created special effect)
      • Custom script: call RemoveLocation( udg_TempPoint )
      • Custom script: call RemoveUnit( udg_SelfdestructUnit )
      • Wait 4.00 seconds
      • Special Effect - Destroy SpecialFX


Will it work if I use the damage area instead? If yes, will I need to create anymore variables?
Right now no damage is dealt. btw, the point, that IS from when he explodes, right? The ability is built on the self-explode from the goblins I think.
If anyone has a better suggestion for a special effect please tell me, coz it looks kinda stupid that "flamestrike" appears seconds after the unit has died.
 

chanta45

New Member
Reaction score
19
Might have to do with the event/conditions, WE is really picky with starts effect, casting spell, etc. etc. Fiddle around with those.
 

Exide

I am amazingly focused right now!
Reaction score
448
You don't need the unit variable (SelfdestructUnit).
Use (Triggering unit) instead of (Casting unit).

Unit Group - Pick every unit in...
leaks.

Custom script: call RemoveUnit( udg_SelfdestructUnit )
Custom script is not needed, you can use the GUI command for this. (Unit - Remove Unit)

EDIT: You should base this skill on the wisp's Detonate, and modify it to suit you.
 

yunusowic

New Member
Reaction score
7
Yes you can use damage area. If its still not working the problem might be what chanta45 said.
 

Curo

Why am I still playing this game...?
Reaction score
109
What exactly is killing your unit? You said that it's based off some goblin ability, but you also have an action line that removes the unit. It could be that the unit has already lost all its health by the time this trigger runs, so your action that deals damage equal to the unit's health would just deal 0 damage.

And yeah, you could use damage area also. Pick units in an area is usually used when you want to specify conditions, like for picking only enemy units or only organic units, etc.

Additionally, you can just refer to the triggering unit instead of SelfdestructUnit, since you aren't using any waits or anything.
 

The newbie

New Member
Reaction score
0
Thanks for all responses

This is how it looks now:
Trigger:
  • Explode
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Selfdestruct (Goblin Blaster)
    • Actions
      • Set TempPoint = (Position of (Triggering unit))
      • Unit Group - Pick every unit in (Units within 300.00 of TempPoint matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)) and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing (Life of (Triggering unit)) damage of attack type Spells and damage type Magic
      • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Human\FlameStrike\FlameStrike1.mdl
      • Set SpecialFX = (Last created special effect)
      • Custom script: call RemoveLocation( udg_TempPoint )
      • Wait 5.00 seconds
      • Special Effect - Destroy SpecialFX


I am pretty confident that it works now, just need to refine the damage ;)
If someone has suggestions for better special effect, still welcome ^^

Also did my unit-group leak, and how to fix that? Can I call Remove a group?
 

emilemil1

New Member
Reaction score
20
define the group before the loop, like with the point. Then after the loop you use

call DestroyGroup (udg_NAME_OF_YOUR_VARIABLE)
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
yeah, your unit would die before the other units would get damaged.

As for the destroy group, you need to use
Trigger:
  • Actions
    • set TempGroup = (Units within 300.00 of TempPoint matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)
    • Unit Group - Pick every unit in TempGroup and do (Actions)
      • (Your actions)
    • Custom Script: call DestroyGroup(udg_TempGroup)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top