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); } } }
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); } }
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); } }
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); } }