public static void HandlePacket(object session, string packet) { string[] packetSplit = packet.Split(' '); if (packetSplit.Length < 3) { return; } MinilandRemoveObject packetDefinition = new MinilandRemoveObject(); if (short.TryParse(packetSplit[2], out short slot)) { packetDefinition.Slot = slot; packetDefinition.ExecuteHandler(session as ClientSession); } }
private void ExecuteHandler(ClientSession session) { ItemInstance minilandobject = session.Character.Inventory.LoadBySlotAndType <ItemInstance>(Slot, InventoryType.Miniland); if (minilandobject != null) { if (session.Character.MinilandObjects.All(s => s.ItemInstanceId != minilandobject.Id)) { if (session.Character.MinilandState == MinilandState.Lock) { MinilandObject minilandobj = new MinilandObject { CharacterId = session.Character.CharacterId, ItemInstance = minilandobject, ItemInstanceId = minilandobject.Id, MapX = PositionX, MapY = PositionY, Level1BoxAmount = 0, Level2BoxAmount = 0, Level3BoxAmount = 0, Level4BoxAmount = 0, Level5BoxAmount = 0 }; if (minilandobject.Item.ItemType == ItemType.House) { switch (minilandobject.Item.ItemSubType) { case 2: minilandobj.MapX = 31; minilandobj.MapY = 3; break; case 0: minilandobj.MapX = 24; minilandobj.MapY = 7; break; case 1: minilandobj.MapX = 21; minilandobj.MapY = 4; break; } MinilandObject min = session.Character.MinilandObjects.Find(s => s.ItemInstance.Item.ItemType == ItemType.House && s.ItemInstance.Item.ItemSubType == minilandobject.Item.ItemSubType); if (min != null) { MinilandRemoveObject.HandlePacket(session, $"1 rmobj {Slot}"); } } if (minilandobject.Item.IsMinilandObject) { session.Character.WareHouseSize = minilandobject.Item.MinilandObjectPoint; } session.Character.MinilandObjects.Add(minilandobj); session.SendPacket(minilandobj.GenerateMinilandEffect(false)); session.SendPacket(session.Character.GenerateMinilandPoint()); session.SendPacket(minilandobj.GenerateMinilandObject(false)); } else { session.SendPacket( UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("MINILAND_NEED_LOCK"), 0)); } } else { session.SendPacket( UserInterfaceHelper.GenerateMsg( Language.Instance.GetMessageFromKey("ALREADY_THIS_MINILANDOBJECT"), 0)); } } }