Skip to content

Commit 9044798

Browse files
committed
Add new client and server packets
1 parent f4f0fef commit 9044798

5 files changed

Lines changed: 97 additions & 2 deletions

File tree

TibiaAPI/Constants/Enums.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ public enum ClientPacketType
357357
OpenMonsterCyclopediaMonsters = 0xE2,
358358
OpenMonsterCyclopediaRace = 0xE3,
359359
MonsterBonusEffectAction = 0xE4,
360+
OpenCyclopediaCharacterInfo = 0xE5,
360361
BugReport = 0xE6,
361362
ThankYou = 0xE7,
362363
GetOfferDescription = 0xE8,
@@ -491,6 +492,7 @@ public enum ServerPacketType
491492
MonsterCyclopediaRace = 0xD7,
492493
MonsterCyclopediaBonusEffects = 0xD8,
493494
MonsterCyclopediaNewDetails = 0xD9,
495+
CyclopediaCharacterInfo = 0xDA,
494496
TutorialHint = 0xDC,
495497
CyclopediaMapData = 0xDD,
496498
DailyRewardCollectionState = 0xDE,
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using OXGaming.TibiaAPI.Constants;
2+
3+
namespace OXGaming.TibiaAPI.Network.ClientPackets
4+
{
5+
public class OpenCyclopediaCharacterInfo : ClientPacket
6+
{
7+
public byte State { get; set; }
8+
9+
public OpenCyclopediaCharacterInfo(Client client)
10+
{
11+
Client = client;
12+
PacketType = ClientPacketType.OpenCyclopediaCharacterInfo;
13+
}
14+
15+
public override bool ParseFromNetworkMessage(NetworkMessage message)
16+
{
17+
if (message.ReadByte() != (byte)ClientPacketType.OpenCyclopediaCharacterInfo)
18+
{
19+
return false;
20+
}
21+
22+
State = message.ReadByte();
23+
return true;
24+
}
25+
26+
public override void AppendToNetworkMessage(NetworkMessage message)
27+
{
28+
message.Write((byte)ClientPacketType.OpenCyclopediaCharacterInfo);
29+
message.Write(State);
30+
}
31+
}
32+
}

TibiaAPI/Network/Communication.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ public class Communication
108108
public event ReceivedPacketEventHandler OnReceivedClientOpenMonsterCyclopediaMonstersPacket;
109109
public event ReceivedPacketEventHandler OnReceivedClientOpenMonsterCyclopediaRacePacket;
110110
public event ReceivedPacketEventHandler OnReceivedClientMonsterBonusEffectActionPacket;
111+
public event ReceivedPacketEventHandler OnReceivedClientOpenCyclopediaCharacterInfoPacket;
111112
public event ReceivedPacketEventHandler OnReceivedClientBugReportPacket;
112113
public event ReceivedPacketEventHandler OnReceivedClientThankYouPacket;
113114
public event ReceivedPacketEventHandler OnReceivedClientGetOfferDescription;
@@ -238,6 +239,7 @@ public class Communication
238239
public event ReceivedPacketEventHandler OnReceivedServerMonsterCyclopediaRacePacket;
239240
public event ReceivedPacketEventHandler OnReceivedServerMonsterCyclopediaBonusEffectsPacket;
240241
public event ReceivedPacketEventHandler OnReceivedServerMonsterCyclopediaNewDetailsPacket;
242+
public event ReceivedPacketEventHandler OnReceivedServerCyclopediaCharacterInfoPacket;
241243
public event ReceivedPacketEventHandler OnReceivedServerTutorialHintPacket;
242244
public event ReceivedPacketEventHandler OnReceivedServerCyclopediaMapDataPacket;
243245
public event ReceivedPacketEventHandler OnReceivedServerDailyRewardCollectionStatePacket;
@@ -1573,6 +1575,19 @@ public void ParseClientMessage(Client client, NetworkMessage inMessage, NetworkM
15731575
}
15741576
}
15751577
break;
1578+
case ClientPacketType.OpenCyclopediaCharacterInfo:
1579+
{
1580+
var packet = new ClientPackets.OpenCyclopediaCharacterInfo(client);
1581+
if (packet.ParseFromNetworkMessage(inMessage))
1582+
{
1583+
packet.Forward = OnReceivedClientOpenCyclopediaCharacterInfoPacket?.Invoke(packet) ?? true;
1584+
if (packet.Forward)
1585+
{
1586+
packet.AppendToNetworkMessage(outMessage);
1587+
}
1588+
}
1589+
}
1590+
break;
15761591
case ClientPacketType.BugReport:
15771592
{
15781593
var packet = new ClientPackets.BugReport(client);
@@ -3300,6 +3315,19 @@ public void ParseServerMessage(Client client, NetworkMessage inMessage, NetworkM
33003315
}
33013316
}
33023317
break;
3318+
case ServerPacketType.CyclopediaCharacterInfo:
3319+
{
3320+
var packet = new ServerPackets.CyclopediaCharacterInfo(client);
3321+
if (packet.ParseFromNetworkMessage(inMessage))
3322+
{
3323+
packet.Forward = OnReceivedServerCyclopediaCharacterInfoPacket?.Invoke(packet) ?? true;
3324+
if (packet.Forward)
3325+
{
3326+
packet.AppendToNetworkMessage(outMessage);
3327+
}
3328+
}
3329+
}
3330+
break;
33033331
case ServerPacketType.TutorialHint:
33043332
{
33053333
var packet = new ServerPackets.TutorialHint(client);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using OXGaming.TibiaAPI.Constants;
2+
3+
namespace OXGaming.TibiaAPI.Network.ServerPackets
4+
{
5+
public class CyclopediaCharacterInfo : ServerPacket
6+
{
7+
public CyclopediaCharacterInfo(Client client)
8+
{
9+
Client = client;
10+
PacketType = ServerPacketType.CyclopediaCharacterInfo;
11+
}
12+
13+
public override bool ParseFromNetworkMessage(NetworkMessage message)
14+
{
15+
if (message.ReadByte() != (byte)ServerPacketType.CyclopediaCharacterInfo)
16+
{
17+
return false;
18+
}
19+
return true;
20+
}
21+
22+
public override void AppendToNetworkMessage(NetworkMessage message)
23+
{
24+
message.Write((byte)ServerPacketType.CyclopediaCharacterInfo);
25+
}
26+
}
27+
}

TibiaAPI/Network/ServerPackets/GraphicalEffects.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ public override bool ParseFromNetworkMessage(NetworkMessage message)
2626

2727
Position = message.ReadPosition();
2828
Effect = message.ReadByte();
29-
Unknown = message.ReadUInt32();
29+
if (Client.VersionNumber >= 12000000)
30+
{
31+
Unknown = message.ReadUInt32();
32+
}
3033
return true;
3134
}
3235

@@ -35,7 +38,10 @@ public override void AppendToNetworkMessage(NetworkMessage message)
3538
message.Write((byte)ServerPacketType.GraphicalEffects);
3639
message.Write(Position);
3740
message.Write(Effect);
38-
message.Write(Unknown);
41+
if (Client.VersionNumber >= 12000000)
42+
{
43+
message.Write(Unknown);
44+
}
3945
}
4046
}
4147
}

0 commit comments

Comments
 (0)