Building unit

egomanyak

New Member
Reaction score
8
How can i find building unit ? , egui or somethin' ?
i want do this(simple) :

when peon starts constructing...
destroy/kill/remove that building...

when i do that, peon goes to somewhere(i guess here) and it still uses food, lives, invulable, but not in the map.

i want to give back my peon or kill the peon, so i create new one.
 

Stringel

New Member
Reaction score
12
A unit begins contructing

Unit - Remove Constructing Structure

I dont get the last part, you want to hide him? In that case use Unit - Hide
 

Bogrim

y hello thar
Reaction score
154
There's no event response for the building unit. I've done you a favor and created a system that will allow you to find the building unit.

buildingunit.jpg


With the system, all you have to do to get the building unit is run this action,
Trigger:
  • Trigger - Run Building Unit <gen> (ignoring conditions)

To get the building unit in the event response - A unit begins construction, and the variable "Building_Unit" will be the unit. Note that the system will bug if your unit has abilities besides building. To fix that, you should add the order of any abilities to the list of orders in the triggers.

Copy the folder in the attached map into your map. It only uses 4 variables and purely GUI.
 

Attachments

  • BuildingUnit.w3x
    19.4 KB · Views: 187

egomanyak

New Member
Reaction score
8
There's no event response for the building unit. I've done you a favor and created a system that will allow you to find the building unit.

buildingunit.jpg


With the system, all you have to do to get the building unit is run this action,
Trigger:
  • Trigger - Run Building Unit <gen> (ignoring conditions)

To get the building unit in the event response - A unit begins construction, and the variable "Building_Unit" will be the unit. Note that the system will bug if your unit has abilities besides building. To fix that, you should add the order of any abilities to the list of orders in the triggers.

Copy the folder in the attached map into your map. It only uses 4 variables and purely GUI.

Im using this now, which is Jedi made for me.

Trigger:
  • Events
    • Unit - A unit Begins construction
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units within 100.00 of (Position of (Constructing structure))) and do (Actions)
        • Loop - Actions
          • Set PeonNearToBuilding = (Picked unit)
      • Wait 0.00 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units within 300.00 of (Position of (Constructing structure)) matching ((Unit-type of (Matching unit)) Equal to Footman))) Equal to 0
        • Then - Actions
          • Set asd = (Position of (Constructing structure))
          • Unit - Kill (Constructing structure)
          • Unit - Move PeonNearToBuilding instantly to asd
          • Custom script: call RemoveLocation(udg_asd)
        • Else - Actions


Note: this not working without wait 0.00 :D
 

Bogrim

y hello thar
Reaction score
154
I recommend you use the system I posted. It's MUI and accurate. The trigger Jedi made has leaks, and will only work for a single unit. ;-)
 

Sjaakje

New Member
Reaction score
9
Systems are nice and shiny, but sometimes there's that time where you only need a trigger to work for a single unit. Not everything has to be MUI/MPI (or even leakless if it's at the end of the game, like an ending cinematic).

Nonetheless, I took a look at your system and it looked great. Saving it for future use if needed:)
 

Bogrim

y hello thar
Reaction score
154
Systems are nice and shiny, but sometimes there's that time where you only need a trigger to work for a single unit. Not everything has to be MUI/MPI (or even leakless if it's at the end of the game, like an ending cinematic).
That's true, but a single instance is very rarely the case with workers. And if more players are involved, Jedi's trigger would probably bug all the time and lag. ;-)
 

egomanyak

New Member
Reaction score
8
That's true, but a single instance is very rarely the case with workers. And if more players are involved, Jedi's trigger would probably bug all the time and lag. ;-)

Its goin' to be single map, and just for one unit. your system is great too, but dont need :) taked it, keeping for later
 

Jedi

New Member
Reaction score
63
Happy now ?

Trigger:
  • Events
    • Unit - A unit Begins construction
    • Conditions
    • Actions
      • Set asd = (Position of (Constructing structure))
      • Set GROUPLOL = (Units within 100.00 of asd matching ((Unit-type of (Matching unit)) Equal to Peon ))
      • Unit Group - Pick every unit in GROUPLOL and do (Actions)
        • Loop - Actions
          • Set PeonNearToBuilding = (Picked unit)
      • Custom script: call DestroyGroup(udg_GROUPLOL)
      • Wait 0.00 seconds
      • Set GROUPLOL = (Units within 300.00 of asd matching ((Unit-type of (Matching unit)) Equal to Footman))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in GROUPLOL) Equal to 0
        • Then - Actions
          • Unit - Kill (Constructing structure)
          • Unit - Move PeonNearToBuilding instantly to asd
        • Else - Actions
      • Custom script: call RemoveLocation(udg_asd)
      • Custom script: call DestroyGroup(udg_GROUPLOL)
 

Bogrim

y hello thar
Reaction score
154
No offense to you Jedi, but I spent several hours working on the solution to the event response. It was actually from your post that I got the idea. You could pick the units in range, but how would you filter out which unit actually started the structure? When units are issued an order to make a building, target point of the order and the building's location are actually the same, so by storing the order's location in the unit and then comparing it with the building's location upon the event, you get a way to identify which unit that actually constructed the building. Then instead of picking units in range, I used a group.

I took up this challenge because I found it interesting to solve, like a puzzle. There's probably already some jass system that does it, or it would be more effective in jass.
 

egomanyak

New Member
Reaction score
8
No offense to you Jedi, but I spent several hours working on the solution to the event response. It was actually from your post that I got the idea. You could pick the units in range, but how would you filter out which unit actually started the structure? When units are issued an order to make a building, target point of the order and the building's location are actually the same, so by storing the order's location in the unit and then comparing it with the building's location upon the event, you get a way to identify which unit that actually constructed the building. Then instead of picking units in range, I used a group.

I took up this challenge because I found it interesting to solve, like a puzzle. There's probably already some jass system that does it, or it would be more effective in jass.

Well, well, well... I tryed your system, and cant figured out, jedi's system not working when unit not have model :D
time to make it harder.

What about making a road ?
Road must be looking like a road
should not have model file, or people dont see it just a path 'cause i want to make it look like a road, and people only can build near(Show) <like this<, of road. People cant build anyplace except roads and near of roads.
 

Bogrim

y hello thar
Reaction score
154
Well, well, well... I tryed your system, and cant figured out
You don't need to understand how it works. It's a whole different level of GUI. ;-)

Just import the system folder. Make sure you have checked "automatically generate unknown variables while pasting trigger data" in your editor's preferences.

In your trigger, create a "run trigger" action and run the trigger "Building Unit".

Then from that action on, you can use the variable "Building_Unit" for the building unit.

Look at the sample trigger in the map for the general idea.
 

egomanyak

New Member
Reaction score
8
You don't need to understand how it works. It's a whole different level of GUI. ;-)

Just import the system folder. Make sure you have checked "automatically generate unknown variables while pasting trigger data" in your editor's preferences.

In your trigger, create a "run trigger" action and run the trigger "Building Unit".

Then from that action on, you can use the variable "Building_Unit" for the building unit.

Look at the sample trigger in the map for the general idea.
I mean how make road, i cant figure out that :confused:
 
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