A Tribute Trigger

†ALPHA†

New Member
Reaction score
3
I'm working on a 1v1 map where there are four regions located in different "towns" that a player can control in order to receive a tribute of gold and soldiers.

I've tried to figure it out, but I can't figure out how to get the the actual tribute section of the trigger to loop. I need it to loop every five minutes that the player maintains control of the region/town.

This is what I've got:
Trigger:
  • TakeATown
    • Events
      • Unit - A unit enters Town1Reg <gen>
      • Unit - A unit enters Town2Reg <gen>
      • Unit - A unit enters Town3Reg <gen>
      • Unit - A unit enters Town4Reg <gen>
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Baron
    • Actions
      • Unit - Pause (Triggering unit)
      • Cinematic - Ping minimap for (All players) at (Position of (Triggering unit)) for 1.00 seconds, using a Warning ping of color (100.00%, 100.00%, 100.00%)
      • Game - Display to (All players) the text: A player has taken a town.
      • Wait 300.00 seconds
      • Player - Add 200 to (Owner of (Triggering unit)) Current gold
      • Unit - Create 2 Warrior for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing ((Owner of (Triggering unit)) start location)


Any way to make the last two actions loop without causing any trouble when the triggering units die, multiple players' units trigger the region, etc?
 

jig7c

Stop reading me...-statement
Reaction score
123
ur triggering is leaking!

Trigger:
  • TakeATown
    • Events
      • Unit - A unit enters Town1Reg <gen>
      • Unit - A unit enters Town2Reg <gen>
      • Unit - A unit enters Town3Reg <gen>
      • Unit - A unit enters Town4Reg <gen>
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Baron
    • Actions
      • Set unit = (Triggering Unit)
      • Set point = (Position of (Triggering Unit))
      • Unit - Pause unit
      • Cinematic - Ping minimap for (All players) at point for 1.00 seconds, using a Warning ping of color (100.00%, 100.00%, 100.00%)
      • Game - Display to (All players) the text: A player has taken a town.
      • Create a one-shot timer Timer that will expire in 300 seconds


Trigger:
  • Timer
    • Event
      • Timer expires
    • Condition
    • Action
      • Player - Add 200 to (Owner of (unit) Current gold
      • Unit - Create 2 Warrior for (Owner of unit) at point facing ((Owner of (unit)) start location)
      • call RemoveLocation (udg_point)
      • Set unit = no unit


Trigger:
  • Die
    • Event
      • A unit dies
    • Condition
      • ((Unit-type of dying) equal to Baron)
    • Action
      • Run Timer (ignoring conditions)


something to this affect... hopefully this will lead you to the right direction!
 

trees123

New Member
Reaction score
6
What I say you do is put the owner of the town in a player variable, and make a seperate periodic trigger that checks to see whos the player is, then reward that guy.
 

trees123

New Member
Reaction score
6
Make the trigger do this

Set Player = Owner of Triggering Unit ( This would be the unit who enters the region or kills the baron)

Then make another trigger

Event
Time - Every 300 seconds of the game

Action
Create 2 warriors or whatever and reward the gold.
 

†ALPHA†

New Member
Reaction score
3
@jig7c
I tried your triggers BUT:
1)The "call RemoveLocation (udg_point)" was rejected by the World Editor. (Also, what does it do?)
2)The Tribute is run only once and that's when the unit is killed.

Thanks for your help.
 

Defi4nc3

Developer of DORPG
Reaction score
20
RemoveLocation is to prevent a location leak, its removing the point you created earlier...

If your point variable is named YourPointVariable

it would be

Trigger:
  • call RemoveLocation(udg_YourPointVariable)


(the name has to match exact)
 

†ALPHA†

New Member
Reaction score
3
@Defi4nc3
Thanks, it makes sense now.

HOWEVER:
The trigger only fires once even when I tried making the timer Repeating.
The trigger needs to be able to run for four towns simultaneously - I'm pretty sure this can only do one at a time.
 

†ALPHA†

New Member
Reaction score
3
Almost-24-hours-bump.

I'm beginning to think a solution could be to make four sets of triggers... Please tell me it's not. :\
 

trees123

New Member
Reaction score
6
Would this work?

Trigger:
  • Tribute
    • Events
      • Unit - A unit enters Town <gen>
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Baron
    • Actions
      • Set Temp_Point = (Position of (Triggering unit))
      • Set TownPoint = (Position of (Triggering unit))
      • Set OwnerOfTown = (Owner of (Triggering unit))
      • Cinematic - Ping minimap for (All players) at Temp_Point for 1.00 seconds, using a Warning ping of color (100.00%, 100.00%, 100.00%)
      • Unit - Pause (Triggering unit)
      • Game - Display to (All players) the text: A player has taken ...
      • Custom script: call RemoveLocation (udg_Temp_Point)


Trigger:
  • Tribute Part 2
    • Events
      • Time - Every 300.00 seconds of game time
    • Conditions
    • Actions
      • Unit - Create 2 Warrior for OwnerOfTown at TownPoint facing TownPoint
      • Player - Add 200 to OwnerOfTown Current gold
 
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