11数据包52 53 54 修正

This commit is contained in:
Sancaros 2024-12-05 23:13:55 +08:00
parent b57d7543fe
commit 5f1b15e009
4 changed files with 54 additions and 64 deletions

View File

@ -14,14 +14,8 @@ namespace PSO2SERVER.Protocol.Handlers
public override void HandlePacket(Client context, byte flags, byte[] data, uint position, uint size)
{
//var writer = new PacketWriter();
//writer.Write((uint)0);
//writer.Write((uint)0);
//writer.Write((uint)0);
//writer.Write((uint)0);
//context.SendPacket(0x11, 0x42, 0x0, writer.ToArray());
context.SendPacket(new CreateCharacterOneResponsePacket());
//TODO 这里需要获取账号的AC是否足够,并且判断角色槽位是否已满
context.SendPacket(new CreateCharacterOneResponsePacket(0, 0, 0, 0));
}
#endregion

View File

@ -5,7 +5,7 @@ using PSO2SERVER.Protocol.Packets;
namespace PSO2SERVER.Protocol.Handlers
{
[PacketHandlerAttr(0x11, 0x52)]
public class _11_52_UNK : PacketHandler
public class CreateCharacterInviteNickname : PacketHandler
{
private uint PlayerID { get; set; }
private uint unk1 { get; set; }
@ -22,7 +22,8 @@ namespace PSO2SERVER.Protocol.Handlers
Logger.Write($"PlayerID:{PlayerID} unk1:{unk1}");
context.SendPacket(new CreateCharacterInviteNicknameResponse());
//TODO 数据包结构不对的 需要探索
context.SendPacket(new CreateCharacterInviteNicknameResponsePacket(0, 0, 0, 0));
}
}
}

View File

@ -1,4 +1,5 @@
using PSO2SERVER.Models;
using Org.BouncyCastle.Ocsp;
using PSO2SERVER.Models;
using System;
using System.Collections.Generic;
using System.Linq;
@ -8,32 +9,26 @@ namespace PSO2SERVER.Protocol.Packets
{
public class CreateCharacterOneResponsePacket : Packet
{
public struct CreateCharacter1ResponsePacket
{
/// <summary>
/// Creation status.
/// </summary>
public uint Status;
public uint Unk2;
public uint UsedSmth;
/// <summary>
/// Required AC to buy a character creation pass.
/// </summary>
public uint ReqAc;
public CreateCharacter1ResponsePacket(uint status, uint unk2, uint usedSmth, uint reqAc) : this()
{
Status = status;
Unk2 = unk2;
UsedSmth = usedSmth;
ReqAc = reqAc;
}
}
public CreateCharacterOneResponsePacket()
/// <summary>
/// Creation status.
/// </summary>
public uint Status;
public uint Unk2;
public uint UsedSmth;
/// <summary>
/// Required AC to buy a character creation pass.
/// </summary>
public uint ReqAc;
public CreateCharacterOneResponsePacket(uint status, uint unk2, uint usedSmth, uint reqAc)
{
Status = status;
Unk2 = unk2;
UsedSmth = usedSmth;
ReqAc = reqAc;
}
#region implemented abstract members of Packet
@ -41,7 +36,10 @@ namespace PSO2SERVER.Protocol.Packets
public override byte[] Build()
{
var pkt = new PacketWriter();
pkt.WriteStruct(new CreateCharacter1ResponsePacket(0, 0, 0, 0));
pkt.Write(Status);
pkt.Write(Unk2);
pkt.Write(UsedSmth);
pkt.Write(ReqAc);
return pkt.ToArray();
}

View File

@ -6,34 +6,28 @@ using System.Text;
namespace PSO2SERVER.Protocol.Packets
{
public class CreateCharacterInviteNicknameResponse : Packet
public class CreateCharacterInviteNicknameResponsePacket : Packet
{
public struct CreateCharacterInviteNicknameResponsePacket
{
/// <summary>
/// Creation status.
/// </summary>
public uint Status;
public uint Unk2;
public uint UsedSmth;
/// <summary>
/// Required AC to buy a character creation pass.
/// </summary>
public uint ReqAc;
public CreateCharacterInviteNicknameResponsePacket(uint status, uint unk2, uint usedSmth, uint reqAc) : this()
{
Status = status;
Unk2 = unk2;
UsedSmth = usedSmth;
ReqAc = reqAc;
}
}
public CreateCharacterInviteNicknameResponse()
/// <summary>
/// Creation status.
/// </summary>
public uint Status;
public uint Unk2;
public uint UsedSmth;
/// <summary>
/// Required AC to buy a character creation pass.
/// </summary>
public uint ReqAc;
public CreateCharacterInviteNicknameResponsePacket(uint status, uint unk2, uint usedSmth, uint reqAc)
{
Status = status;
Unk2 = unk2;
UsedSmth = usedSmth;
ReqAc = reqAc;
}
#region implemented abstract members of Packet
@ -41,7 +35,10 @@ namespace PSO2SERVER.Protocol.Packets
public override byte[] Build()
{
var pkt = new PacketWriter();
pkt.WriteStruct(new CreateCharacterInviteNicknameResponsePacket(0, 0, 0, 0));
pkt.Write(Status);
pkt.Write(Unk2);
pkt.Write(UsedSmth);
pkt.Write(ReqAc);
return pkt.ToArray();
}