Beispiel #1
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            PlayerMobile pm = from as PlayerMobile;

            if (info.ButtonID == 1)
            {
                BankBox bank = from.BankBox;

                if (bank == null)
                {
                    return;
                }

                Accounting.Account acct = from.Account as Accounting.Account;

                switch (token.Type)
                {
                case PromotionalType.SoulStone:
                {
                    SoulStone ss = new SoulStone(acct.Username);

                    bank.DropItem(ss);

                    from.SendLocalizedMessage(1070743);                                       // A Soulstone has been created in your bank box!

                    break;
                }

                case PromotionalType.SoulStoneFragment:
                {
                    int offset = Utility.Random(0, 8);

                    SoulStoneFragment ssf = new SoulStoneFragment(0x2AA1 + offset, acct.Username);

                    bank.DropItem(ssf);

                    from.SendLocalizedMessage(1070976);                                       // A soulstone fragment has been created in your bank box.

                    break;
                }

                case PromotionalType.AdvancedCharacter:
                {
                    pm.SendGump(new AdvancedCharacterChoiceGump());

                    pm.ACState = AdvancedCharacterState.InUse;

                    break;
                }
                    // TODO: character transfer, seventh anniversary
                }

                token.Delete();
            }
        }
Beispiel #2
0
        public override void OnResponse( GameClient sender, RelayInfo info )
        {
            PlayerMobile pm = from as PlayerMobile;

            if ( info.ButtonID == 1 )
            {
                BankBox bank = from.BankBox;

                if ( bank == null )
                    return;

                Accounting.Account acct = from.Account as Accounting.Account;

                switch ( token.Type )
                {
                    case PromotionalType.SoulStone:
                        {
                            SoulStone ss = new SoulStone( acct.Username );

                            bank.DropItem( ss );

                            from.SendLocalizedMessage( 1070743 ); // A Soulstone has been created in your bank box!

                            break;
                        }
                    case PromotionalType.BlueSoulstone:
                        {
                            SoulStone ss = new BlueSoulstone( acct.Username );

                            bank.DropItem( ss );

                            from.SendMessage( "A Blue Soulstone has been created in your bank box!" );

                            break;
                        }
                    case PromotionalType.SoulStoneFragment:
                        {
                            int offset = Utility.Random( 0, 8 );

                            SoulStoneFragment ssf = new SoulStoneFragment( 0x2AA1 + offset, acct.Username );

                            bank.DropItem( ssf );

                            from.SendLocalizedMessage( 1070976 ); // A soulstone fragment has been created in your bank box.

                            break;
                        }
                    case PromotionalType.AdvancedCharacter:
                        {
                            pm.SendGump( new AdvancedCharacterChoiceGump() );

                            pm.ACState = AdvancedCharacterState.InUse;

                            break;
                        }
                    case PromotionalType.SeventhAnniversary:
                        {
                            //Cerramos algún posible gump abierto (exploit arreglado)
                            if ( !pm.HasGump( typeof( SeventhAniversaryGump ) ) )
                                pm.SendGump( new SeventhAniversaryGump( token ) );

                            break;
                        }
                    case PromotionalType.EighthAnniversary:
                        {
                            //Cerramos algún posible gump abierto (exploit arreglado)
                            if ( !pm.HasGump( typeof( EighthAnniversaryGump ) ) )
                                pm.SendGump( new EighthAnniversaryGump( token ) );

                            break;
                        }
                    case PromotionalType.BrokenFurniture:
                        {
                            //Cerramos algún posible gump abierto (exploit arreglado)
                            if ( !pm.HasGump( typeof( BrokenFurnitureGump ) ) )
                                pm.SendGump( new BrokenFurnitureConfirmGump( token ) );

                            break;
                        }
                    case PromotionalType.HeritageItems:
                        {
                            //Cerramos algún posible gump abierto (exploit arreglado)
                            if ( !pm.HasGump( typeof( HeritageItemsGump ) ) )
                                pm.SendGump( new HeritageItemsConfirmGump( token ) );

                            break;
                        }
                    case PromotionalType.EvilHomeDecoration:
                        {
                            //Cerramos algún posible gump abierto (exploit arreglado)
                            if ( !pm.HasGump( typeof( EvilHomeDecorationGump ) ) )
                                pm.SendGump( new EvilHomeDecorationConfirmGump( token ) );

                            break;
                        }
                    // TODO: character transfer
                }

                if ( token.Type != PromotionalType.SeventhAnniversary &&
                     token.Type != PromotionalType.EighthAnniversary )
                    token.Delete();
            }
        }
Beispiel #3
0
        public override void OnResponse(GameClient sender, RelayInfo info)
        {
            PlayerMobile pm = from as PlayerMobile;

            if (info.ButtonID == 1)
            {
                BankBox bank = from.BankBox;

                if (bank == null)
                {
                    return;
                }

                Accounting.Account acct = from.Account as Accounting.Account;

                switch (token.Type)
                {
                case PromotionalType.SoulStone:
                {
                    SoulStone ss = new SoulStone(acct.Username);

                    bank.DropItem(ss);

                    from.SendLocalizedMessage(1070743);                                       // A Soulstone has been created in your bank box!

                    break;
                }

                case PromotionalType.BlueSoulstone:
                {
                    SoulStone ss = new BlueSoulstone(acct.Username);

                    bank.DropItem(ss);

                    from.SendMessage("A Blue Soulstone has been created in your bank box!");

                    break;
                }

                case PromotionalType.SoulStoneFragment:
                {
                    int offset = Utility.Random(0, 8);

                    SoulStoneFragment ssf = new SoulStoneFragment(0x2AA1 + offset, acct.Username);

                    bank.DropItem(ssf);

                    from.SendLocalizedMessage(1070976);                                       // A soulstone fragment has been created in your bank box.

                    break;
                }

                case PromotionalType.AdvancedCharacter:
                {
                    pm.SendGump(new AdvancedCharacterChoiceGump());

                    pm.ACState = AdvancedCharacterState.InUse;

                    break;
                }

                case PromotionalType.SeventhAnniversary:
                {
                    //Cerramos algún posible gump abierto (exploit arreglado)
                    if (!pm.HasGump(typeof(SeventhAniversaryGump)))
                    {
                        pm.SendGump(new SeventhAniversaryGump(token));
                    }

                    break;
                }

                case PromotionalType.EighthAnniversary:
                {
                    //Cerramos algún posible gump abierto (exploit arreglado)
                    if (!pm.HasGump(typeof(EighthAnniversaryGump)))
                    {
                        pm.SendGump(new EighthAnniversaryGump(token));
                    }

                    break;
                }

                case PromotionalType.BrokenFurniture:
                {
                    //Cerramos algún posible gump abierto (exploit arreglado)
                    if (!pm.HasGump(typeof(BrokenFurnitureGump)))
                    {
                        pm.SendGump(new BrokenFurnitureConfirmGump(token));
                    }

                    break;
                }

                case PromotionalType.HeritageItems:
                {
                    //Cerramos algún posible gump abierto (exploit arreglado)
                    if (!pm.HasGump(typeof(HeritageItemsGump)))
                    {
                        pm.SendGump(new HeritageItemsConfirmGump(token));
                    }

                    break;
                }

                case PromotionalType.EvilHomeDecoration:
                {
                    //Cerramos algún posible gump abierto (exploit arreglado)
                    if (!pm.HasGump(typeof(EvilHomeDecorationGump)))
                    {
                        pm.SendGump(new EvilHomeDecorationConfirmGump(token));
                    }

                    break;
                }
                    // TODO: character transfer
                }

                if (token.Type != PromotionalType.SeventhAnniversary &&
                    token.Type != PromotionalType.EighthAnniversary)
                {
                    token.Delete();
                }
            }
        }
Beispiel #4
0
            public override void OnResponse(NetState sender, RelayInfo info)
            {
                if (info.ButtonID == 0 || m_Stone.IsEmpty)
                {
                    return;
                }

                Mobile from = sender.Mobile;

                if (!m_Stone.CheckUse(from))
                {
                    return;
                }

                if (info.ButtonID == 601)                   // Remove skill points
                {
                    from.SendGump(new ConfirmRemovalGump(m_Stone));
                    return;
                }

                double skillValue = m_Stone.SkillValue;
                Skill  fromSkill  = from.Skills[m_Stone.Skill];

                /* If we have, say, 88.4 in our skill and the stone holds 100, we need
                 * 11.6 free points. Also, if we're below our skillcap by, say, 8.2 points,
                 * we only need 11.6 - 8.2 = 3.4 points.
                 */
                int requiredAmount = (int)(skillValue * 10) - fromSkill.BaseFixedPoint - (from.SkillsCap - from.SkillsTotal);

                bool cannotAbsorb = false;

                if (fromSkill.Lock != SkillLock.Up)
                {
                    cannotAbsorb = true;
                }
                else if (requiredAmount > 0)
                {
                    int available = 0;

                    for (int i = 0; i < from.Skills.Length; ++i)
                    {
                        if (from.Skills[i].Lock != SkillLock.Down)
                        {
                            continue;
                        }

                        available += from.Skills[i].BaseFixedPoint;
                    }

                    if (requiredAmount > available)
                    {
                        cannotAbsorb = true;
                    }
                }

                if (cannotAbsorb)
                {
                    // <CENTER>Unable to Absorb Selected Skill from Soulstone</CENTER>

                    /* You cannot absorb the selected skill from the Soulstone at this time. The selected
                     * skill may be locked or set to lower in your skill menu. You may also be at your
                     * total skill cap.  Click on "Skills" in your paperdoll menu to check your
                     * raise/locked/lower settings and your total skills.  Make any needed adjustments,
                     * then click "Continue". If you do not wish to transfer the selected skill at this
                     * time, click "Cancel".
                     */

                    from.SendGump(new ErrorGump(m_Stone, 1070717, 1070716));
                    return;
                }

                if (skillValue > fromSkill.Cap)
                {
                    // <CENTER>Unable to Absorb Selected Skill from Soulstone</CENTER>

                    /* The amount of skill stored in this stone exceeds your individual skill cap for
                     * that skill.  In order to retrieve the skill points stored in this stone, you must
                     * obtain a Power Scroll of the appropriate type and level in order to increase your
                     * skill cap.  You cannot currently retrieve the skill points stored in this stone.
                     */

                    from.SendGump(new ErrorGump(m_Stone, 1070717, 1070715));
                    return;
                }

                if (fromSkill.Base >= skillValue)
                {
                    // <CENTER>Unable to Absorb Selected Skill from Soulstone</CENTER>

                    /* You cannot transfer the selected skill to the Soulstone at this time. The selected
                     * skill has a skill level higher than what is stored in the Soulstone.
                     */

                    // Wrong message?!

                    from.SendGump(new ErrorGump(m_Stone, 1070717, 1070802));
                    return;
                }

                if (requiredAmount > 0)
                {
                    for (int i = 0; i < from.Skills.Length; ++i)
                    {
                        if (from.Skills[i].Lock != SkillLock.Down)
                        {
                            continue;
                        }

                        if (requiredAmount >= from.Skills[i].BaseFixedPoint)
                        {
                            requiredAmount     -= from.Skills[i].BaseFixedPoint;
                            from.Skills[i].Base = 0.0;
                        }
                        else
                        {
                            from.Skills[i].BaseFixedPoint -= requiredAmount;
                            break;
                        }
                    }
                }

                fromSkill.Base     = skillValue;
                m_Stone.SkillValue = 0.0;

                m_Stone.NextUse = DateTime.UtcNow + m_Stone.UseDelay;

                if (m_Stone is SoulStoneFragment)
                {
                    SoulStoneFragment ssf = m_Stone as SoulStoneFragment;

                    ssf.UsesRemaining--;

                    if (ssf.UsesRemaining == 0)
                    {
                        from.SendLocalizedMessage(1070974);                           // You have used up your soulstone fragment.
                    }
                }
                else
                {
                    from.SendLocalizedMessage(1070713);                       // You have successfully absorbed the Soulstone's skill points.

                    Effects.SendLocationParticles(EffectItem.Create(from.Location, from.Map, EffectItem.DefaultDuration), 0, 0, 0, 0, 0, 5060, 0);
                    Effects.PlaySound(from.Location, from.Map, 0x243);

                    int k = (m_Stone is SoulStoneFragment) ? 3 : 1;

                    for (int i = 1; i < k; i++)
                    {
                        Effects.SendMovingParticles(new DummyEntity(Server.Serial.Zero, new Point3D(from.X - 6, from.Y - 6, from.Z + 15), from.Map), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100);
                    }

                    Effects.SendTargetParticles(from, 0x375A, 35, 90, 0x00, 0x00, 9502, (EffectLayer)255, 0x100);
                }
            }
Beispiel #5
0
        private bool CheckUse(Mobile from)
        {
            DateTime now = DateTime.UtcNow;

            if (this.Deleted || !this.IsAccessibleTo(from))
            {
                return(false);
            }
            else if (from.Map != this.Map || !from.InRange(GetWorldLocation(), 2))
            {
                from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045);                   // I can't reach that.
                return(false);
            }
            else if (this.Account != null && (!(from.Account is Account) || ((Account)from.Account).Username != this.Account))
            {
                from.SendLocalizedMessage(1070714);                   // This is an Account Bound Soulstone, and your character is not bound to it.  You cannot use this Soulstone.
                return(false);
            }
            else if (CheckCombat(from, TimeSpan.FromMinutes(2.0)))
            {
                from.SendLocalizedMessage(1070727);                   // You must wait two minutes after engaging in combat before you can use a Soulstone.
                return(false);
            }
            else if (from.Criminal)
            {
                from.SendLocalizedMessage(1070728);                   // You must wait two minutes after committing a criminal act before you can use a Soulstone.
                return(false);
            }
            else if (from.Region.GetLogoutDelay(from) > TimeSpan.Zero)
            {
                from.SendLocalizedMessage(1070729);                   // In order to use your Soulstone, you must be in a safe log-out location.
                return(false);
            }
            else if (!from.Alive)
            {
                from.SendLocalizedMessage(1070730);                   // You may not use a Soulstone while your character is dead.
                return(false);
            }
            else if (Factions.Sigil.ExistsOn(from))
            {
                from.SendLocalizedMessage(1070731);                   // You may not use a Soulstone while your character has a faction town sigil.
                return(false);
            }
            else if (from.Spell != null && from.Spell.IsCasting)
            {
                from.SendLocalizedMessage(1070733);                   // You may not use a Soulstone while your character is casting a spell.
                return(false);
            }
            else if (from.Poisoned)
            {
                from.SendLocalizedMessage(1070734);                   // You may not use a Soulstone while your character is poisoned.
                return(false);
            }
            else if (from.Paralyzed)
            {
                from.SendLocalizedMessage(1070735);                   // You may not use a Soulstone while your character is paralyzed.
                return(false);
            }
            else if (now < this.NextUse)
            {
                TimeSpan time = this.NextUse - now;

                if (time.TotalHours > 0.0)
                {
                    from.SendLocalizedMessage(1070736, ((int)time.TotalHours).ToString());                          // You must wait ~1_hours~ hours before you can use your Soulstone.
                }
                else if (time.TotalMinutes > 0.0)
                {
                    from.SendLocalizedMessage(1070737, ((int)time.TotalMinutes).ToString());                          // You must wait ~1_minutes~ minutes before you can use your Soulstone.
                }
                else
                {
                    from.SendLocalizedMessage(1070738, ((int)time.TotalSeconds).ToString());                          // You must wait ~1_seconds~ seconds before you can use your Soulstone.
                }
                return(false);
            }
            else if (this is SoulStoneFragment)
            {
                SoulStoneFragment ssf = this as SoulStoneFragment;

                if (ssf.UsesRemaining <= 0)
                {
                    from.SendLocalizedMessage(1070975);                       // That soulstone fragment has no more uses.
                    return(false);
                }

                return(true);
            }
            else
            {
                return(true);
            }
        }
        public static Item GetItem(int productNumber)
		{
			Item item = null;

			switch (productNumber)
			{
				case 16133:
					item = new EtherealHorse();
					break;
				case 16134:
					item = new EtherealLlama();
					break;
				case 16135:
					item = new EtherealOstard();
					break;
				case 16136:
					item = new KillBook();
					break;
				case 16137:
					item = new Bag();
					((Bag)item).DropItem(new SpidersSilk(50000));
					((Bag)item).DropItem(new Nightshade(50000));
					((Bag)item).DropItem(new Bloodmoss(50000));
					((Bag)item).DropItem(new MandrakeRoot(50000));
					((Bag)item).DropItem(new Ginseng(50000));
					((Bag)item).DropItem(new Garlic(50000));
					((Bag)item).DropItem(new BlackPearl(50000));
					((Bag)item).DropItem(new SulfurousAsh(50000));
					break;
				case 16138:
					item = new SpecialDonateDye();
					break;
				case 16141:
					item = new Sandals();
                                        item.Name = "magic threads";
					item.Hue = 5;
					item.LootType = LootType.Blessed;
					break;
				case 16142:
					item = new Sandals();
                                        item.Name = "magic threads";
					item.Hue = 110;
					item.LootType = LootType.Blessed;
					break;
				case 16139:
					item = new Sandals();
                                        item.Name = "magic threads";
					item.Hue = 90;
					item.LootType = LootType.Blessed;
					break;
				case 16140:
					item = new Sandals();
                                        item.Name = "magic threads";
					item.Hue = 70;
					item.LootType = LootType.Blessed;
					break;
				case 16143:
					item = new HoodedShroudOfShadows();
					item.Name = "a rare agapite shroud";
					item.Hue = 2425;
					item.LootType = LootType.Blessed;
                                        break;
				case 16144:
					item = new ValoriteDonationBox();
					break;
				case 16145:
					item = new SilverDonationBox();
					break;
				case 16146:
					item = new GoldenDonationBox();
					break;
				case 16147:
					item = new SurvivalPack();
					break;
				case 16148:
					item = new EtherealSkeletal();
					break;
				case 16149:
					item = new WeddingDeed();
					break;
				case 16150:
					item = new DonationSandals();
					break;
				case 16151:
					item = new DonationBandana();
					break;
				case 16152:
					item = new MembershipTicket();
					((MembershipTicket)item).MemberShipTime = TimeSpan.FromDays(30);
					break;
				case 16153:
					item = new MembershipTicket();
					((MembershipTicket)item).MemberShipTime = TimeSpan.FromDays(90);
					break;
				case 16154:
					item = new MembershipTicket();
					((MembershipTicket)item).MemberShipTime = TimeSpan.FromDays(180);
					break;
				case 16155:
					item = new MembershipTicket();
					((MembershipTicket)item).MemberShipTime = TimeSpan.FromDays(360);
					break;
				case 16156:
					item = new SexChangeDeed();
					item.LootType = LootType.Blessed;
                                        break;
				case 16157:
					item = new Item(5360);
					item.Name = "a Character Transfer Ticket";
                                        item.Hue = 1266;
					item.LootType = LootType.Blessed;
					break;
				case 16158:
					item = new LayerSashDeed();
                                        item.LootType = LootType.Blessed;
                                        break;
				case 16159:
					item = new EtherealUnicorn();
					break;
				case 16160:
					item = new AOSHouseDeed7x12();
					break;
				case 16161:
					item = new AOSHouseDeed12x7();
					break;
				case 16162:
					item = new AOSHouseDeed15x12();
					break;
				case 16163:
					item = new AOSHouseDeed12x15();
					break;
				case 16164:
					item = new AOSHouseDeed18x18();
					break;
				case 16165:
					item = new DonationSkillBall( 1 );
					break;
				case 16166:
					item = new DonationSkillBall( 5 );
					break;
				case 16167:
					item = new DonationSkillBall( 10 );
					break;
				case 16168:
					item = new DonationSkillBall( 25 );
					break;
				case 16169:
					item = new DonationSkillBall( 50 );
					break;
				case 16170:
					item = new Bag();
					((Bag)item).DropItem(new IronIngot(50000));
					break;
				case 16171:
					item = new Bag();
					((Bag)item).DropItem(new Board(50000));
					break;
				case 16172:
					item = new PetBondDeed();
					break;
                                case 16184:
					item = new PotionBundle();
					break;
                                case 16185:
					item = null;//new PotionBundleAoS();
					break;
                                case 16186:
					item = new ApagiteDonationBox();
					break;
                                case 16187:
					item = new VeriteDonationBox();
					break;
                                case 16188:
					item = new SerpentCrest();
					break;
                                case 16189:
					item = new IronMaiden();
					break;
                                case 16190:
					item = new Guillotine();
					break;
                                case 16191:
					item = new BigMushroom1();
					break;
                                case 16192:
					item = new BigMushroom2();
					break;
                                case 16193:
					item = new BigMushroom3();
					break;
                                case 16194:
					item = new BigMushroom4();
					break;
                                case 16195:
					item = new LillyPad1();
					break;
                                case 16196:
					item = new LillyPad2();
					break;
                                case 16197:
					item = new LillyPad3();
					break;
                                case 16198:
					item = new DonationDecorArmor1();
					break;
                                case 16199:
					item = new DonationDecorArmor2();
					break;
                                case 16200:
					item = new DonationDecorArmor3();
					break;
                                case 16201:
					item = new DonationDecorArmor4();
					break;
                                case 16242:
					item = new CastleDeed();
					item.LootType = LootType.Blessed;
					break;
                                case 16243:
					item = new KeepDeed();
					item.LootType = LootType.Blessed;
					break;
                                case 16244:
					item = new BlackHairDye();
					item.LootType = LootType.Blessed;
					break;
                                case 16245:
					item = new SpecialDonateDyeBeard();
					item.LootType = LootType.Blessed;
					break;
                                case 16246:
					item = new KillDeed();
					item.LootType = LootType.Blessed;
					break;
                                case 16247:
					item = new SkinToneDeed();
					item.LootType = LootType.Blessed;
					break;
                                case 16248:
					item = new EtherealMountDeed();
					item.LootType = LootType.Blessed;
					break;
                               case 16249:
					item = new Item(5360);
                                        item.Hue = 1266;
					item.Name = "a house teleporter ticket";
					item.LootType = LootType.Blessed;
					break;
                                case 16250:
					item = new Item(5360);
                                        item.Hue = 1266;
					item.Name = "a water house spot ticket";
					item.LootType = LootType.Blessed;
					break;
                                case 16251:
					item = new ElevenBox();
					break;
                                case 16252:
					item = new ElvenRobe();
					break;
                                case 16253:
					item = new RaffleTicket();
					break;
					case 16267:
							item = new PoisongreenDonationBox();
							break;
					case 16268:
							item = new SoulStone();
							break;
					case 16269:
							item = new SoulStoneFragment();
							break;
					case 16270:
							item = new BoneTable();
							break;
					case 16271:
							item = new BoneThrone();
							break;
					case 16272:
							item = new OneMillionBankCheckDeed();
							break;
					case 16273:
							item = new DarkblueDonationBox();
							break;
					case 16274:
					////////item = new xxx();
							break;
					case 16275:
							item = new ShadowDonationBox();
							break;
					case 16292 :
							item = new FishTankAddonDeed();
							break;
					case 16294 :
							item = new AncientBedAddonDeed();
							break;
					case 16296 :
							item = new HeroKnightShield();
							break;
					case 16297 :
							item = new StoneSculpture();
							break;
					case 16298 :
							item = new AncientFruitBowl();
							break;
					case 16299 :
							item = new AncientRobe();
							item.LootType = LootType.Blessed;
							break;
					case 16300 :
							item = new AncientShoes();
							item.LootType = LootType.Blessed;
							break;
					case 16301 :
							item = new AncientCoat();
							item.LootType = LootType.Blessed;
							break;
					case 16302 :
							item = new GardenDonationBox();
							break;
					case 16303 :
							item = new DungeonDonationBox();
							break;
					case 16304 :
							item = new UltimateDecorationDonationBox();
							break;
					case 16305 :
							item = new ChristmasDonationBox();
							break;
					case 16306 :
							item = new MetalHueBundleTicket();
							break;
					case 16307 :
							item = new SpecialHueBundleTicket();
							break;
					case 16308 :
							item = new SevenGMBag();
							break;
					case 16311 :
							item = new PokerLowRollerTicket();
							break;
					case 16312 :
							item = new PokerHighRollerTicket();
							break;
					case 16313 :
							item = new MoongateLibraryDeed();
							break;
					case 16314 :
							item = new DisplayCaseAddonDeed();
							break;
					case 16315:
					item = new TamerDonationBox();
					break;
                                case 16316:
					item = new SeedBox();
					break;
                                case 16317:
					item = new DarkRedDonationBox();
					break;
                                case 16318:
					item = new DarkGreenDonationBox();
					break;
                                case 16319:
					item = new FireDonationBox();
					break;
                                case 16320:
					item = new PinkDonationBox();
					break;
                                case 16321:
					item = new DarkBrownDonationBox();
					break;
                                case 16322:
					item = new OliveDonationBox();
					break;
                                case 16323:
					item = new HiryuTicket();
					break;
                                case 16324:
				////////item = new xxx();
					break;
                                case 16325:
					item = new ExtremeHueBundleTicket();
					break;
                                case 16326:
					item = new TribalMask();
                                        item.Name = "Mask of the Fire God";
					item.Hue = 1359;
					item.LootType = LootType.Blessed;
					break;
                                case 16327:
					item = new TribalMask();
                                        item.Name = "Mask of Velvet Purity";
					item.Hue = 1374;
					item.LootType = LootType.Blessed;
					break;
                                case 16328:
					item = new TribalMask();
                                        item.Name = "Mask of the Farseer";
					item.Hue = 1267;
					item.LootType = LootType.Blessed;
					break;
                                case 16329:
					item = new TribalMask();
                                        item.Name = "Mask of the Venom King";
					item.Hue = 1196;
					item.LootType = LootType.Blessed;
					break;
                                case 16330:
					item = new ShroudOfIllusions();
                                        item.Name = "Shroud of the Morphling Lord";
					item.Hue = 1154;
					item.LootType = LootType.Blessed;
					break;
                                case 16331:
					item = new EtherealWarSteed();
					break;
                                case 16332:
					item = new EtherealDragonSteed();
					break;
// NEW DONATIONS ITEM 20-11-08 ---------------------------------------------------------
                                	 case 16333:
					item = new TribalMask();
                                        item.Name = "Mask of the Scoundrel";
					item.Hue = 920;
					item.LootType = LootType.Blessed;
					break;

                                	 case 16334:
					item = new TribalMask();
                                        item.Name = "Mask of the Harrower";
					item.Hue = 1194;
					item.LootType = LootType.Blessed;
					break;

                               	  	 case 16335:
					item = new TribalMask();
                                        item.Name = "Mask of the Tree Lord";
					item.Hue = 1445;
					item.LootType = LootType.Blessed;
					break;

                               		 case 16336:
					item = new TribalMask();
                                        item.Name = "Mask of the Rich";
					item.Hue = 2213;
					item.LootType = LootType.Blessed;
					break;

                                	 case 16337:
					item = new TribalMask();
                                        item.Name = "Mask of the Unknown";
					item.Hue = 2055;
					item.LootType = LootType.Blessed;
					break;

                               		 case 16338:
					item = new Shoes();
                                        item.Name = "I support the shard";
					item.Hue = 1166;
					item.LootType = LootType.Blessed;
					break;

                               		 case 16339:
					item = new Shoes();
                                        item.Name = "I support the shard";
					item.Hue = 1260;
					item.LootType = LootType.Blessed;
					break;

                               		 case 16340:
					item = new Shoes();
                                        item.Name = "I support the shard";
					item.Hue = 1153;
					item.LootType = LootType.Blessed;
					break;

                                	case 16341:
					item = new Shoes();
                                        item.Name = "I support the shard";
					item.Hue = 1177;
					item.LootType = LootType.Blessed;
					break;

					  case 16342:
					item = new Shoes();
                                        item.Name = "I support the shard";
					item.Hue = 1266;
					item.LootType = LootType.Blessed;
					break;

					  case 16343:
					item = new RoyalCloak();
					item.LootType = LootType.Blessed;
					break;

					  case 16344:
					item = new OrangeDonationBox();
					break;
//// New items Feb - 2009 ////   //// New items Feb - 2009 ////   //// New items Feb - 2009 ////

 					 case 16345:
					item = new GoldRing();
                                        item.Name = "a 603-carat diamond";
					item.Hue = 2067;
					item.LootType = LootType.Blessed;
					break;

					  case 16346:
					item = new FireGlasses();
					item.LootType = LootType.Blessed;
					break;

					  case 16347:
					item = new ShroudOfmysterious();
					item.LootType = LootType.Blessed;
					break;

					  case 16348:
					item = new HoodedShroudOfShadows();
					item.Hue = 2055;
					item.LootType = LootType.Blessed;
					break;

					  case 16349:
					item = new HoodedShroudOfShadows();
					item.Hue = 2054;
					item.LootType = LootType.Blessed;
					break;

					  case 16350:
					item = new HoodedShroudOfShadows();
					item.Hue = 2053;
					item.LootType = LootType.Blessed;
					break;


                              		  case 16354:
					item = new TribalMask();
                                        item.Name = "a tribal mask to be renamed.";
					item.Hue = 37;
					item.LootType = LootType.Blessed;
					break;


                            		  case 16355:
					item = new TribalMask();
                                        item.Name = "a tribal mask to be renamed.";
					item.Hue = 9;
					item.LootType = LootType.Blessed;
					break;


                            		  case 16356:
					item = new TribalMask();
                                        item.Name = "a tribal mask to be renamed.";
					item.Hue = 39;
					item.LootType = LootType.Blessed;
					break;


                            		  case 16357:
					item = new TribalMask();
                                        item.Name = "a tribal mask to be renamed.";
					item.Hue = 92;
					item.LootType = LootType.Blessed;
					break;


                            		  case 16358:
					item = new BronzeStatueMaker();
					item.LootType = LootType.Blessed;
					break;

                            		  case 16359:
					item = new JadeStatueMaker();
					item.LootType = LootType.Blessed;

					break;

                            		  case 16360:
					item = new MarbleStatueMaker();
					item.LootType = LootType.Blessed;
					break;


                            		  case 16361:
					item = new GoldStatueMaker();
					item.LootType = LootType.Blessed;
					break;


                            		  case 16362:
					item = new BloodstoneStatueMaker();
					item.LootType = LootType.Blessed;
					break;


                            		  case 16363:
					item = new AlabasterStatueMaker();
					item.LootType = LootType.Blessed;
					break;

                            		  case 16364:
					item = new EtherealKirin();
					item.LootType = LootType.Blessed;
					break;


                            		  case 16365:
					item = new GMSafeTradeTicket();
					item.LootType = LootType.Blessed;
					break;


                            		  case 16366:
					item = new TheDarkSoldiers();
					break;


                            		  case 16367:
					item = new TheDarkLords();
					break;

                            		  case 16368:
					item = new TheDarkKnightsBundle();
					break;

					case 16373:
					item = new Bag();
					((Bag)item).DropItem(new Bottle(10000));
					break;


					case 16374:
					item = new Bag();
					((Bag)item).DropItem(new BarbedLeather(5000));
					break;


					case 16375:
					item = new Bag();
					((Bag)item).DropItem(new SpinedLeather(5000));
					break;


					case 16376:
					item = new Bag();
					((Bag)item).DropItem(new HornedLeather(5000));
					break;


					case 16377:
					item = new CheapEvoPointsDeed();
					item.LootType = LootType.Blessed;
					break;

					case 16378:
					item = new TitleChangeDeed();
					item.LootType = LootType.Blessed;
					break;

					case 16379:
					item = new OceanBlueDonationBundle();
					break;

					case 16390:
					item = new SkyBlueDonationBundle();
					break;

					case 16381:
					item = new LayeredSpellbookTicket();
					break;

					case 16391:
					item = new TeleporterDonationDeed();
					break;


				case 16392:
				item = new EtherealWarSteed();
				item.Name = "a donation ethereal mount";
				item.Hue = 1150;
				item.LootType = LootType.Blessed;
				break;

				case 16393:
				item = new EtherealWarSteed();
				item.Name = "a donation ethereal mount";
				item.Hue = 1167;
				item.LootType = LootType.Blessed;
				break;

				case 16394:
				item = new EtherealWarSteed();
				item.Name = "a donation ethereal mount";
				item.Hue = 38;
				item.LootType = LootType.Blessed;
				break;

				case 16395:
				item = new EtherealWarSteed();
				item.Name = "a donation ethereal mount";
				item.Hue = 1160;
				item.LootType = LootType.Blessed;
				break;

				case 16396:
				item = new EtherealWarSteed();
				item.Name = "a donation ethereal mount";
				item.Hue = 1161;
				item.LootType = LootType.Blessed;
				break;

				case 16397:
				item = new EtherealWarSteed();
				item.Name = "a donation ethereal mount";
				item.Hue = 1140;
				item.LootType = LootType.Blessed;
				break;

                              	case 16398:
				item = new TribalMask();
                                item.Name = "a tribal mask to be renamed.";
				item.Hue = 1167;
				item.LootType = LootType.Blessed;
				break;

                              	case 16399:
				item = new TribalMask();
                                item.Name = "a tribal mask to be renamed.";
				item.Hue = 1160;
				item.LootType = LootType.Blessed;
				break;

                              	case 16400:
				item = new TribalMask();
                                item.Name = "a tribal mask to be renamed.";
				item.Hue = 1161;
				item.LootType = LootType.Blessed;
				break;

                              	case 16401:
				item = new TribalMask();
                                item.Name = "a tribal mask to be renamed.";
				item.Hue = 1172;
				item.LootType = LootType.Blessed;
				break;

                              	case 16402:
				item = new TribalMask();
                                item.Name = "a tribal mask to be renamed.";
				item.Hue = 1165;
				item.LootType = LootType.Blessed;
				break;

                              	case 16403:
				item = new TribalMask();
                                item.Name = "a tribal mask to be renamed.";
				item.Hue = 1140;
				item.LootType = LootType.Blessed;
				break;


                              	case 16404:
				item = new DonationDeed();
                                item.Name = "a supporting deed.";
				item.Hue = 1161;
				item.LootType = LootType.Blessed;
				break;


                              	case 16405:
				item = new CTFDonationTicket();
                                item.Name = "a ctf ticket.";
				item.Hue = 1110;
				item.LootType = LootType.Blessed;
				break;

                              	case 16406:
				item = new UHSSkinDeed();
                                item.Name = "a uhs skin deed.";
				item.Hue = 1110;
				item.LootType = LootType.Blessed;
				break;

                              	case 16407:
				item = new BlackBeardHairDye();
                                item.Name = "a black beard hair dye.";
				item.Hue = 1175;
				item.LootType = LootType.Blessed;
				break;








                                default:
					item = null;
					break;
			}

			return item;
		}