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 AddItem(Item item) { byte[] packet = Util.PacketWithId(15, 192); packet[8] = 52; item.ToBytes().CopyTo(packet, 9); 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 SetKron(int kron) { PlayerData.Kron = kron; UpdateClient(); byte[] packet = Util.PacketWithId(15, 192); packet[8] = 1; BitConverter.GetBytes((Int64)kron).CopyTo(packet, 9); WorldPacketHandler.SendPacket(Owner, packet); }
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 static void SendSystemMessage(ClientState client, string msg) { if (msg.Length > 255) { msg = msg.Substring(0, 255); // Limit string length to 1 byte } byte[] packet = Util.PacketWithId((short)(8 + msg.Length), 186); packet[8] = 160; packet[9] = (byte)msg.Length; Encoding.ASCII.GetBytes(msg).CopyTo(packet, 10); WorldPacketHandler.SendPacket(client, 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 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 AddSkillPoint(ClientState client, Skill skill) { if (SkillPoints <= 0) { return; } byte[] packet1 = Util.PacketWithId(9, 192); switch (skill) { case Skill.POW: packet1[8] = 33; packet1[9] = ++Power; break; case Skill.INT: packet1[8] = 34; packet1[9] = ++Intelligence; break; case Skill.STA: packet1[8] = 35; packet1[9] = ++Stamina; break; case Skill.AGI: packet1[8] = 36; packet1[9] = ++Agility; break; case Skill.MEN: packet1[8] = 37; packet1[9] = ++Mentality; break; case Skill.WIS: packet1[8] = 38; packet1[9] = ++Wisdom; break; } byte[] packet2 = Util.PacketWithId(9, 192); packet2[8] = 47; packet2[9] = --SkillPoints; WorldPacketHandler.SendPacket(client, Util.CombinePackets(packet1, packet2)); }
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()) ); }