Skip to content

Commit f4f0fef

Browse files
committed
Add unknown changes to GraphicalEffects packet
Update Extract app to handle truncated recording
1 parent 406acbf commit f4f0fef

4 files changed

Lines changed: 25 additions & 18 deletions

File tree

Apps/Extract/Program.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -245,15 +245,18 @@ static void Main(string[] args)
245245
};
246246

247247
reader.BaseStream.Position -= 8;
248-
Array.Copy(reader.ReadBytes((int)message.Size), message.GetBuffer(), message.Size);
249-
250-
if (packetType == PacketType.Server)
251-
{
252-
client.Proxy.ParseServerMessage(client, message, outMessage);
253-
}
254-
else
248+
if ((reader.BaseStream.Length - reader.BaseStream.Position) >= message.Size)
255249
{
256-
client.Proxy.ParseClientMessage(client, message, outMessage);
250+
Array.Copy(reader.ReadBytes((int)message.Size), message.GetBuffer(), message.Size);
251+
252+
if (packetType == PacketType.Server)
253+
{
254+
client.Proxy.ParseServerMessage(client, message, outMessage);
255+
}
256+
else
257+
{
258+
client.Proxy.ParseClientMessage(client, message, outMessage);
259+
}
257260
}
258261
}
259262

TibiaAPI/Constants/Enums.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ public enum ServerPacketType
428428
CounterOffer = 0x7E,
429429
CloseTrade = 0x7F,
430430
Ambiente = 0x82,
431-
GraphicalEffect = 0x83,
431+
GraphicalEffects = 0x83,
432432
RemoveGraphicalEffect = 0x84,
433433
MissileEffect = 0x85,
434434
Trappers = 0x87,

TibiaAPI/Network/Communication.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public class Communication
175175
public event ReceivedPacketEventHandler OnReceivedServerCounterOfferPacket;
176176
public event ReceivedPacketEventHandler OnReceivedServerCloseTradePacket;
177177
public event ReceivedPacketEventHandler OnReceivedServerAmbientePacket;
178-
public event ReceivedPacketEventHandler OnReceivedServerGraphicalEffectPacket;
178+
public event ReceivedPacketEventHandler OnReceivedServerGraphicalEffectsPacket;
179179
public event ReceivedPacketEventHandler OnReceivedServerRemoveGraphicalEffectPacket;
180180
public event ReceivedPacketEventHandler OnReceivedServerMissileEffectPacket;
181181
public event ReceivedPacketEventHandler OnReceivedServerTrappersPacket;
@@ -2481,12 +2481,12 @@ public void ParseServerMessage(Client client, NetworkMessage inMessage, NetworkM
24812481
}
24822482
}
24832483
break;
2484-
case ServerPacketType.GraphicalEffect:
2484+
case ServerPacketType.GraphicalEffects:
24852485
{
2486-
var packet = new ServerPackets.GraphicalEffect(client);
2486+
var packet = new ServerPackets.GraphicalEffects(client);
24872487
if (packet.ParseFromNetworkMessage(inMessage))
24882488
{
2489-
packet.Forward = OnReceivedServerGraphicalEffectPacket?.Invoke(packet) ?? true;
2489+
packet.Forward = OnReceivedServerGraphicalEffectsPacket?.Invoke(packet) ?? true;
24902490
if (packet.Forward)
24912491
{
24922492
packet.AppendToNetworkMessage(outMessage);

TibiaAPI/Network/ServerPackets/GraphicalEffect.cs renamed to TibiaAPI/Network/ServerPackets/GraphicalEffects.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,39 @@
33

44
namespace OXGaming.TibiaAPI.Network.ServerPackets
55
{
6-
public class GraphicalEffect : ServerPacket
6+
public class GraphicalEffects : ServerPacket
77
{
88
public Position Position { get; set; }
99

10+
public uint Unknown { get; set; }
11+
1012
public byte Effect { get; set; }
1113

12-
public GraphicalEffect(Client client)
14+
public GraphicalEffects(Client client)
1315
{
1416
Client = client;
15-
PacketType = ServerPacketType.GraphicalEffect;
17+
PacketType = ServerPacketType.GraphicalEffects;
1618
}
1719

1820
public override bool ParseFromNetworkMessage(NetworkMessage message)
1921
{
20-
if (message.ReadByte() != (byte)ServerPacketType.GraphicalEffect)
22+
if (message.ReadByte() != (byte)ServerPacketType.GraphicalEffects)
2123
{
2224
return false;
2325
}
2426

2527
Position = message.ReadPosition();
2628
Effect = message.ReadByte();
29+
Unknown = message.ReadUInt32();
2730
return true;
2831
}
2932

3033
public override void AppendToNetworkMessage(NetworkMessage message)
3134
{
32-
message.Write((byte)ServerPacketType.GraphicalEffect);
35+
message.Write((byte)ServerPacketType.GraphicalEffects);
3336
message.Write(Position);
3437
message.Write(Effect);
38+
message.Write(Unknown);
3539
}
3640
}
3741
}

0 commit comments

Comments
 (0)