Destroy units in same region

makakai

New Member
Reaction score
1
I was wondering how to destroy units owned by a different player in the same region as the unit manipulating an item?
My main problem is checking that the units being in the same region any suggestions?

Thanks in advance :)
 

Inflicted

Currently inactive
Reaction score
63
What is the event btw?

But the actions would be something lwith a Unit Group, picking all units that dont belong to the owner of the unit and removing them (whichever you want).

My main problem is checking that the units being in the same region any suggestions?

What kindof region? Is it a default region, or a specific place?
Perhaps a units in range, or Units in Region would work here, really depending on how you are using it.

Please clarify.
 

makakai

New Member
Reaction score
1
Basically it is like a checkers board, so the regions are rows and columns on the board that I have made so range would get in your area so that is out.

I can use units in region provided it is in the same region as the unit using the item. So I need a way to check that.
(Therefore the event is when a unit uses item)
 

DioD

New Member
Reaction score
57
1) Loop for every region with Is Unit In Region check.

2) Perform calculation if regions follow some formula.

note: GUI region == jass rect
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
are your regions preplaced in the editor?

if so it would be pretty simple:

Unit Group Pick every unit in MYRECT matching (matching unit belongs to an enemy of (triggering unit)) equal to true

and then do your stuff.
 

makakai

New Member
Reaction score
1
I'm assuming preplaced means I didn't make them... I did make em :( (how can they be there without me making them?)
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
preplaced means you opened the editor, you switched to the "rect" layer and then you placed them somewhere on your map manually.

if they are not preplaced they are made with a trigger.

just do it with the trigger i have shown, it should work.
 

X-maul

AKA: Demtrod
Reaction score
201
It seems like we're just confusing you even more :eek:
Well, what he mean is: did you create the region with the trigger editor, or did you create it with your Terrain Editor?
(Preplaced means if it was placed before the map was started) :)

But I think I understand you, and the trigger you might want to use, looks like this:
Trigger:
  • Untitled Trigger 001
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Tome of Experience
    • Actions
      • Set TempUnitGroup = (Units in Region 000 <gen>)
      • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Owner of (Picked unit)) is an enemy of (Owner of (Triggering unit))) Equal to True
            • Then - Actions
              • Unit - Kill (Picked unit)
            • Else - Actions
      • Custom script: call DestroyGroup(udg_TempUnitGroup)
Oh, I think i misunderstood afterall - this will only work for one region /:

If you wait I'll make you a trigger which will work for all regions on the board

EDIT:

Here is some trigger which you might find helpful ;)
Trigger:
  • Untitled Trigger 002
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set BoardRegions[1] = Region 000 <gen>
      • Set BoardRegions[2] = Region 000 <gen>
      • Set BoardRegions[3] = Region 000 <gen>
      • Set BoardRegions[4] = Region 000 <gen>
      • -------- Put all your regions into the variable as i did here --------
Trigger:
  • Untitled Trigger 001
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Item-type of (Item being manipulated)) Equal to Tome of Experience
    • Actions
      • -------- Put it as 1 to [the number of regions you have put into the variable] --------
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Set TempUnitGroup = (Units in BoardRegions[(Integer A)])
          • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Triggering unit) is in TempUnitGroup) Equal to True
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Owner of (Picked unit)) is an enemy of (Owner of (Triggering unit))) Equal to True
                    • Then - Actions
                      • Unit - Kill (Picked unit)
                    • Else - Actions
                • Else - Actions
          • Custom script: call DestroyGroup(udg_TempUnitGroup)
 
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