Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: Protoss Shields for Terran Units
Protoss Shields for Terran Units
Sep 3 2014, 3:27 pm
By: Oh_Man  

Sep 3 2014, 3:27 pm Oh_Man Post #1

Find Me On Discord (Brood War UMS Community & Staredit Network)

Is this possible with EUDs or anything?

Also, I remember a crazy discovery by Biophysicist and co. 'recently' that had some crazy unit-warping properties. Anyone got the link to that thread?




Sep 3 2014, 3:46 pm Roy Post #2

An artist's depiction of an Extended Unit Death

Here's the original topic: http://www.staredit.net/topic/15356/

There are a lot more related topics on the first page of the Theory forum.

As for the shields: no, not really. You could use EUDAs to assign shield points, but I don't believe they would function properly, and they definitely won't show in the UI without some major tweaks. (I'm going off of memory here and could easily be wrong.) If I remember correctly, it has the same effects as setting shield points for Terran units in ScmDraft.

EUDGen's action section can generate the EUDs for setting shield points if you want to tinker with it, but actually getting the shields to work how you expect is uncharted territory outside of modding. (Also remember you need an enabler for EUDAs, and copy/pasting them doesn't work in ScmDraft's text trigger editor.)

Post has been edited 2 time(s), last time on Sep 3 2014, 3:51 pm by Roy.




Sep 3 2014, 4:06 pm Sand Wraith Post #3

she/her

Modding and mapping are two sides to the same coin, particularly if the thread on executable code in maps had a true premise.

From what I've done on modding, typically, giving a non-Protoss unit shields would involve setting some sort of "enabler" box in an external data editor and specifying a value. This would loaded on map start from an overridden MPQ.

Last I remember, in the context of run-time, setting a unit's shielding would require a plugin with code specified to do so. When the code runs on a unit that does not have shields enabled (by any MPQ, vanilla or custom), the outcome is not as if the unit's shields are enabled and active.

Here is some of my speculation as to why the outcome as not as desired:

1) Shields must first be enabled. This is consistent given that if you /do/ give a unit some positive integer N for its shield cap, and the shield option is enabled, the shields will be properly set.

2) There is some sort of bounds checking code constantly running for resources that increment over time (e.g. HP in units that regenerate HP, energy, shields). As the unit does not have a legitimate shield cap, either on the same frame that the shield value is set by the plugin or the next frame, the shields disappear because the cap is set to 0 or the shield option is disabled.

3) Both of the above apply. When the shielding option is disabled, the cap for shielding is assumed to be zero. The option itself has no particular effect other than permitting the shield cap to be positive when enabled. Consistent given that the shield cap field has no effect in data editors. Consistent given that bounds-checking code would set any positive shielding back to zero.

I'll let you know if I found out any more.

EDIT:

Some more food for thought: enabling shields but providing a 0 as the shield cap will still cause the GUI to show the "0/0" shielding. IIRC bounds checking code does apply, so whenever the shield is above zero, it will be reset to the cap. For now, I'm done being useful.

Post has been edited 1 time(s), last time on Sep 3 2014, 4:09 pm by Sand Wraith.




Sep 3 2014, 6:29 pm O)FaRTy1billion[MM] Post #4

👻 👾 👽 💪

All non-shield units by default have 100 shields specified (with few exceptions), and you can edit this in the editor. So there's that. It's just a matter of getting one of these to be non-zero for the desired unit.

EDIT:
I just tested, and that single byte is literally all you need to change. Existing units will get their shields and start at full shields.

Post has been edited 6 time(s), last time on Sep 3 2014, 6:39 pm by FaRTy1billion.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Sep 4 2014, 5:58 am Oh_Man Post #5

Find Me On Discord (Brood War UMS Community & Staredit Network)

Cheers all. Farty, can you explain what you've done? Is that modding or mapping? I only want to map. If this is possible plz tell me wat to do in scmdraft. I presume also these can be affected by modify shield %, as usual?




Sep 4 2014, 7:10 am O)FaRTy1billion[MM] Post #6

👻 👾 👽 💪

I'm not sure how to do it with mapping, someone who knows how to do crazy extended unit placement stuff might be able to help with that address I've provided ...

What can be done with basic mapping is setting a unit's shield amount (Unit & Hero settings, Modify unit shields, etc.). It's just enabling them will be tricky.

EDIT:
I found the EUP Calc, but I don't find any units in it that don't crash ... But I have to go to bed now so I don't have time to try them all.

One of these should give shields to Marines:


Post has been edited 1 time(s), last time on Sep 4 2014, 7:27 am by FaRTy1billion.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Sep 4 2014, 11:03 am Oh_Man Post #7

Find Me On Discord (Brood War UMS Community & Staredit Network)

Well, I've never used EUDs or EUPs before, so I have no idea what I'm looking at.

I'll have to make the effort to learn it sometime.

Post has been edited 1 time(s), last time on Sep 4 2014, 11:04 am by Oh_Man.




Sep 4 2014, 11:15 am rockz Post #8

ᴄʜᴇᴇsᴇ ɪᴛ!

I can verify using a cheating program that it is 100% possible to enable shields for a non protoss unit (or disable for protoss). You have to change the units.dat byte as farty mentioned.

I haven't kept up with the new EUD Actions, but it's certainly possible to do assuming you can find the correct unit.

Ages ago I gave a ghost shields while playing around with EUD conditions and noticed the shield flag.



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

Sep 4 2014, 12:28 pm Oh_Man Post #9

Find Me On Discord (Brood War UMS Community & Staredit Network)

Dude/s if you can find out/show me how to give shields to terran units, particularly the hero ghosts, that would make me soooo happy.

There are so many mechanics you can use with shields for RPGs.




Sep 9 2014, 3:41 am rockz Post #10

ᴄʜᴇᴇsᴇ ɪᴛ!

Quote from Oh_Man
Dude/s if you can find out/show me how to give shields to terran units, particularly the hero ghosts, that would make me soooo happy.

There are so many mechanics you can use with shields for RPGs.
To be honest, I have no inclination to do this, but I will tell you that it's quite simple.

Find the UnitID of the ghost you want to use. Let's say for simplicity's sake you want to set the non-hero ghost. Per Farty's EUDDB: 0x006647B0 is the starting address for the "Shields" byte. Terran Ghost is unitID 0x01. If 0x006647B1 is set to 1, then all ghosts in the game will have shields. However according to EUP Calc, there is no difference between 0x006647B1 and 0x006647B0, so I assume you're actually adding 1 to 0x006647B0 and will need to do this a total of 256 times to make 0x006647B1 roll over to 1. Not ideal.

Let's move onto Sarah Kerrigan. She has unit ID of 0x10, which is a good round number since it ends in 0, 4, 8, or C. If byte 0x006647C0 is equal to 1, then Sarah Kerrigan will have shields. Open up EUP Calc and input in 0x006647C0 for the list of units.

Create a test map in SCMDraft which has a single unit off screen. Test out UnitID:18605 - 18625, 19289 - 19309, and 19061 - 19081. That's a total of 60 units to test. If you find one that doesn't crash and it's above 19000, you'll be able to change the player ID, then place a kerrigan and see she has cloaking. If you find one below 19000, you'll have to kill the unit to add it to the death table (which writes the byte you want).

60 units is a bit much to test for me, with no guarantee it will work. There are other ghosts out there though, and here's a list of their unit IDs: http://www.staredit.net/wiki/101/

Infested Duran and Stukov both end in 4 or 8, so they will be easy. Samir duran ends in a 3, so I don't think that he's possible, unless EUPs can add more than one at a time.



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

Sep 9 2014, 4:05 am jjf28 Post #11

Cartography Artisan

you're much more likely to find lower non-crashing UnitIDs (make the index of your ghost higher)

woops, editing dat entries not a single ghost

Post has been edited 2 time(s), last time on Sep 10 2014, 3:22 am by jjf28.




Sep 9 2014, 11:11 pm rockz Post #12

ᴄʜᴇᴇsᴇ ɪᴛ!

Quote from jjf28
you're much more likely to find lower non-crashing UnitIDs (make the index of your ghost higher)
Shields don't work like that :sorry:



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

Sep 9 2014, 11:38 pm jjf28 Post #13

Cartography Artisan

Quote from rockz
Quote from jjf28
you're much more likely to find lower non-crashing UnitIDs (make the index of your ghost higher)
Shields don't work like that :sorry:
extended units do
woops, editing dat entries not a single ghost

Post has been edited 1 time(s), last time on Sep 10 2014, 3:23 am by jjf28.




Sep 10 2014, 3:09 am rockz Post #14

ᴄʜᴇᴇsᴇ ɪᴛ!

This address isn't in the unit table. To add shields you have to add shields to the unit type, not a single ghost.



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

Sep 10 2014, 11:22 am Oh_Man Post #15

Find Me On Discord (Brood War UMS Community & Staredit Network)

Cheers for the informative reply. Shame about Samir Duran though, but yeah - plenty of other ghost units out there to use.




Sep 28 2014, 10:34 pm jjf28 Post #16

Cartography Artisan

lel





TheNitesWhoSay - Clan Aura - github

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

Sep 28 2014, 11:04 pm Zoan Post #17

Math + Physics + StarCraft = Zoan

:O

Post the map!! :D



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

Sep 28 2014, 11:24 pm jjf28 Post #18

Cartography Artisan

Woops, attatching:

Edit: new map in a later post

Post has been edited 1 time(s), last time on Feb 19 2015, 6:18 am by jjf28.



TheNitesWhoSay - Clan Aura - github

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

Sep 29 2014, 1:45 am sigsaucy Post #19



im away from my pc so can't access the editor for a week, if you could post the the triggers or what units were placed I'd really appreciate it.

If it's too much trouble don't worry about it.




Sep 29 2014, 4:14 am jjf28 Post #20

Cartography Artisan

There is one trigger of consequence after setting up dEUPs:

Trigger("Player 1"){
Conditions:
    Always();

Actions:
    Set Deaths("Player 4", "Terran Marine", Set To, 6703015);
    Set Deaths("Player 2", "Terran Vulture", Set To, 0);
    Set Deaths("Player 8", "Terran Ghost", Set To, 0);
    Give Units to Player("Player 1", "Player 2", "Terran Command Center", All, "Anywhere");
    Comment("Enable Ghost Shields");
}



TheNitesWhoSay - Clan Aura - github

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

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[01:39 am]
Ultraviolet -- no u elky skeleton guy, I'll use em better
[10:50 pm]
Vrael -- Ultraviolet
Ultraviolet shouted: How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
hey cut it out I'm getting all the minerals
[10:11 pm]
Ultraviolet -- :P
[10:11 pm]
Ultraviolet -- How about you all send me your minerals instead of washing them into the gambling void? I'm saving up for a new name color and/or glow
[2024-4-17. : 11:50 pm]
O)FaRTy1billion[MM] -- nice, now i have more than enough
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- if i don't gamble them away first
[2024-4-17. : 11:49 pm]
O)FaRTy1billion[MM] -- o, due to a donation i now have enough minerals to send you minerals
[2024-4-17. : 3:26 am]
O)FaRTy1billion[MM] -- i have to ask for minerals first tho cuz i don't have enough to send
[2024-4-17. : 1:53 am]
Vrael -- bet u'll ask for my minerals first and then just send me some lousy vespene gas instead
[2024-4-17. : 1:52 am]
Vrael -- hah do you think I was born yesterday?
Please log in to shout.


Members Online: Sylph-Of-Space, jun3hong