How can/should I do this?

cowmenace

New Member
Reaction score
22
I need an item that a hero can buy, and when the hero uses the item, it places something on the ground, then 10 seconds later runs some actions in a trigger that use the position of the thing on the ground. I need it to be MPI. The effect I'm trying to get is a hero buys an artillery strike, places a marker on the ground, then in 10 seconds the artillery strike comes in on the marker
 

SarChasm

New Member
Reaction score
15
Make your item based off the Tiny Farm item. Then give the building it produces, let's call it a "Beacon," an ability based off Channel. Let's call this ability "Call Airstrike."

Give Call Airstrike an "Instant (No Target)" Target Type, and a cast time of 10 seconds.

Then make a trigger that goes something like:
Event: A unit finishes constructing
Condition: The unit is a Beacon
Actions: Order unit to use Call Airstrike

Then another trigger:
Event: A unit casts an ability
Condition: The ability is Call Airstrike
Actions: Put your airstrike actions here. If this is what you needed help with as well, just say so.
 

Ayanami

칼리
Reaction score
288
You can use this. This basically deals damage after 10 seconds in an AoE of 500. I based the spell on Channel with point target. Then I gave it to an item.

Variables
Caster - Unit Array (10)
CustomValue - Integer
Dummy - Unit Array (10)
DummyGroup - Unit Group
RealTimer - Real Array (10)
TargetPoint - Point Array (10)
TempInt - Integer
TempPoint - Point
UnitGroup - Unit Group Array (10)

Trigger:
  • Marker
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Marker
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • CustomValue Less than 10
        • Then - Actions
          • Set CustomValue = (CustomValue + 1)
        • Else - Actions
          • Set CustomValue = 1
      • Set Caster[CustomValue] = (Triggering unit)
      • Set TargetPoint[CustomValue] = (Target point of ability being cast)
      • Set RealTimer[CustomValue] = 10.00
      • Unit - Create 1 Marker Dummy for (Owner of Caster[CustomValue]) at TargetPoint[CustomValue] facing Default building facing degrees
      • Set Dummy[CustomValue] = (Last created unit)
      • Set TempPoint = (Center of (Playable map area))
      • Unit - Create 1 Hidden Dummy for (Owner of Caster[CustomValue]) at TempPoint facing Default building facing degrees
      • Unit - Set the custom value of (Last created unit) to CustomValue
      • Unit Group - Add (Last created unit) to DummyGroup
      • Custom script: call RemoveLocation(udg_TempPoint)


Trigger:
  • Marker Periodic
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
      • (DummyGroup is empty) Equal to False
    • Actions
      • Unit Group - Pick every unit in DummyGroup and do (Actions)
        • Loop - Actions
          • Set TempInt = (Custom value of (Picked unit))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • RealTimer[TempInt] Less than or equal to 0.00
            • Then - Actions
              • Set UnitGroup[TempInt] = (Units within 500.00 of TargetPoint[TempInt] matching ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of Caster[TempInt])) Equal to True))))
              • Unit Group - Pick every unit in UnitGroup[TempInt] and do (Actions)
                • Loop - Actions
                  • Unit - Cause Dummy[TempInt] to damage (Picked unit), dealing 500.00 damage of attack type Spells and damage type Normal
              • Special Effect - Create a special effect at TargetPoint[TempInt] using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit - Remove Dummy[TempInt] from the game
              • Unit - Remove (Picked unit) from the game
              • Custom script: call RemoveLocation(udg_TargetPoint[udg_TempInt])
              • Custom script: call DestroyGroup(udg_UnitGroup[udg_TempInt])
            • Else - Actions
              • Set RealTimer[TempInt] = (RealTimer[TempInt] - 0.10)


Hope this helps :)
 

Squirel

New Member
Reaction score
13
Why not just make the item summon a ward with a timed life and a trigger to damage area when that unit dies with a special effect to get the animation?
 

cowmenace

New Member
Reaction score
22
Thank you so much SarChasm and Glenphir!!!
I'm awful with the object editor so I don't know how to do that last idea... Appreciate your guys' help =)
 

SarChasm

New Member
Reaction score
15
Y'know, actually, the last idea might be the most efficient. Funny how people tend to over complicate things when they start learning more. :p
 
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