Ejemplo n.º 1
0
        public MainForm()
        {
            InitializeComponent();

            creatureScriptsCreator    = new CreatureScriptsCreator(this);
            waypointsCreator          = new WaypointsCreator(this);
            coreScriptTemplate        = new CoreScriptTemplates(this);
            spellAuraScriptCreatorDB  = new SpellAuraScriptDbCreator(this);
            creatureNamesDict         = new Dictionary <uint, string>();
            spellDBCOverrideCreatorDB = new SpellInfoOverrideCreator(this);
            combatAIScriptsCreatorDB  = new CombatAICreator(this);
            objectTemplateHelperDB    = new ObjectTemplateHelper(this);
            journalLootCreatorDB      = new JournalLootCreator(this);
            dungeonDataParser         = new DungeonDataInfoCreator(this);
            areaTriggerActionCreator  = new AreaTriggerActionCreator(this);

            if (Properties.Settings.Default.UsingDB)
            {
                creatureNamesDict = GetCreatureNamesFromDB();
            }
            else
            {
                checkBox_DatabaseConsidering.Enabled = false;
            }
        }
        public void GenerateSQL()
        {
            mainForm.textBox_SQLOutput.Clear();

            foreach (var npcsInMap in npcsByMap)
            {
                foreach (var npc in npcsInMap.Value)
                {
                    uint   itr       = 0;
                    string SQLtext   = "";
                    bool   hasEvents = npc.Value.Events.Count > 0;

                    if (hasEvents)
                    {
                        SQLtext += "-- " + GetCreatureName(npc.Key) + "\r\n";
                        SQLtext += "UPDATE `creature_template` SET `AIName` = \"LegionCombatAI\", `ScriptName` = \"\" WHERE `entry` = " + npc.Key + ";\r\n";
                        SQLtext += "DELETE FROM `combat_ai_events` WHERE `entry` = " + npc.Key + ";\r\n";
                        SQLtext += "INSERT INTO `combat_ai_events` (`entry`, `id`, `start_min`, `start_max`, `repeat_min`, `repeat_max`, `repeat_fail`, `spell_id`, `event_check`, `event_flags`, `attack_dist`, `difficulty_mask`, `comment`) VALUES\r\n";
                    }

                    foreach (CombatAIEventDataEntry combatEntry in npc.Value.Events)
                    {
                        string query = CombatAICreator.CreateCombatEntryValues(combatEntry, itr);

                        if (itr + 1 >= npc.Value.Events.Count)
                        {
                            query += ";\r\n";
                        }
                        else
                        {
                            query += ",\r\n";
                        }

                        SQLtext += query;
                        itr++;
                    }

                    if (hasEvents)
                    {
                        SQLtext += "\r\n\n";
                        mainForm.textBox_SQLOutput.AppendText(SQLtext);
                    }
                }
            }

            MessageBox.Show("SQL Queries Generated");
        }