private void HandleJumping(GameClient Client, GeneralData* Packet) { ushort X1 = Packet->ValueA; ushort Y1 = Packet->ValueB; if ((X1 != Client.Entity.Location.X) || (Y1 != Client.Entity.Location.Y)) { Client.Disconnect(); } else { ushort X2 = Packet->ValueD_High; ushort Y2 = Packet->ValueD_Low; Client.Entity.Angle = ConquerMath.GetAngle(Client.Entity.Location, new Location() { X = X2, Y = Y2 }); Client.Entity.Location.X = X2; Client.Entity.Location.Y = Y2; if (!Kernel.IsWalkable(Client.Entity.Location.MapID, Client.Entity.Location.X, Client.Entity.Location.Y)) { Client.Disconnect(); } else { Client.Send(Packet, Packet->Size); Client.SendScreen(Packet, Packet->Size); Kernel.GetScreen(Client, ConquerCallbackKernel.GetScreenReply); } } }
public override void Execute(GameClient Client, byte* pPacket) { CharacterCreation* Packet = (CharacterCreation*)pPacket; string Username = new string(Packet->Account, 0, 16).Trim('\x00'); string Name = new string(Packet->Name, 0, 16).Trim('\x00'); string Password = new string(Packet->Password, 0, 16).Trim('\x00'); Database.CreateCharacter(Client, Packet->Model, Packet->Class, Name); Client.Disconnect(); }
public override void Execute(GameClient Client, byte *pPacket) { CharacterCreation *Packet = (CharacterCreation *)pPacket; string Username = new string(Packet->Account, 0, 16).Trim('\x00'); string Name = new string(Packet->Name, 0, 16).Trim('\x00'); string Password = new string(Packet->Password, 0, 16).Trim('\x00'); Database.CreateCharacter(Client, Packet->Model, Packet->Class, Name); Client.Disconnect(); }
public override void Execute(GameClient Client, byte* pPacket) { EntityMovement* Packet = (EntityMovement*)pPacket; if (Packet->UID == Client.Entity.UID) { ConquerAngle Direction = (ConquerAngle)(Packet->Direction % 8); Client.Entity.Walk(Direction); if (!Kernel.IsWalkable(Client.Entity.Location.MapID, Client.Entity.Location.X, Client.Entity.Location.Y)) { Client.Disconnect(); } else { Client.SendScreen(Packet, Packet->Size, true); Kernel.GetScreen(Client, null); } } else { Client.Disconnect(); } }
private void HandleJumping(GameClient Client, GeneralData *Packet) { ushort X1 = Packet->ValueA; ushort Y1 = Packet->ValueB; if ((X1 != Client.Entity.Location.X) || (Y1 != Client.Entity.Location.Y)) { Client.Disconnect(); } else { ushort X2 = Packet->ValueD_High; ushort Y2 = Packet->ValueD_Low; Client.Entity.Angle = ConquerMath.GetAngle(Client.Entity.Location, new Location() { X = X2, Y = Y2 }); Client.Entity.Location.X = X2; Client.Entity.Location.Y = Y2; if (!Kernel.IsWalkable(Client.Entity.Location.MapID, Client.Entity.Location.X, Client.Entity.Location.Y)) { Client.Disconnect(); } else { Client.Send(Packet, Packet->Size); Client.SendScreen(Packet, Packet->Size); Kernel.GetScreen(Client, ConquerCallbackKernel.GetScreenReply); } } }
public override void Execute(GameClient Client, byte *pPacket) { EntityMovement *Packet = (EntityMovement *)pPacket; if (Packet->UID == Client.Entity.UID) { ConquerAngle Direction = (ConquerAngle)(Packet->Direction % 8); Client.Entity.Walk(Direction); if (!Kernel.IsWalkable(Client.Entity.Location.MapID, Client.Entity.Location.X, Client.Entity.Location.Y)) { Client.Disconnect(); } else { Client.SendScreen(Packet, Packet->Size, true); Kernel.GetScreen(Client, null); } } else { Client.Disconnect(); } }
public override void Execute(GameClient Client, byte *pPacket) { AuthMessage *Message = (AuthMessage *)pPacket; uint Token = Message->AccountID | 0xAABB; Token = Message->AccountID << 8 | Message->AccountID; Token = Token ^ 0x4321; Token = Token << 8 | Token; if (Token == Message->LoginToken) { Client.UID = Message->AccountID; Client.GenerateKeys(Message->LoginToken, Message->AccountID); if (Database.GetCharacterData(Client)) { Chat *Response = PacketHelper.CreateChat("SYSTEM", "ALLUSERS", "ANSWER_OK"); Response->ChatType = ChatType.LoginInformation; Response->ID = Message->AccountID; Client.Send(Response, Response->Size); Memory.Free(Response); CharacterInformation *Information = PacketHelper.CreateInformation(Client); Client.Send(Information, Information->Size); Memory.Free(Information); EntityManager.Add(Client); Client.Status = LoginStatus.Complete; } else { Chat *Response = PacketHelper.CreateChat("SYSTEM", "ALLUSERS", "NEW_ROLE"); Response->ChatType = ChatType.LoginInformation; Response->ID = Message->AccountID; Client.Send(Response, Response->Size); Memory.Free(Response); } } else { Client.Disconnect(); } }
public override void Execute(GameClient Client, byte* pPacket) { AuthMessage* Message = (AuthMessage*)pPacket; uint Token = Message->AccountID | 0xAABB; Token = Message->AccountID << 8 | Message->AccountID; Token = Token ^ 0x4321; Token = Token << 8 | Token; if (Token == Message->LoginToken) { Client.UID = Message->AccountID; Client.GenerateKeys(Message->LoginToken, Message->AccountID); if (Database.GetCharacterData(Client)) { Chat* Response = PacketHelper.CreateChat("SYSTEM", "ALLUSERS", "ANSWER_OK"); Response->ChatType = ChatType.LoginInformation; Response->ID = Message->AccountID; Client.Send(Response, Response->Size); Memory.Free(Response); CharacterInformation* Information = PacketHelper.CreateInformation(Client); Client.Send(Information, Information->Size); Memory.Free(Information); EntityManager.Add(Client); Client.Status = LoginStatus.Complete; } else { Chat* Response = PacketHelper.CreateChat("SYSTEM", "ALLUSERS", "NEW_ROLE"); Response->ChatType = ChatType.LoginInformation; Response->ID = Message->AccountID; Client.Send(Response, Response->Size); Memory.Free(Response); } } else { Client.Disconnect(); } }