コード例 #1
0
        public void CHAR_ITEM_SET_SLOT_MODEL(Client client, ApiPacket packet)
        {
            var charId    = packet.ReadUInt32();
            var slotIndex = packet.ReadUInt16();
            var modelID   = packet.ReadUInt16();

            Player player = null;

            lock (Player._Players)
                player = Player._Players.Where(e => e.CharacterId == charId).FirstOrDefault();
            if (player != null)
            {
                var Out  = new PacketOut(0xAA);
                var item = player.ItmInterface.GetItemInSlot(slotIndex);
                if (item != null)
                {
                    Out.WriteByte(1);
                    Out.Fill(0, 3);
                    Item.BuildItem(ref Out, item, null, null, slotIndex, 0, player);
                    var pos = Out.Position;
                    Out.Position = 14;
                    Out.WriteUInt16(modelID);
                    Out.Position = pos;
                    player.SendPacket(Out);

                    Out = new PacketOut(0xBD); //F_PLAYER_INVENTORY
                    Out.WriteUInt16(player.Oid);
                    Out.WriteUInt16(1);
                    Out.WriteUInt16(slotIndex);
                    Out.WriteUInt16(modelID);
                    Out.WriteByte(0);
                    player.DispatchPacket(Out, false);
                }
            }
        }
コード例 #2
0
        public void CHAR_TELEPORT(Client client, ApiPacket packet)
        {
            var charId = packet.ReadUInt32();
            var zoneId = packet.ReadUInt16();
            var x      = packet.ReadUInt32();
            var y      = packet.ReadUInt32();
            var z      = packet.ReadUInt16();

            Player player = null;

            lock (Player._Players)
                player = Player._Players.Where(e => e.CharacterId == charId).FirstOrDefault();
            if (player != null)
            {
                player.Teleport(zoneId, x, y, (ushort)ClientFileMgr.GetHeight((int)zoneId, (int)x, (int)y), player.Heading);
            }
        }
コード例 #3
0
        public void CHAR_SEND_PACKET(Client client, ApiPacket packet)
        {
            var op     = packet.ReadByte();
            var charId = packet.ReadUInt32();
            var data   = packet.ReadByteArray();

            Player player = null;

            lock (Player._Players)
                player = Player._Players.Where(e => e.CharacterId == charId).FirstOrDefault();
            if (player != null)
            {
                var Out = new PacketOut(op);
                Out.Write(data, 0, data.Length);
                player.SendPacket(Out);
            }
        }
コード例 #4
0
        public void SET_IMAGE_NUM(Client client, ApiPacket packet)
        {
            var charId    = packet.ReadUInt32();
            var monsterID = packet.ReadUInt16();

            Player player = null;

            lock (Player._Players)
                player = Player._Players.Where(e => e.CharacterId == charId).FirstOrDefault();
            if (player != null)
            {
                var Out = new PacketOut(0x73);
                Out.WriteUInt16(player.Oid);
                Out.WriteUInt16(monsterID);
                Out.Fill(0, 18);
                player.DispatchPacket(Out, true);
            }
        }