Working with 5165 here(custom source)
I'm having a few probs with this, My Client seem to Disconnect about 2 seconds after my CharacterInfo packet is sent.
It's called by this void
Code:
public static void Login(byte[] Packet, GameClient Client)
{
LoginPacket Login = new LoginPacket();
Login.Deserialize(Packet);
Accounts Acc = null;
AuthClient AC = null;
Console.WriteLine(Login.Identifier);
if (Kernel.PendingConnections.ContainsKey(Login.Identifier))
{
Kernel.PendingConnections.TryGetValue(Login.Identifier, out AC);
Console.WriteLine(Login.Identifier);
Kernel.PendingConnections.Remove(Login.Identifier);
Acc = AC.Info;
if (Acc != null)
{
string ResponseMessage = "";
Client.Info = Acc;
if (Client.Info.EntityID == 0)
Client.Send(Messages.NEW_ROLE);
else
{
Client.Send(Messages.ANSWER_OK);
ResponseMessage = "ANSWER_OK";
}
if (ResponseMessage == "ANSWER_OK")
{
if (Kernel.ClientPool.ContainsKey(Client.Entity.UID))
{
GameClient Fucked = Server.GetCharByUID(Client.Entity.UID);
Fucked.Disconnect();
}
Characters.LoadCharacter(Client);
Kernel.ClientPool.Add(Client.Entity.UID, Client);
CharacterInfo ci = new CharacterInfo(Client);
(HERE!!!!!!!) Client.Send(ci.ToArray());
Client.Info.IP = Client._socket.RemoteEndPoint.ToString().Split(' ')[0].ToString();
Client.Info.UpdateEntireAccount();
Console.WriteLine("Account: {0} && Character: {1} has logged in!", Client.Info.Username, Client.Entity.Name);
}
}
}
}
Code:
using System;
using Painless.Networking;
using ProjectD.Game;
namespace ProjectD.Packet_Processor.Structures
{
public class CharacterInfo : PacketWriter, ProjectD.Core.Interfaces.iPacket
{
GameClient client;
public CharacterInfo(GameClient _client)
{
client = _client;
}
public void Deserialize(byte[] buffer)
{
throw new NotImplementedException();
}
public byte[] ToArray()
{
byte[] Packet = new byte[98 + client.Entity.Spouse.Length + client.Entity.Name.Length];
WriteUInt16((ushort)(Packet.Length - 8), 0, Packet);
WriteUInt16(0x3ee, 2, Packet);
WriteUInt32(client.Entity.UID, 4, Packet);
WriteUInt32(client.Entity.Mesh, 8, Packet);
WriteUInt16(client.Entity.Hairstyle, 12, Packet);
WriteUInt32(client.Entity.Money, 14, Packet);
WriteUInt32(client.Entity.ConquerPoints, 18, Packet);
WriteUInt64(0/*Experience*/, 22, Packet);
WriteUInt16(client.Entity.Strength, 50, Packet);
WriteUInt16(client.Entity.Agility, 52, Packet);
WriteUInt16(client.Entity.Vitality, 54, Packet);
WriteUInt16(client.Entity.Spirit, 56, Packet);
WriteUInt16(0/*Atributes*/, 58, Packet);
WriteUInt16((ushort)client.Entity.Hitpoints, 60, Packet);
WriteUInt16(client.Entity.Mana, 62, Packet);
WriteUInt16(0/*PKpoint*/, 64, Packet);
Packet[66] = (byte)client.Entity.Level;
Packet[67] = client.Entity.Class;
Packet[69] = client.Entity.Reborn;
Packet[70] = 1;
WriteUInt32(0/*QuizPoints*/, 71, Packet);
Packet[87] = 2;
WriteStringWithLength(client.Entity.Name, 88, Packet);
WriteStringWithLength(client.Entity.Spouse, 89 + Packet[88], Packet);
return Packet;
}
public void Send(GameClient client)
{
client.Send(ToArray());
}
}
}






