public void MinilandRemoveObject(RmvobjPacket packet) { ItemInstance minilandobject = Session.Character.Inventory.LoadBySlotAndType <ItemInstance>(packet.Slot, InventoryType.Miniland); if (minilandobject != null) { if (Session.Character.MinilandState == MinilandState.LOCK) { MinilandObject mo = Session.Character.MinilandObjects.FirstOrDefault(s => s.ItemInstanceId == minilandobject.Id); if (mo != null) { if (minilandobject.Item.IsMinilandObject) { Session.Character.WareHouseSize = 0; } Session.Character.MinilandObjects.Remove(mo); Session.SendPacket(mo.GenerateMinilandEffect(true)); Session.SendPacket(Session.Character.GenerateMinilandPoint()); Session.SendPacket(mo.GenerateMinilandObject(true)); } } else { Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("MINILAND_NEED_LOCK"), 0)); } } }
private void ExecuteHandler(ClientSession session) { ItemInstance minilandobject = session.Character.Inventory.LoadBySlotAndType <ItemInstance>(Slot, InventoryType.Miniland); if (minilandobject != null) { if (session.Character.MinilandState == MinilandState.Lock) { MinilandObject minilandObject = session.Character.MinilandObjects.Find(s => s.ItemInstanceId == minilandobject.Id); if (minilandObject != null) { if (minilandobject.Item.IsMinilandObject) { session.Character.WareHouseSize = 0; } session.Character.MinilandObjects.Remove(minilandObject); session.SendPacket(minilandObject.GenerateMinilandEffect(true)); session.SendPacket(session.Character.GenerateMinilandPoint()); session.SendPacket(minilandObject.GenerateMinilandObject(true)); } } else { session.SendPacket( UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("MINILAND_NEED_LOCK"), 0)); } } }
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)); } } }
public void MinilandAddObject(AddobjPacket packet) { ItemInstance minilandobject = Session.Character.Inventory.LoadBySlotAndType <ItemInstance>(packet.Slot, InventoryType.Miniland); if (minilandobject != null) { if (Session.Character.MinilandObjects.All(s => s.ItemInstanceId != minilandobject.Id)) { if (Session.Character.MinilandState == MinilandState.LOCK) { MinilandObject mo = new MinilandObject { CharacterId = Session.Character.CharacterId, ItemInstance = minilandobject, ItemInstanceId = minilandobject.Id, MapX = packet.PositionX, MapY = packet.PositionY, Level1BoxAmount = 0, Level2BoxAmount = 0, Level3BoxAmount = 0, Level4BoxAmount = 0, Level5BoxAmount = 0 }; if (minilandobject.Item.ItemType == ItemType.House) { switch (minilandobject.Item.ItemSubType) { case 2: mo.MapX = 31; mo.MapY = 3; break; case 0: mo.MapX = 24; mo.MapY = 7; break; case 1: mo.MapX = 21; mo.MapY = 4; break; } MinilandObject min = Session.Character.MinilandObjects.FirstOrDefault(s => s.ItemInstance.Item.ItemType == ItemType.House && s.ItemInstance.Item.ItemSubType == minilandobject.Item.ItemSubType); if (min != null) { MinilandRemoveObject(new RmvobjPacket { Slot = min.ItemInstance.Slot }); } } if (minilandobject.Item.IsMinilandObject) { Session.Character.WareHouseSize = minilandobject.Item.MinilandObjectPoint; } Session.Character.MinilandObjects.Add(mo); Session.SendPacket(mo.GenerateMinilandEffect(false)); Session.SendPacket(Session.Character.GenerateMinilandPoint()); Session.SendPacket(mo.GenerateMinilandObject(false)); } else { Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("MINILAND_NEED_LOCK"), 0)); } } else { Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("ALREADY_THIS_MINILANDOBJECT"), 0)); } } }