public void SetLevel(byte level, bool effect) { PlayerData.Level = level; UpdateClient(); byte[] packet = Util.PacketWithId(8, 192); packet[8] = 26; packet[9] = PlayerData.Level; WorldPacketHandler.SendPacket(Owner, packet); if (!effect) { return; } packet = Util.PacketWithId(11, 181); packet[8] = 7; packet[9] = (byte)Type; BitConverter.GetBytes(Id).CopyTo(packet, 10); packet[12] = PlayerData.Level; WorldPacketHandler.SendPacketToAllOnMap(World.MapList[MapId], Owner, packet); BitConverter.GetBytes((short)0).CopyTo(packet, 10); WorldPacketHandler.SendPacket(Owner, packet); }
public void SetPosition(short x, short y) { if (LastMovePos != null) { Vector2f oldPos = LastMovePos.GetEstimatedPos(20); // TODO: change this to actual move speed //Console.WriteLine(oldPos); LastMovePos = new MovePos(x, y, (short)oldPos.x, (short)oldPos.y); } else { LastMovePos = new MovePos(x, y, PosX, PosY); } PosX = x; PosY = y; UpdateClient(); byte[] packet = Util.PacketWithId(13, 179); packet[8] = (byte)Type; BitConverter.GetBytes(Id).CopyTo(packet, 9); BitConverter.GetBytes(PosX).CopyTo(packet, 11); BitConverter.GetBytes(PosY).CopyTo(packet, 13); WorldPacketHandler.SendPacketToAllOnMap(World.MapList[MapId], Owner, packet, false); if (Owner != null) { packet[9] = packet[10] = 0; WorldPacketHandler.SendPacket(Owner, packet, false); } }
public void ShowEmoticon(byte emoteId) { byte[] packet = Util.PacketWithId(11, 181); packet[8] = 22; packet[9] = (byte)Type; BitConverter.GetBytes(Id).CopyTo(packet, 10); packet[12] = emoteId; WorldPacketHandler.SendPacketToAllOnMap(World.MapList[MapId], Owner, packet); BitConverter.GetBytes((short)0).CopyTo(packet, 10); WorldPacketHandler.SendPacket(Owner, packet); }
public void SetDirection(byte dir) { Direction = dir; UpdateClient(); byte[] packet = Util.PacketWithId(11, 181); packet[8] = 18; packet[9] = (byte)Type; BitConverter.GetBytes(Id).CopyTo(packet, 10); packet[12] = dir; WorldPacketHandler.SendPacketToAllOnMap(World.MapList[MapId], Owner, packet); BitConverter.GetBytes((short)0).CopyTo(packet, 10); WorldPacketHandler.SendPacket(Owner, packet); }
public static void SendUserMessage(ClientState client, string user, string msg) { if (msg.Length > 255) { msg = msg.Substring(0, 255); // Limit string length to 1 byte } byte[] packet = Util.PacketWithId((short)(9 + msg.Length + user.Length), 186); packet[8] = 31; packet[9] = (byte)user.Length; packet[10] = (byte)msg.Length; Encoding.ASCII.GetBytes(user).CopyTo(packet, 11); Encoding.ASCII.GetBytes(msg).CopyTo(packet, 11 + user.Length); WorldPacketHandler.SendPacketToAllOnMap(World.MapList[client.PlayerObject.MapId], null, packet); }
public void DeleteObject(bool effect) { byte[] packet = Util.PacketWithId(10, 180); packet[8] = (byte)Type; packet[9] = BitConverter.GetBytes(effect)[0]; BitConverter.GetBytes(Id).CopyTo(packet, 10); WorldPacketHandler.SendPacketToAllOnMap(World.MapList[MapId], Owner, packet, false); if (Owner != null) { packet[9] = packet[10] = 0; WorldPacketHandler.SendPacket(Owner, packet, false); } }
public void SetStance(byte stance) { Stance = stance; UpdateClient(); byte[] packet = Util.PacketWithId(12, 181); packet[8] = 176; packet[9] = (byte)Type; BitConverter.GetBytes(Owner.PlayerObject.Id).CopyTo(packet, 10); packet[12] = stance; packet[13] = Direction; WorldPacketHandler.SendPacketToAllOnMap(World.MapList[MapId], Owner, packet); BitConverter.GetBytes((short)0).CopyTo(packet, 10); WorldPacketHandler.SendPacket(Owner, packet); }
public void LoadMap(ClientState client) { if (client.PlayerObject != null) { DeleteMapObject(client.PlayerObject, true); } client.PlayerObject = new PlayerObject(client, (short)(1 + PlayerList.Count), client.PlayerData); // id 0 is reserved PlayerList.Add(client.PlayerObject); byte[] packet = Util.CombinePackets( client.PlayerObject.SetPlayerIdPacket(), SetMapPacket(client.PlayerData.PosX, client.PlayerData.PosY), client.PlayerObject.SpawnPlayerPacket(true, true), BuildPacket(client), LoadMapPacket(), client.PlayerData.PlayerDataPacket() ); WorldPacketHandler.SendPacket(client, packet); // Spawn player for all other players on the map WorldPacketHandler.SendPacketToAllOnMap(this, client, Util.CombinePackets(client.PlayerObject.SpawnPlayerPacket(true, false), client.PlayerData.PlayerDataPacket()) ); }