Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: EUD: Detecting Unit Order
EUD: Detecting Unit Order
This topic is locked. You can no longer write replies here.
Aug 25 2013, 7:03 am
By: supermangik  

Aug 25 2013, 7:03 am supermangik Post #1



(Index ID: 0) Player 2: 19044 at least 92928
19044 at most 93183

(Index ID: 1) Player 1: 161760 at least 92928
161760 at most 93183

(Index ID: 2) Player 3: 161676 at least 92928
161676 at most 93183

(Index ID: 3) Player 4: 161592 at least 92928
161592 at most 93183

Okay, so for Player 1, and Player 2, all is correct. At Player 3 and down, all the numbers are wrong. The EUD is detecting the HOLD position (Unit Order). I am using EUDGEN2, but the values are wrong at 161676 and down. What is the correct formula or the correct value from Player 3 at Index 2, and down? Greatly appreciate it!



None.

Aug 25 2013, 7:26 am NudeRaider Post #2

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Do you use tanks or goliaths? Those use up 2 unit indexes.
Also start locations have no index (despite what ScmD tells you).




Aug 25 2013, 7:37 am supermangik Post #3



Quote from NudeRaider
Do you use tanks or goliaths? Those use up 2 unit indexes.
Also start locations have no index (despite what ScmD tells you).

Hey, thanks for the fast reply! No Tanks, or Goliath's. They are Ghost's, and I moved each Ghost to index 0-5.



None.

Aug 25 2013, 8:02 am jjf28 Post #4

Cartography Artisan

Unless there's something different with different players hold orders, I can't pick out an error here, each of them would lay on the same byte, and each would be 84 4-byte-steps apart (except for 0-1 which would be 1669*84), so if one works they should all work...

Edit1: http://farty1billion.dyndns.org/euddb/?pg=entry&id=563 numbers are all correct according to this.

I'll poke yoon tomorrow, this trick was one of his favs ;)

Edit2: It's possible that your units are being shoved forward a couple indexes by unit sprites and that's why only your first two work, do you have any unit sprites in your map?

Post has been edited 2 time(s), last time on Aug 25 2013, 8:13 am by jjf28.



TheNitesWhoSay - Clan Aura - github

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

Aug 25 2013, 9:08 am Azrael Post #5



If you attach the map, the issue will be a lot easier to figure out.




Aug 25 2013, 9:22 am supermangik Post #6



Quote from Azrael
If you attach the map, the issue will be a lot easier to figure out.

As you can see, I decided to create a new map to make sure. Player 3 - Down, does not work.

Post has been edited 5 time(s), last time on Aug 25 2013, 4:52 pm by supermangik.



None.

Aug 25 2013, 2:59 pm Roy Post #7

An artist's depiction of an Extended Unit Death

The answer to your question is located in Section 6.1 of the EPD tutorial. The reason only the first index works is because only one ghost is at the first index.

Or rather, I assume you were testing with a friend on your map, so you would notice that the first two indexes work. In any case, here's the part that explains the problem and how to solve it:
Quote from Roy
Another thing to remember is that players that are not in the game will not have their units placed. This again alters the actual indexes of preplaced units. For example, if you had placed a Zergling for Players 1-8 as the first units on the map, it would look something like this on the editor:

Code
Player 1 Zergling     Index 0
Player 2 Zergling     Index 1
Player 3 Zergling     Index 2
Player 4 Zergling     Index 3
Player 5 Zergling     Index 4
Player 6 Zergling     Index 5
Player 7 Zergling     Index 6
Player 8 Zergling     Index 7

But if only Player 3 and Player 7 are in the game when it starts, Player 3's Zergling will have Index 0, and Player 7's Zergling will have Index 1. A way to prevent this issue from occurring is to preplace all of the units for a computer player, and when the game starts, give the units to the players that should actually own them. This preserves the index as seen in the editor and has virtually no effect in gameplay.

And attached is a modified version of your HOLD EUD TEST. Here's what I changed:
  • I gave all ghosts to Player 7
  • I created a location above each ghost
  • I created a trigger for each player giving a Ghost owned by Player 7 to themselves at the appropriate location
  • I created a trigger for Player 7 that removes any Ghosts (left there by empty player slots) at those locations

This is just one way of approaching the above solution, but it's the most straightforward.

Post has been edited 1 time(s), last time on Aug 25 2013, 3:15 pm by Roy.




Aug 25 2013, 3:15 pm Azrael Post #8



Tested it, the numbers are correct. I can't test online due to client issues, but I think the issue you're having is that, at the start of a map, unit indexes are always assigned starting at 0 and incrementing by 1. The unit indexes you assign in SCMDraft2 only serve to determine what order the units will be given indexes when the map begins.

The simplest solution: Give the Terran Ghosts to Player 12 so that all of them will be created, regardless of which players are in the game. Put a location on each of the Ghosts (let's say P1 START, P2 START, etc). Then add the following trigger:

"Players: Player 1

Conditions: Always

Actions: Give 1 Terran Ghost at P1 START to Current Player"

Make a copy of this trigger for Player 2 through Player 6 as well (changing P1 START to P2 START, P3 START, etc).

This will effectively give each player their intended unit, while ensuring they always receive their correct unit index (if one of the players had not been in the game, their Ghost would not have been created, which would cause each higher unit index to be one lower than expected).

You'll also need a clean-up trigger. Since all of the Ghosts will have been distributed already, you can just use this:

"Players: Player 7

Conditions: Always

Actions: Remove all Terran Ghosts for Player 12"

Try this out, it should fix your problem.

Edit: Ninja'd :P Should have refreshed the thread after testing.




Aug 25 2013, 4:42 pm supermangik Post #9



You guys are geniuses, thanks a lot. I will do. :lol: *Edit: everything works. Thanks a bunch for the help. God Bless.

Post has been edited 1 time(s), last time on Aug 25 2013, 5:24 pm by supermangik.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[04:15 am]
DarkenedFantasies -- you eat lots of beans
[03:46 am]
IskatuMesk -- how do i get gas
[11:43 pm]
Moose -- you don't
[10:06 pm]
Zoan -- how do i get minerals
[2026-4-14. : 11:45 pm]
ClansAreForGays -- Anyone wanna played Skewed StarCraft?
[2026-4-14. : 12:07 am]
Vrael -- NudeRaider
NudeRaider shouted: Vrael ranting still is though
you're a gentleman and a scholar, thank you
[2026-4-13. : 10:07 pm]
NudeRaider -- ya why phone people when you can just write letters
[2026-4-13. : 9:37 pm]
IskatuMesk -- I have never and will never own a phone
[2026-4-13. : 9:15 pm]
NudeRaider -- Vrael ranting still is though
[2026-4-13. : 9:14 pm]
ClansAreForGays -- anticapitalism isnt edgy anymore
Please log in to shout.


Members Online: anoeth47, ufohylizyhyn