FS Daily Rares System

Discussion in 'Custom Script Release Archive' started by RoninGT, Apr 24, 2006.

  1. evil lord kirby Wanderer

    Message Count:
    2,923
    Gotta say i am happy as hell about this myself. I had plans to do this but just hadnt gotten to it so you saved me alot of time on it :)
  2. Rosey1 Wanderer

    Message Count:
    2,719
    I've noticed that the scarecrow isn't where he belongs. He is on the coordinates that are listed after. This is in Fel. In trammel, the bookcase is where it's supposed to be.

    I looked at it but i'm really tired and :eek:

    this is my code:

    Code (text):

    using System;
    using Server;
    using Server.Items;
    using Server.Mobiles;
    using System.Collections;

    namespace Server
    {
        public class DailyRaresSystem
        {
            // Enables Daily Rare System
            public static readonly bool DailyRaresEnabled = true;

            // Enables Custom Rares
            public static readonly bool EnableCustomRares = true;

            // Enables Maps "If your server only uses a set number of maps, Disable the ones you dont need."
            public static readonly bool EnableFelucca = true;
            public static readonly bool EnableTrammel = true;
            public static readonly bool EnableMalas = true;
            public static readonly bool EnableIlshenar = true;
            public static readonly bool EnableTokuno = true;

            public static void StartRareSpawn( bool isSpawn )
            {
                // Delete all old rare not taken.
                ArrayList toDelete = new ArrayList();

                foreach ( Item item in World.Items.Values )
                {
                    if ( item is BaseDailyRare )
                    {
                        BaseDailyRare bdr = (BaseDailyRare)item;
                        if ( bdr.HasBeenMoved == false )
                            toDelete.Add( bdr );
                    }
                       
                    if ( item is BaseDailyRareCont )
                    {
                        BaseDailyRareCont bdrc = (BaseDailyRareCont)item;
                        if ( bdrc.HasBeenMoved == false )
                            toDelete.Add( bdrc );
                    }

                    // Future Support For Water Barrels / Tubs / Buckets
                    /*if ( item.ItemID == 3703 || item.ItemID == 3715 || item.ItemID == 5344 )
                    {  
                        //Respawn old used barrels for water barrels
                        if ( item.Visible == false )
                        {
                            item.Visible = true;
                            item.Z += 20;
                        }
                    }*/
                }

                foreach ( Item delete in toDelete )
                {
                    delete.Delete();
                }

                if ( isSpawn )
                    SpawnRares();
            }

            public static void SpawnRares()
            {
                if ( DailyRaresEnabled == true )
                {
                    // Spawn Rares (Felucca)
                    if ( EnableFelucca == true )
                    {
                        DailyRocks fdrs = new DailyRocks();
                        fdrs.MoveToWorld( new Point3D( 2683, 2056, 17 ), Map.Felucca );

                        DailyRock fdr = new DailyRock();
                        fdr.MoveToWorld( new Point3D( 5511, 3116, -4 ), Map.Felucca );

                        DailyFruitBasket fdfb = new DailyFruitBasket();
                        fdfb.MoveToWorld( new Point3D( 286, 986, 6 ), Map.Felucca );

                        DailyClosedBarrel fdcb = new DailyClosedBarrel();
                        fdcb.MoveToWorld( new Point3D( 5191, 587, 0 ), Map.Felucca );

                        DailyCandle fdc1 = new DailyCandle();
                        fdc1.Burning = true;
                        fdc1.ItemID = 0xB1A;
                        fdc1.MoveToWorld( new Point3D( 5576, 1829, 6 ), Map.Felucca );

                        DailyCandle fdc2 = new DailyCandle();
                        fdc2.Burning = true;
                        fdc2.ItemID = 0xB1A;
                        fdc2.MoveToWorld( new Point3D( 5582, 1829, 6 ), Map.Felucca );

                        DailyHay fdh = new DailyHay();
                        fdh.MoveToWorld( new Point3D( 5999, 3773, 22 ), Map.Felucca );

                        DailyFullJars fdfj = new DailyFullJars();
                        fdfj.MoveToWorld( new Point3D( 3656, 2506, 0 ), Map.Felucca );

                        DailyFruitBasket fdb1 = new DailyFruitBasket();
                        fdb1.CantBeLifted = true;
                        fdb1.MoveToWorld( new Point3D( 3787, 1121, 26 ), Map.Felucca );

                        DailyFruitBasket fdb2 = new DailyFruitBasket();
                        fdb2.CantBeLifted = true;
                        fdb2.MoveToWorld( new Point3D( 3683, 2204, 31 ), Map.Felucca );

                        DailyFruitBasket fdb3 = new DailyFruitBasket();
                        fdb3.CantBeLifted = true;
                        fdb3.MoveToWorld( new Point3D( 1132, 2220, 66 ), Map.Felucca );

                        DailyFruitBasket fdb4 = new DailyFruitBasket();
                        fdb4.CantBeLifted = true;
                        fdb4.MoveToWorld( new Point3D( 1135, 2220, 46 ), Map.Felucca );

                        DailyFruitBasket fdb5 = new DailyFruitBasket();
                        fdb5.CantBeLifted = true;
                        fdb5.MoveToWorld( new Point3D( 2636, 2081, 16 ), Map.Felucca );
                    }

                    // Spawn Rares (Trammel)
                    if ( EnableTrammel == true )
                    {
                        DailyRocks tdrs = new DailyRocks();
                        tdrs.MoveToWorld( new Point3D( 2683, 2056, 17 ), Map.Trammel );

                        DailyRock tdr = new DailyRock();
                        tdr.MoveToWorld( new Point3D( 5511, 3116, -4 ), Map.Trammel );

                        DailyFruitBasket tdfb = new DailyFruitBasket();
                        tdfb.MoveToWorld( new Point3D( 286, 986, 6 ), Map.Trammel );

                        DailyClosedBarrel tdcb = new DailyClosedBarrel();
                        tdcb.MoveToWorld( new Point3D( 5191, 587, 0 ), Map.Trammel );

                        DailyCandle tdc1 = new DailyCandle();
                        tdc1.Burning = true;
                        tdc1.ItemID = 0xB1A;
                        tdc1.MoveToWorld( new Point3D( 5576, 1829, 6 ), Map.Trammel );

                        DailyCandle tdc2 = new DailyCandle();
                        tdc2.Burning = true;
                        tdc2.ItemID = 0xB1A;
                        tdc2.MoveToWorld( new Point3D( 5582, 1829, 6 ), Map.Trammel );

                        DailyFruitBasket tdb1 = new DailyFruitBasket();
                        tdb1.CantBeLifted = true;
                        tdb1.MoveToWorld( new Point3D( 3787, 1121, 26 ), Map.Trammel );

                        DailyFruitBasket tdb2 = new DailyFruitBasket();
                        tdb2.CantBeLifted = true;
                        tdb2.MoveToWorld( new Point3D( 3683, 2204, 31 ), Map.Trammel );

                        DailyFruitBasket tdb3 = new DailyFruitBasket();
                        tdb3.CantBeLifted = true;
                        tdb3.MoveToWorld( new Point3D( 1132, 2220, 66 ), Map.Trammel );

                        DailyFruitBasket tdb4 = new DailyFruitBasket();
                        tdb4.CantBeLifted = true;
                        tdb4.MoveToWorld( new Point3D( 1135, 2220, 46 ), Map.Trammel );

                        DailyFruitBasket tdb5 = new DailyFruitBasket();
                        tdb5.CantBeLifted = true;
                        tdb5.MoveToWorld( new Point3D( 2636, 2081, 16 ), Map.Trammel );
                    }

                    // Spawn Rares (Ilshenar)
                    if ( EnableIlshenar == true )
                    {
                        DailyBrokenChair idbc = new DailyBrokenChair();
                        idbc.MoveToWorld( new Point3D( 148, 945, -29 ), Map.Ilshenar );
                    }

                    // Spawn Rares (Malas)
                    if ( EnableMalas == true )
                    {
                        DailyMeatPie mdmp = new DailyMeatPie();
                        mdmp.MoveToWorld( new Point3D( 2113, 1311, -44 ), Map.Malas );
                    }

                    // Spawn Rares (Tokuno)
                    if ( EnableMalas == true )
                    {
                        //No Spawns Yet
                    }

                    if ( EnableCustomRares == true )
                    {
                        // Spawn Custom Rares (Felucca)
                        if ( EnableFelucca == true )
                        {
                            DailyLogs fdl = new DailyLogs();
                            fdl.MoveToWorld( new Point3D( 626, 1152, 0 ), Map.Felucca );

                            DailyArrows fda = new DailyArrows();
                            fda.MoveToWorld( new Point3D( 3048, 3371, 21 ), Map.Felucca );

                            DailyDung fdd = new DailyDung();
                            fdd.MoveToWorld( new Point3D( 2524, 386, 15 ), Map.Felucca );

                            DailyStump fds = new DailyStump();
                            fds.MoveToWorld( new Point3D( 535, 992, 0 ), Map.Felucca );

                            DailyRedDresser fdrd = new DailyRedDresser();
                            fdrd.MoveToWorld( new Point3D( 4648, 1222, 0 ), Map.Felucca );

                            DailyDresser fdd2 = new DailyDresser();
                            fdd2.MoveToWorld( new Point3D( 2257, 1216, 0 ), Map.Felucca );

                            DailyEmptyJars fdej = new DailyEmptyJars();
                            fdej.MoveToWorld( new Point3D( 5732, 93, 0 ), Map.Felucca );

                            DailyOrfluer fdo = new DailyOrfluer();
                            fdo.MoveToWorld( new Point3D( 1239, 2568, 0 ), Map.Felucca );

                            DailyScareCrow fdsc = new DailyScareCrow();
                            fdsc.MoveToWorld( new Point3D( 833, 2351, 0 ), Map.Felucca );

                            DailyBookcase fdbc = new DailyBookcase();
                            fdsc.MoveToWorld( new Point3D( 399, 1216, 0 ), Map.Felucca );
                        }

                        // Spawn Custom Rares (Trammel)
                        if ( EnableTrammel == true )
                        {
                            DailyFancyLampPost tflp = new DailyFancyLampPost();
                            tflp.MoveToWorld( new Point3D( 3623, 2480, 0 ), Map.Trammel );

                            DailyLogs tdl = new DailyLogs();
                            tdl.MoveToWorld( new Point3D( 626, 1152, 0 ), Map.Trammel );

                            DailyArrows tda = new DailyArrows();
                            tda.MoveToWorld( new Point3D( 3048, 3371, 21 ), Map.Trammel );

                            DailyDung tdd = new DailyDung();
                            tdd.MoveToWorld( new Point3D( 2524, 386, 15 ), Map.Trammel );

                            DailyRedDresser tdrd = new DailyRedDresser();
                            tdrd.MoveToWorld( new Point3D( 4648, 1222, 0 ), Map.Trammel );

                            DailyDresser tdd2 = new DailyDresser();
                            tdd2.MoveToWorld( new Point3D( 2257, 1216, 0 ), Map.Trammel );

                            DailyEmptyJars tdej = new DailyEmptyJars();
                            tdej.MoveToWorld( new Point3D( 5732, 93, 0 ), Map.Trammel );

                            DailyBlanket tdb = new DailyBlanket();
                            tdb.MoveToWorld( new Point3D( 3677, 2609, 2 ), Map.Trammel );

                            DailyBookcase tdbc = new DailyBookcase();
                            tdbc.MoveToWorld( new Point3D( 399, 1216, 0 ), Map.Trammel );
                        }

                        // Spawn Custom Rares (Ilshenar)
                        if ( EnableIlshenar == true )
                        {
                            DailyRuinedBookcase idrbc = new DailyRuinedBookcase();
                            idrbc.MoveToWorld( new Point3D( 1218, 1152, -25 ), Map.Ilshenar );

                            DailyFlax idf = new DailyFlax();
                            idf.MoveToWorld( new Point3D( 588, 1176, -97 ), Map.Ilshenar );

                            DailyCurtian idc = new DailyCurtian();
                            idc.MoveToWorld( new Point3D( 1508, 537, 10 ), Map.Ilshenar );

                            DailyCurtian idc2 = new DailyCurtian();
                            idc2.MoveToWorld( new Point3D( 1508, 534, 10 ), Map.Ilshenar );
                        }

                        // Spawn Custom Rares (Malas)
                        if ( EnableMalas == true )
                        {
                            DailyCrystal mdc = new DailyCrystal();
                            mdc.MoveToWorld( new Point3D( 915, 722, -86 ), Map.Malas );

                            DailyMushroom mdm = new DailyMushroom();
                            mdm.MoveToWorld( new Point3D( 2014, 1179, -84 ), Map.Malas );

                            DailySpittoon mds = new DailySpittoon();
                            mds.MoveToWorld( new Point3D( 1052, 1438, -71 ), Map.Malas );
                        }

                        // Spawn Custom Rares (Tokuno)
                        if ( EnableTokuno == true )
                        {
                            DailySwords tds = new DailySwords();
                            tds.MoveToWorld( new Point3D( 680, 1245, 47 ), Map.Tokuno );

                            DailyMenu tdm = new DailyMenu();
                            tdm.MoveToWorld( new Point3D( 239, 1072, 20 ), Map.Tokuno );

                            DailySushi tds2 = new DailySushi();
                            tds2.MoveToWorld( new Point3D( 674, 1296, 30 ), Map.Tokuno );
                        }
                    }
                }
            }

            public static void StartExtrasSpawn( bool isSpawn )
            {
                // Delete all old rare not taken.
                ArrayList toDelete = new ArrayList();

                foreach ( Item item in World.Items.Values )
                {
                    if ( item is DailyRareSpawner )
                    {
                        DailyRareSpawner drs = (DailyRareSpawner)item;
                            toDelete.Add( drs );
                    }
                       
                    if ( item is DailyTownCrate )
                    {
                        DailyTownCrate dtc = (DailyTownCrate)item;
                            toDelete.Add( dtc );
                    }
                }

                foreach ( Item delete in toDelete )
                {
                    delete.Delete();
                }

                if ( isSpawn )
                    SpawnExtras();
            }

            public static void SpawnExtras()
            {
                // Spawn Custom Rares (Felucca)
                if ( EnableFelucca == true )
                {
                    // Artist Array List
                    ArrayList art = new ArrayList();
                    art.Add( "Artist" );

                    // Blacksmith Item Array List
                    ArrayList bsmith = new ArrayList();
                    bsmith.Add( "CopperWire" );
                    bsmith.Add( "GoldWire" );
                    bsmith.Add( "IronWire" );
                    bsmith.Add( "SilverWire" );
                    bsmith.Add( "RareIngot" );
                    bsmith.Add( "IronIngot" );
                    bsmith.Add( "HorseShoes" );
                    bsmith.Add( "ForgedMetal" );
                    bsmith.Add( "IronOre" );
                    bsmith.Add( "SmithHammer" );
                    bsmith.Add( "Tongs" );

                    // Spawn Npcs
                    Spawner fdrs1 = new DailyRareSpawner();
                    fdrs1.MoveToWorld( new Point3D( 4523, 1066, 0 ), Map.Felucca );
                    fdrs1.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs2 = new DailyRareSpawner();
                    fdrs2.MoveToWorld( new Point3D( 4530, 1059, 0 ), Map.Felucca );
                    fdrs2.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs3 = new DailyRareSpawner();
                    fdrs3.MoveToWorld( new Point3D( 4523, 1059, 0 ), Map.Felucca );
                    fdrs3.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs4 = new DailyRareSpawner();
                    fdrs4.MoveToWorld( new Point3D( 2907, 714, 0 ), Map.Felucca );
                    fdrs4.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs5 = new DailyRareSpawner();
                    fdrs5.MoveToWorld( new Point3D( 2907, 708, 0 ), Map.Felucca );
                    fdrs5.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs6 = new DailyRareSpawner();
                    fdrs6.MoveToWorld( new Point3D( 1447, 1664, 10 ), Map.Felucca );
                    fdrs6.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    VoransTownCrate fdtc1 = new DailyBarrel(); // Bucs Smith Barrels
                    fdtc1.MoveToWorld( new Point3D( 2636, 2085, 10 ), Map.Felucca );
                    fdtc1.InitSpawn( 5, TimeSpan.FromMinutes( 60 ), TimeSpan.FromMinutes( 300 ), bsmith );

                    VoransTownCrate fdtc2 = new DailyBarrel(); // Bucs Smith Barrels
                    fdtc2.MoveToWorld( new Point3D( 2636, 2084, 10 ), Map.Felucca );
                    fdtc2.InitSpawn( 5, TimeSpan.FromMinutes( 60 ), TimeSpan.FromMinutes( 300 ), bsmith );
                }

                // Spawn Custom Rares (Trammel)
                if ( EnableTrammel == true )
                {
                    ArrayList art = new ArrayList();
                    art.Add( "Artist" );

                    // Spawn Npcs
                    Spawner fdrs1 = new DailyRareSpawner();
                    fdrs1.MoveToWorld( new Point3D( 4523, 1066, 0 ), Map.Trammel );
                    fdrs1.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs2 = new DailyRareSpawner();
                    fdrs2.MoveToWorld( new Point3D( 4530, 1059, 0 ), Map.Trammel );
                    fdrs2.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs3 = new DailyRareSpawner();
                    fdrs3.MoveToWorld( new Point3D( 4523, 1059, 0 ), Map.Trammel );
                    fdrs3.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs4 = new DailyRareSpawner();
                    fdrs4.MoveToWorld( new Point3D( 2907, 714, 0 ), Map.Trammel );
                    fdrs4.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs5 = new DailyRareSpawner();
                    fdrs5.MoveToWorld( new Point3D( 2907, 708, 0 ), Map.Trammel );
                    fdrs5.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );

                    Spawner fdrs6 = new DailyRareSpawner();
                    fdrs6.MoveToWorld( new Point3D( 1447, 1664, 10 ), Map.Trammel );
                    fdrs6.InitSpawn( 1, TimeSpan.FromMinutes( 5 ), TimeSpan.FromMinutes( 10 ), 0, 4, art );
                }

                // Spawn Custom Rares (Ilshenar)
                if ( EnableIlshenar == true )
                {
                    //No Spawns Yet
                }

                // Spawn Custom Rares (Malas)
                if ( EnableMalas == true )
                {
                    //No Spawns Yet
                }

                // Spawn Custom Rares (Tokuno)
                if ( EnableTokuno == true )
                {
                    //No Spawns Yet
                }
            }
        }
    }
     
  3. RoninGT Sorceror

    Message Count:
    3,792
    Code (text):
            public override bool VerifyMove( Mobile from )
            {
                if ( m_CantBeLifted == true ) // For fruit baskets that require you to eat fruit before taking basket.
                    return false;

                else if ( this.Movable == false && m_HasBeenMoved == false )
                {
                    this.Movable = true;
                    m_HasBeenMoved = true;
                    return true;
                }

                return Movable;      
            }
    It should be set movable false. As you see above when the object is moved it sets it to movable true. Why is this? Because if an item is in the world and movable it will decay. OSI Dailys do not decay even if they sit there all day. So the item remains movable false till its lifed then its movable again. To prevent decay. If you set it to movable before its moved. And no one gets the rare before it decays... it decays. and its just like adding spawners :)

    Ronin
  4. RoninGT Sorceror

    Message Count:
    3,792
    Rosey1
    Thanks for that tip ill fix that asap and get it out for download.

    Ronin
  5. Erica Knight

    Message Count:
    5,128
    You forgot to fix this its still showning in daily ruined book case this [Flipable( 0xC15, 0xC16)] when it should look like this [Flipable( 0xC15, 0xC14)].
  6. ewalsh Wanderer

    Message Count:
    156

    They couldn't be lifted before I changed the code....am I missing something?
  7. Erica Knight

    Message Count:
    5,128
    Reason is you gotta double click the fruit basket you eat it then turns to a basket after eating it then can pick up the basket.

    As you can see what the scripts says on it in red that i posted if ( m_CantBeLifted == true ) // For fruit baskets that require you to eat fruit before taking basket.
  8. ewalsh Wanderer

    Message Count:
    156
    Oh, I know that. Ronin used that as an example. I was talking about all the other items...folded blankets, curtains and such. I couldn't move them until I set it to movable true...
  9. Erica Knight

    Message Count:
    5,128
    Hmm thats odd havent checked the blankets and curtains going to get on my server to check those will tell you if it does same to me.
  10. nacrom Wanderer

    Message Count:
    425
    if i am not mistake i believe some items have to be "stolen" to take them. might want to try that instead of just taking them
  11. Erica Knight

    Message Count:
    5,128
    Hehe no i just tested it and theres no need to steal them its osi daily rares and custom daily rares the name says it all and i just tested this and can pick up the curtain and blanket and all the rest i tested works fine to me.
  12. RoninGT Sorceror

    Message Count:
    3,792
    Thanks Erica, ill upload the fix now.

    Ronin
  13. RoninGT Sorceror

    Message Count:
    3,792
    Not sure but i know its working correctly on my test server.
    What ver of RunUO are you running?

    Ronin
  14. ewalsh Wanderer

    Message Count:
    156
    I'm running 1.0.0 which I believe is the latest thus far...be fore I changed movable to true - the items didn't even highlight and stap back, they were like static items. My stealing.cs is modified. Think that would have anything to do with it? Oh, I'm running a Pre-Aos shard, could that be it?
  15. RoninGT Sorceror

    Message Count:
    3,792
    Never tested this one pre-aos. Let me do some testing for you see what i come up with.

    Ronin
  16. ewalsh Wanderer

    Message Count:
    156
    Thanks a bunch!
  17. Rosey1 Wanderer

    Message Count:
    2,719

    Thank you so much! i have no idea what you fixed but it works :)
  18. RoninGT Sorceror

    Message Count:
    3,792
    It was a typo :)

    Ronin
  19. Erica Knight

    Message Count:
    5,128
    Found another thing nothing biggy tho dailysword is misspelled says "cobra sword disply" when it should be display nothing biggy just tho i point it out.
  20. brainless Wanderer

    Message Count:
    404
    This is really nice package. Thanks Ronin, great job as always.

Share This Page