Docs
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
Server: 85 AbnormalStatusUpdate: len 25
|
||||
19 00
|
||||
85
|
||||
02 00 // nEffects = 2
|
||||
3E 14 00 00 // skillID 5182 \
|
||||
01 00 // level 1 > 1
|
||||
BF 1E 00 00 // duration 7871 /
|
||||
E2 10 00 00 // skillID \
|
||||
01 00 // level 1 > 2
|
||||
42 0F 00 00 // duration 3906 /
|
||||
|
||||
19 00
|
||||
85
|
||||
02 00
|
||||
3E 14 00 00 // skill
|
||||
01 00
|
||||
C5 1E 00 00 // 7877
|
||||
E2 10 00 00
|
||||
01 00
|
||||
47 0F 00 00 // 3911
|
||||
|
||||
duration in seconds...?
|
||||
@@ -0,0 +1,18 @@
|
||||
14 00 // len - 20
|
||||
1F // ptype - Action
|
||||
39 A4 00 10 // objectID 268477497 of a target
|
||||
9A CB 00 00 // originX 52122
|
||||
3D 2B FF FF // originY -544657
|
||||
A9 F3 FF FF // originZ -3159
|
||||
00 // use shift? 00 - false, 01 - true
|
||||
|
||||
|
||||
client sends its own coordinates
|
||||
|
||||
(52136,-54431,-3184)
|
||||
|
||||
[PACKET] Client: 1F Action [268477497]
|
||||
[PACKET] Server: 23 TargetSelected [268636209] -> [268477497]
|
||||
my_obj_ID -> targ_obj_ID
|
||||
[PACKET] Server: B9 MyTargetSelected [268477497]
|
||||
targ_obj_ID
|
||||
@@ -0,0 +1,3 @@
|
||||
Client Len 3 [Appearing]
|
||||
03 00
|
||||
3A // pcode Appearing
|
||||
@@ -0,0 +1,11 @@
|
||||
Server: 39 AskJoinParty: len 23
|
||||
17 00
|
||||
39
|
||||
41 00 6C 00 65 00 78 00 78 00 69 00 61 00 00 00 // inviter A l e x x i a
|
||||
04 00 00 00 // loot type
|
||||
|
||||
// 0 - Finders Keepers
|
||||
// 1 - Random
|
||||
// 2 - Random including spoil
|
||||
// 3 - by turn
|
||||
// 4 - by turn including spoil
|
||||
@@ -0,0 +1,38 @@
|
||||
Server: Len 39 [Attack]
|
||||
27 00
|
||||
33
|
||||
6C 08 00 10 // attacker
|
||||
B2 16 00 10 // target
|
||||
A6 00 00 00 // damage
|
||||
00 // flags
|
||||
9A AC 00 00 // x
|
||||
F9 A4 00 00 // y coords of attacker
|
||||
5D F2 FF FF // z
|
||||
00 00 // count-1
|
||||
B2 16 00 10 // attacker (same)
|
||||
A6 00 00 00 // damage (same)
|
||||
00 // flags (same)
|
||||
|
||||
Flags:
|
||||
if (soulshot) _flags |= 0x10 | _grade;
|
||||
if (crit) _flags |= 0x20;
|
||||
if (shld > 0) _flags |= 0x40;
|
||||
if (miss) _flags |= 0x80;
|
||||
|
||||
|
||||
writeC(0x33);
|
||||
|
||||
writeD(_attackerObjId);
|
||||
writeD(_hits[0]._targetId);
|
||||
writeD(_hits[0]._damage);
|
||||
writeC(_hits[0]._flags);
|
||||
writeD(_x);
|
||||
writeD(_y);
|
||||
writeD(_z);
|
||||
writeH(_hits.length-1);
|
||||
for (Hit temp: _hits)
|
||||
{
|
||||
writeD(temp._targetId);
|
||||
writeD(temp._damage);
|
||||
writeC(temp._flags);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
21 00 // 33 b
|
||||
2B // on L2J if obfuscator (last 4 bytes) in KeyPacket are 00 00 00 00
|
||||
// pcode may vary on retail!
|
||||
6C 00 65 00 78 00 78 00 00 00 // account login (Unicode string)
|
||||
BC C4 1C 61 // sessionKey2 part2
|
||||
6A 92 28 32 // sessionKey2 part1
|
||||
62 05 8C 1A // sessionKey1 part1
|
||||
A7 0D 32 D9 // sessionKey1 part2
|
||||
01 00 00 00 // hz
|
||||
@@ -0,0 +1,76 @@
|
||||
Server: Len 2765 [BuyList] |
|
||||
CD 0A
|
||||
07
|
||||
C7 55 35 00 // money 3495367
|
||||
90 00 00 00 // list ID 144
|
||||
2B 00 // items count 43
|
||||
|
||||
04 00 // item type 1 0-weapon/ring/earring/necklace 1-armor/shield 4-item/questitem/adena
|
||||
00 00 00 00 // objectID
|
||||
2B 07 00 00 // itemID 1835 Soulshot no grade
|
||||
00 00 00 00 // current count
|
||||
05 00 // item type2 0-weapon 1-shield/armor 2-ring/earring/necklace 3-questitem 4-adena 5-item
|
||||
00 00 // ??
|
||||
00 00 00 00 // bodypart (for armor)
|
||||
00 00 // enchant level
|
||||
00 00 00 00 // ??
|
||||
07 00 00 00 // price (=7)
|
||||
FE FF FF FF // atk attribute type (-2) \\
|
||||
00 00 00 00 // atk attribute value \\
|
||||
00 00 00 00 // fire def \\
|
||||
00 00 00 00 // water def || element attributes
|
||||
00 00 00 00 // wind def ||
|
||||
00 00 00 00 // earth def //
|
||||
00 00 00 00 // holy def //
|
||||
00 00 00 00 // unholy def //
|
||||
|
||||
|
||||
|
||||
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0x07);
|
||||
writeD(_money); // current money
|
||||
writeD(_listId);
|
||||
|
||||
writeH(_list.size());
|
||||
|
||||
for (L2TradeItem item : _list)
|
||||
{
|
||||
if (item.getCurrentCount() > 0 || !item.hasLimitedStock())
|
||||
{
|
||||
writeH(item.getTemplate().getType1()); // item type1
|
||||
writeD(0x00); //objectId
|
||||
writeD(item.getItemId());
|
||||
writeD(item.getCurrentCount() <0 ? 0 : item.getCurrentCount());
|
||||
writeH(item.getTemplate().getType2()); // item type2
|
||||
writeH(0x00); // ?
|
||||
|
||||
if (item.getTemplate().getType1() != L2Item.TYPE1_ITEM_QUESTITEM_ADENA)
|
||||
{
|
||||
writeD(item.getTemplate().getBodyPart());
|
||||
writeH(0x00); // item enchant level
|
||||
writeH(0x00); // ?
|
||||
writeH(0x00);
|
||||
}
|
||||
else
|
||||
{
|
||||
writeD(0x00);
|
||||
writeH(0x00);
|
||||
writeH(0x00);
|
||||
writeH(0x00);
|
||||
}
|
||||
|
||||
if (item.getItemId() >= 3960 && item.getItemId() <= 4026)//Config.RATE_SIEGE_GUARDS_PRICE-//'
|
||||
writeD((int)(item.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
|
||||
else
|
||||
writeD((int)(item.getPrice() * (1 + _taxRate)));
|
||||
|
||||
// T1
|
||||
for (byte i = 0; i < 8; i++)
|
||||
{
|
||||
writeD(0x00);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
Server: Len 15 [ChangeMoveType]
|
||||
0F 00
|
||||
28
|
||||
B2 16 00 10 // object id
|
||||
00 00 00 00 // 0 - walk, 1 - run
|
||||
00 00 00 00 // ??
|
||||
|
||||
writeC(0x28);
|
||||
writeD(_charObjId);
|
||||
writeD(_running ? RUN : WALK);
|
||||
writeD(0); //c2
|
||||
@@ -0,0 +1,46 @@
|
||||
Server: Len 284
|
||||
1C 01
|
||||
0B // CharSelected
|
||||
4E 00 69 00 72 00 61 00 65 00 6C 00 00 00 // char name
|
||||
7A 0B 03 00 // char id?
|
||||
00 00 // title
|
||||
FA B6 BA AF // session id
|
||||
00 00 00 00 // clan id
|
||||
00 00 00 00 // always 0
|
||||
01 00 00 00 // sex
|
||||
01 00 00 00 // race
|
||||
17 00 00 00 // class id
|
||||
01 00 00 00 // 1 - active?
|
||||
F4 40 02 00 // x
|
||||
7F 31 FF FF // y
|
||||
3A F5 FF FF // z
|
||||
00 00 00 00 00 0A A8 40 // cur Hp
|
||||
58 A8 35 CD 3B EC 99 40 // cur mp
|
||||
FF CA 53 00 // sp
|
||||
5A B6 E2 31 00 00 00 00 // exp
|
||||
4B 00 00 00 // level
|
||||
00 00 00 00 // karma
|
||||
00 00 00 00 // const 0x00
|
||||
17 00 00 00 // int
|
||||
28 00 00 00 // str
|
||||
1E 00 00 00 // con
|
||||
1A 00 00 00 // men
|
||||
24 00 00 00 // dex
|
||||
0E 00 00 00 // wit
|
||||
00 00 00 00 00 00 00 00 // const
|
||||
00 00 00 00 // class id...? O_o
|
||||
00 00 00 00 // 00 1
|
||||
00 00 00 00 // 00
|
||||
00 00 00 00 // 00
|
||||
00 00 00 00 // 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 E1 1A 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00
|
||||
|
||||
wtf dunno end of packet
|
||||
@@ -0,0 +1,75 @@
|
||||
S->C Len 317
|
||||
3D 01 // length (example 317)
|
||||
09 // packet code
|
||||
01 00 00 00 // number of chars
|
||||
07 00 00 00 // max chars on server?
|
||||
00 // always 0x00
|
||||
|
||||
// repeated block unknown length, because of var-length strings
|
||||
// minimum length must be 281 bytes (not sure)
|
||||
46 00 6C 00 61 00 6D 00 65 00 64 00 53 00 6F 00 75 00 6C 00 00 00 // char name (Unicode)
|
||||
37 0B 0E 00 // char ID
|
||||
6C 00 65 00 78 00 78 00 68 00 75 00 6C 00 65 00 00 00 // login name
|
||||
0D FE 0F 00 // sessionID (playOkId1)
|
||||
4E 2A 00 00 // clanID
|
||||
00 00 00 00 // L2J says it's always 00 00 00 00; as I saw, on retail also
|
||||
01 00 00 00 // sex
|
||||
00 00 00 00 // race
|
||||
0A 00 00 00 // character base class ID
|
||||
01 00 00 00 // active? (c) L2J // useless >_<
|
||||
9F B1 FF FF \
|
||||
32 E4 01 00 | (( x ,y ,z )) ?
|
||||
00 F3 FF FF /
|
||||
B8 1E 85 EB 51 F8 79 40 // HP cur
|
||||
C2 F5 28 5C 8F 92 78 40 // MP cur
|
||||
85 51 00 00 // SP
|
||||
0C BA 0D 00 00 00 00 00 // Exp
|
||||
14 00 00 00 // Level
|
||||
00 00 00 00 // karma
|
||||
00 00 00 00 // PK kills
|
||||
00 00 00 00 // PVP kills
|
||||
00 00 00 00 \
|
||||
00 00 00 00 \
|
||||
00 00 00 00 | some 7 zero dwords
|
||||
00 00 00 00 |
|
||||
00 00 00 00 /
|
||||
00 00 00 00 /
|
||||
00 00 00 00 /
|
||||
00 00 00 00 // itemID hair all
|
||||
4E 03 00 00 // itemID r ear
|
||||
4E 03 00 00 // itemID l ear
|
||||
8D 03 00 00 // necklace
|
||||
6E 03 00 00 // r finger
|
||||
6E 03 00 00 // l finger
|
||||
2C 00 00 00 // head
|
||||
37 01 00 00 // r hand
|
||||
71 02 00 00 // l hand
|
||||
33 00 00 00 // gloves
|
||||
4D 04 00 00 // chest
|
||||
50 04 00 00 // legs
|
||||
27 00 00 00 // feet
|
||||
00 00 00 00 // back
|
||||
00 00 00 00 // LR hand
|
||||
00 00 00 00 // hair
|
||||
00 00 00 00 // hair 2
|
||||
00 00 00 00 // R bracelet
|
||||
00 00 00 00 // L bracelet
|
||||
00 00 00 00 \
|
||||
00 00 00 00 \
|
||||
00 00 00 00 | some 6 null dwords
|
||||
00 00 00 00 |
|
||||
00 00 00 00 /
|
||||
00 00 00 00 /
|
||||
02 00 00 00 // hair style
|
||||
03 00 00 00 // hair color
|
||||
00 00 00 00 // face
|
||||
B8 1E 85 EB 51 F8 79 40 // HP max
|
||||
C2 F5 28 5C 8F 92 78 40 // MP max
|
||||
00 00 00 00 // deleteDays; if != 0 then char is inactive
|
||||
0A 00 00 00 // classID
|
||||
01 00 00 00 // 0x00000001 if last used char, 0x00000000 otherwise
|
||||
00 // enchantEffect (<=127)
|
||||
00 00 // Augmentation ID
|
||||
00 00 // something also for augment
|
||||
00 00 00 00 // transformation ID
|
||||
// (but on retail you cannot see transform on char select screen)
|
||||
@@ -0,0 +1,16 @@
|
||||
Client: Len 63 [CharacterCreate]
|
||||
3F 00
|
||||
0C // opcode
|
||||
41 00 65 00 72 00 69 00 6E 00 00 00 // name
|
||||
01 00 00 00 // race
|
||||
01 00 00 00 // sex
|
||||
19 00 00 00 // class id
|
||||
1C 00 00 00 // INT
|
||||
27 00 00 00 // STR
|
||||
1E 00 00 00 // CON
|
||||
1B 00 00 00 // MEN
|
||||
23 00 00 00 // DEX
|
||||
0B 00 00 00 // WIT
|
||||
00 00 00 00 // hair style
|
||||
00 00 00 00 // hair color
|
||||
00 00 00 00 // face
|
||||
@@ -0,0 +1,8 @@
|
||||
Client: Len 21
|
||||
15 00
|
||||
12
|
||||
00 00 00 00 // charslot
|
||||
00 00 00 00 // rest are constant
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
00 00
|
||||
@@ -0,0 +1,72 @@
|
||||
Server: Len 313 [CharacterSelectionInfo]
|
||||
39 01
|
||||
09
|
||||
01 00 00 00 // num chars
|
||||
07 00 00 00 // server max chars
|
||||
00 // 00
|
||||
|
||||
41 00 6C 00 65 00 78 00 78 00 69 00 61 00 00 00 // name
|
||||
7A 0B 03 00 // oid
|
||||
6D 00 69 00 6E 00 6C 00 65 00 78 00 78 00 00 00 // acc
|
||||
46 8D 2A 54 /// play ok 1
|
||||
00 00 00 00 /// clan id
|
||||
00 00 00 00 // 0x00
|
||||
01 00 00 00 // sex
|
||||
00 00 00 00 // race
|
||||
10 00 00 00 // base cls
|
||||
01 00 00 00 // 0x01 - active
|
||||
E8 AA 00 00 \
|
||||
58 42 FF FF > x,y,z
|
||||
E8 FC FF FF /
|
||||
00 00 00 00 00 06 A6 40 // hp cur
|
||||
00 00 00 00 00 98 AC 40 // mp cur
|
||||
39 B9 56 00 // sp
|
||||
A6 8E F5 0B 00 00 00 00 // exp
|
||||
3F 00 00 00 // level 63
|
||||
00 00 00 00 // karma
|
||||
00 00 00 00 // pk
|
||||
02 00 00 00 // pvp
|
||||
00 00 00 00 \
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
00 00 00 00 > 7 zero dwords
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
00 00 00 00 /
|
||||
70 25 00 00 \ HAIRALL
|
||||
39 30 00 00 REAR
|
||||
32 30 00 00 LEAR
|
||||
30 30 00 00 NECK
|
||||
31 30 00 00 RFINGER
|
||||
31 30 00 00 LFINGER
|
||||
00 02 00 00 HEAD
|
||||
C2 2E 00 00 RHAND
|
||||
00 00 00 00 LHAND
|
||||
87 16 00 00 GLOVES
|
||||
67 09 00 00 CHEST
|
||||
00 00 00 00 LEGS
|
||||
93 16 00 00 FEET
|
||||
00 00 00 00 BACK
|
||||
00 00 00 00 LRHAND
|
||||
F4 22 00 00 HAIR
|
||||
00 00 00 00 HAIR2
|
||||
75 25 00 00 RBRACELET
|
||||
00 00 00 00 LBRACELET
|
||||
00 00 00 00 DECO1
|
||||
00 00 00 00 2
|
||||
00 00 00 00 3
|
||||
00 00 00 00 4
|
||||
00 00 00 00 5
|
||||
00 00 00 00 6
|
||||
00 00 00 00 BELT
|
||||
02 00 00 00 hStyle
|
||||
03 00 00 00 hColor
|
||||
00 00 00 00 face
|
||||
00 00 00 00 00 06 A6 40 HP max
|
||||
00 00 00 00 00 98 AC 40 MP max
|
||||
00 00 00 00 del secs
|
||||
10 00 00 00 classId
|
||||
01 00 00 00 1 - last used char
|
||||
00 enchantEffect
|
||||
00 00 00 00 aug Id
|
||||
00 00 00 00 transform id
|
||||
@@ -0,0 +1,71 @@
|
||||
Server: 4A CreatureSay: len 255
|
||||
FF 00
|
||||
4A
|
||||
00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 J 0 G
|
||||
30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5
|
||||
3D 04 42 04 20 00 27 00 43 00 6F 00 66 00 66 00 B C o f f
|
||||
65 00 72 00 20 00 6F 00 66 00 20 00 53 00 68 00 e r o f S h
|
||||
61 00 64 00 6F 00 77 00 73 00 27 00 2E 00 20 00 a d o w s
|
||||
1F 04 3E 04 34 04 40 04 3E 04 31 04 3D 04 3E 04 4 1
|
||||
41 04 42 04 38 04 20 00 3C 04 3E 04 36 04 3D 04 A B 8 6
|
||||
3E 04 20 00 43 04 37 04 3D 04 30 04 42 04 4C 04 C 7 0 B L
|
||||
20 00 43 04 20 00 4F 00 6D 00 65 00 67 00 61 00 C O m e g a
|
||||
27 00 73 00 20 00 43 00 61 00 74 00 2C 00 20 00 s C a t
|
||||
3A 04 3E 04 42 04 3E 04 40 04 3E 04 33 04 3E 04 B 3
|
||||
20 00 12 04 4B 04 20 00 41 04 3C 04 3E 04 36 04 K A 6
|
||||
35 04 42 04 35 04 20 00 3D 04 30 04 39 04 42 04 5 B 5 0 9 B
|
||||
38 04 20 00 32 04 20 00 31 04 3B 04 38 04 36 04 8 2 1 8 6
|
||||
30 04 39 04 48 04 35 04 3C 04 20 00 33 04 3E 04 0 9 H 5 3
|
||||
40 04 3E 04 34 04 35 04 2E 00 00 00
|
||||
|
||||
FF 00 // len 255
|
||||
4A
|
||||
00 00 00 00 // objectID
|
||||
0A 00 00 00 // text Type
|
||||
00 00 // char name - empty here
|
||||
1D 04 30 04 47 04
|
||||
30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5
|
||||
3D 04 42 04 20 00 27 00 43 00 6F 00 66 00 66 00 B C o f f
|
||||
65 00 72 00 20 00 6F 00 66 00 20 00 53 00 68 00 e r o f S h
|
||||
61 00 64 00 6F 00 77 00 73 00 27 00 2E 00 20 00 a d o w s
|
||||
1F 04 3E 04 34 04 40 04 3E 04 31 04 3D 04 3E 04 4 1
|
||||
41 04 42 04 38 04 20 00 3C 04 3E 04 36 04 3D 04 A B 8 6
|
||||
3E 04 20 00 43 04 37 04 3D 04 30 04 42 04 4C 04 C 7 0 B L
|
||||
20 00 43 04 20 00 4F 00 6D 00 65 00 67 00 61 00 C O m e g a
|
||||
27 00 73 00 20 00 43 00 61 00 74 00 2C 00 20 00 s C a t
|
||||
3A 04 3E 04 42 04 3E 04 40 04 3E 04 33 04 3E 04 B 3
|
||||
20 00 12 04 4B 04 20 00 41 04 3C 04 3E 04 36 04 K A 6
|
||||
35 04 42 04 35 04 20 00 3D 04 30 04 39 04 42 04 5 B 5 0 9 B
|
||||
38 04 20 00 32 04 20 00 31 04 3B 04 38 04 36 04 8 2 1 8 6
|
||||
30 04 39 04 48 04 35 04 3C 04 20 00 33 04 3E 04 0 9 H 5 3
|
||||
40 04 3E 04 34 04 35 04 2E 00 00 00
|
||||
|
||||
[++] Server: 4A CreatureSay: len 93
|
||||
5D 00
|
||||
4A
|
||||
00 00 00 00 0A 00 00 00 54 00 58 00 77 00 6B 00 J T X w k
|
||||
61 00 00 00 14 04 3E 04 31 04 40 04 3E 04 20 00 a 1
|
||||
3F 04 3E 04 36 04 30 04 3B 04 3E 04 32 04 30 04 6 0 2 0
|
||||
42 04 4C 04 20 00 3D 04 30 04 20 00 41 04 35 04 B L 0 A 5
|
||||
40 04 32 04 35 04 40 04 20 00 4E 00 4C 00 20 00 2 5 N L
|
||||
78 00 31 00 30 00 2E 00 00 00
|
||||
|
||||
[++] Server: 4A CreatureSay: len 81
|
||||
51 00
|
||||
4A
|
||||
00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 J 0 G
|
||||
30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5
|
||||
3D 04 42 04 20 00 27 00 54 00 68 00 65 00 20 00 B T h e
|
||||
46 00 61 00 6C 00 6C 00 20 00 48 00 61 00 72 00 F a l l H a r
|
||||
76 00 65 00 73 00 74 00 27 00 2E 00 00 00
|
||||
|
||||
[++] Server: 4A CreatureSay: len 99
|
||||
63 00
|
||||
4A
|
||||
00 00 00 00 0A 00 00 00 00 00 1D 04 30 04 47 04 J 0 G
|
||||
30 04 3B 04 41 04 4F 04 20 00 4D 04 32 04 35 04 0 A O M 2 5
|
||||
3D 04 42 04 20 00 27 00 4C 00 32 00 20 00 4D 00 B L 2 M
|
||||
65 00 64 00 61 00 6C 00 20 00 43 00 6F 00 6C 00 e d a l C o l
|
||||
6C 00 65 00 63 00 74 00 69 00 6F 00 6E 00 20 00 l e c t i o n
|
||||
45 00 76 00 65 00 6E 00 74 00 27 00 2E 00 00 00 E v e n t
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
Server: Len 35 [Die]
|
||||
23 00
|
||||
00
|
||||
3F 8E 05 10 // objectID?
|
||||
01 00 00 00 // 1 - can resurrect to nearest village
|
||||
00 00 00 00 // 1 - can res to CH
|
||||
01 00 00 00 // 1 - can res to castle
|
||||
00 00 00 00 // 1 - can res to siege HQ
|
||||
|
||||
also possible that next will follow:
|
||||
00 00 00 00 // sweepable (blue glow)
|
||||
00 00 00 00 // allow fixed res
|
||||
00 00 00 00 // to fortress
|
||||
@@ -0,0 +1,78 @@
|
||||
Java server ignores all EnterWorld content, parsing unknown :(
|
||||
|
||||
Client: Len 107
|
||||
6B 00
|
||||
11
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
C9 BC F2 A7
|
||||
66 5A 0B 98
|
||||
36 A5 BD 89
|
||||
ED 7F E4 D7
|
||||
6B 49 E2 9F
|
||||
EF 76 EB CE
|
||||
A3 FA F4 BF
|
||||
0C 64 A3 B4
|
||||
A4 CE DC C6
|
||||
08 3E 6E EA
|
||||
45 CA D3 FE
|
||||
88 13 87 B8
|
||||
06 2C 96 F0
|
||||
9B 1E 8E BC
|
||||
C6 9B 98 C8
|
||||
63 16 CF D0
|
||||
29 00 00 00
|
||||
0A E1 74 17
|
||||
0A 08 00 08
|
||||
5C 32 BD E1
|
||||
5C 32 BE 01
|
||||
5C 32 BE 22
|
||||
|
||||
same char as above:
|
||||
|
||||
Client: Len 107
|
||||
6B 00
|
||||
11
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
00 00 00 00
|
||||
C9 BC F2 A7
|
||||
66 5A 0B 98
|
||||
36 A5 BD 89
|
||||
ED 7F E4 D7
|
||||
6B 49 E2 9F
|
||||
EF 76 EB CE
|
||||
A3 FA F4 BF
|
||||
0C 64 A3 B4
|
||||
A4 CE DC C6
|
||||
08 3E 6E EA
|
||||
45 CA D3 FE
|
||||
88 13 87 B8
|
||||
06 2C 96 F0
|
||||
9B 1E 8E BC
|
||||
C6 9B 98 C8
|
||||
63 16 CF D0
|
||||
29 00 00 00
|
||||
0A E1 74 17
|
||||
0A 08 00 08
|
||||
5C 32 BD E1
|
||||
5C 32 BE 01
|
||||
5C 32 BE 22
|
||||
|
||||
different acc, different char:
|
||||
|
||||
Client: Len 107
|
||||
6B 00
|
||||
11
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
C9 BC F2 A7 66 5A 0B 98 36 A5 BD 89 ED 7F E4 D7
|
||||
6B 49 E2 9F EF 76 EB CE A3 FA F4 BF 0C 64 A3 B4
|
||||
A4 CE DC C6 08 3E 6E EA 45 CA D3 FE 88 13 87 B8
|
||||
06 2C 96 F0 9B 1E 8E BC C6 9B 98 C8 63 16 CF D0
|
||||
29 00 00 00 0A E1 74 17 0A 08 00 08 5C 32 BD E1
|
||||
5C 32 BE 22 5E 19 03 41
|
||||
|
||||
last 2 D's are different, depend on char and/or account
|
||||
@@ -0,0 +1,11 @@
|
||||
Server: F9 EtcStatusUpdate: len 35
|
||||
23 00
|
||||
F9
|
||||
00 00 00 00 // 1-7 increase force, lvl
|
||||
00 00 00 00 // 1-4 weight penalty, lvl (1=50%, 2=66.6%, 3=80%, 4=100%)
|
||||
00 00 00 00 // 1 = block all chat
|
||||
00 00 00 00 // 1 = danger area
|
||||
00 00 00 00 // 1 = grade penalty
|
||||
00 00 00 00 // 1 = charm of courage (allows resurrection on the same spot upon death on the siege battlefield)
|
||||
00 00 00 00 // 1-15 death penalty, lvl (combat ability decreased due to death)
|
||||
00 00 00 00 // _activeChar.getSouls()
|
||||
@@ -0,0 +1,9 @@
|
||||
Server: Len 19 [GameGuardQuery]
|
||||
13 00
|
||||
74
|
||||
D9 3D 53 27 1D A5 72 2E 8B 03 17 20 A3 1E 5B C3
|
||||
|
||||
Client: Len 19 [GameGuardReply]
|
||||
13 00
|
||||
CB
|
||||
7F 97 F0 78 04 3C E6 D6 71 0C F6 89 DD 9E 06 70
|
||||
@@ -0,0 +1,10 @@
|
||||
Server: Len 7
|
||||
07 00
|
||||
3A
|
||||
00 00 00 00 // response
|
||||
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0x3a);
|
||||
writeD(_response);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
===================================
|
||||
L2J
|
||||
19 00 // p.len 25
|
||||
2E // pcode
|
||||
01 // always const
|
||||
42 55 77 8F C3 05 69 87 // xorkey first part
|
||||
01 00 00 00 // always const
|
||||
01 // possible Game Server ID // on L2J always 01
|
||||
00 00 00 00 // always NULLs
|
||||
00 00 00 00 // in L2J always NULLs - no obfuscation
|
||||
|
||||
==========================================
|
||||
Retail NCSoft
|
||||
19 00 // p.len 25
|
||||
2E // pcode
|
||||
01 // always const
|
||||
42 55 77 8F C3 05 69 87 // xorkey first part
|
||||
01 00 00 00 // always const
|
||||
01 // possible Game Server ID - depends on game server ID
|
||||
00 00 00 00 // always NULLs
|
||||
XX XX XX XX // always different, non-nulls: opcode obfuscator
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
Client: Len 3
|
||||
03 00
|
||||
00
|
||||
|
||||
send when IN_GAME mode, to disconnect and close client
|
||||
if restart possible server responds with 0x84 LeaveWorld from IN_GAME mode
|
||||
|
||||
from character selection screen, whe client sends this packet, server just disconencts... TODO: check...
|
||||
@@ -0,0 +1,15 @@
|
||||
Server: Len 49 [MagicSkillUse]
|
||||
31 00
|
||||
48
|
||||
6C 08 00 10 // objectId
|
||||
AC 16 00 10 // targetObjectId
|
||||
79 05 00 00 // skillID 1401 - Major HEal
|
||||
0A 00 00 00 // skillLevel level 10
|
||||
57 07 00 00 // hitTime cast time 1879 ms
|
||||
CF 08 00 00 // reuseDelay 2255 reuse delay
|
||||
5B AD 00 00 // x
|
||||
E5 A4 00 00 // y
|
||||
5D F2 FF FF // z
|
||||
00 00 00 00 // ??
|
||||
00 00 00 00 // ??
|
||||
00 00 // ??
|
||||
@@ -0,0 +1,11 @@
|
||||
Server: Len 27 [MoveToPawn]
|
||||
1B 00
|
||||
72 // MoveToPawn
|
||||
6C 08 00 10 // _charObjId // 6C080010 objectID who is moving (can be user at least)
|
||||
B2 16 00 10 // _targetId // B2160010 is target object id, to which he moves to
|
||||
39 00 00 00 // _distance wtf is 57?..
|
||||
C7 AC 00 00 // x
|
||||
0A A6 00 00 // y dunno if it is user coordinates or mob coordinates
|
||||
5D F2 FF FF // z
|
||||
|
||||
possible these are target's coordinates
|
||||
@@ -0,0 +1,3 @@
|
||||
Client: Len 3 [NewCharacter]
|
||||
03 00 // packet length - 3 bytes
|
||||
13 // opcode
|
||||
@@ -0,0 +1,28 @@
|
||||
Server: Len 967 [NewCharacterSuccess]
|
||||
C7 03
|
||||
0D // opcode
|
||||
0C 00 00 00 // number of templates
|
||||
|
||||
// [ for each template ]
|
||||
|
||||
00 00 00 00 // race
|
||||
00 00 00 00 // class id
|
||||
46 00 00 00 // 0x46
|
||||
28 00 00 00 // base STR
|
||||
0A 00 00 00 // 0x0A
|
||||
46 00 00 00 // 0x46
|
||||
1E 00 00 00 // base DEX
|
||||
0A 00 00 00
|
||||
46 00 00 00
|
||||
2B 00 00 00 // base CON
|
||||
0A 00 00 00
|
||||
46 00 00 00
|
||||
15 00 00 00 // base INT
|
||||
0A 00 00 00
|
||||
46 00 00 00
|
||||
0B 00 00 00 // base WIT
|
||||
0A 00 00 00
|
||||
46 00 00 00
|
||||
19 00 00 00 // base MEN
|
||||
0A 00 00 00
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
Server: Len 1503 [NpcHtmlMessage]
|
||||
DF 05
|
||||
19
|
||||
AC 16 00 10 // npcObjectID
|
||||
3C 00 68 00 ... 3E 00 00 00 // html
|
||||
00 00 00 00 // itemID
|
||||
|
||||
writeC(0x19);
|
||||
writeD(_npcObjId);
|
||||
writeS(_html);
|
||||
writeD(_itemId);
|
||||
|
||||
/**
|
||||
*
|
||||
* the HTML parser in the client knowns these standard and non-standard tags and attributes
|
||||
* VOLUMN
|
||||
* UNKNOWN
|
||||
* UL
|
||||
* U
|
||||
* TT
|
||||
* TR
|
||||
* TITLE
|
||||
* TEXTCODE
|
||||
* TEXTAREA
|
||||
* TD
|
||||
* TABLE
|
||||
* SUP
|
||||
* SUB
|
||||
* STRIKE
|
||||
* SPIN
|
||||
* SELECT
|
||||
* RIGHT
|
||||
* PRE
|
||||
* P
|
||||
* OPTION
|
||||
* OL
|
||||
* MULTIEDIT
|
||||
* LI
|
||||
* LEFT
|
||||
* INPUT
|
||||
* IMG
|
||||
* I
|
||||
* HTML
|
||||
* H7
|
||||
* H6
|
||||
* H5
|
||||
* H4
|
||||
* H3
|
||||
* H2
|
||||
* H1
|
||||
* FONT
|
||||
* EXTEND
|
||||
* EDIT
|
||||
* COMMENT
|
||||
* COMBOBOX
|
||||
* CENTER
|
||||
* BUTTON
|
||||
* BR
|
||||
* BODY
|
||||
* BAR
|
||||
* ADDRESS
|
||||
* A
|
||||
* SEL
|
||||
* LIST
|
||||
* VAR
|
||||
* FORE
|
||||
* READONL
|
||||
* ROWS
|
||||
* VALIGN
|
||||
* FIXWIDTH
|
||||
* BORDERCOLORLI
|
||||
* BORDERCOLORDA
|
||||
* BORDERCOLOR
|
||||
* BORDER
|
||||
* BGCOLOR
|
||||
* BACKGROUND
|
||||
* ALIGN
|
||||
* VALU
|
||||
* READONLY
|
||||
* MULTIPLE
|
||||
* SELECTED
|
||||
* TYP
|
||||
* TYPE
|
||||
* MAXLENGTH
|
||||
* CHECKED
|
||||
* SRC
|
||||
* Y
|
||||
* X
|
||||
* QUERYDELAY
|
||||
* NOSCROLLBAR
|
||||
* IMGSRC
|
||||
* B
|
||||
* FG
|
||||
* SIZE
|
||||
* FACE
|
||||
* COLOR
|
||||
* DEFFON
|
||||
* DEFFIXEDFONT
|
||||
* WIDTH
|
||||
* VALUE
|
||||
* TOOLTIP
|
||||
* NAME
|
||||
* MIN
|
||||
* MAX
|
||||
* HEIGHT
|
||||
* DISABLED
|
||||
* ALIGN
|
||||
* MSG
|
||||
* LINK
|
||||
* HREF
|
||||
* ACTION
|
||||
*
|
||||
*
|
||||
* @version $Revision: 1.3.2.1.2.3 $ $Date: 2005/03/27 15:29:57 $
|
||||
*/
|
||||
|
||||
// html code must not exceed 8192 bytes
|
||||
@@ -0,0 +1,51 @@
|
||||
Server: Len 75
|
||||
4B 00
|
||||
4E
|
||||
6C 08 00 10 // party leader object id
|
||||
00 00 00 00 // party loot type
|
||||
01 00 00 00 // number of members (except you)
|
||||
|
||||
6C 08 00 10 // member oobject id
|
||||
41 00 65 00 72 00 69 00 6E 00 00 00 // member name
|
||||
CD 06 00 00 // current cp
|
||||
CD 06 00 00 // max cp
|
||||
61 0D 00 00 // current hp
|
||||
61 0D 00 00 // max hp
|
||||
7B 0A 00 00 // current mp
|
||||
7B 0A 00 00 // max mp
|
||||
50 00 00 00 // level
|
||||
1E 00 00 00 // class id
|
||||
00 00 00 00 // constant 00 00 00 00
|
||||
01 00 00 00 // race
|
||||
00 00 00 00 // constant 00 00 00 00
|
||||
|
||||
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0x4e);
|
||||
writeD(_partyMembers.get(0).getObjectId()); // c3 party leader id
|
||||
writeD(_partyMembers.get(0).getParty().getLootDistribution());//c3 party loot type (0,1,2,....)
|
||||
writeD(_partyMembers.size()-1);
|
||||
|
||||
for(L2PcInstance member: _partyMembers)
|
||||
{
|
||||
if (member != _exclude)
|
||||
{
|
||||
writeD(member.getObjectId());
|
||||
writeS(member.getName());
|
||||
|
||||
writeD((int) member.getCurrentCp()); //c4
|
||||
writeD(member.getMaxCp()); //c4
|
||||
|
||||
writeD((int) member.getCurrentHp());
|
||||
writeD(member.getMaxHp());
|
||||
writeD((int) member.getCurrentMp());
|
||||
writeD(member.getMaxMp());
|
||||
writeD(member.getLevel());
|
||||
writeD(member.getClassId().getId());
|
||||
writeD(0);//writeD(0x01); ??
|
||||
writeD(member.getRace().ordinal());
|
||||
writeD(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
Server: Len 81 [PrivateStoreListBuy]
|
||||
51 00
|
||||
BE
|
||||
CE 09 00 10 // buyer oid
|
||||
EA B0 0B 00 // cur.user adena
|
||||
01 00 00 00 // sell items count
|
||||
// for each item
|
||||
C7 09 00 10 // item oid
|
||||
F4 25 00 00 // item itemID
|
||||
00 00 // enchant
|
||||
02 00 00 00 // count
|
||||
00 00 00 00 // reference price
|
||||
00 00 // 00
|
||||
00 00 00 00 // body part
|
||||
05 00 // type2
|
||||
01 00 00 00 // buyers price
|
||||
02 00 00 00 // ma buy amount
|
||||
FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attributes
|
||||
|
||||
writeC(0xbe);
|
||||
writeD(_objId); // buyer
|
||||
writeD(_playerAdena);
|
||||
|
||||
writeD(_items.length);
|
||||
|
||||
for (TradeList.TradeItem item : _items)
|
||||
{
|
||||
writeD(item.getObjectId());
|
||||
writeD(item.getItem().getItemId());
|
||||
writeH(item.getEnchant());
|
||||
writeD(item.getCount()); //give max possible sell amount
|
||||
|
||||
writeD(item.getItem().getReferencePrice());
|
||||
writeH(0);
|
||||
|
||||
writeD(item.getItem().getBodyPart());
|
||||
writeH(item.getItem().getType2());
|
||||
writeD(item.getPrice());//buyers price
|
||||
|
||||
writeD(item.getCount()); // maximum possible tradecount
|
||||
|
||||
// T1
|
||||
writeD(item.getAttackElementType());
|
||||
writeD(item.getAttackElementPower());
|
||||
for (byte i = 0; i < 6; i++)
|
||||
{
|
||||
writeD(item.getElementDefAttr(i));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
Server: Len 85 [PrivateStoreListSell]
|
||||
55 00
|
||||
A1
|
||||
CE 09 00 10 // seller oid
|
||||
00 00 00 00 // is package sale
|
||||
EB B0 0B 00 // cur.user adena
|
||||
01 00 00 00 // sell items count
|
||||
/// for each item
|
||||
05 00 00 00 // type2
|
||||
D0 09 00 10 // item oid
|
||||
F4 25 00 00 // item itemID
|
||||
01 00 00 00 // item count
|
||||
00 00 // 00
|
||||
00 00 // enchant
|
||||
00 00 // 00
|
||||
00 00 00 00 // body part
|
||||
01 00 00 00 // sell price
|
||||
00 00 00 00 // reference price (original price)
|
||||
FE FF FF FF // atk attr type
|
||||
00 00 00 00 // atk attr val
|
||||
00 00 00 00 // def fire
|
||||
00 00 00 00 // def water
|
||||
00 00 00 00 // def wind
|
||||
00 00 00 00 // def earth
|
||||
00 00 00 00 // def holy
|
||||
00 00 00 00 // def dark
|
||||
|
||||
// player's private shop
|
||||
public PrivateStoreListSell(L2PcInstance player, L2PcInstance storePlayer)
|
||||
{
|
||||
_objId = storePlayer.getObjectId();
|
||||
_playerAdena = player.getAdena();
|
||||
_items = storePlayer.getSellList().getItems();
|
||||
_packageSale = storePlayer.getSellList().isPackaged();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0xa1);
|
||||
writeD(_objId);
|
||||
writeD(_packageSale ? 1 : 0);
|
||||
writeD(_playerAdena);
|
||||
|
||||
writeD(_items.length);
|
||||
for (TradeList.TradeItem item : _items)
|
||||
{
|
||||
writeD(item.getItem().getType2());
|
||||
writeD(item.getObjectId());
|
||||
writeD(item.getItem().getItemId());
|
||||
writeD(item.getCount());
|
||||
writeH(0x00);
|
||||
writeH(item.getEnchant());
|
||||
writeH(0x00);
|
||||
writeD(item.getItem().getBodyPart());
|
||||
writeD(item.getPrice()); //your price
|
||||
writeD(item.getItem().getReferencePrice()); //store price
|
||||
|
||||
// T1
|
||||
writeD(item.getAttackElementType());
|
||||
writeD(item.getAttackElementPower());
|
||||
for (byte i = 0; i < 6; i++)
|
||||
{
|
||||
writeD(item.getElementDefAttr(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
Server: Len 451 [PrivateStoreManageListBuy]
|
||||
C3 01
|
||||
BD // pcode
|
||||
D1 73 02 10 C5 97 06 00 08 00 00 00 E0 02 00 00 00 00 01 00 00 00 90 01 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 27 00 00 00 00 01 00 00 00 74 0E 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 04 00 00 00 00 6E 00 00 00 4A 01 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6D 0F 00 00 00 00 E8 01 00 00 5A 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 07 00 00 00 00 04 00 00 00 B4 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B8 05 00 00 00 00 BC 0E 00 00 0F 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F4 25 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3A 11 00 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
@@ -0,0 +1,59 @@
|
||||
/**
|
||||
* 3 section to this packet
|
||||
* 1)playerinfo which is always sent
|
||||
* 2)list of items which can be added to sell
|
||||
* 3)list of items which have already been setup
|
||||
*/
|
||||
|
||||
Server: Len 2255 [PrivateStoreManageListSell]
|
||||
CF 08
|
||||
A0 // pcode
|
||||
|
||||
// section 1
|
||||
|
||||
09 A5 04 10 // player (user) objectID
|
||||
00 00 00 00 // is package sale
|
||||
87 C1 00 00 // player (user) adena
|
||||
|
||||
// section 2
|
||||
|
||||
24 00 00 00 // items count in section 2
|
||||
[[ for each item ]]
|
||||
05 00 00 00 // type2
|
||||
39 D6 05 10 // objectID
|
||||
B2 05 00 00 // itemID
|
||||
2E 00 00 00 // count
|
||||
00 00 // 00
|
||||
00 00 // enchant
|
||||
00 00 // 00
|
||||
00 00 00 00 // body part
|
||||
8A 02 00 00 // store price
|
||||
FE FF FF FF // atk attr type
|
||||
00 00 00 00 // atk attr val
|
||||
00 00 00 00 // fire def
|
||||
00 00 00 00 // water def
|
||||
00 00 00 00 // wind def
|
||||
00 00 00 00 // earth def
|
||||
00 00 00 00 // holy def
|
||||
00 00 00 00 // dark def
|
||||
|
||||
// section 2
|
||||
00 00 00 00 // items count in section 3
|
||||
D // type2
|
||||
D // oid
|
||||
D // itemID
|
||||
D // cnt
|
||||
H // 0
|
||||
H // ench
|
||||
H // 0
|
||||
D // b.part
|
||||
D // your price
|
||||
D // referencePrice (store price)
|
||||
FE FF FF FF // atk attr type
|
||||
00 00 00 00 // atk attr val
|
||||
00 00 00 00 // fire def
|
||||
00 00 00 00 // water def
|
||||
00 00 00 00 // wind def
|
||||
00 00 00 00 // earth def
|
||||
00 00 00 00 // holy def
|
||||
00 00 00 00 // dark def
|
||||
@@ -0,0 +1,13 @@
|
||||
Server: Len 45 [PrivateStoreMsgBuy]
|
||||
2D 00
|
||||
BF
|
||||
99 73 06 10 // objectID
|
||||
6B 00 61 00 ... 00 00 // store msg
|
||||
|
||||
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0xbf);
|
||||
writeD(_objId);
|
||||
writeS(_storeMsg);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
C->S
|
||||
0B 01 // len
|
||||
0E // p.code ProtocolVersion
|
||||
3C 03 00 00 // protocol - 828
|
||||
09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02
|
||||
55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53
|
||||
00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04
|
||||
54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56
|
||||
56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04
|
||||
07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05
|
||||
52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02
|
||||
04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51
|
||||
55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05
|
||||
08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07
|
||||
53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02
|
||||
53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01
|
||||
05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06
|
||||
01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01
|
||||
04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D
|
||||
01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06
|
||||
8D 71 5F 08
|
||||
@@ -0,0 +1,20 @@
|
||||
0B 01 // len
|
||||
0E
|
||||
92 00 00 00
|
||||
09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02
|
||||
55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53
|
||||
00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04
|
||||
54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56
|
||||
56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04
|
||||
07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05
|
||||
52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02
|
||||
04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51
|
||||
55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05
|
||||
08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07
|
||||
53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02
|
||||
53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01
|
||||
05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06
|
||||
01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01
|
||||
04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D
|
||||
01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06
|
||||
A6 23 F4 FE
|
||||
@@ -0,0 +1,20 @@
|
||||
0B 01
|
||||
0E
|
||||
0C 00 00 00
|
||||
09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02
|
||||
55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53
|
||||
00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04
|
||||
54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56
|
||||
56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04
|
||||
07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05
|
||||
52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02
|
||||
04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51
|
||||
55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05
|
||||
08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07
|
||||
53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02
|
||||
53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01
|
||||
05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06
|
||||
01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01
|
||||
04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D
|
||||
01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06
|
||||
EB EF 3D E6
|
||||
@@ -0,0 +1,21 @@
|
||||
C->S Len 267
|
||||
0B 01 // len
|
||||
0E // p. code
|
||||
3F 03 00 00 // protocol - 831 (Hellbound?)
|
||||
09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02
|
||||
55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53
|
||||
00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04
|
||||
54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56
|
||||
56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04
|
||||
07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05
|
||||
52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02
|
||||
04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51
|
||||
55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05
|
||||
08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07
|
||||
53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02
|
||||
53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01
|
||||
05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06
|
||||
01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01
|
||||
04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D
|
||||
01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06
|
||||
FB 87 B9 4A
|
||||
@@ -0,0 +1,4 @@
|
||||
Server: Len 43 [RecipeShopMsg]
|
||||
2B 00
|
||||
E1
|
||||
86 C5 01 10 2D 00 3D 00 3D 00 3D 00 44 00 45 00 4C 00 41 00 79 00 20 00 43 00 41 00 4D 00 3D 00 3D 00 3D 00 2D 00 00 00
|
||||
@@ -0,0 +1,6 @@
|
||||
Client Len 13 [RequestAutoSoulShot]
|
||||
0D 00
|
||||
D0
|
||||
0D 00
|
||||
6F 0F 00 00 // itemID
|
||||
01 00 00 00 // 1 - on, 0 - off
|
||||
@@ -0,0 +1,8 @@
|
||||
Client: Len 19 [RequestBuyItem]
|
||||
13 00
|
||||
40
|
||||
90 00 00 00 // list ID
|
||||
01 00 00 00 // count
|
||||
[[ for each item ]]
|
||||
25 04 00 00 // itemID
|
||||
64 00 00 00 // count
|
||||
@@ -0,0 +1,8 @@
|
||||
Client: Len 45 [RequestBypassToServer]
|
||||
2D 00
|
||||
23
|
||||
6E 00 70 00 63 00 5F 00 32 00 36 00 38 00 34 00
|
||||
33 00 37 00 39 00 39 00 30 00 5F 00 43 00 68 00
|
||||
61 00 74 00 20 00 31 00 00 00
|
||||
|
||||
_command = readS()
|
||||
@@ -0,0 +1,5 @@
|
||||
Client: Len 11
|
||||
0B 00
|
||||
2F
|
||||
13 14 04 10 // objectID 268702739
|
||||
01 00 00 00 // count 1
|
||||
@@ -0,0 +1,5 @@
|
||||
Client: Len 11 [RequestDestroyItem]
|
||||
0B 00
|
||||
60
|
||||
71 08 00 10 // objectID
|
||||
01 00 00 00 // count
|
||||
@@ -0,0 +1,5 @@
|
||||
Client: Len 13 [RequestDispel]
|
||||
0D 00
|
||||
D0 4E 00 // D0:004E RequestDispel
|
||||
4B 05 00 00 // skillID 1355 (PoWater?)
|
||||
01 00 00 00 // skillLvl lvl 1
|
||||
@@ -0,0 +1,14 @@
|
||||
Client: Len 23 [RequestDropItem]
|
||||
17 00
|
||||
17
|
||||
E4 09 00 10 // objectID
|
||||
01 00 00 00 // count
|
||||
F4 AA 00 00 // x
|
||||
2F A4 00 00 // y
|
||||
43 F2 FF FF // z
|
||||
|
||||
_objectId = readD();
|
||||
_count = readD();
|
||||
_x = readD();
|
||||
_y = readD();
|
||||
_z = readD();
|
||||
@@ -0,0 +1,5 @@
|
||||
Client: Len 15
|
||||
0F 00
|
||||
42
|
||||
6C 00 6F 00 6C 00 00 00 // target char name
|
||||
00 00 00 00 // loot type, item distribution
|
||||
@@ -0,0 +1,9 @@
|
||||
protected void readImpl()
|
||||
{
|
||||
_name = readS();
|
||||
}
|
||||
|
||||
Client: Len 13
|
||||
0D 00
|
||||
45
|
||||
4C 00 65 00 78 00 78 00 00 00
|
||||
@@ -0,0 +1,9 @@
|
||||
Client: Len 23 [RequestPrivateStoreBuy]
|
||||
17 00
|
||||
83 // pcode
|
||||
CE 09 00 10 // seller player oid
|
||||
01 00 00 00 // count
|
||||
// for each item
|
||||
D0 09 00 10 // item oid
|
||||
01 00 00 00 // count
|
||||
01 00 00 00 // price
|
||||
@@ -0,0 +1 @@
|
||||
Client: Len 3 [RequestPrivateStoreQuitBuy] | 03 00 / 9C /
|
||||
@@ -0,0 +1 @@
|
||||
Client: Len 3 [RequestPrivateStoreQuitSell] | 03 00 / 96 /
|
||||
@@ -0,0 +1,11 @@
|
||||
Client: Len 31 [RequestPrivateStoreSell]
|
||||
1F 00
|
||||
9F // pcode
|
||||
CE 09 00 10 // seller oid
|
||||
01 00 00 00 // count
|
||||
|
||||
C7 09 00 10 // oid
|
||||
F4 25 00 00 // iid
|
||||
00 00 00 00 // ?? 0x00000000
|
||||
02 00 00 00 // cnt
|
||||
01 00 00 00 // price
|
||||
@@ -0,0 +1,6 @@
|
||||
Client: Len 3
|
||||
03 00
|
||||
57
|
||||
|
||||
send when IN_GAME mode, to character select screen.
|
||||
if restart possible server responds with 0x57 RestartResponse
|
||||
@@ -0,0 +1,15 @@
|
||||
Client: Len 7 [RequestRestartPoint]
|
||||
07 00
|
||||
7D
|
||||
00 00 00 00 // 00 - to village
|
||||
|
||||
|
||||
case 1: // to clanhall
|
||||
case 2: // to castle
|
||||
case 3: // to fortress
|
||||
case 4: // to siege HQ
|
||||
case 5: // Fixed or Player is a festival participant
|
||||
|
||||
after successful restart point server sends TeleportToLocation
|
||||
then client send Appearing
|
||||
then server sends Revive
|
||||
@@ -0,0 +1,7 @@
|
||||
Client Len 49 [RequestSaveInventoryOrder]
|
||||
31 00
|
||||
D0
|
||||
24 00
|
||||
05 00 00 00 6E 08 00 10 00 00 00 00 6F 08 00 10 01 00
|
||||
00 00 70 08 00 10 02 00 00 00 EC 09 00 10 03 00
|
||||
00 00 F5 0C 00 10 04 00 00 00
|
||||
@@ -0,0 +1,13 @@
|
||||
Client: Len 59 [RequestSellItem]
|
||||
3B 00
|
||||
37 // pcode
|
||||
00 00 00 00 // list ID (0 - to NPC?)
|
||||
04 00 00 00 // count
|
||||
[[ for each item ]]
|
||||
1D 21 01 10 // objectID
|
||||
F0 0F 00 00 // itemID
|
||||
01 00 00 00 // count
|
||||
|
||||
B4 20 01 10 F9 0F 00 00 01 00 00 00
|
||||
A5 1C 01 10 03 10 00 00 02 00 00 00
|
||||
05 23 01 10 F8 0F 00 00 01 00 00 00
|
||||
@@ -0,0 +1,3 @@
|
||||
Client: Len 3
|
||||
03 00
|
||||
A6
|
||||
@@ -0,0 +1,4 @@
|
||||
Client Len 5 [ RequestTargetCanceld]
|
||||
05 00
|
||||
48
|
||||
00 00
|
||||
@@ -0,0 +1,24 @@
|
||||
Client Len 7 [ RequestUserCommand]
|
||||
07 00
|
||||
B3
|
||||
00 00 00 00 // command ID
|
||||
|
||||
================================
|
||||
|
||||
Decimal command numbers:
|
||||
|
||||
0 - /loc
|
||||
52 - /unstuck (Escape)
|
||||
61 - /Mount
|
||||
62 - /DisMount
|
||||
77 - /time
|
||||
81 - /partyinfo
|
||||
88 - /AttackList
|
||||
89 - /underattacklist
|
||||
90 - /warlist
|
||||
93 - /ChannelDelete
|
||||
96 - /ChannelLeave
|
||||
97 - /ChannelListUpdate
|
||||
100 - /ClanPenalty
|
||||
109 - /OlympiadStat
|
||||
114 - /InstanceZone
|
||||
@@ -0,0 +1,4 @@
|
||||
Server: Len 7 [Revive]
|
||||
07 00
|
||||
01
|
||||
3F 8E 05 10 // objectID?
|
||||
@@ -0,0 +1,56 @@
|
||||
Server: Len 1357 [SellList]
|
||||
4D 05
|
||||
06
|
||||
6F A5 34 00 // cur money
|
||||
00 00 00 00 // lease npcID ? O_o wtf
|
||||
15 00 // items count
|
||||
|
||||
[ for each item ]
|
||||
|
||||
04 00 // type1
|
||||
C4 40 07 10 // objectID
|
||||
E0 02 00 00 // itemID
|
||||
0B 00 00 00 // count
|
||||
05 00 // type2
|
||||
00 00 // ??
|
||||
00 00 00 00 // body part
|
||||
00 00 // enchant level
|
||||
00 00 00 00 // ??
|
||||
C8 00 00 00 // sell price
|
||||
FE FF FF FF // atk attrib type
|
||||
00 00 00 00 // atk attrib val
|
||||
00 00 00 00 // def attr fire
|
||||
00 00 00 00 // -- water
|
||||
00 00 00 00 // -- wind
|
||||
00 00 00 00 // -- earth
|
||||
00 00 00 00 // -- holy
|
||||
00 00 00 00 // -- unholy
|
||||
|
||||
|
||||
L2J WriteImpl
|
||||
|
||||
writeC(0x06);
|
||||
writeD(_money);
|
||||
writeD(_lease == null ? 0x00 : 1000000 + _lease.getTemplate().npcId);
|
||||
writeH(_selllist.size());
|
||||
for (L2ItemInstance item : _selllist)
|
||||
{
|
||||
writeH(item.getItem().getType1());
|
||||
writeD(item.getObjectId());
|
||||
writeD(item.getItemId());
|
||||
writeD(item.getCount());
|
||||
writeH(item.getItem().getType2());
|
||||
writeH(0x00);
|
||||
writeD(item.getItem().getBodyPart());
|
||||
writeH(item.getEnchantLevel());
|
||||
writeH(0x00);
|
||||
writeH(0x00);
|
||||
writeD(item.getItem().getReferencePrice()/2);
|
||||
// T1
|
||||
writeD(item.getAttackElementType());
|
||||
writeD(item.getAttackElementPower());
|
||||
for (byte i = 0; i < 6; i++)
|
||||
{
|
||||
writeD(item.getElementDefAttr(i));
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
|
||||
Client: Len 13 [SendBypassBuildCmd]
|
||||
0D 00
|
||||
74
|
||||
68 00 65 00 61 00 6C 00 00 00 _command = readS();
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Client: Len 111 [ SendWareHouseDepositList] | 6F 00 / 3B / 0D 00 00 00 53 20 01 10 02 00 00 00 D2 0C 02 10 10 00 00 00 26 1E 01 10 1F 00 00 00 8B 1D 01 10 37 00 00 00 29 1D 01 10 06 00 00 00 9A 1B 01 10 04 00 00 00 83 1B 01 10 0F 00 00 00 70 FC 00 10 18 00 00 00 F9 0C 08 10 02 00 00 00 E2 51 06 10 02 00 00 00 41 53 07 10 0E 00 00 00 94 4D 07 10 07 00 00 00 45 4D 07 10 27 00 00 00
|
||||
@@ -0,0 +1,4 @@
|
||||
Client: Len 103 [SendWareHouseWithDrawList]
|
||||
67 00
|
||||
3C
|
||||
0C 00 00 00 60 72 08 10 01 00 00 00 5E 72 08 10 01 00 00 00 61 72 08 10 01 00 00 00 5C 72 08 10 01 00 00 00 5D 72 08 10 01 00 00 00 E5 6E 07 10 01 00 00 00 E1 6E 07 10 01 00 00 00 F9 6E 07 10 01 00 00 00 03 6F 07 10 01 00 00 00 E2 6E 07 10 01 00 00 00 D0 60 07 10 01 00 00 00 B5 BB 07 10 7E 05 00 00
|
||||
@@ -0,0 +1,9 @@
|
||||
Client: Len 23 [SetPrivateStoreListSell]
|
||||
17 00
|
||||
31 // pcode
|
||||
00 00 00 00 // package?
|
||||
01 00 00 00 // count
|
||||
|
||||
2D 9A 06 10 // obj ID
|
||||
DC 13 00 00 // count
|
||||
0E 00 00 00 // price
|
||||
@@ -0,0 +1,6 @@
|
||||
Server: Len 15 [SetupGauge]
|
||||
0F 00
|
||||
6B
|
||||
00 00 00 00 // color 0-blue 1-red 2-cyan 3-
|
||||
57 07 00 00 // skill cast time 1879, ms
|
||||
57 07 00 00
|
||||
@@ -0,0 +1,13 @@
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0xfa);
|
||||
writeD(_skillId);
|
||||
writeD(_skillLvl);
|
||||
writeD(_duration); // in seconds!
|
||||
}
|
||||
|
||||
0D 00
|
||||
FA
|
||||
XX XX XX XX
|
||||
XX XX XX XX
|
||||
XX XX XX XX // in seconds!
|
||||
@@ -0,0 +1,81 @@
|
||||
Client: Len 12 [RequestActionUse] | 0C 00 / 56 / 25 00 00 00 00 00 00 00 00
|
||||
|
||||
Server: Len 183 [RecipeShopManageList]
|
||||
B7 00
|
||||
DE // pcode
|
||||
09 A5 04 10 // seller oid
|
||||
D4 A1 1E 00 // seller adena
|
||||
00 00 00 00 // isCommonCraft; 0 - dwarven, 1 - common
|
||||
14 00 00 00 // section 2 count
|
||||
14 00 00 00 // recipe ID
|
||||
01 00 00 00 // seq.number
|
||||
15 00 00 00 02 00 00 00
|
||||
19 00 00 00 03 00 00 00
|
||||
1A 00 00 00 04 00 00 00
|
||||
1B 00 00 00 05 00 00 00
|
||||
1C 00 00 00 06 00 00 00
|
||||
1D 00 00 00 07 00 00 00
|
||||
1E 00 00 00 08 00 00 00
|
||||
1F 00 00 00 09 00 00 00
|
||||
20 00 00 00 0A 00 00 00
|
||||
21 00 00 00 0B 00 00 00
|
||||
22 00 00 00 0C 00 00 00
|
||||
23 00 00 00 0D 00 00 00
|
||||
24 00 00 00 0E 00 00 00
|
||||
25 00 00 00 0F 00 00 00
|
||||
26 00 00 00 10 00 00 00
|
||||
27 00 00 00 11 00 00 00
|
||||
43 01 00 00 12 00 00 00
|
||||
44 01 00 00 13 00 00 00
|
||||
60 02 00 00 14 00 00 00
|
||||
00 00 00 00 // section 3 count
|
||||
XX XX XX XX // recipe id
|
||||
00 00 00 00 // 0x00
|
||||
XX XX XX XX // cost
|
||||
|
||||
Client: Len 25 [RequestRecipeShopMessageSet]
|
||||
19 00
|
||||
BA // pcode
|
||||
63 00 72 00 61 00 66 00 74 00 20 00 66 00 72 00 65 00 65 00 00 00 // unicode str
|
||||
|
||||
Client: Len 31 [RequestRecipeShopListSet]
|
||||
1F 00
|
||||
BB // pcode
|
||||
03 00 00 00 // count
|
||||
[ for each recipe ]
|
||||
44 01 00 00 // recipe ID
|
||||
01 00 00 00 // price
|
||||
|
||||
// server makes client sit down
|
||||
Server: Len 23 [ChangeWaitType] | 17 00 / 29 / 09 A5 04 10 00 00 00 00 F2 40 01 00 F5 D2 00 00 24 FA FF FF
|
||||
|
||||
//
|
||||
Server: Len 29 [RecipeShopMsg]
|
||||
1D 00
|
||||
E1
|
||||
09 A5 04 10 // oid?
|
||||
63 00 72 00 61 00 66 00 74 00 20 00 66 00 72 00 65 00 65 00 00 00 // message str
|
||||
|
||||
.........
|
||||
|
||||
Client: Len 3 [RequestRecipeShopManageQuit] | 03 00 / BC /
|
||||
|
||||
|
||||
|
||||
|
||||
Recipe ID ==>> item ID conversion from sql table.... or some other
|
||||
|
||||
Client: Len 31 [RequestRecipeShopListSet]
|
||||
1F 00
|
||||
BB
|
||||
03 00 00 00
|
||||
|
||||
14 00 00 00 // ssd (20)
|
||||
01 00 00 00
|
||||
|
||||
15 00 00 00 // ssc (21)
|
||||
02 00 00 00
|
||||
|
||||
44 01 00 00 // bssc (324)
|
||||
03 00 00 00
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
Server: Len 23 [StopMove]
|
||||
17 00
|
||||
47 // StopMove
|
||||
6C 08 00 10 // objectID of char who stopped
|
||||
9A AC 00 00 // x
|
||||
F9 A4 00 00 // y
|
||||
5D F2 FF FF // z
|
||||
45 B9 00 00 // heading
|
||||
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0x47);
|
||||
writeD(_objectId);
|
||||
writeD(_x);
|
||||
writeD(_y);
|
||||
writeD(_z);
|
||||
writeD(_heading);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
Server: Len 19 [TeleportToLocation]
|
||||
13 00
|
||||
22
|
||||
6D 08 00 10 // oid 268437613
|
||||
3F 1D 01 00 // x 73023
|
||||
DC CE 01 00 // y 118492
|
||||
9D F1 FF FF // z -3683
|
||||
|
||||
writeC(0x22);
|
||||
writeD(_targetObjId);
|
||||
writeD(_x);
|
||||
writeD(_y);
|
||||
writeD(_z);
|
||||
@@ -0,0 +1,81 @@
|
||||
Trading (requester sends):
|
||||
Client: Len 7 [TradeRequest] | 07 00
|
||||
1A // pcode
|
||||
C5 09 00 10 // objectID of partner
|
||||
|
||||
Trade receiver recieves:
|
||||
Server: Len 7 [SendTradeRequest]
|
||||
07 00
|
||||
70 // pcode
|
||||
CE 09 00 10 // object ID of person who wants to trade to you
|
||||
|
||||
Trade receiver responds:
|
||||
Client: Len 7 [AnswerTradeRequest]
|
||||
07 00
|
||||
55 // pcode
|
||||
01 00 00 00 // 1 - ok, 0 - cancel
|
||||
|
||||
// then both (requester and receiver) receive
|
||||
Server: Len 189 [TradeStart]
|
||||
BD 00
|
||||
14 // pcode
|
||||
C5 09 00 10 // partner objectID
|
||||
03 00 // items count (your inv)
|
||||
/// for each item
|
||||
04 00 // item type1
|
||||
CF 09 00 10 // item oid
|
||||
D4 15 00 00 // item iid
|
||||
01 00 00 00 // item count
|
||||
05 00 // item type2
|
||||
00 00 // 00
|
||||
00 00 00 00 // body part
|
||||
00 00 // enchant
|
||||
00 00 00 00 // 0000
|
||||
FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attribs
|
||||
|
||||
Server: Len 65 [TradeOtherAdd]
|
||||
41 00
|
||||
1B // pcode
|
||||
01 00 // item cnt
|
||||
04 00 // type1
|
||||
C0 09 00 10 // oid
|
||||
39 00 00 00 // iid
|
||||
0D 00 00 00 // cnt
|
||||
04 00 // type2
|
||||
00 00 // 00
|
||||
00 00 00 00 // b.part
|
||||
00 00 // enchatnt
|
||||
00 00 00 00 // 00 ??
|
||||
FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attribs
|
||||
|
||||
Client: Len 15 [AddTradeItem]
|
||||
0F 00
|
||||
1B // pcode
|
||||
01 00 00 00 // tradeId? O_o wtf L2J ignores this
|
||||
D1 09 00 10 // objectID
|
||||
01 00 00 00 // count
|
||||
|
||||
Server: Len 65 [TradeOwnAdd]
|
||||
41 00
|
||||
1A // pcode
|
||||
01 00 // count
|
||||
04 00 // type1
|
||||
D1 09 00 10 // oid
|
||||
9A 29 00 00 // iid
|
||||
01 00 00 00 // cnt
|
||||
05 00 // type2
|
||||
00 00 // 00
|
||||
00 00 00 00 // b.part
|
||||
00 00 // enchant
|
||||
00 00 00 00 // 00
|
||||
FE FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // attribs
|
||||
|
||||
Client: Len 7 [TradeDone]
|
||||
07 00
|
||||
1C // pcode
|
||||
01 00 00 00 // num; 1 - confirm, 0 - cancel trade
|
||||
|
||||
Server: Len 7 [TradeDone]
|
||||
07 00
|
||||
1C // pcode
|
||||
01 00 00 00 // num; 1 - confirm, 0 - cancel trade
|
||||
@@ -0,0 +1,4 @@
|
||||
0B 00 // len 11
|
||||
19 // ptype - UseItem
|
||||
57 EA 03 10 // objectID? 268692055
|
||||
00 00 00 00 // wtf nulls?
|
||||
@@ -0,0 +1,18 @@
|
||||
Server: Len 23 [ValidateLocation]
|
||||
17 00
|
||||
79
|
||||
B2 16 00 10 // mob/npc objectID
|
||||
91 AC 00 00 // x
|
||||
C5 A4 00 00 // y
|
||||
5D F2 FF FF // z
|
||||
FA C5 00 00 // heading
|
||||
|
||||
protected final void writeImpl()
|
||||
{
|
||||
writeC(0x79);
|
||||
writeD(_charObjId);
|
||||
writeD(_x);
|
||||
writeD(_y);
|
||||
writeD(_z);
|
||||
writeD(_heading);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
Client: Len 23 [ValidatePosition]
|
||||
17 00
|
||||
59
|
||||
B3 A5 00 00 // x 42419
|
||||
39 A4 00 00 // y 42041
|
||||
5B F2 FF FF // z -3493
|
||||
E2 24 00 00 // heading 9442
|
||||
00 00 00 00 // wtf data? L2J ignores
|
||||
|
||||
After TeleportToLocation client sends ValidatePosition twice.
|
||||
First is above
|
||||
Second below:
|
||||
Both coordinates x,y,z are coords BEFORE teleport.
|
||||
|
||||
Client: Len 23 [ValidatePosition]
|
||||
17 00
|
||||
59
|
||||
B3 A5 00 00 // x,y,z are the same
|
||||
39 A4 00 00
|
||||
5B F2 FF FF
|
||||
00 00 00 00 // client changes heading to 0
|
||||
00 00 00 00
|
||||
|
||||
Then client sends Appearing (trigger).
|
||||
After that server sends UserInfo with all info, icluding new coords.
|
||||
|
||||
ValidatePosition L2J:
|
||||
_x = readD();
|
||||
_y = readD();
|
||||
_z = readD();
|
||||
_heading = readD();
|
||||
_data = readD();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
|
||||
Client: Len 3
|
||||
|
||||
03 00
|
||||
00
|
||||
@@ -0,0 +1,24 @@
|
||||
ProtocolVersion - MyChanged
|
||||
0030 0b 01 0e 53 03 00 00 09 07 54 ..B.....S.....TV
|
||||
0040 56 03 09 0b 01 07 02 54 54 56 07 00 02 55 56 00 ......TTV...UV.Q
|
||||
0050 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 .SW..U.T...S.VUV
|
||||
0060 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 ....Q..Q.QV.T.U.
|
||||
0070 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 ..QV.S.U.S.VVS..
|
||||
0080 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 ...QTQ.UV.....U.
|
||||
0090 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 .U....Q.....R...
|
||||
00a0 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 .T..RU.UUQ...T.U
|
||||
00b0 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 T.WQU.R.T.QQU..S
|
||||
00c0 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 S.R.R..T........
|
||||
00d0 05 06 03 00 0d 08 01 07 09 03 51 03 07 53 09 51 .........Q..S.Q.
|
||||
00e0 06 07 54 0a 50 56 02 52 04 05 55 51 02 53 00 08 .T.PV.R..UQ.S..T
|
||||
00f0 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 .RV......SV...U.
|
||||
0100 06 08 56 04 0d 06 07 52 06 07 04 0a 06 01 04 54 .V....R.......T.
|
||||
0110 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 ....T..RS.......
|
||||
0120 01 52 51 52 0d 06 51 08 09 54 53 00 0d 01 02 03 RQR..Q..TS.....T
|
||||
0130 54 53 01 05 03 08 56 54 07 02 54 0b 06 df b8 3b S....VT..T....;T
|
||||
0140 54
|
||||
|
||||
RequestGSAuthLogin - MyChanged
|
||||
0030 00 bc 6c 00 65 00 78 00 78 00 ........l.e.x.x.
|
||||
0040 68 00 75 00 6c 00 65 00 00 00 0d fe 0f 00 12 eb h.u.l.e.........
|
||||
0050 01 00 0d fe 0f 00 30 28 fc 55 01 00 00 00 ......0(.U....
|
||||
@@ -0,0 +1,25 @@
|
||||
ProtocolVersion - Gracia
|
||||
0030 0b 01 0e 53 03 00 00 09 07 54 ...b.....S.....T
|
||||
0040 56 03 09 0b 01 07 02 54 54 56 07 00 02 55 56 00 V......TTV...UV.
|
||||
0050 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 Q.SW..U.T...S.VU
|
||||
0060 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 V....Q..Q.QV.T.U
|
||||
0070 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 ...QV.S.U.S.VVS.
|
||||
0080 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 ....QTQ.UV.....U
|
||||
0090 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 ..U....Q.....R..
|
||||
00a0 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 ..T..RU.UUQ...T.
|
||||
00b0 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 UT.WQU.R.T.QQU..
|
||||
00c0 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 SS.R.R..T.......
|
||||
00d0 05 06 03 00 0d 08 01 07 09 03 51 03 07 53 09 51 ..........Q..S.Q
|
||||
00e0 06 07 54 0a 50 56 02 52 04 05 55 51 02 53 00 08 ..T.PV.R..UQ.S..
|
||||
00f0 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 T.RV......SV...U
|
||||
0100 06 08 56 04 0d 06 07 52 06 07 04 0a 06 01 04 54 ..V....R.......T
|
||||
0110 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 .....T..RS......
|
||||
0120 01 52 51 52 0d 06 51 08 09 54 53 00 0d 01 02 03 .RQR..Q..TS.....
|
||||
0130 54 53 01 05 03 08 56 54 07 02 54 0b 06 df b8 3b TS....VT..T....;
|
||||
0140 54 T
|
||||
|
||||
RequestGSAuthLogin - Gracia
|
||||
0030 31 00 3e c0 a3 ab da ed 20 49 ..>g..1.>..... I
|
||||
0040 81 ce 5d 29 88 88 b9 4b e4 76 15 75 fa ba 77 00 ..])...K.v.u..w.
|
||||
0050 21 07 94 98 c7 a4 95 4d cc 2d 00 6c 1d 52 9f be !......M.-.l.R..
|
||||
0060 ab f1 0c 01 a0 cc fd .......
|
||||
@@ -0,0 +1,19 @@
|
||||
ProtocolVersion - Hellbound
|
||||
0030 0b 01 0e 3f 03 00 00 09 07 54 .........?.....T
|
||||
0040 56 03 09 0b 01 07 02 54 54 56 07 00 02 55 56 00 V......TTV...UV.
|
||||
0050 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 Q.SW..U.T...S.VU
|
||||
0060 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 V....Q..Q.QV.T.U
|
||||
0070 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 ...QV.S.U.S.VVS.
|
||||
0080 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 ....QTQ.UV.....U
|
||||
0090 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 ..U....Q.....R..
|
||||
00a0 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 ..T..RU.UUQ...T.
|
||||
00b0 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 UT.WQU.R.T.QQU..
|
||||
00c0 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 SS.R.R..T.......
|
||||
00d0 05 06 03 00 0d 08 01 07 09 03 51 03 07 53 09 51 ..........Q..S.Q
|
||||
00e0 06 07 54 0a 50 56 02 52 04 05 55 51 02 53 00 08 ..T.PV.R..UQ.S..
|
||||
00f0 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 T.RV......SV...U
|
||||
0100 06 08 56 04 0d 06 07 52 06 07 04 0a 06 01 04 54 ..V....R.......T
|
||||
0110 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 .....T..RS......
|
||||
0120 01 52 51 52 0d 06 51 08 09 54 53 00 0d 01 02 03 .RQR..Q..TS.....
|
||||
0130 54 53 01 05 03 08 56 54 07 02 54 0b 06 fb 87 b9 TS....VT..T.....
|
||||
0140 4a J
|
||||
Reference in New Issue
Block a user