PDA

View Full Version : Updating OpCodes



purple
02-06-2005, 01:42 PM
So far, we've gotten ~140 opcodes mapped, including most of the big ones. There are still 82 opcodes that haven't been updated post-patch.

Anyone can help with mapping opcodes if they have time. To do so:
1) Pick an opcode from the unmapped list (the zoneopcodes.xml may have more info if you don't know what the opcode is. Check the comment field)
2) Turn on Unknown logging in seq (Network->Log->Unknown Zone Data)
3) tail -f ~/.showeq/logs/unknown.log
4) Make sure unknown.log isn't moving a lot (going to a quiet zone may help)
5) Do whatever it is you want to check the opcode for and watch the tail

For example, say I wanted to find out what OP_Sneak is. I'd turn on Unknown Zone Data, tail -f ~/.showeq/logs/unknown.log, then watch it a bit. Right now, it's moving showing a lot of 0x7032 which look like this (data made up, so don't try to figure out this opcode from this!):

Feb 06 2005 14:28:35:533 [Server->Client] [Size: 3]
[OPCode: 0x7032]
000 | 1c 02 31

You'll see where it says "OPCode: 0x7032". That means that seq is seeing that opcode. So now, you go and hit Sneak on your rogue and check the tail, looking for a different OPCode. Test a couple of times to make sure you've found the OPCode that seq sees when you sneak. When you're sure, you're done. You've found the OPCode for OP_Sneak. You can update your own zoneopcodes.xml to make that not show up in Unknown Zone Data if you want, and come and post it so I can update my version. If you do update your own opcode XML, you may see a data length warning on the console if the underlying struct has changed. Don't be scared, just post the error and it will get fixed.

From the old list of opcodes (removing ? ones), here are the opcodes that still need finding. There may be more which just weren't represented previously. If so, let me know what the new opcode is for it and I'll see what I can do to figure out what it is. Note that seq doesn't necessarily use all these opcodes.

OP_Adventure
OP_AdventureMerchantPurchase
OP_AdventureMerchantResponse
OP_AdventurePointsUpdate
OP_AdventureRequest
OP_Animation
OP_ApplyPoison
OP_AutoAttack
OP_AutoAttack2
OP_BecomePK
OP_BecomeTrader
OP_BindWound
OP_CorpseLocResponse
OP_CrashDump
OP_DelItem
OP_ExpansionSetting
OP_Feedback
OP_GMApproval
OP_GMBecomeNPC
OP_GMDelCorpse
OP_GMEmoteZone
OP_GMEndTraining
OP_GMEndTrainingResponse
OP_GMGoto
OP_GMHideMe
OP_GMInquire
OP_GMSearchCorpse
OP_GMServers
OP_GMSoulmark
OP_GMSummon
OP_GMToggle
OP_GMTrainSkill
OP_GMTraining
OP_GMZoneRequest
OP_GMZoneRequest2
OP_GainMoney
OP_GroupInvite2
OP_GuildDemote
OP_GuildLeader
OP_GuildPeace
OP_GuildRemove
OP_GuildWar
OP_IncreaseStats
OP_ItemTextFile
OP_ItemToTrade
OP_LevelUpdate
OP_Logout
OP_Mend
OP_MendHPUpdate
OP_MobUpdate
OP_MoneyUpdate
OP_MoveCash
OP_OpenObject
OP_Petition
OP_PetitionCheckIn
OP_PetitionCheckout
OP_PetitionDelete
OP_PetitionQue
OP_PetitionUnCheckout
OP_PetitionUpdate
OP_ReadBook
OP_ReqZoneObjects
OP_RespondAA
OP_Sacrifice
OP_SafePoint
OP_Save
OP_SendAAStats
OP_SetDataRate
OP_ShopItem
OP_SkillUpdate
OP_SpecialMesg
OP_Split
OP_Stamina
OP_Stun
OP_SummonCorpse
OP_Taunt
OP_TradeMoneyUpdate
OP_Trader
OP_TraderDelItem
OP_TraderItemUpdate
OP_Translocate
OP_ViewPetition
OP_ZoneUnavail


Thanks for any help anyone can give! I'll try to keep this up to date.

EDIT: Attached my zoneopcodes.xml which I'll keep up to date
EDIT2: Updated zoneopcodes.xml and added worldopcodes.xml
EDIT3: Updated both files
EDIT4: Updated zoneopcodes.xml again

Attached: zoneopcodes.xml.txt (take off .txt, from 02/08 at 12:05am)
Attached: worldopcodes.xml.txt (take off .txt, from 02/07, 7:00pm)

bonkersbobcat
02-06-2005, 03:07 PM
0x28a6 Focus effect message (Your xxx flickers with a pale light)

kmkm
02-06-2005, 04:37 PM
OP_Track: Server -> Client: 0x141f
OP_Forage: <Removed due to being incorrect>

ieatacid
02-06-2005, 05:32 PM
The opcode above for OP_Forage is actually OP_ItemLinkResponse.


OP_InspectRequest 0x06f6
OP_ClickDoor 0x695b
OP_YellForHelp 0x6ad1
OP_LoadSpellSet 0x1b74
OP_SwapSpell 0x4d26
OP_ShopPlayerBuy 0x6d53
OP_ShopPlayerSell 0x189a
OP_PetCommands 0x2622
OP_RandomReq 0x6ee1
OP_ReloadUI 0x1a0f
OP_MobHealth 0x7dea
OP_Emote 0x2014
OP_Consume 0x028f
OP_ClickObject 0x174a
OP_BoardBoat 0x160d
OP_LeaveBoat 0x58c9
OP_ManaChange 0x6c15
OP_LootRequest 0x6ac6
OP_EndLootRequest 0x195c
OP_LootComplete 0x3b48
OP_LootItem 0x09e2
OP_MoneyOnCorpse 0x68b6
OP_ItemLinkResponse 0x456c
OP_TraderBuy 0x6595

kmkm
02-07-2005, 03:12 AM
Hmm... really? It must be using that to send the forage info? *shrug*

It certainly occured every time I foraged and contained the item I foraged :)

purple
02-07-2005, 07:06 AM
Finished updating up to here. Thanks for the opcodes so far! Keep em coming!

purple
02-07-2005, 07:18 AM
BB, I can't find an existing opcode to reflect focus messages. Are these names made up or are they disassembled? If they are just made up, I can add OP_FocusEffectMessage.

quackrabbit
02-07-2005, 08:16 AM
Two important ones for me that I got from ieatacid from IRC that I've not seen posted here yet are:

OP_DeleteSpawn 0x2773
OP_Consider 0x1cc6

purple
02-07-2005, 08:27 AM
Those are both in my revision 2 patch already.

quackrabbit
02-07-2005, 08:48 AM
3 from worldopcodes.xml

OP_GuildList 0x5dd9
OP_SendCharInfo 0x2628
OP_SetChatServer 0x7e66

purple
02-07-2005, 09:08 AM
Thanks Quack. Added attachment of worldopcodes to my top post. I also updated zoneopcodes since I added in OP_ZoneChange which is what causes the spawn logs to update correctly.

purple
02-07-2005, 12:57 PM
I'm pretty sure OP_ItemLinkResponse is 0x4665. Can anyone test to see if forage is 0x456c is forage?

uRit1u2CBBA=
02-07-2005, 01:10 PM
I tried loading my iksar to test foraging, but when I turned on the logging, it would SegFault after a few seconds. :(

purple
02-07-2005, 01:14 PM
Make sure you're on revision 2. That's what revision 1 would do.

bonkersbobcat
02-07-2005, 01:28 PM
BB, I can't find an existing opcode to reflect focus messages. Are these names made up or are they disassembled? If they are just made up, I can add OP_FocusEffectMessage.
I didn't see an existing opcode either (thats why I didn't list one.) Just make up one.

BB

kmkm
02-07-2005, 03:40 PM
I orginally found forage as 0x456c but it was reported wrong, so I editted my post above.

purple
02-07-2005, 03:51 PM
IRC said 4e48 for Forage. Can someone get this straight!

purple
02-07-2005, 11:09 PM
Updated again to reflect the latest opcodes I have.

elf
02-08-2005, 08:50 PM
OP_GuildList looks right, it's sent at the right time, but it seems the structure got changed (warning is below). Havn't had time yet to ask a friendly GM to soulmark me or anything, so I don't have added opcodes to post yet.

Warning: OP_GuildList (0x5dd9) (dataLen: 96064) doesn't match: sizeof(worldGuildListStruct):32832

purple
02-08-2005, 09:42 PM
Yeah, it looks like MAX_GUILDS went up to 725. I guess they think people will start more guilds to take advantage of DoN guild-oriented features.

purple
02-08-2005, 09:48 PM
Bah, but just sometimes. Grr.

Edit: Or not!

newport
02-08-2005, 10:20 PM
while loading up after clean install and patch ect.

Warning: OP_GuildList (0x5dd9) (dataLen: 96064) doesn't match: sizeof(worldGuildListStruct):32832

Hope this helps, and a million thanks purle.

Edit .... Crap ! should have read further into the thread, sorry.

purple
02-08-2005, 10:25 PM
It's ok. It bumps the thread so people can see I can't divide and laugh because it took me like 15 minutes to figure out why I was still getting size mismatches when I upped MAXGUILDS to 725.

Mr. Calculator said maybe I should try 1500. Damn him. Always right.

purple
02-08-2005, 10:37 PM
Lost edit capabilities on that top post because of time, so I'm gonna shut this down. These files should get into CVS in the next day or two, so get new versions from there or from other posts. The top post here is now out of date.

There are still opcodes to find if you're feeling generous. Just look at zoneopcodes.xml or worldopcodes.xml. The top of the files have the old ones, the bottom are the updated ones. I commented out all the old ones in zoneopcodes.xml which aren't used by seq. The only ones used by seq which aren't known now are:
OP_Logout
OP_LevelUpdate
OP_GroupInvite2
OP_MobUpdate
OP_CorpseLocResponse
OP_Stamina

I tried to get GroupInvite2 sent, but I couldn't do it. I think Stamina is gone now, but I'm not sure. I can't get OP_Logout to happen either, it may gone in lieu of the new session stuff at the protocol layer. And I don't have any char slots to make someone who I can level easily and none of my chars are in a position to die to level or exp to level.

uRit1u2CBBA=
02-08-2005, 10:42 PM
Yeah, it looks like MAX_GUILDS went up to 725. I guess they think people will start more guilds to take advantage of DoN guild-oriented features.

I'd wager it's to prep for merging blue servers three-to-one and maintaining guilds.

elf
02-09-2005, 01:20 AM
Anyone know the circumstances that OP_CorpseLocResponce was sent under? I've been dragging corpses all night but not in anything near controlled environment. That can change though. Maybe find a necro and test OP_LevelUpdate as well.

Mikey
02-09-2005, 02:41 AM
Anyone know the circumstances that OP_CorpseLocResponce was sent under? I've been dragging corpses all night but not in anything near controlled environment. That can change though. Maybe find a necro and test OP_LevelUpdate as well.
I'm not sure, but it makes sense to me that OP_CorpseLocResponce might be when a Locate Corpse type ability is used.

onied
02-09-2005, 11:01 AM
try bone chipped rods or bard locate corpse song.