With the help of Rockz, who found the formula and the first units address, I have found unit order coordinates.
Formula - 65536(Y) + (1)X = Death amount
Yes, the x and y are in one value, not separate.
Unit 1ID:1587
Player 4
Unit 2ID:13480
Player 4
From Unit 2 to Unit 3 just subtract seven from Unit 2s Unit ID to get Unit 3 and repeat to get Unit 4 Unit ID.
Note: Unit # means the unit that is placed on the map. Unit 1 is the first unit placed on the map and so on.
Unit IDs
Unit 1 > Player 4 > Unit ID:1587
Unit 2 > Player 4 > Unit ID:13480
Unit 3 >Player 4 > Unit ID:13473
Unit 4 > Player 4 > UnitID:13466
Unit 5 > Player 4 > UnitID:13459
Unit 6 > Player 4 > UnitID:13452
Unit 7 > Player 4 > UnitID:13445
Unit 8 > Player 4 > UnitID:13438
Unit 9 > Player 4 > UnitID:13431
Unit 10 > Player 4 > UnitID:13424
Unit 11 > Player 4 > UnitID:13417
Unit 12 > Player 4 > UnitID:13410
Unit 13 > Player 4 > UnitID:13403
Unit 14 > Player 4 > UnitID:13396
Unit 15 > Player 4 > UnitID:13389
Unit 16 > Player 4 > UnitID:13382
Unit 17 > Player 4 > UnitID:13375
Unit 18 > Player 4 > UnitID:13368
Unit 19 > Player 4 > UnitID:13361
Unit 20 > Player 4 > UnitID:13354
This is Multiplayer.Uses (May need a grid to do)
-selecting spells
-attacking units
-ordering units(obvious)
-many more, however I can't think of any
None.
This is a really useful and possibility opening concept
and yeah
I can confirm this.
Neat stuff
None.
I've been searching for a way to easily detect the X position (y is easy, x is hard). All the conditions when using extended players point to the same place as deaths, making them worthless in this case. You might as well use deaths to keep things similar.
However, one condition caught my eye, and I can't figure it out. Opponents. Where/how is the data stored? I tried searching and failed. If this happens to read two bytes off from deaths, we can read any value quite easily.
"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"
?
http://farty1billion.dyndns.org/EUDDB/?pg=ref&a=unitnode;o
Also "opponents", if I understand you correctly, is figured by finding the alliance table.
this is the 1.15.2 value.
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!
This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!
Alright, so I see that. Any chance you know how it is read? The alliance table is 12x12, that part I get, but it seems only when both players are allied victory will they not be considered each others opponent. However, the player also has to be present, and not 9-12.
The interesting part about this is that it seems to read multiple places, although I'm beginning to get the feeling that it's worthless.
"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"
How did I miss this one =\
So this will basically detect the coordinate a unit is ordered to? Does anyone have the Memory condition for this?
None.
It's not quite useful. You can do atleast and atmost for the X, but not the Y since they are in the same value. For a 20x12 area with a definition of 1 pixel you would need 245760 triggers. For a 64x64 map with a 32 pixel (1 tile) definition you would need 131072 triggers. I made a sample map with two players on a 64x12 map with a definition of 32 pixels with 49240 triggers for both players combined.
Attachments:
None.
Couldn't you just write a quick program to spit out conditions for coordinates based on the formula rockz found? You could then put these into maybe some sort of excel sheet, so people can look up specific locations for their map..
None.
Couldn't you just write a quick program to spit out conditions for coordinates based on the formula rockz found? You could then put these into maybe some sort of excel sheet, so people can look up specific locations for their map..
I have almost no knowledge in any programming language.
None.
It's not quite useful. You can do atleast and atmost for the X, but not the Y since they are in the same value. For a 20x12 area with a definition of 1 pixel you would need 245760 triggers. For a 64x64 map with a 32 pixel (1 tile) definition you would need 131072 triggers. I made a sample map with two players on a 64x12 map with a definition of 32 pixels with 49240 triggers for both players combined.
Ah so this is what that map was about. It's a shame though, I tried it before and even 49240 triggers causes my old computer to hang and in need of a manual reboot. Still good to know this exists.
None.
Great! Now find rally points.
really, though, I'm pretty excited about this... on a small scale, this could make some pretty sweet maps...
None.
Regarding Cecil's suggestion... Tell me how to find the condition for a particular coordinate (or whatever knowledge would be needed), and I can probably write some JS to auto-generate a table, which I can then save to a file and try to attach to a post in this topic. Heck, I might even be able to write a script that takes a location (as in, you give it the XY coordinates for the upper left and lower right corners) and a resolution (pixels or tiles), and outputs a list of SCMD text triggers.
None.
rally point is the same thing. You can find the offsets yourself.
+0x10 - WORD wMoveToXPos
+0x12 - WORD wMoveToYPos
+0xF8 - WORD wRallyX
+0xFA - WORD wRallyY
The problem is that you have to detect a 4 byte integer. So that means if you detect a range, you can detect the general y location, but not the x location. In a 64x64 map, lets say the unit is at 1028,1028 (32,32), and we are trying for 32 px precision. The 4 byte data is 67371008. The range for the y is anywhere from 67107840 to 69204959. To find the x, you have to detect 32 y positions and a range for each x position. For example, the first one is 67108864 to 67108895. Add 65536 to the range for the next one.
This is the range to detect the sqare 32,32. You'd need 32 triggers.
table
67108864 67108895
67174399 67174430
67239934 67239965
67305469 67305500
67371004 67371035
67436539 67436570
67502074 67502105
67567609 67567640
67633144 67633175
67698679 67698710
67764214 67764245
67829749 67829780
67895284 67895315
67960819 67960850
68026354 68026385
68091889 68091920
68157424 68157455
68222959 68222990
68288494 68288525
68354029 68354060
68419564 68419595
68485099 68485130
68550634 68550665
68616169 68616200
68681704 68681735
68747239 68747270
68812774 68812805
68878309 68878340
68943844 68943875
69009379 69009410
69074914 69074945
69140449 69140480
you can change the size of the squares, but it only cuts the triggers in half if you double the precision. 64x64 pixel squares need 64 triggers per square, so 64*32*32=65536. 32x32 pixel squares need 32 triggers per square, so 32*64*64=131072. 16x16 pixel squares need 16 triggers per square, so 16*128*128=262144.
"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"