Ejemplo n.º 1
0
        public static void GiveItem(Mobile from, Item item, int amount, int give, int access)
        {
            bool done = true;

            if (give == (int)AddToBankGump.Switches.GiveToAccount)
            {
                done = AddToBank.GiveItemToAccounts(item, amount);
            }
            else if (give == (int)AddToBankGump.Switches.GiveToCharacter)
            {
                done = AddToBank.GiveItemToCharacters(item, amount);
            }
            else if (give == (int)AddToBankGump.Switches.GiveToAccessLevel)
            {
                done = AddToBank.GiveItemToAccessLevel(item, amount, access);
            }

            if (!done)
            {
                from.SendMessage("Unable to give out to 1 or more players.");
            }
            else
            {
                from.SendMessage("Completed.");
            }
        }
Ejemplo n.º 2
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            Mobile from = sender.Mobile;

            string TypeName = string.Empty;
            int    GiveRule = 0;
            int    Access   = 0;

            foreach (int sw in info.Switches)
            {
                switch (sw)
                {
                case (int)Switches.GiveToCharacter:
                {
                    GiveRule = (int)Switches.GiveToCharacter;
                    break;
                }

                case (int)Switches.GiveToAccount:
                {
                    GiveRule = (int)Switches.GiveToAccount;
                    break;
                }

                case (int)Switches.GiveToAccessLevel:
                {
                    GiveRule = (int)Switches.GiveToAccessLevel;
                    break;
                }

                case (int)Switches.Administrator:
                case (int)Switches.GameMaster:
                case (int)Switches.Seer:
                case (int)Switches.Counselor:
                {
                    Access += sw;
                    break;
                }
                }
            }
            if (GiveRule == 0)
            {
                from.SendMessage("You must select the audience rule to receive the item.");
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                return;
            }
            else if (GiveRule == (int)Switches.GiveToAccessLevel && Access == 0)
            {
                from.SendMessage("You must select the AccessLevel to receive the item.");
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                return;
            }

            switch (info.ButtonID)
            {
            case (int)Buttons.GiveByTarget:
            {
                from.Target = new AddToBank.DupeTarget(false, m_Amount, GiveRule, Access);
                from.SendMessage("What do you wish to give out?");
                break;
            }

            case (int)Buttons.GiveByType:
            {
                if (info.TextEntries.Length > 0)
                {
                    TypeName = info.TextEntries[0].Text;
                }

                if (TypeName == string.Empty)
                {
                    from.SendMessage("You must specify a type");
                    from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                }
                else
                {
                    Type type = ScriptCompiler.FindTypeByName(TypeName, true);
                    if (type == null)
                    {
                        from.SendMessage("{0} is not a valid type", type);
                        from.SendGump(new AddToBankGump(GiveRule, Access, string.Empty, m_Amount));
                        return;
                    }
                    else
                    {
                        object obj = Activator.CreateInstance(type);
                        if (obj is Item)
                        {
                            AddToBank.GiveItem(from, (Item)obj, m_Amount, GiveRule, Access);
                        }
                        else
                        {
                            from.SendMessage("You may only duplicate items.");
                        }
                    }
                }
                break;
            }

            case (int)Buttons.IncAmount:
            {
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, ++m_Amount));
                break;
            }

            case (int)Buttons.DecAmount:
            {
                if (m_Amount > 1)
                {
                    m_Amount -= 1;
                }
                else
                {
                    from.SendMessage("You cannot give less than 1 item.");
                }
                from.SendGump(new AddToBankGump(GiveRule, Access, TypeName, m_Amount));
                break;
            }
            }
        }