部分未完成结构分析的数据包暂时采用假数据载入
This commit is contained in:
parent
cf622beedc
commit
15b8a44d21
@ -157,6 +157,8 @@ namespace PSO2SERVER.Database
|
||||
}
|
||||
}
|
||||
|
||||
public uint Playe_time { get; set; }
|
||||
|
||||
public byte[] BuildCharacterByteArray()
|
||||
{
|
||||
PacketWriter writer = new PacketWriter();
|
||||
|
@ -84,8 +84,10 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
|
||||
public override byte[] Build()
|
||||
{
|
||||
var setAreaPacket = File.ReadAllBytes("Resources\\quests\\" + _file + ".bin");
|
||||
return setAreaPacket;
|
||||
var pkt = new PacketWriter();
|
||||
pkt.Write(File.ReadAllBytes("packets/0400_10_45_16_560940600.bin"));
|
||||
//var setAreaPacket = File.ReadAllBytes("Resources\\quests\\" + _file + ".bin");
|
||||
return pkt.ToArray();
|
||||
}
|
||||
|
||||
public override PacketHeader GetHeader()
|
||||
|
@ -22,13 +22,13 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
public List<PSO2Items[]> EquippedItems { get; set; } = new List<PSO2Items[]>();
|
||||
|
||||
// Character play times (30 times)
|
||||
public uint[] PlayTimes { get; set; } = new uint[30];
|
||||
public List<uint> PlayTimes { get; set; } = new List<uint>();
|
||||
|
||||
// Character deletion flags (flag, deletion timestamp) (30 pairs of (u32, u32))
|
||||
public (uint flag, uint timestamp)[] DeletionFlags { get; set; } = new (uint, uint)[30];
|
||||
public List<(uint flag, uint timestamp)> DeletionFlags { get; set; } = new List<(uint, uint)>();
|
||||
|
||||
// Character ship transfer flags (30 pairs of (u32, u32))
|
||||
public (uint flag, uint timestamp)[] TransferFlags { get; set; } = new (uint, uint)[30];
|
||||
public List<(uint flag, uint timestamp)> TransferFlags { get; set; } = new List<(uint, uint)>();
|
||||
|
||||
// Account accessory flag (unknown)
|
||||
public ushort AccountAccessory { get; set; }
|
||||
@ -56,6 +56,14 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
|
||||
public CharacterListPacket(int AccountId)
|
||||
{
|
||||
Characters = new List<Character>();
|
||||
EquippedItems = new List<PSO2Items[]>();
|
||||
PlayTimes = new List<uint>();
|
||||
DeletionFlags = new List<(uint, uint)>();
|
||||
TransferFlags = new List<(uint, uint)>();
|
||||
AccountAccessory = 0;
|
||||
LoginSurvey = 0;
|
||||
Ad = 0;
|
||||
this.AccountId = AccountId;
|
||||
}
|
||||
|
||||
@ -74,12 +82,6 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
{
|
||||
Characters.Add(ch);
|
||||
|
||||
//// 创建一个 Consumable 类型的物品
|
||||
//PSO2ItemConsumable consumableItem = new PSO2ItemConsumable
|
||||
//{
|
||||
// amount = 10,
|
||||
//};
|
||||
|
||||
//PSO2Items[] items = new PSO2Items[10];
|
||||
|
||||
//for (var i = 0; i < 10; i++)
|
||||
@ -93,13 +95,33 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
// Id = 1,
|
||||
// Subid = 0,
|
||||
// },
|
||||
// data = new Items { Consumable = consumableItem }
|
||||
// data = new Items
|
||||
// {
|
||||
// Consumable = new PSO2ItemConsumable
|
||||
// {
|
||||
// flags = 0,
|
||||
// amount = 10,
|
||||
// },
|
||||
// }
|
||||
// };
|
||||
//}
|
||||
|
||||
ch.EquipedItems = new PSO2Items[10];
|
||||
//ch.EquipedItems = items;
|
||||
|
||||
//EquippedItems.Add(ch.EquipedItems);
|
||||
|
||||
//ch.Playe_time = 0xFFFFFFFF;
|
||||
|
||||
//PlayTimes.Add(ch.Playe_time);
|
||||
|
||||
//var deletionFlags = (0, 0);
|
||||
|
||||
//DeletionFlags.Add(((uint flag, uint timestamp))deletionFlags);
|
||||
|
||||
//var transferFlags = (0, 0);
|
||||
|
||||
//TransferFlags.Add(((uint flag, uint timestamp))transferFlags);
|
||||
|
||||
EquippedItems.Add(ch.EquipedItems);
|
||||
}
|
||||
|
||||
Characters_count = (uint)Characters.Count();
|
||||
@ -109,9 +131,19 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
|
||||
for (var i = 0; i < rest_count; i++)
|
||||
{
|
||||
//Character character = Characters[0];
|
||||
Characters.Add(Characters[0]);
|
||||
EquippedItems.Add(EquippedItems[0]);
|
||||
|
||||
//EquippedItems.Add(EquippedItems[0]);
|
||||
|
||||
//PlayTimes.Add(0x12345678);
|
||||
|
||||
//var deletionFlags = (1, 3);
|
||||
|
||||
//DeletionFlags.Add(((uint flag, uint timestamp))deletionFlags);
|
||||
|
||||
//var transferFlags = (2, 4);
|
||||
|
||||
//TransferFlags.Add(((uint flag, uint timestamp))transferFlags);
|
||||
}
|
||||
|
||||
var pkt = new PacketWriter();
|
||||
@ -130,7 +162,7 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
//{
|
||||
// foreach (var item in itemsArray)
|
||||
// {
|
||||
// pkt.WriteStruct(item);
|
||||
// pkt.Write(item.ToByteArray());
|
||||
// }
|
||||
//}
|
||||
//// Write PlayTimes
|
||||
@ -138,6 +170,9 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
//{
|
||||
// pkt.Write(playTime);
|
||||
//}
|
||||
|
||||
//pkt.WriteBytes(0, 32);
|
||||
|
||||
//// Write DeletionFlags
|
||||
//foreach (var flag in DeletionFlags)
|
||||
//{
|
||||
@ -154,14 +189,17 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
//// Write AccountAccessory
|
||||
//pkt.Write(AccountAccessory);
|
||||
|
||||
//pkt.WriteBytes(0, 6);
|
||||
|
||||
//// Write LoginSurvey
|
||||
//pkt.Write(LoginSurvey);
|
||||
|
||||
//// Write Ad
|
||||
//pkt.Write(Ad);
|
||||
|
||||
//pkt.WriteBytes(0, 2);
|
||||
//pkt.WriteBytes(0, 4);
|
||||
|
||||
//pkt.WriteBytes(0, 4);
|
||||
|
||||
return pkt.ToArray();
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PSO2SERVER.Models;
|
||||
using System.IO;
|
||||
using static PSO2SERVER.Models.PSOPalette;
|
||||
|
||||
namespace PSO2SERVER.Protocol.Packets
|
||||
@ -35,21 +36,21 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
public override byte[] Build()
|
||||
{
|
||||
var pkt = new PacketWriter();
|
||||
pkt.Write(CurPalette);
|
||||
pkt.Write(CurSubpalette);
|
||||
pkt.Write(CurBook);
|
||||
//pkt.Write(CurPalette);
|
||||
//pkt.Write(CurSubpalette);
|
||||
//pkt.Write(CurBook);
|
||||
|
||||
// 初始化 Palettes
|
||||
for (int i = 0; i < Palettes.Length; i++)
|
||||
{
|
||||
Palettes[i].WriteToStream(pkt);
|
||||
}
|
||||
//// 初始化 Palettes
|
||||
//for (int i = 0; i < Palettes.Length; i++)
|
||||
//{
|
||||
// Palettes[i].WriteToStream(pkt);
|
||||
//}
|
||||
|
||||
// 初始化 Subpalettes(根据需要可以进行自定义初始化)
|
||||
for (int i = 0; i < Subpalettes.Length; i++)
|
||||
{
|
||||
Subpalettes[i].WriteToStream(pkt);
|
||||
}
|
||||
//// 初始化 Subpalettes(根据需要可以进行自定义初始化)
|
||||
//for (int i = 0; i < Subpalettes.Length; i++)
|
||||
//{
|
||||
// Subpalettes[i].WriteToStream(pkt);
|
||||
//}
|
||||
|
||||
//// Enable flag
|
||||
//pkt.Write((byte) 1);
|
||||
@ -58,6 +59,7 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
//for (var i = 0; i < 1091; i++)
|
||||
// pkt.Write((byte) 0);
|
||||
|
||||
pkt.Write(File.ReadAllBytes("packets/0000_10_45_17_271399100.bin"));
|
||||
return pkt.ToArray();
|
||||
}
|
||||
|
||||
|
@ -22,8 +22,9 @@ namespace PSO2SERVER.Protocol.Packets
|
||||
public override byte[] Build()
|
||||
{
|
||||
var pkt = new PacketWriter();
|
||||
Palette.WriteToStream(pkt);
|
||||
byte[] byteArray = pkt.ToArray();
|
||||
pkt.Write(File.ReadAllBytes("packets/0000_10_45_16_531893700.bin"));
|
||||
//Palette.WriteToStream(pkt);
|
||||
//byte[] byteArray = pkt.ToArray();
|
||||
|
||||
//var info = string.Format("[-->] 发送的数据 (hex): {0} 字节", byteArray.Length);
|
||||
//Logger.WriteHex(info, byteArray);
|
||||
|
Loading…
Reference in New Issue
Block a user