Ejemplo n.º 1
0
    public static void quickstart(int simulated_game_state = 0, bool cheat_items = true, bool autokill_on = true)
    {
        gearup(simulated_game_state, true);
        Logger.Info("{0}", simulated_game_state.ToString());
        if (simulated_game_state >= 0)
        {
            SetQuestState(18, QuestState.Completed); // Catch Furnok quest
            SetQuestState(100, QuestState.Accepted); // Fetch Giant's head
            SetGlobalFlag(21, true);                 // Enable Terjon
            MakeAreaKnown(2);                        // Moathouse
            MakeAreaKnown(5);                        // Emridy
        }

        if (simulated_game_state >= 1)
        {
            Logger.Info("Executing WB...");
            // Having just completed Welkwood Bog, going on Moathouse + Emridy
            StoryState = 1;
            MakeAreaKnown(7);                        // Welkwood Bog
            SetGlobalVar(970, 2);                    // Talked to Smyth about WB
            // game.global_flags[66] = 1 # Paid Elmo - do NOT set this flag, else he won't get his better gear
            SetGlobalFlag(67, true);                 // Have spoken to vignette's relevant figure
            SetGlobalFlag(605, true);                // WB description box fired
            SetGlobalFlag(976, true);                // Mathel dead
            SetQuestState(73, QuestState.Completed); // Welkwood Bog quest
            if (PartyAlignment == Alignment.NEUTRAL)
            {
                SetQuestState(27, QuestState.Accepted); // Find Terjon's pendant
            }

            // Kill section #
            if ((ScriptDaemon.get_v("qs_welkwood") & (((1 << 11)) - 1)) != (((1 << 11)) - 1))
            {
                ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 1);
                if ((ScriptDaemon.get_v("qs_welkwood") & 2) == 0)
                {
                    ScriptDaemon.cnk(14785); // Mathel
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 2);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x4) == 0)
                {
                    ScriptDaemon.cnk(14183); // Goblin Leader
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 0x4);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x8) == 0)
                {
                    ScriptDaemon.cnk(14641); // Kobold Sergeant
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 0x8);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x10) == 0)
                {
                    ScriptDaemon.cnk(14631); // Gnoll
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 0x10);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x20) == 0)
                {
                    ScriptDaemon.cnk(14081); // Skeleton Gnoll
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 0x20);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x40) == 0)
                {
                    ScriptDaemon.cnk(14640, how_many: 10, timer: 200); // Kobolds
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 0x40);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & (1 << 7)) == 0)
                {
                    ScriptDaemon.cnk(14187, how_many: 18, timer: 800); // Goblins
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | (1 << 7));
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x100) == 0)
                {
                    ScriptDaemon.cnk(14183); // Goblin Leader
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 0x100);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x200) == 0)
                {
                    ScriptDaemon.cnk(14640, how_many: 9, timer: 1800); // Kobolds
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | 0x200);
                }

                if ((ScriptDaemon.get_v("qs_welkwood") & 0x400) == 0)
                {
                    ScriptDaemon.cnk(14641); // Kobold Sergeant
                    ScriptDaemon.set_v("qs_welkwood", ScriptDaemon.get_v("qs_welkwood") | (1 << 10));
                }

                Logger.Info("WB executed!");
            }
        }

        // for pc in game.party[0].group_list():
        // if pc.stat_level_get(stat_experience) <= 820:
        // pc.stat_base_set(stat_experience, 820)
        if (simulated_game_state >= 2)
        {
            if (autokill_on)
            {
                ScriptDaemon.set_f("qs_autokill_moathouse", true);
            }

            // Having just completed Moathouse + Emridy + Welkwood Bog
            // for pc in game.party[0].group_list():
            // if pc.stat_level_get(stat_experience) <= 6000:
            // pc.stat_base_set(stat_experience, 6000)
            StoryState = 2;
            MakeAreaKnown(8);  // Moathouse Cave Exit
            MakeAreaKnown(10); // Deklo
            Logger.Info("Executing Moathouse + Emridy Meadows...");
        }

        if (simulated_game_state >= 3)
        {
            // Having Finished Nulb + HB
            // I.E. auto-kill Nulb and HB
            // preparing for "legitimate" AoH + Revenge Encounter + Moathouse Respawn ( + Temple )
            // for pc in game.party[0].group_list():
            // if pc.stat_level_get(stat_experience) <= 16000:
            // pc.stat_base_set(stat_experience, 16000)
            Logger.Info("Executing Nulb, HB");
            StoryState = 3;
            MakeAreaKnown(3);                       // Nulb
            MakeAreaKnown(6);                       // Imeryds
            MakeAreaKnown(9);                       // HB
            SetQuestState(35, QuestState.Accepted); // Grud's story
            SetQuestState(41, QuestState.Accepted); // Preston's tooth ache
            SetQuestState(42, QuestState.Accepted); // Assassinate Lodriss
            SetQuestState(59, QuestState.Accepted); // Free Serena
            SetQuestState(60, QuestState.Accepted); // Mona's Orb
            SetQuestState(63, QuestState.Accepted); // Bribery for justice
            if (autokill_on)
            {
                ScriptDaemon.set_f("qs_autokill_nulb", true);
            }
        }

        if (simulated_game_state >= 3.5f)
        {
            SetQuestState(65, QuestState.Accepted); // Hero's Prize Quest
            SetGlobalVar(972, 2);                   // Have talked to Kent about Witch
            ScriptDaemon.set_f("qs_arena_of_heroes_enable");
        }

        if (simulated_game_state >= 4)
        {
            // Autokill Temple, AoH, Revenge Encounter, MR
            Logger.Info("Executing Temple, AoH, Moathouse Respawn, Revenge Encounter");
            if (autokill_on)
            {
                ScriptDaemon.set_f("qs_autokill_temple");
            }

            StoryState = 4;
            MakeAreaKnown(4);                       // Temple
            SetQuestState(65, QuestState.Accepted); // Hero's Prize Quest
            SetGlobalFlag(944, true);
        }

        if (simulated_game_state >= 5)
        {
            // Autokill Greater Temple, Verbobonc (minus slavers)
            Logger.Info("Executing Greater Temple, Verbobonc");
            if (autokill_on)
            {
                ScriptDaemon.set_f("qs_autokill_greater_temple");
            }

            StoryState = 5;
            MakeAreaKnown(11); // Temple Burnt Farmhouse
            MakeAreaKnown(14); // Verbobonc
        }

        if (simulated_game_state >= 6)
        {
            Logger.Info("Executing Nodes, WotGS");
            if (autokill_on)
            {
                ScriptDaemon.set_f("qs_autokill_nodes");
            }

            StoryState = 6;
        }
    }