diff options
Diffstat (limited to 'src/bindings/scripts/ScriptMgr.cpp')
-rw-r--r-- | src/bindings/scripts/ScriptMgr.cpp | 502 |
1 files changed, 248 insertions, 254 deletions
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp index 4768a614e5d..fb156a313aa 100644 --- a/src/bindings/scripts/ScriptMgr.cpp +++ b/src/bindings/scripts/ScriptMgr.cpp @@ -80,8 +80,8 @@ uint32 EAI_ErrorLevel; //*** End EventAI data *** -DatabaseMysql ScriptDev2DB; -Config SD2Config; +DatabaseMysql TScriptDB; +Config TScriptConfig; uint32 Locale; void FillSpellSummary(); @@ -597,41 +597,41 @@ void LoadDatabase() { //Get db string from file char const* dbstring = NULL; - if (!SD2Config.GetString("ScriptDev2DatabaseInfo", &dbstring)) - error_log("SD2: Missing ScriptDev2 Database Info from configuration file"); + if(!TScriptConfig.GetString("TScriptDatabaseInfo", &dbstring)) + error_log("TSCR: Missing Trinity Script Database Info in configuration file"); //Initilize connection to DB - if (!dbstring || !ScriptDev2DB.Initialize(dbstring)) - error_db_log("SD2: Unable to connect to Database"); + if(!dbstring || !TScriptDB.Initialize(dbstring)) + error_db_log("TSCR: Unable to connect to Database"); else { //***Preform all DB queries here*** QueryResult *result; //Get Version information - result = ScriptDev2DB.PQuery("SELECT `version`" - "FROM `sd2_db_version`"); + result = TScriptDB.PQuery("SELECT `version`" + "FROM `script_db_version`"); if (result) { Field *fields = result->Fetch(); outstring_log(" "); - outstring_log("SD2: Database version is: %s", fields[0].GetString()); + outstring_log("TSCR: Database version is: %s", fields[0].GetString()); outstring_log(" "); delete result; - }else error_db_log("SD2: Missing sd2_db_version information."); + }else error_db_log("TSCR: Missing script_db_version information."); // Drop existing Event AI Localized Text hash map EventAI_LocalizedTextMap.clear(); // Gather EventAI Localized Texts - result = ScriptDev2DB.PQuery("SELECT `id`,`locale_1`,`locale_2`,`locale_3`,`locale_4`,`locale_5`,`locale_6`,`locale_7`,`locale_8`" + result = TScriptDB.PQuery("SELECT `id`,`locale_1`,`locale_2`,`locale_3`,`locale_4`,`locale_5`,`locale_6`,`locale_7`,`locale_8`" "FROM `eventai_localized_texts`"); if(result) { - outstring_log("Loading EAI Localized Texts...."); + outstring_log("TSCR: Loading EAI Localized Texts...."); barGoLink bar(result->GetRowCount()); uint32 count = 0; @@ -661,19 +661,19 @@ void LoadDatabase() delete result; outstring_log(""); - outstring_log("SD2: Loaded %u EventAI Localized Texts", count); - }else outstring_log("SD2: WARNING >> Loaded 0 EventAI Localized Texts. Database table `eventai_localized_texts` is empty"); + outstring_log("TSCR: Loaded %u EventAI Localized Texts", count); + }else outstring_log("TSCR: WARNING >> Loaded 0 EventAI Localized Texts. Database table `eventai_localized_texts` is empty"); // Drop Existing Script Localized Text Hash Map Script_LocalizedTextMap.clear(); // Gather Script Localized Texts - result = ScriptDev2DB.PQuery("SELECT `id`,`locale_1`,`locale_2`,`locale_3`,`locale_4`,`locale_5`,`locale_6`,`locale_7`,`locale_8`" + result = TScriptDB.PQuery("SELECT `id`,`locale_1`,`locale_2`,`locale_3`,`locale_4`,`locale_5`,`locale_6`,`locale_7`,`locale_8`" "FROM `script_localized_texts`"); if(result) { - outstring_log("Loading Script Localized Texts...."); + outstring_log("TSCR: Loading Script Localized Texts...."); barGoLink bar(result->GetRowCount()); uint32 count = 0; @@ -703,18 +703,18 @@ void LoadDatabase() delete result; outstring_log(""); - outstring_log("SD2: Loaded %u Script Localized Texts", count); - }else outstring_log("SD2: WARNING >> Loaded 0 Script Localized Texts. Database table `script_localized_texts` is empty"); + outstring_log("TSCR: Loaded %u Script Localized Texts", count); + }else outstring_log("TSCR: WARNING >> Loaded 0 Script Localized Texts. Database table `script_localized_texts` is empty"); //Drop existing EventAI Text hash map EventAI_Text_Map.clear(); //Gather EventAI Text Entries - result = ScriptDev2DB.PQuery("SELECT `id`,`text` FROM `eventai_texts`"); + result = TScriptDB.PQuery("SELECT `id`,`text` FROM `eventai_texts`"); if (result) { - outstring_log( "SD2: Loading EventAI_Texts..."); + outstring_log( "TSCR: Loading EventAI_Texts..."); barGoLink bar(result->GetRowCount()); uint32 Count = 0; @@ -728,7 +728,7 @@ void LoadDatabase() std::string text = fields[1].GetString(); if (!strlen(text.c_str())) - error_db_log("SD2: EventAI text %u is empty", i); + error_db_log("TSCR: EventAI text %u is empty", i); EventAI_Text_Map[i] = text; ++Count; @@ -738,12 +738,12 @@ void LoadDatabase() delete result; outstring_log(""); - outstring_log("SD2: >> Loaded %u EventAI_Texts", Count); + outstring_log("TSCR: >> Loaded %u EventAI_Texts", Count); - }else outstring_log("SD2: WARNING >> Loaded 0 EventAI_Texts. DB table `EventAI_Texts` is empty."); + }else outstring_log("TSCR: WARNING >> Loaded 0 EventAI_Texts. DB table `EventAI_Texts` is empty."); //Gather event data - result = ScriptDev2DB.PQuery("SELECT `id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`" + result = TScriptDB.PQuery("SELECT `id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`" "FROM `eventai_summons`"); //Drop Existing EventSummon Map @@ -751,7 +751,7 @@ void LoadDatabase() if (result) { - outstring_log( "SD2: Loading EventAI_Summons..."); + outstring_log( "TSCR: Loading EventAI_Summons..."); barGoLink bar(result->GetRowCount()); uint32 Count = 0; @@ -777,12 +777,12 @@ void LoadDatabase() delete result; outstring_log(""); - outstring_log("SD2: >> Loaded %u EventAI_Summons", Count); + outstring_log("TSCR: >> Loaded %u EventAI_Summons", Count); - }else outstring_log("SD2: WARNING >> Loaded 0 EventAI_Summons. DB table `EventAI_Summons` is empty."); + }else outstring_log("TSCR: WARNING >> Loaded 0 EventAI_Summons. DB table `EventAI_Summons` is empty."); //Gather event data - result = ScriptDev2DB.PQuery("SELECT `id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`" + result = TScriptDB.PQuery("SELECT `id`,`creature_id`,`event_type`,`event_inverse_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action1_type`,`action1_param1`,`action1_param2`,`action1_param3`,`action2_type`,`action2_param1`,`action2_param2`,`action2_param3`,`action3_type`,`action3_param1`,`action3_param2`,`action3_param3`" "FROM `eventai_scripts`"); //Drop Existing EventAI List @@ -790,7 +790,7 @@ void LoadDatabase() if (result) { - outstring_log( "SD2: Loading EventAI_Scripts..."); + outstring_log( "TSCR: Loading EventAI_Scripts..."); barGoLink bar(result->GetRowCount()); uint32 Count = 0; @@ -815,106 +815,106 @@ void LoadDatabase() //Report any errors in event if (temp.event_type >= EVENT_T_END) - error_db_log("SD2: Event %u has incorrect event type. Maybe DB requires updated version of SD2.", i); + error_db_log("TSCR: Event %u has incorrect event type. Maybe DB requires updated version of SD2.", i); //No chance of this event occuring if (temp.event_chance == 0) - error_db_log("SD2: Event %u has 0 percent chance. Event will never trigger!", i); + error_db_log("TSCR: Event %u has 0 percent chance. Event will never trigger!", i); //Chance above 100, force it to be 100 if (temp.event_chance > 100) { - error_db_log("SD2: Creature %u are using event %u with more than 100 percent chance. Adjusting to 100 percent.", temp.creature_id, i); + error_db_log("TSCR: Creature %u are using event %u with more than 100 percent chance. Adjusting to 100 percent.", temp.creature_id, i); temp.event_chance = 100; } //Individual event checks switch (temp.event_type) { - case EVENT_T_HP: - case EVENT_T_MANA: - case EVENT_T_TARGET_HP: - { - if (temp.event_param2 > 100) - error_db_log("SD2: Creature %u are using percentage event(%u) with param2 (MinPercent) > 100. Event will never trigger! ", temp.creature_id, i); + case EVENT_T_HP: + case EVENT_T_MANA: + case EVENT_T_TARGET_HP: + { + if (temp.event_param2 > 100) + error_db_log("TSCR: Creature %u are using percentage event(%u) with param2 (MinPercent) > 100. Event will never trigger! ", temp.creature_id, i); - if (temp.event_param1 <= temp.event_param2) - error_db_log("SD2: Creature %u are using percentage event(%u) with param1 <= param2 (MaxPercent <= MinPercent). Event will never trigger! ", temp.creature_id, i); + if (temp.event_param1 <= temp.event_param2) + error_db_log("TSCR: Creature %u are using percentage event(%u) with param1 <= param2 (MaxPercent <= MinPercent). Event will never trigger! ", temp.creature_id, i); - if (temp.event_flags & EFLAG_REPEATABLE && !temp.event_param3 && !temp.event_param4) - { - error_db_log("SD2: Creature %u has param3 and param4=0 (RepeatMin/RepeatMax) but cannot be repeatable without timers. Removing EFLAG_REPEATABLE for event %u.", temp.creature_id, i); - temp.event_flags &= ~EFLAG_REPEATABLE; + if (temp.event_flags & EFLAG_REPEATABLE && !temp.event_param3 && !temp.event_param4) + { + error_db_log("TSCR: Creature %u has param3 and param4=0 (RepeatMin/RepeatMax) but cannot be repeatable without timers. Removing EFLAG_REPEATABLE for event %u.", temp.creature_id, i); + temp.event_flags &= ~EFLAG_REPEATABLE; + } } - } - break; + break; - case EVENT_T_SPELLHIT: - { - if (temp.event_param1) + case EVENT_T_SPELLHIT: { - SpellEntry const* pSpell = GetSpellStore()->LookupEntry(temp.event_param1); - if (!pSpell) + if (temp.event_param1) { - error_db_log("SD2: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.event_param1, i); - continue; + SpellEntry const* pSpell = GetSpellStore()->LookupEntry(temp.event_param1); + if (!pSpell) + { + error_db_log("TSCR: Creature %u has non-existant SpellID(%u) defined in event %u.", temp.creature_id, temp.event_param1, i); + continue; + } + + if (temp.event_param2_s != -1 && temp.event_param2 != pSpell->SchoolMask) + error_db_log("TSCR: Creature %u has param1(spellId %u) but param2 is not -1 and not equal to spell's school mask. Event %u can never trigger.", temp.creature_id, temp.event_param1, i); } - if (temp.event_param2_s != -1 && temp.event_param2 != pSpell->SchoolMask) - error_db_log("SD2: Creature %u has param1(spellId %u) but param2 is not -1 and not equal to spell's school mask. Event %u can never trigger.", temp.creature_id, temp.event_param1, i); - } + //TODO: fix this system with SPELL_SCHOOL_MASK. Current complicate things, using int32(-1) instead of just 0 + //SPELL_SCHOOL_MASK_NONE = 0 and does not exist, thus it can not ever trigger or be used in SpellHit() + if (temp.event_param2_s != -1 && temp.event_param2_s > SPELL_SCHOOL_MASK_ALL) + error_db_log("TSCR: Creature %u is using invalid SpellSchoolMask(%u) defined in event %u.", temp.creature_id, temp.event_param2, i); - //TODO: fix this system with SPELL_SCHOOL_MASK. Current complicate things, using int32(-1) instead of just 0 - //SPELL_SCHOOL_MASK_NONE = 0 and does not exist, thus it can not ever trigger or be used in SpellHit() - if (temp.event_param2_s != -1 && temp.event_param2_s > SPELL_SCHOOL_MASK_ALL) - error_db_log("SD2: Creature %u is using invalid SpellSchoolMask(%u) defined in event %u.", temp.creature_id, temp.event_param2, i); - - if (temp.event_param4 < temp.event_param3) - error_db_log("SD2: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - } - break; + if (temp.event_param4 < temp.event_param3) + error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); + } + break; - case EVENT_T_RANGE: - case EVENT_T_OOC_LOS: - case EVENT_T_FRIENDLY_HP: - case EVENT_T_FRIENDLY_IS_CC: - case EVENT_T_FRIENDLY_MISSING_BUFF: - { - if (temp.event_param4 < temp.event_param3) - error_db_log("SD2: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - } - break; + case EVENT_T_RANGE: + case EVENT_T_OOC_LOS: + case EVENT_T_FRIENDLY_HP: + case EVENT_T_FRIENDLY_IS_CC: + case EVENT_T_FRIENDLY_MISSING_BUFF: + { + if (temp.event_param4 < temp.event_param3) + error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); + } + break; - case EVENT_T_TIMER: - case EVENT_T_TIMER_OOC: - { - if (temp.event_param2 < temp.event_param1) - error_db_log("SD2: Creature %u are using timed event(%u) with param2 < param1 (InitialMax < InitialMin). Event will never repeat.", temp.creature_id, i); + case EVENT_T_TIMER: + case EVENT_T_TIMER_OOC: + { + if (temp.event_param2 < temp.event_param1) + error_db_log("TSCR: Creature %u are using timed event(%u) with param2 < param1 (InitialMax < InitialMin). Event will never repeat.", temp.creature_id, i); - if (temp.event_param4 < temp.event_param3) - error_db_log("SD2: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - } - break; + if (temp.event_param4 < temp.event_param3) + error_db_log("TSCR: Creature %u are using repeatable event(%u) with param4 < param3 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); + } + break; - case EVENT_T_KILL: - case EVENT_T_TARGET_CASTING: - { - if (temp.event_param2 < temp.event_param1) - error_db_log("SD2: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); - } - break; + case EVENT_T_KILL: + case EVENT_T_TARGET_CASTING: + { + if (temp.event_param2 < temp.event_param1) + error_db_log("TSCR: Creature %u are using event(%u) with param2 < param1 (RepeatMax < RepeatMin). Event will never repeat.", temp.creature_id, i); + } + break; - case EVENT_T_AGGRO: - case EVENT_T_DEATH: - case EVENT_T_EVADE: - case EVENT_T_SPAWNED: - { - if (temp.event_flags & EFLAG_REPEATABLE) + case EVENT_T_AGGRO: + case EVENT_T_DEATH: + case EVENT_T_EVADE: + case EVENT_T_SPAWNED: { - error_db_log("SD2: Creature %u has EFLAG_REPEATABLE set. Event can never be repeatable. Removing flag for event %u.", temp.creature_id, i); - temp.event_flags &= ~EFLAG_REPEATABLE; + if (temp.event_flags & EFLAG_REPEATABLE) + { + error_db_log("TSCR: Creature %u has EFLAG_REPEATABLE set. Event can never be repeatable. Removing flag for event %u.", temp.creature_id, i); + temp.event_flags &= ~EFLAG_REPEATABLE; + } } - } - break; + break; }; for (uint32 j = 0; j < MAX_ACTIONS; j++) @@ -927,110 +927,110 @@ void LoadDatabase() //Report any errors in actions switch (temp.action[j].type) { - case ACTION_T_SAY: - case ACTION_T_YELL: - case ACTION_T_TEXTEMOTE: - if (GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT) - error_db_log("SD2: Event %u Action %u refrences missing Localized_Text entry", i, j+1); - break; - - case ACTION_T_SOUND: - if (!GetSoundEntriesStore()->LookupEntry(temp.action[j].param1)) - error_db_log("SD2: Event %u Action %u uses non-existant SoundID %u.", i, j+1, temp.action[j].param1); - break; - - case ACTION_T_RANDOM_SAY: - case ACTION_T_RANDOM_YELL: - case ACTION_T_RANDOM_TEXTEMOTE: - if ((temp.action[j].param1 != 0xffffffff && GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT) || - (temp.action[j].param2 != 0xffffffff && GetEventAIText(temp.action[j].param2) == DEFAULT_TEXT) || - (temp.action[j].param3 != 0xffffffff && GetEventAIText(temp.action[j].param3) == DEFAULT_TEXT)) - error_db_log("SD2: Event %u Action %u refrences missing Localized_Text entry", i, j+1); - break; - - case ACTION_T_CAST: - { - if (!GetSpellStore()->LookupEntry(temp.action[j].param1)) - error_db_log("SD2: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param1); + case ACTION_T_SAY: + case ACTION_T_YELL: + case ACTION_T_TEXTEMOTE: + if (GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT) + error_db_log("TSCR: Event %u Action %u refrences missing Localized_Text entry", i, j+1); + break; + + case ACTION_T_SOUND: + if (!GetSoundEntriesStore()->LookupEntry(temp.action[j].param1)) + error_db_log("TSCR: Event %u Action %u uses non-existant SoundID %u.", i, j+1, temp.action[j].param1); + break; + + case ACTION_T_RANDOM_SAY: + case ACTION_T_RANDOM_YELL: + case ACTION_T_RANDOM_TEXTEMOTE: + if ((temp.action[j].param1 != 0xffffffff && GetEventAIText(temp.action[j].param1) == DEFAULT_TEXT) || + (temp.action[j].param2 != 0xffffffff && GetEventAIText(temp.action[j].param2) == DEFAULT_TEXT) || + (temp.action[j].param3 != 0xffffffff && GetEventAIText(temp.action[j].param3) == DEFAULT_TEXT)) + error_db_log("TSCR: Event %u Action %u refrences missing Localized_Text entry", i, j+1); + break; + + case ACTION_T_CAST: + { + if (!GetSpellStore()->LookupEntry(temp.action[j].param1)) + error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param1); - if (temp.action[j].param2 >= TARGET_T_END) - error_db_log("SD2: Event %u Action %u uses incorrect Target type", i, j+1); - } - break; + if (temp.action[j].param2 >= TARGET_T_END) + error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1); + } + break; - case ACTION_T_REMOVEAURASFROMSPELL: - { - if (!GetSpellStore()->LookupEntry(temp.action[j].param2)) - error_db_log("SD2: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2); + case ACTION_T_REMOVEAURASFROMSPELL: + { + if (!GetSpellStore()->LookupEntry(temp.action[j].param2)) + error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2); - if (temp.action[j].param1 >= TARGET_T_END) - error_db_log("SD2: Event %u Action %u uses incorrect Target type", i, j+1); - } - break; + if (temp.action[j].param1 >= TARGET_T_END) + error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1); + } + break; - case ACTION_T_CASTCREATUREGO: - { - if (!GetSpellStore()->LookupEntry(temp.action[j].param2)) - error_db_log("SD2: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2); + case ACTION_T_CASTCREATUREGO: + { + if (!GetSpellStore()->LookupEntry(temp.action[j].param2)) + error_db_log("TSCR: Event %u Action %u uses non-existant SpellID %u.", i, j+1, temp.action[j].param2); - if (temp.action[j].param3 >= TARGET_T_END) - error_db_log("SD2: Event %u Action %u uses incorrect Target type", i, j+1); - } - break; + if (temp.action[j].param3 >= TARGET_T_END) + error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1); + } + break; - //2nd param target - case ACTION_T_SUMMON_ID: - { - if (EventAI_Summon_Map.find(temp.action[j].param3) == EventAI_Summon_Map.end()) - error_db_log("SD2: Event %u Action %u summons missing EventAI_Summon %u", i, j+1, temp.action[j].param3); + //2nd param target + case ACTION_T_SUMMON_ID: + { + if (EventAI_Summon_Map.find(temp.action[j].param3) == EventAI_Summon_Map.end()) + error_db_log("TSCR: Event %u Action %u summons missing EventAI_Summon %u", i, j+1, temp.action[j].param3); + if (temp.action[j].param2 >= TARGET_T_END) + error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1); + } + break; + + case ACTION_T_SUMMON: + case ACTION_T_THREAT_SINGLE_PCT: + case ACTION_T_QUEST_EVENT: + case ACTION_T_SET_UNIT_FLAG: + case ACTION_T_REMOVE_UNIT_FLAG: + case ACTION_T_SET_INST_DATA64: if (temp.action[j].param2 >= TARGET_T_END) - error_db_log("SD2: Event %u Action %u uses incorrect Target type", i, j+1); - } - break; - - case ACTION_T_SUMMON: - case ACTION_T_THREAT_SINGLE_PCT: - case ACTION_T_QUEST_EVENT: - case ACTION_T_SET_UNIT_FLAG: - case ACTION_T_REMOVE_UNIT_FLAG: - case ACTION_T_SET_INST_DATA64: - if (temp.action[j].param2 >= TARGET_T_END) - error_db_log("SD2: Event %u Action %u uses incorrect Target type", i, j+1); - break; - - //3rd param target - case ACTION_T_SET_UNIT_FIELD: - if (temp.action[j].param3 >= TARGET_T_END) - error_db_log("SD2: Event %u Action %u uses incorrect Target type", i, j+1); - break; - - case ACTION_T_SET_PHASE: - if (temp.action[j].param1 > 31) - error_db_log("SD2: Event %u Action %u attempts to set phase > 31. Phase mask cannot be used past phase 31.", i, j+1); - break; - - case ACTION_T_INC_PHASE: - if (!temp.action[j].param1) - error_db_log("SD2: Event %u Action %u is incrementing phase by 0. Was this intended?", i, j+1); - break; + error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1); + break; - case ACTION_T_KILLED_MONSTER: - if (temp.event_type != EVENT_T_DEATH) - outstring_log("SD2 WARNING: Event %u Action %u calling ACTION_T_KILLED_MONSTER outside of EVENT_T_DEATH", i, j+1); - break; - - case ACTION_T_SET_INST_DATA: - if (temp.action[j].param2 > 3) - error_db_log("SD2: Event %u Action %u attempts to set instance data above encounter state 3. Custom case?", i, j+1); - break; - - default: - break; + //3rd param target + case ACTION_T_SET_UNIT_FIELD: + if (temp.action[j].param3 >= TARGET_T_END) + error_db_log("TSCR: Event %u Action %u uses incorrect Target type", i, j+1); + break; + + case ACTION_T_SET_PHASE: + if (temp.action[j].param1 > 31) + error_db_log("TSCR: Event %u Action %u attempts to set phase > 31. Phase mask cannot be used past phase 31.", i, j+1); + break; + + case ACTION_T_INC_PHASE: + if (!temp.action[j].param1) + error_db_log("TSCR: Event %u Action %u is incrementing phase by 0. Was this intended?", i, j+1); + break; + + case ACTION_T_KILLED_MONSTER: + if (temp.event_type != EVENT_T_DEATH) + outstring_log("TSCR WARNING: Event %u Action %u calling ACTION_T_KILLED_MONSTER outside of EVENT_T_DEATH", i, j+1); + break; + + case ACTION_T_SET_INST_DATA: + if (temp.action[j].param2 > 3) + error_db_log("TSCR: Event %u Action %u attempts to set instance data above encounter state 3. Custom case?", i, j+1); + break; + + default: + break; } if (temp.action[j].type >= ACTION_T_END) - error_db_log("SD2: Event %u Action %u has incorrect action type. Maybe DB requires updated version of SD2.", i, j+1); + error_db_log("TSCR: Event %u Action %u has incorrect action type. Maybe DB requires updated version of SD2.", i, j+1); } //Add to list @@ -1041,12 +1041,12 @@ void LoadDatabase() delete result; outstring_log(""); - outstring_log("SD2: >> Loaded %u EventAI_Events", Count); + outstring_log("TSCR: >> Loaded %u EventAI_Events", Count); - }else outstring_log("SD2: WARNING >> Loaded 0 EventAI_Scripts. DB table `EventAI_Scripts` is empty."); + }else outstring_log("TSCR: WARNING >> Loaded 0 EventAI_Scripts. DB table `EventAI_Scripts` is empty."); // Gather Script Text - result = ScriptDev2DB.PQuery("SELECT `id`, `sound`, `type`, `language`, `text`" + result = TScriptDB.PQuery("SELECT `id`, `sound`, `type`, `language`, `text`" "FROM `script_texts`;"); // Drop Existing Script Text Map @@ -1054,7 +1054,7 @@ void LoadDatabase() if(result) { - outstring_log("SD2: Loading Script Text..."); + outstring_log("TSCR: Loading Script Text..."); barGoLink bar(result->GetRowCount()); uint32 count = 0; @@ -1073,11 +1073,11 @@ void LoadDatabase() if (temp.SoundId) { if (!GetSoundEntriesStore()->LookupEntry(temp.SoundId)) - error_db_log("SD2: Id %u in table script_texts has soundid %u but sound does not exist.",i,temp.SoundId); + error_db_log("TSCR: Id %u in table script_texts has soundid %u but sound does not exist.",i,temp.SoundId); } if(!strlen(temp.Text.c_str())) - error_db_log("SD2: Id %u in table script_texts has no text.", i); + error_db_log("TSCR: Id %u in table script_texts has no text.", i); Script_TextMap[i] = temp; ++count; @@ -1087,12 +1087,12 @@ void LoadDatabase() delete result; outstring_log(""); - outstring_log("SD2: Loaded %u Script Texts", count); + outstring_log("TSCR: Loaded %u Script Texts", count); - }else outstring_log("SD2 WARNING >> Loaded 0 Script Texts. Database table `script_texts` is empty."); + }else outstring_log("TSCR WARNING >> Loaded 0 Script Texts. Database table `script_texts` is empty."); //Free database thread and resources - ScriptDev2DB.HaltDelayThread(); + TScriptDB.HaltDelayThread(); //***End DB queries*** } @@ -1119,67 +1119,61 @@ void ScriptsFree() MANGOS_DLL_EXPORT void ScriptsInit() { - //ScriptDev2 startup - outstring_log(""); - outstring_log(" MMM MMM MM"); - outstring_log("M MM M M M M"); - outstring_log("MM M M M"); - outstring_log(" MMM M M M"); - outstring_log(" MM M M MMMM"); - outstring_log("MM M M M "); - outstring_log(" MMM MMM http://www.scriptdev2.com"); - outstring_log(""); - - outstring_log("ScriptDev2 initializing %s", _FULLVERSION); - + //Trinity Script startup + outstring_log("|_ _| __(_)_ __ (_) |_ _ _/ ___| ___ _ __(_)_ __ | |_ "); + outstring_log(" | || '__| | '_ \\| | __| | | \\___ \\ / __| \\'__| | \\'_ \\| __|"); + outstring_log(" | || | | | | | | | |_| |_| |___) | (__| | | | |_) | |_ "); + outstring_log(" |_||_| |_|_| |_|_|\\__|\\__, |____/ \\___|_| |_| .__/ \\__|"); + outstring_log(" |___/ |_| "); + outstring_log("Trinity Script initializing %s", _FULLVERSION); outstring_log(""); //Get configuration file - if (!SD2Config.SetSource(_TRINITY_SCRIPT_CONFIG)) - error_log("SD2: Unable to open configuration file, Database will be unaccessible"); - else outstring_log("SD2: Using configuration file %s", _TRINITY_SCRIPT_CONFIG); + if (!TScriptConfig.SetSource(_TRINITY_SCRIPT_CONFIG)) + error_log("TSCR: Unable to open configuration file, Database will be unaccessible"); + else outstring_log("TSCR: Using configuration file %s", _TRINITY_SCRIPT_CONFIG); //Check config file version - if (SD2Config.GetIntDefault("ConfVersion", 0) != _TSCRIPTCONFVERSION) - error_log("SD2: Configuration file version doesn't match expected version. Some config variables may be wrong or missing."); + if (TScriptConfig.GetIntDefault("ConfVersion", 0) != _TSCRIPTCONFVERSION) + error_log("TSCR: Configuration file version doesn't match expected version. Some config variables may be wrong or missing."); //Locale - Locale = SD2Config.GetIntDefault("Locale", 0); + Locale = TScriptConfig.GetIntDefault("Locale", 0); if (Locale > 8) { Locale = 0; - error_log("SD2: Locale set to invalid language id. Defaulting to 0."); + error_log("TSCR: Locale set to invalid language id. Defaulting to 0."); } - outstring_log("SD2: Using locale %u", Locale); + outstring_log("TSCR: Using locale %u", Locale); outstring_log(""); - EAI_ErrorLevel = SD2Config.GetIntDefault("EAIErrorLevel", 1); + EAI_ErrorLevel = TScriptConfig.GetIntDefault("EAIErrorLevel", 1); switch (EAI_ErrorLevel) { - case 0: - outstring_log("SD2: EventAI Error Reporting level set to 0 (Startup Errors only)"); - break; - - case 1: - outstring_log("SD2: EventAI Error Reporting level set to 1 (Startup errors and Runtime event errors)"); - break; - - case 2: - outstring_log("SD2: EventAI Error Reporting level set to 2 (Startup errors, Runtime event errors, and Creation errors)"); - break; - - default: - outstring_log("SD2: Unknown EventAI Error Reporting level. Defaulting to 1 (Startup errors and Runtime event errors)"); - EAI_ErrorLevel = 1; - break; + case 0: + outstring_log("TSCR: EventAI Error Reporting level set to 0 (Startup Errors only)"); + break; + + case 1: + outstring_log("TSCR: EventAI Error Reporting level set to 1 (Startup errors and Runtime event errors)"); + break; + + case 2: + outstring_log("TSCR: EventAI Error Reporting level set to 2 (Startup errors, Runtime event errors, and Creation errors)"); + break; + + default: + outstring_log("TSCR: Unknown EventAI Error Reporting level. Defaulting to 1 (Startup errors and Runtime event errors)"); + EAI_ErrorLevel = 1; + break; } outstring_log(""); - //Load database (must be called after SD2Config.SetSource) + //Load database (must be called after TScriptConfig.SetSource) LoadDatabase(); nrscripts = 0; @@ -1697,7 +1691,7 @@ void ScriptsInit() // ------------------- - outstring_log("SD2: Loaded %u C++ Scripts", nrscripts); + outstring_log("TSCR: Loaded %u C++ Scripts", nrscripts); outstring_log(""); } @@ -1707,7 +1701,7 @@ void ScriptsInit() const char* GetEventAILocalizedText(uint32 entry) { if (entry == 0xffffffff) - error_log("SD2: Entry = -1, GetEventAILocalizedText should not be called in this case."); + error_log("TSCR: Entry = -1, GetEventAILocalizedText should not be called in this case."); const char* temp = NULL; @@ -1715,7 +1709,7 @@ const char* GetEventAILocalizedText(uint32 entry) if (i == EventAI_LocalizedTextMap.end()) { - error_log("SD2: EventAI Localized Text %u not found", entry); + error_log("TSCR: EventAI Localized Text %u not found", entry); return DEFAULT_TEXT; } @@ -1768,7 +1762,7 @@ const char* GetScriptLocalizedText(uint32 entry) if (i == Script_LocalizedTextMap.end()) { - error_log("SD2: Script Localized Text %u not found", entry); + error_log("TSCR: Script Localized Text %u not found", entry); return DEFAULT_TEXT; } @@ -1816,14 +1810,14 @@ const char* GetScriptLocalizedText(uint32 entry) const char* GetEventAIText(uint32 entry) { if(entry == 0xffffffff) - error_log("SD2: Entry = -1, GetEventAIText should not be called in this case."); + error_log("TSCR: Entry = -1, GetEventAIText should not be called in this case."); const char* str = NULL; HM_NAMESPACE::hash_map<uint32, std::string>::iterator itr = EventAI_Text_Map.find(entry); if(itr == EventAI_Text_Map.end()) { - error_log("SD2 ERROR: Unable to find EventAI Text %u", entry); + error_log("TSCR: Unable to find EventAI Text %u", entry); return DEFAULT_TEXT; } @@ -1842,7 +1836,7 @@ void ProcessScriptText(uint32 id, WorldObject* pSource, Unit* target) { if (!pSource) { - error_log("SD2: ProcessScriptText invalid Source pointer."); + error_log("TSCR: ProcessScriptText invalid Source pointer."); return; } @@ -1850,7 +1844,7 @@ void ProcessScriptText(uint32 id, WorldObject* pSource, Unit* target) if (i == Script_TextMap.end()) { - error_log("SD2: ProcessScriptText could not find id %u.",id); + error_log("TSCR: ProcessScriptText could not find id %u.",id); return; } @@ -1864,7 +1858,7 @@ void ProcessScriptText(uint32 id, WorldObject* pSource, Unit* target) pSource->SendMessageToSet(&data,false); } else - error_log("SD2: ProcessScriptText id %u tried to process invalid soundid %u.",id,(*i).second.SoundId); + error_log("TSCR: ProcessScriptText id %u tried to process invalid soundid %u.",id,(*i).second.SoundId); } switch((*i).second.Type) @@ -1889,14 +1883,14 @@ void ProcessScriptText(uint32 id, WorldObject* pSource, Unit* target) { if (target && target->GetTypeId() == TYPEID_PLAYER) pSource->MonsterWhisper((*i).second.Text.c_str(), target->GetGUID()); - else error_log("SD2: ProcessScriptText id %u cannot whisper without target unit (TYPEID_PLAYER).", id); + else error_log("TSCR: ProcessScriptText id %u cannot whisper without target unit (TYPEID_PLAYER).", id); }break; case CHAT_TYPE_BOSS_WHISPER: { if (target && target->GetTypeId() == TYPEID_PLAYER) pSource->MonsterWhisper((*i).second.Text.c_str(), target->GetGUID(), true); - else error_log("SD2: ProcessScriptText id %u cannot whisper without target unit (TYPEID_PLAYER).", id); + else error_log("TSCR: ProcessScriptText id %u cannot whisper without target unit (TYPEID_PLAYER).", id); }break; } } @@ -1930,7 +1924,7 @@ bool GossipHello ( Player * player, Creature *_Creature ) MANGOS_DLL_EXPORT bool GossipSelect( Player *player, Creature *_Creature, uint32 sender, uint32 action ) { - debug_log("SD2: Gossip selection, sender: %d, action: %d",sender, action); + debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action); Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); if(!tmpscript || !tmpscript->pGossipSelect) return false; @@ -1942,7 +1936,7 @@ bool GossipSelect( Player *player, Creature *_Creature, uint32 sender, uint32 ac MANGOS_DLL_EXPORT bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, uint32 action, const char* sCode ) { - debug_log("SD2: Gossip selection with code, sender: %d, action: %d",sender, action); + debug_log("TSCR: Gossip selection with code, sender: %d, action: %d",sender, action); Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); if(!tmpscript || !tmpscript->pGossipSelectWithCode) return false; |