Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: Using Unburrow Detection
Using Unburrow Detection
Dec 10 2014, 6:11 pm
By: x)aCe(x  

Dec 10 2014, 6:11 pm x)aCe(x Post #1



Say I want to detect when a drone unburrows as a means of activating a revive.

What method could I use to detect whether burrowed or unburrowed?



None.

Dec 10 2014, 6:37 pm Zoan Post #2

Math + Physics + StarCraft = Zoan

Here are the steps you need to have the triggers follow:

1: center a small 1 pixel by 1 pixel location on the drone

2: move an arbitrary but small unit owned by a computer player, say a terran civilian, from an arbitrary, isolated location to the 1 pixel by 1 pixel location you centered on the drone

3: in a separate trigger, detect whether the terran civilian is at the 1 pixel by 1 pixel location. If he is, the drone is burrowed. If he is not, the drone is unburrowed.

4: move the civilian back to it's arbitrary, isolated location, using a 'move all terran marine for -computer player- at location anywhere to 'isolated location''.

Post has been edited 1 time(s), last time on Dec 11 2014, 8:31 pm by Zoan.



\:rip\:ooooo\:wob\:ooooo \:angel\: ooooo\:wob\:ooooo\:rip\:

Dec 12 2014, 2:19 am x)aCe(x Post #3



Is there an EUD method?




Dec 12 2014, 2:41 am Roy Post #4

An artist's depiction of an Extended Unit Death

Quote from x)aCe(x
Is there an EUD method?
Yes. From Unitnode Structure:
+0xDC - DWORD dwStatus
00000001(0x1) - Is Completed
00000010(0x2) - Is on ground? or is it is unit...
00000100(0x4) - Is in air
00001000(0x8) - Checked for disabled, if it is 00001000, then the unit is disabled(/unpowered?)
00010000(0x10) - Checked for burrowing purposes, if it is 00010000, then the unit is burrowed
00100000(0x20) - Unit is entering a building
01000000(0x40) - unit is entering a transport
10000000(0x80) -

00000001(0x100) - Checked for invisible purposes, if it is 00000001, then the unit requires a detector?
00000010(0x200) - checked for cloak?
00000100(0x400) - deals with doodad states? if set, is disabled
00001000(0x800) - Unit cloaking doesn't need energy decrease
00010000(0x1000) - Unit is in unbreakable code section? Cannot receive orders
00100000(0x2000) - Set by nobrkcodestart
01000000(0x4000) -
10000000(0x8000) - cannot attack if set

00000001(0x10000)
00000010(0x20000) - Is a Building?

00000100(0x4000000) - Invincible

00010000(0x10000000) - Speed upgrade
00100000(0x20000000) - cooldown upgrade

You'll have to see what other flags are set on these bytes for the unit of interest to get the exact values, and of course +0xDC means how far it is from the start of the unit struct at a particular index. I'd probably opt for the method Zoan suggested for the sake of simplicity, though (it's what I used for Fireball's burrow detection).




Dec 12 2014, 2:51 am jjf28 Post #5

Cartography Artisan

Would suggest using a more modern reference:

https://code.google.com/p/bwapi/source/browse/trunk/bwapi/BWAPI/Source/BW/UnitStatusFlags.h
https://code.google.com/p/bwapi/source/browse/trunk/bwapi/BWAPI/Source/BW/CUnit.h



TheNitesWhoSay - Clan Aura - github

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Dec 24 2014, 8:03 pm rockz Post #6

ᴄʜᴇᴇsᴇ ɪᴛ!

I find using scarabs, interceptors, or siege tanks infinitely easier than a burrowed unit.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Dec 25 2014, 7:36 pm Sacrieur Post #7

Still Napping

You could put a power-up (owned by player 12) over the drone. Detect when the player brings the power-up to the location. When the worker picks up the power-up, it will be read as being owned by the player's worker. Killing the unit drops the power-up, returning its ownership to player 12.

Supposing this is in some controlled environment where you don't have to worry about anyone else picking it up. It won't be as fast as other methods listed above though, since there is a delay between when the drone unburrows and when it picks up the power-up.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[08:46 pm]
NudeRaider -- Brusilov
Brusilov shouted: Hey, what happened to EUDDB? Is there a mirror for it somewhere? Need to do a little research.
https://armoha.github.io/eud-book/
[2024-5-10. : 8:36 am]
Brusilov -- Hey, what happened to EUDDB? Is there a mirror for it somewhere? Need to do a little research.
[2024-5-09. : 11:31 pm]
Vrael -- :wob:
[2024-5-09. : 8:42 pm]
Ultraviolet -- :wob:
[2024-5-08. : 10:09 pm]
Ultraviolet -- let's fucking go on a madmen rage bruh
[2024-5-08. : 10:01 pm]
Vrael -- Alright fucks its time for cake and violence
[2024-5-07. : 7:47 pm]
Ultraviolet -- Yeah, I suppose there's something to that
[2024-5-06. : 5:02 am]
Oh_Man -- whereas just "press X to get 50 health back" is pretty mindless
[2024-5-06. : 5:02 am]
Oh_Man -- because it adds anotherr level of player decision-making where u dont wanna walk too far away from the medic or u lose healing value
[2024-5-06. : 5:01 am]
Oh_Man -- initially I thought it was weird why is he still using the basic pre-EUD medic healing system, but it's actually genius
Please log in to shout.


Members Online: 6oliviae4591tM0, jun3hong, Ultraviolet