Server.Gumps.HouseRemoveGump.OnResponse C# (CSharp) Méthode

OnResponse() public méthode

public OnResponse ( Server.Network.NetState state, RelayInfo info ) : void
state Server.Network.NetState
info RelayInfo
Résultat void
        public override void OnResponse(NetState state, RelayInfo info)
        {
            if (m_House.Deleted)
                return;

            Mobile from = state.Mobile;

            if (m_List != null && info.ButtonID == 1) // Remove now
            {
                if (m_House.IsOwner( from ))
                {
                    if (m_House.InternalizedVendors.Count > 0)
                    {
                        return;
                    }
                    else if (m_House.FindGuildstone() != null)
                    {
                        from.SendLocalizedMessage(501389); // You cannot redeed a house with a guildstone inside.
                        return;
                    }
                    else if (m_House.PlayerVendors.Count > 0)
                    {
                        from.SendLocalizedMessage(503236); // You need to collect your vendor's belongings before moving.
                        return;
                    }
                    else if (m_House.VendorInventories.Count > 0)
                    {
                        from.SendLocalizedMessage(1062681); // You cannot do that that while you still have unclaimed contract vendor inventory in your house.
                        return;
                    }

                    Item toGive = m_House.GetDeed();

                    if (toGive != null)
                    {
                        Container backpack = from.Backpack;

                        if (backpack == null)
                        {
                            from.SendLocalizedMessage(501393); // You do not seem to have a backpack.
                        }
                        else if (backpack.TryDropItem(from, toGive, false))
                        {
                            from.SendLocalizedMessage(501391); // You place the deed in your backpack.
                            m_House.RemoveKeys(from);
                            m_House.Delete();
                        }
                        else
                        {
                            from.SendLocalizedMessage(501390); // You do not have room in your backpack for a house deed.
                        }
                    }
                    else
                    {
                        from.SendLocalizedMessage(501294); // Redeeding the house has failed.
                    }
                }
                else
                {
                    from.SendLocalizedMessage(501320); // Only the house owner may do this.
                }
            }

            int[] switches = info.Switches;

            if (switches.Length > 0)
            {
                for (int i = 0; i < switches.Length; ++i)
                {
                    int index = switches[i];

                    if (index >= 0 && index < m_Copy.Count)
                        m_List.Remove(m_Copy[index]);
                }

                if (m_List.Count > 0)
                {
                    from.CloseGump(typeof(HouseGump));
                    from.CloseGump(typeof(HouseListGump));
                    from.CloseGump(typeof(HouseRemoveGump));
                    from.SendGump(new HouseRemoveGump(m_Number, m_List, m_House, m_AccountOf));
                    return;
                }
            }

            from.SendGump(new HouseGump(from, m_House));
        }
}