CharData Packet

08/03/2013 12:05 frogi55#1
Hi all

I just tried to make a little program to see packets and parse them to have infos about my char, ..., but I have a little problem at the end of the inventory part of the packet.

Here are the last lines of the inventory :
Code:
 
00 00 00 00 ..................................Always 00 00 00 00
7D 88 00 00 ..................................Item Id
00 ...........................................Plus
00 00 00 00 00 00 00 00 ......................White stats
00 00 ........................................Durability
00 ...........................................Blues
00 00 ........................................???
01 ...........................................Socket 1
00 ...........................................No socket
02 ...........................................Socket 2
00 
03 
00 
04 
00 
09 ...........................................Slot
00 00 00 00 BB 87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 03 00 04 00 0A 
00 00 00 00 AB 87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 03 00 04 00 00 01 01 02 00 00 00 01 02 02 00 00 00 01 03 02 00 00 00
In the last line, where is the slot ? It should be 0B, since it's the second ring of the job set, but where it is ?

And also, what means the 01 01 02, 01 02 02 and 01 03 02 at the end ?

For the rest I think I can have the infos I want, I just need to make some tests ^^
08/03/2013 13:59 DaxterSoul#2
Durability is DWORD (4 Bytes)

09 Slot
00 00 00 00 Event
BB 87 00 00 RefItemID
00 OptLevel
00 00 00 00 00 00 00 00 Variance
00 00 00 00 Dura
00 MagParamNum
01 00 Socket 1
02 00 Socket 2
03 00 Socket 3
04 00 Socket 4

0A Slot
00 00 00 00 Event
AB 87 00 00 RefItemID
00 OptLevel
00 00 00 00 00 00 00 00 Variance
00 00 00 00 Data
00 MagParamNum
01 00 Socket 1
02 00 Socket 2
03 00 Socket 3
04 00 Socket 4

00 01 01 02 00 00 00 01 02 02 00 00 00 01 03 02 00 00 00

Would be helpful to have the full packet


Update:
Code:
	06                                                Slot
	00 00 00 00                                       nRentType (1 =, 2 =, 3 = ) 
	if(nRentType == 1)
	{
		01 00                                             CanDelete (Will be deleted when time period is over)
		60 67 22 52                                       PeriodBeginTime
		F0 3D 70 52                                       PeriodEndTime
	}
	
	if(nRentType == 2)
	{
		00 00                                             CanDelete (Will be deleted when time period is over)
		00 00                                             CanRecharge (Able to extend)
		08 E6 2D 00                                       MeterRateTime
	}
	
	if(nRentType == 3)
	{	
		01 00                                             CanDelete (Will be deleted when time period is over)
		60 67 22 52                                       PeriodBeginTime
		E0 A2 48 52                                       PeriodEndTime
		01 00                                             CanRecharge (Able to extend)
		1C F4 17 00                                       PackingTime
	}
	30 0E 00 00                                       RefItemID
	
	if(itemType == Equipment)
	{
		00                                                Plus
		00 00 00 00 00 00 00 00                           Variance
		89 00 00 00                                       Durability
		00                                                MagParamNum
		{
			00 00 00 00 || 00 00 00 00						MagParamIndex | MagParamValue
		}
		01                                                bOptType - 1 = Socket
		03                                                Amount of Socket Slots
		{
			00                                                nSlot
			FA 79 01 00 | E8 65 00 00                         nOptID | nParam1
		}
		02                                                bOptType - 2 = Advanced elixir
		01                                                Amount of Advanced elixirs
		{ 
			00                                                nSlot
			7B 65 00 00 | 02 00 00 00                         nOptID | nOptValue
		}
		//Notice for Advanced Elixir modding.
		//Mutiple adv elixirs only possible with db edit. nOptValue of last nSlot will be shown as elixir in effect but total Plus value is correct
		//You also have to fix error when "Buy back" from NPC
		//## Stored procedure Error(-1): {?=CALL _Bind_Option_Manager (3, 174627, 1, 0, 0, 0, 0, 0, 0)} ## D:\WORK2005\Source\SilkroadOnline\Server\SR_GameServer\AsyncQuery_Storage.cpp AQ_StorageUpdater::DoWork_AddBindingOption 1366
		//Storage Operation Failed!!! [OperationType: 34, ErrorCode: 174627]
		//Query: {CALL _STRG_RESTORE_SOLDITEM_ITEM_MAGIC (174628, ?, ?, 34, 6696,13, 137,8,0,137, 1,4294967506,0,0,0,0,0,0,0,0,0,0,0,199970734269)}
		//AQ Failed! Log out!! [AQType: 1]	
	}
08/03/2013 15:28 frogi55#3
Oh, I took the slot at the end of each item instead at the beginning, that's why i couldn't find the one for the last item, thank you :)

I skipped the part 00 01 01 02 00 00 ... until I found out what it means

Skills, Quests, Items, it's ok now, I've understood the most part of the packet
11/12/2013 18:50 Skullsoil#4
thanks that helps
11/18/2013 00:33 Bartic#5
Quote:
Originally Posted by sielaaaa69 View Post
+1 :D
If you +1 only one more thread...
11/18/2013 01:09 lesderid#6
Quote:
Originally Posted by Bartic View Post
If you +1 only one more thread...
Then he would've +1'd 48 threads (believe me, I counted).
11/18/2013 03:39 CastieI#7
Quote:
Originally Posted by lesderid View Post
Then he would've +1'd 48 threads (believe me, I counted).
Is "post farming" no reason to be reported?
If so, it would be sad.

€dit: Seems it is ;)
11/18/2013 05:13 Royalblades#8
These packets are actually fully parsed and documented on stealthex dot org forums, if i remember correctly. Might help ya to go and have a look over there.

No advertisment intended :)