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)
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)