Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
 }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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())
                                                    );
        }