Help me to do it in lazy way!

Templarion

Member
Reaction score
8
I have started a new project and after 5% is done I've realized how much triggers I need to do. Making the triggers ain't the problem but doing them multiple times is.

Copying/Pasting helps a lot but even then it is possible that I make some mistakes when modifying the triggers (example: make 10 triggers and change only player numbers and regions in them).

I have already done a couple of general triggers which help me a lot but now I am asking your help.

In the game there is a Unit which can build Marks (using ability, not actually building). I would like to do a Trigger which destroys the Mark if the Unit walks too far from the Mark when it is still in Construction. Is there anyway to do a general trigger so I wouldnt need to do this multiple times. The Mark can be constructed only in specific areas and building it anywhere else causes another trigger to remove it.

Here is one example:

Code:
StayWhenMarking
    Events
        Unit - A unit Begins construction
    Conditions
        (Unit-type of (Constructing structure)) Equal to Mark of Fear
    Actions
        Unit Group - Pick every unit in (Units within 512.00 of (Position of (Constructing structure))) and do (If ((Owner of (Picked unit)) Equal to (Owner of (Constructing structure))) then do (Do nothing) else do (Unit - Remove (Constructing structure) from the game))

Only problem is that now the Unit can leave the region and it should NOT be able to do that until the Construction ends (without causing the Mark to be removed).

Reputation for useful answers and tips!
 

Drunken_God

Hopes to get back into Mapmaking with SC2 :)
Reaction score
106
make a periodic trigger that checks if there is a unit near the mark

PS: you can shorten triggers (and reduce there numbers) by using Triggering player and triggering unit also you can make loops like for each integer from 1 to 12 do give 20 gold to player(integer A) will give every player 20 gold
 

Templarion

Member
Reaction score
8
I was thinking about the Periodic Event but I thought it wouldn't work if there are multiple Marks beign constructed at the same time (sorry didnt mention that before).

After you told me to try - I try.

Thanks for tips in "Post-Script" but I am quite familiar with them already. I just prefer using "Pick all players" rather than For-loops. (+Rep)
 

Templarion

Member
Reaction score
8
I have problems. I tried the Periodic Event but it didn't work.

This is the latest thing I tried:
Code:
StayWhenMarking
    Events
        Unit - A unit Begins construction
    Conditions
        (Unit-type of (Constructing structure)) Equal to Mark of Fear
    Actions
        Wait until (((Triggering unit) is in (Units within 512.00 of (Position of (Constructing structure)))) Equal to False), checking every 1.00 seconds
        Unit - Explode (Constructing structure)

I am trying to make the trigger wait until the unit leaves the construction site and after that explode the Mark. For some reason this doesn't work either. Can someone help me here, please?
 

emilemil1

New Member
Reaction score
20
First a trigger that adds structures under construction to one unit group:


Code:
Untitled Trigger 002
    Events
        Unit - A unit Begins construction
    Conditions
    Actions
        Unit Group - Add (Constructing structure) to Your_Unit_Group


Then one that removes them from the unit group when they are finished:


Untitled Trigger 003
    Events
        Unit - A unit Finishes construction
    Conditions
    Actions
        Unit Group - Remove (Constructed structure) from Your_Unit_Group


Then a triggers that waits for the builder to be more than 512 away from the building the just constructed, if the building is still under construction/still in Your_Unit_Group, then it will be exploded, else it will not:


Untitled Trigger 001
    Events
        Unit - A unit Begins construction
    Conditions
        (Unit-type of (Constructing structure)) Equal to Your_Tower
    Actions
        Wait until ((Distance between (Position of (Triggering unit)) and (Position of (Constructing structure))) Greater than 512.00), checking every 0.50 seconds
        If (((Constructing structure) is in Your_Unit_Group) Equal to True) then do (Unit - Explode (Constructing structure)) else do (Do nothing)


I hope that it helped ^^ and that it works (had no time to try it=D)
(also my first post)

I did not include antileak commands, you have to add those yourself^^
 

Templarion

Member
Reaction score
8
Thanks! I really appreciate complete triggers but this time they didn't work.

I guess the problem is with the "Wait" thing. Isn't it global variable?

I didn't even notice that "Distance between points" before this thread. Nice things can be found behind Real Comparison... (+rep)

EDIT: Problem solved. I made three different triggers. One sets builder in an Unit Array and other sets building in another Unit Array. Third checks every 1 seconds with For-loop through the distance between the units in arrays. If someone needs help with this he can try to contact me directly.
 
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