Skip to content

Commit 16da8d0

Browse files
committed
Party hunt analyzer missing bytes
1 parent 5689b9b commit 16da8d0

3 files changed

Lines changed: 37 additions & 7 deletions

File tree

TibiaAPI/Constants/Enums.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,14 @@ public enum TeamFinderType
328328
Hunt = 2,
329329
Quest = 3
330330
}
331-
331+
332+
public enum PartyAnalyzerType
333+
{
334+
Reset = 0,
335+
PriceType = 1,
336+
PriceValue = 2
337+
}
338+
332339
public enum CharacterInfoPage
333340
{
334341
Basic = 0,
Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
using OXGaming.TibiaAPI.Constants;
2+
using System;
3+
using System.Collections.Generic;
24

35
namespace OXGaming.TibiaAPI.Network.ClientPackets
46
{
57
public class PartyHuntAnalyser : ClientPacket
68
{
9+
public byte Type { get; set; }
10+
11+
public List<(ushort ItemId, ulong Price)> ItemsData { get; } =
12+
new List<(ushort ItemId, ulong Price)>();
13+
714
public PartyHuntAnalyser(Client client)
815
{
916
Client = client;
@@ -12,13 +19,31 @@ public PartyHuntAnalyser(Client client)
1219

1320
public override void ParseFromNetworkMessage(NetworkMessage message)
1421
{
15-
// TODO
22+
Type = message.ReadByte();
23+
if ((PartyAnalyzerType)Type == PartyAnalyzerType.PriceValue) {
24+
ItemsData.Capacity = message.ReadUInt16();
25+
for (var i = 0; i < ItemsData.Capacity; ++i)
26+
{
27+
var itemId = message.ReadUInt16();
28+
var price = message.ReadUInt64();
29+
ItemsData.Add((itemId, price));
30+
}
31+
}
1632
}
1733

1834
public override void AppendToNetworkMessage(NetworkMessage message)
1935
{
20-
// TODO
21-
// message.Write((byte)ClientPacketType.PartyHuntAnalyser);
36+
message.Write((byte)ClientPacketType.PartyHuntAnalyser);
37+
if ((PartyAnalyzerType)Type == PartyAnalyzerType.PriceValue) {
38+
var count = Math.Min(byte.MaxValue, ItemsData.Count);
39+
message.Write((byte)count);
40+
for (var i = 0; i < count; ++i)
41+
{
42+
var (ItemId, Price) = ItemsData[i];
43+
message.Write(ItemId);
44+
message.Write(Price);
45+
}
46+
}
2247
}
2348
}
2449
}

TibiaAPI/Network/ServerPackets/PartyHuntAnalyser.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ public PartyHuntAnalyser(Client client)
2828
public override void ParseFromNetworkMessage(NetworkMessage message)
2929
{
3030
SessionMinutes = message.ReadUInt32();
31-
LeaderId = message.ReadUInt32(); // This is a player ID, but it may not be the leader.
32-
// TODO
31+
LeaderId = message.ReadUInt32();
3332
UnknownByte1 = message.ReadByte();
3433
MemberInfo.Capacity = message.ReadByte();
3534
for (var i = 0; i < MemberInfo.Capacity; ++i)
@@ -59,7 +58,6 @@ public override void ParseFromNetworkMessage(NetworkMessage message)
5958

6059
public override void AppendToNetworkMessage(NetworkMessage message)
6160
{
62-
// TODO
6361
message.Write((byte)ServerPacketType.PartyHuntAnalyser);
6462
message.Write(SessionMinutes);
6563
message.Write(LeaderId);

0 commit comments

Comments
 (0)