Unknowns

Help - Resources - AI Scripting - Grafting - Plugins - Modding Projects
User avatar
poiuy_qwert
Posts: 548
Joined: Sun Jan 13, 2008 2:14 am

Postby poiuy_qwert » Tue Dec 09, 2008 9:30 pm

Ah I see. The WeaponID error given before was a simple spelling mistake, the playsndrand error was caused by incorrect decompiling. I somehow forgot to make it decompile all of the sounds, currently it only does the first :X If anyone has the source version and wants to fix the problems, open LibsIScriptBIN.py, then go to line 308 to fix the first problem, the line should look like:

Code: Select all

      if 0 > v or v > DAT.WeaponssDAT.count:

and change it to:

Code: Select all

      if 0 > v or v > DAT.WeaponsDAT.count:

(remove the extra 's')

For the second problem, go down to line 977 which should look like:

Code: Select all

                     for v,t in zip(cmd[1:],OPCODES[cmd[0]][1]):

Change the one line into these multiple lines (so remove that line and put this in its place):

Code: Select all

                     d,o = cmd[1:],OPCODES[cmd[0]][1]
                     if OPCODES[cmd[0]][1][0](0,self) == -1:
                        n = OPCODES[cmd[0]][1][0](1,self,d[0])[0]
                        code += n + ' '
                        o = [OPCODES[cmd[0]][1][1]] * int(n)
                        del d[0]
                     for v,t in zip(d,o):

For all you EXE users, you'll have to wait for an update (which i hope to get out soon since these are fairly serious bugs).

Thanks a lot for the bug reports Heinermann! If you find anything else please report them (especially since you are one of the like 3 people that report anything...).
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Thu Jan 14, 2010 4:18 pm

MORE UNKNOWNS LAWL

Units.dat (Advanced tab) Unknown(u16): Unit requirements index. (This is updated and used internally)
Orders.dat Unknown(u16): Order requirements index. (This is updated and used internally)
Upgrades.dat Unknown(u16): Upgrade requirements index. (This is updated and used internally)
Techdata.dat Unknown1(u16): Research requirements index. (This is updated and used internally)
Techdata.dat Unknown2(u16): Ability requirements index. (This is updated and used internally)

Prettyfied first post
User avatar
poiuy_qwert
Posts: 548
Joined: Sun Jan 13, 2008 2:14 am

Postby poiuy_qwert » Tue Jan 19, 2010 11:31 pm

Very pretty first post. Nice work on the unknowns!
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Thu Feb 25, 2010 6:19 pm

And what about less than 3 and greater than 0?
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Fri Mar 19, 2010 5:53 am

What about "Random Suicide Mission"? I thought 1 would make that work, so that would mean it's a bitfield.

0x01 -- Respond to Random Suicide Mission
0x02 -- Attack enemies on sight
User avatar
poiuy_qwert
Posts: 548
Joined: Sun Jan 13, 2008 2:14 am

Postby poiuy_qwert » Thu Mar 25, 2010 7:44 pm

Nice :)
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Sat Mar 27, 2010 3:07 am

Still a bunch of unknowns in Orders I'd like to figure out. I havn't actually tested anything yet, so I may do so.
Heinermann
Posts: 362
Joined: Thu Apr 26, 2007 12:42 am

Postby Heinermann » Sun Sep 23, 2012 11:59 pm

So, inspired by this post: http://www.codeofhonor.com/blog/tough-t ... -starcraft

I decided I'd consider using SDL for BWAPI. But first I need to reverse engineer the existing drawing routines so that they can be entirely rewritten. I then got carried away and decided to create more correct existing structures, use more correct names, and figure out anything that was possibly missed.

So I re-downloaded Broodwar Beta and currently iterating all of the strings, recording every available debug hint I can find, including defining every structure I come across, and any enums that were encountered.

Anyway, here's some stuff.

SFXDATA
Unknonwn 2: The OFFICIAL name is "gbSoundFlagsTbl".

SFX_LOADING is 0x08 (official name), I am not sure what it does



I found a whole bunch of stuff, most not related to the pyMS toolchain, I did find that the iscript opcode "wait" is called "OPC_SLEEP" in code.

ISCRIPT OPCODES
Note: The person who wrote the blog post DID mention (in the comments) that some of the opcode names are incorrect.
0x05 - [s]wait[/s] --> sleep (this is official! Not only is there OPC_SLEEP, but there is "sleep" in more than one debug string)
0x27 - castspell --> firespell or fire_spell (reasoning: debug string has "FireSpell (tell mike)"...)
0x2A - gotorepeatattk --> endattack or end_attack (reasoning: debug string "hey! don't END_ATTACK while still uninterruptable!"...)
0x16 - end --> kill (reasoning: debug string "Tried killing %s while still outlined!", when the image drawing function is 13)

IMAGES.DAT
Drawing function ID
RLE_SHADOW = 10 (official)
RLE_HPFLOATDRAW = 11 (official)
RLE_OUTLINE = 13 (unofficial)
RLE_PLAYER_SIDE = 14 (official)

Return to “StarCraft Modding”

Who is online

Users browsing this forum: No registered users and 1 guest