Skip to content

Commit 8f49f3c

Browse files
committed
Existing packet changes and backwards compatibility
1 parent bdcd704 commit 8f49f3c

2 files changed

Lines changed: 68 additions & 13 deletions

File tree

TibiaAPI/Network/ServerPackets/PlayerDataCurrent.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,12 @@ public override bool ParseFromNetworkMessage(NetworkMessage message)
5555
HuntingBoostFactor = message.ReadUInt16();
5656
CurrentMana = message.ReadUInt16();
5757
MaxMana = message.ReadUInt16();
58-
MagicLevel = message.ReadByte();
59-
MagicLevelBase = message.ReadByte();
60-
MagicLevelPercent = message.ReadByte();
58+
if (Client.VersionNumber < 12000000)
59+
{
60+
MagicLevel = message.ReadByte();
61+
MagicLevelBase = message.ReadByte();
62+
MagicLevelPercent = message.ReadByte();
63+
}
6164
Soul = message.ReadByte();
6265
Stamina = message.ReadUInt16();
6366
Speed = message.ReadUInt16();
@@ -83,9 +86,12 @@ public override void AppendToNetworkMessage(NetworkMessage message)
8386
message.Write(HuntingBoostFactor);
8487
message.Write(CurrentMana);
8588
message.Write(MaxMana);
86-
message.Write(MagicLevel);
87-
message.Write(MagicLevelBase);
88-
message.Write(MagicLevelPercent);
89+
if (Client.VersionNumber < 12000000)
90+
{
91+
message.Write(MagicLevel);
92+
message.Write(MagicLevelBase);
93+
message.Write(MagicLevelPercent);
94+
}
8995
message.Write(Soul);
9096
message.Write(Stamina);
9197
message.Write(Speed);

TibiaAPI/Network/ServerPackets/PlayerSkills.cs

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,27 @@ public override bool ParseFromNetworkMessage(NetworkMessage message)
3636
return false;
3737
}
3838

39-
FistFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
40-
ClubFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
41-
SwordFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
42-
AxeFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
43-
DistanceFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
44-
Shielding = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
45-
Fishing = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
39+
if (Client.VersionNumber < 12000000)
40+
{
41+
FistFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
42+
ClubFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
43+
SwordFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
44+
AxeFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
45+
DistanceFighting = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
46+
Shielding = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
47+
Fishing = (message.ReadUInt16(), message.ReadUInt16(), 0, message.ReadUInt16());
48+
}
49+
else
50+
{
51+
Magic = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
52+
FistFighting = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
53+
ClubFighting = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
54+
SwordFighting = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
55+
AxeFighting = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
56+
DistanceFighting = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
57+
Shielding = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
58+
Fishing = (message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16(), message.ReadUInt16());
59+
}
4660

4761
CriticalHitChance = (message.ReadUInt16(), message.ReadUInt16());
4862
CriticalHitDamage = (message.ReadUInt16(), message.ReadUInt16());
@@ -59,33 +73,68 @@ public override bool ParseFromNetworkMessage(NetworkMessage message)
5973
public override void AppendToNetworkMessage(NetworkMessage message)
6074
{
6175
message.Write((byte)ServerPacketType.PlayerSkills);
76+
if (Client.VersionNumber >= 12000000)
77+
{
78+
message.Write(Magic.Level);
79+
message.Write(Magic.Base);
80+
message.Write(Magic.Unknown);
81+
message.Write(Magic.Progress);
82+
}
6283

6384
message.Write(FistFighting.Level);
6485
message.Write(FistFighting.Base);
86+
if (Client.VersionNumber >= 12000000)
87+
{
88+
message.Write(FistFighting.Unknown);
89+
}
6590
message.Write(FistFighting.Progress);
6691

6792
message.Write(ClubFighting.Level);
6893
message.Write(ClubFighting.Base);
94+
if (Client.VersionNumber >= 12000000)
95+
{
96+
message.Write(ClubFighting.Unknown);
97+
}
6998
message.Write(ClubFighting.Progress);
7099

71100
message.Write(SwordFighting.Level);
72101
message.Write(SwordFighting.Base);
102+
if (Client.VersionNumber >= 12000000)
103+
{
104+
message.Write(SwordFighting.Unknown);
105+
}
73106
message.Write(SwordFighting.Progress);
74107

75108
message.Write(AxeFighting.Level);
76109
message.Write(AxeFighting.Base);
110+
if (Client.VersionNumber >= 12000000)
111+
{
112+
message.Write(AxeFighting.Unknown);
113+
}
77114
message.Write(AxeFighting.Progress);
78115

79116
message.Write(DistanceFighting.Level);
80117
message.Write(DistanceFighting.Base);
118+
if (Client.VersionNumber >= 12000000)
119+
{
120+
message.Write(DistanceFighting.Unknown);
121+
}
81122
message.Write(DistanceFighting.Progress);
82123

83124
message.Write(Shielding.Level);
84125
message.Write(Shielding.Base);
126+
if (Client.VersionNumber >= 12000000)
127+
{
128+
message.Write(Shielding.Unknown);
129+
}
85130
message.Write(Shielding.Progress);
86131

87132
message.Write(Fishing.Level);
88133
message.Write(Fishing.Base);
134+
if (Client.VersionNumber >= 12000000)
135+
{
136+
message.Write(Fishing.Unknown);
137+
}
89138
message.Write(Fishing.Progress);
90139

91140
message.Write(CriticalHitChance.Level);

0 commit comments

Comments
 (0)