public void Louer(Mobile from) { if (!Banker.Withdraw(from, this.PrixLocation)) { from.SendMessage("Vous n'avez pas assez d'argent sur votre compte."); } else { from.SendMessage("Vous louez le batiment."); Proprio = from; m_Owned = true; from.SendMessage("Sous quel nom voulez-vous l'enregistrer ?"); from.Prompt = new OwnerNamePrompt(this); GenerateKey.GenerateNewKey(from, Porte1, 1); GenerateKey.GenerateNewKey(from, Porte2, 1); } }
// Deux sous fonctions qui permettent de vider la zone de location, lorsque le proprio perd la maison. private void DumpItems() { if (m_Container != null) { WoodenBox b = new WoodenBox(); b.MaxItems = int.MaxValue; b.Name = m_OwnerName; List <Item> toMove = new List <Item>(); Rectangle2D rect = new Rectangle2D(RegionPoint1, RegionPoint2); IPooledEnumerable <Item> list = Map.Felucca.GetItemsInBounds(rect); foreach (Item i in list) { if (i != null && !(i is BaseDoor)) { toMove.Add(i); } } list.Free(); for (int i = 0; i < toMove.Count; ++i) { b.DropItem(toMove[i]); toMove[i].Movable = true; } // Seulement ouvrable par le owner, qui obtient une nouvelle clef à chaque fois. GenerateKey.GenerateNewKey(m_Proprio, b, 1); b.Locked = true; // Ajout de la boite lockée dans le container lié à la maison. m_Container.DropItem(b); b.CanBeAltered = false; b.Movable = false; } }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { int val = info.ButtonID; switch (val) { default: break; case 1: { m_item.Louer(m_from); break; } case 2: { m_item.MontrerProprio = !m_item.MontrerProprio; break; } case 3: { m_from.SendMessage("Sous quel nom voulez-vous enregistrer le batiment ?"); m_from.Prompt = new OwnerNamePrompt(m_item); break; } case 4: { m_from.Target = new AddTargetCoproprio(m_item); m_from.SendMessage("Qui desirez vous ajouter comme coproprietaire?"); break; } case 5: { m_item.CoProprio[0] = null; break; } case 6: { m_item.CoProprio[1] = null; break; } case 7: { m_item.CoProprio[2] = null; break; } case 8: { m_from.Target = new AddTargetChangeProprio(m_item); m_from.SendMessage("A qui voulez vous transferer la maison?"); break; } case 9: { if (m_item.Porte1 != null) { if (!GenerateKey.GenerateKeyFor(m_from, m_item.Porte1, 1)) { GenerateKey.GenerateNewKey(m_from, m_item.Porte1, 1); } } break; } case 10: { if (m_item.Porte2 != null) { if (!GenerateKey.GenerateKeyFor(m_from, m_item.Porte2, 1)) { GenerateKey.GenerateNewKey(m_from, m_item.Porte2, 1); } } break; } case 11: { m_item.Disown(); break; } } }