Quote:
Originally Posted by GhosTly93
how to add other opcode?
example: I want to check the 0x3013 opcode
How do I add?
|
Creating your pxScript, adding opcode and use save button, also the packet seems that needs a description to be loaded correctly,
I'll fix that with the library viewer in a moment.
SERVER_AGENT_CHARACTER_DATA = 0x3013.
It requires to use file data. I'll think about adding that (get item/skill/model data by id)
You could make the process manually searching through files, no sounds pretty but it's the best because sometimes it's required to check more than just ID's on other packets..
An example with this hexdump where I added manually the ID's :
HTML Code:
0000000000 53 4D 9B C6 84 07 00 00 21 01 01 00 00 00 00 00 SM.Æ....!.......
0000000016 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000000032 00 00 00 00 00 00 00 00 00 00 C8 00 00 00 C8 00 ..........È...È.
0000000048 00 00 01 00 00 00 00 00 00 00 00 00 2D 06 01 00 ............-...
0000000064 00 00 00 41 0E 00 00 < 03 01 02 04 > 00 00 00 00 00 00 00 00 00 ...A............
0000000080 2C 00 00 00 00 01 00 02 00 04 00 00 00 00 42 0E ,.............B.
0000000096 00 00 < 03 01 02 04 > 00 00 00 00 00 00 00 00 00 2C 00 00 00 00 ...........,....
0000000112 01 00 02 00 05 00 00 00 00 43 0E 00 00 < 03 01 02 06 > 00 00 00 .........C......
0000000128 00 00 00 00 00 00 2C 00 00 00 00 01 00 02 00 06 ......,.........
0000000144 00 00 00 00 34 0E 00 00 < 03 01 06 06 > 00 00 00 00 00 00 00 00 ....4...........
0000000160 00 2F 00 00 00 00 01 00 02 00 07 00 00 00 00 47 ./.............G
0000000176 0E 00 00 < 03 03 04 01 > E8 03 0D 00 00 00 00 56 60 00 00 < 03 02 01 02 > 01 05 ...è......V`....
0000000192 00 00 01 01 01 00 00 00 01 02 01 00 00 00 01 03 ................
0000000208 01 00 00 00 01 11 01 00 00 00 01 12 01 00 00 00 ................
0000000224 01 13 01 00 00 00 01 14 01 00 00 00 02 00 02 01 ................
0000000240 00 01 00 00 00 03 DC 00 00 00 10 00 18 01 01 01 ......Ü.........
0000000256 01 1B 00 53 4E 5F 43 4F 4E 5F 51 53 50 5F 43 48 ...SN_CON_QSP_CH
0000000272 5F 45 58 49 4E 56 45 4E 54 4F 52 59 5F 31 01 00 _EXINVENTORY_1..
0000000288 00 00 00 DD 00 00 00 10 00 18 01 01 01 01 1B 00 ...Ý............
0000000304 53 4E 5F 43 4F 4E 5F 51 53 50 5F 57 43 5F 45 58 SN_CON_QSP_WC_EX
0000000320 49 4E 56 45 4E 54 4F 52 59 5F 32 01 00 00 00 00 INVENTORY_2.....
0000000336 DE 00 00 00 10 00 18 01 01 01 01 1B 00 53 4E 5F Þ............SN_
0000000352 43 4F 4E 5F 51 53 50 5F 4B 54 5F 45 58 49 4E 56 CON_QSP_KT_EXINV
0000000368 45 4E 54 4F 52 59 5F 33 01 00 00 00 00 00 00 00 ENTORY_3........
0000000384 00 00 96 47 77 01 99 65 00 40 6F 44 19 CF D0 C2 ...Gw..e.@oD.ÏÐÂ
0000000400 00 60 E3 44 EC A4 00 01 00 EC A4 00 00 00 00 00 .`ãDì¤...ì¤.....
0000000416 00 80 41 00 00 48 42 00 00 C8 42 00 05 00 4A 65 ..A..HB..ÈB...Je
0000000432 6C 6C 79 00 00 00 01 00 00 00 00 00 00 00 00 00 lly.............
0000000448 00 00 00 00 00 00 FF 57 00 E0 04 00 00 00 00 6C ......ÿW.à.....l
0000000464 0E 00 00 00 07 00 00 00 00 00 00 00 00 00 01 00 ................
0000000480 01 00 00 ................
And using pxScript to parse it normally :
PHP Code:
uint ServerTime
uint model
byte scale
byte level
byte levelMax
ulong exp
uint expSP
ulong gold
uint SP
ushort statPoints
byte berserkPoints
uint expGathered
uint HPMax
uint MPMax
byte expIcon
byte PKDaily
ushort PKTotal
uint PKPenalty
byte berserkLevel
byte PVPCape
byte inventorySize
FOR byte
byte itemSlot
uint rentType
IF rentType == 1
ushort rentInfoCanDelete
uint rentInfoPeriodBeginTime
uint rentInfoPeriodEndTime
ENDIF
IF rentType == 2
ushort rentInfoCanDelete
ushort rentInfoCanRecharge
uint rentInfoMeterRateTime
ENDIF
IF rentType == 3
ushort rentInfoCanDelete
ushort rentInfoCanRecharge
uint rentInfoPeriodBeginTime
uint rentInfoPeriodEndTime
uint rentInfoPackingTime
ENDIF
uint refItemID
// ID's added manually to hexdump
byte ID1
byte ID2
byte ID3
byte ID4
IF ID1 == 3
// ITEM_
IF ID2 == 1
// ITEM_CH_
// ITEM_EU_
// ITEM_AVATAR
byte itemLevel
ulong itemVariance
uint itemDurability
FOR byte
uint magParam01
uint magParam02
ENDFOR
byte bindingType
FOR byte
byte bindOption01
uint bindOption02
uint bindOption03
ENDFOR
byte bindingType_
FOR byte
byte bindOption01_
uint bindOption02_
uint bindOption03_
ENDFOR
ENDIF
IF ID2 == 2
// ITEM_COS
IF ID3 == 1
// ITEM_COS_P
byte petState
IF petState == 2
// Summoned
uint refObjID
ascii petName
IF ID4 == 2
// ITEM_COS_P (Ability)
uint petRentEndTime
ENDIF
byte unkByte
ENDIF
IF petState == 3
// Alive
uint refObjID
ascii petName
IF ID4 == 2
// ITEM_COS_P (Ability)
uint petRentEndTime
ENDIF
byte unkByte
ENDIF
IF petState == 4
// Dead
uint refObjID
ascii petName
IF ID4 == 2
// ITEM_COS_P (Ability)
uint petRentEndTime
ENDIF
byte unkByte
ENDIF
ENDIF
IF ID3 == 2
// ITEM_ETC_TRANS_MONSTER
uint refObjID
ENDIF
IF ID3 == 3
// MAGIC_CUBE
uint cubeQuantity
ENDIF
ENDIF
IF ID2 == 3
// ITEM_ETC
ushort quantity
IF ID3 == 1
IF ID4 == 1
// Magic stone
byte assimilationProbability
ENDIF
IF ID4 == 2
// Attributte stone
byte assimilationProbability
ENDIF
ENDIF
IF ID3 == 14
IF ID3 == 2
// ITEM_MALL_GACHA_CARD_WIN
// ITEM_MALL_GACHA_CARD_LOSE
FOR byte
uint magParam01
uint magParam02
ENDFOR
ENDIF
ENDIF
ENDIF
ENDIF
ENDFOR
// Bla bla bla...