From 3b987c4a891ef106c3a8b74f4754db45d1133493 Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Fri, 5 Sep 2014 21:59:58 -0300 Subject: Scripts/Commands: Move instance command strings to database --- src/server/game/Miscellaneous/Language.h | 17 ++++++++++++++++- src/server/scripts/Commands/cs_instance.cpp | 27 ++++++++++++++------------- 2 files changed, 30 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 5fe2ebd89b9..eceb0a8e7de 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -1094,7 +1094,22 @@ enum TrinityStrings LANG_GPS_POSITION_OUTDOORS = 5042, LANG_GPS_POSITION_INDOORS = 5043, LANG_GPS_NO_VMAP = 5044, - // Room for more Trinity strings 5045-9999 + + // Instance commands + LANG_COMMAND_LIST_BIND_INFO = 5045, + LANG_COMMAND_LIST_BIND_PLAYER_BINDS = 5046, + LANG_COMMAND_LIST_BIND_GROUP_BINDS = 5047, + LANG_COMMAND_INST_UNBIND_UNBINDING = 5048, + LANG_COMMAND_INST_UNBIND_UNBOUND = 5049, + LANG_COMMAND_INST_STAT_LOADED_INST = 5050, + LANG_COMMAND_INST_STAT_PLAYERS_IN = 5051, + LANG_COMMAND_INST_STAT_SAVES = 5052, + LANG_COMMAND_INST_STAT_PLAYERSBOUND = 5053, + LANG_COMMAND_INST_STAT_GROUPSBOUND = 5054, + LANG_NOT_DUNGEON = 5055, // Map is not a dungeon. + LANG_NO_INSTANCE_DATA = 5056, // Map has no instance data. + + // Room for more Trinity strings 5057-9999 // Level requirement notifications LANG_SAY_REQ = 6604, diff --git a/src/server/scripts/Commands/cs_instance.cpp b/src/server/scripts/Commands/cs_instance.cpp index b8d69c250bb..464d58ad908 100644 --- a/src/server/scripts/Commands/cs_instance.cpp +++ b/src/server/scripts/Commands/cs_instance.cpp @@ -29,6 +29,7 @@ EndScriptData */ #include "InstanceScript.h" #include "MapManager.h" #include "Player.h" +#include "Language.h" class instance_commandscript : public CommandScript { @@ -81,11 +82,11 @@ public: { InstanceSave* save = itr->second.save; std::string timeleft = GetTimeString(save->GetResetTime() - time(NULL)); - handler->PSendSysMessage("map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s", itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_INFO, itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); counter++; } } - handler->PSendSysMessage("player binds: %d", counter); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_PLAYER_BINDS, counter); counter = 0; if (Group* group = player->GetGroup()) @@ -97,12 +98,12 @@ public: { InstanceSave* save = itr->second.save; std::string timeleft = GetTimeString(save->GetResetTime() - time(NULL)); - handler->PSendSysMessage("map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s", itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_INFO, itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); counter++; } } } - handler->PSendSysMessage("group binds: %d", counter); + handler->PSendSysMessage(LANG_COMMAND_LIST_BIND_GROUP_BINDS, counter); return true; } @@ -140,7 +141,7 @@ public: if (itr->first != player->GetMapId() && (!MapId || MapId == itr->first) && (diff == -1 || diff == save->GetDifficulty())) { std::string timeleft = GetTimeString(save->GetResetTime() - time(NULL)); - handler->PSendSysMessage("unbinding map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s", itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); + handler->PSendSysMessage(LANG_COMMAND_INST_UNBIND_UNBINDING, itr->first, save->GetInstanceId(), itr->second.perm ? "yes" : "no", save->GetDifficulty(), save->CanReset() ? "yes" : "no", timeleft.c_str()); player->UnbindInstance(itr, Difficulty(i)); counter++; } @@ -148,18 +149,18 @@ public: ++itr; } } - handler->PSendSysMessage("instances unbound: %d", counter); + handler->PSendSysMessage(LANG_COMMAND_INST_UNBIND_UNBOUND, counter); return true; } static bool HandleInstanceStatsCommand(ChatHandler* handler, char const* /*args*/) { - handler->PSendSysMessage("instances loaded: %d", sMapMgr->GetNumInstances()); - handler->PSendSysMessage("players in instances: %d", sMapMgr->GetNumPlayersInInstances()); - handler->PSendSysMessage("instance saves: %d", sInstanceSaveMgr->GetNumInstanceSaves()); - handler->PSendSysMessage("players bound: %d", sInstanceSaveMgr->GetNumBoundPlayersTotal()); - handler->PSendSysMessage("groups bound: %d", sInstanceSaveMgr->GetNumBoundGroupsTotal()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_LOADED_INST, sMapMgr->GetNumInstances()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_PLAYERS_IN, sMapMgr->GetNumPlayersInInstances()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_SAVES, sInstanceSaveMgr->GetNumInstanceSaves()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_PLAYERSBOUND, sInstanceSaveMgr->GetNumBoundPlayersTotal()); + handler->PSendSysMessage(LANG_COMMAND_INST_STAT_GROUPSBOUND, sInstanceSaveMgr->GetNumBoundGroupsTotal()); return true; } @@ -170,14 +171,14 @@ public: Map* map = player->GetMap(); if (!map->IsDungeon()) { - handler->PSendSysMessage("Map is not a dungeon."); + handler->PSendSysMessage(LANG_NOT_DUNGEON); handler->SetSentErrorMessage(true); return false; } if (!((InstanceMap*)map)->GetInstanceScript()) { - handler->PSendSysMessage("Map has no instance data."); + handler->PSendSysMessage(LANG_NO_INSTANCE_DATA); handler->SetSentErrorMessage(true); return false; } -- cgit v1.2.3 From 76f1d5f22153ea323ef42f481f6958f9cfb370b9 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Sat, 6 Sep 2014 03:09:33 +0200 Subject: SQL: Rename SQL after recent PR merge --- sql/updates/world/2014_09_06_02_trinity_string.sql | 14 +++++ sql/updates/world/2014_XX_XX_XX_trinity_string.sql | 14 ----- src/server/game/Entities/Player/Player.cpp | 48 ++++++++--------- src/server/scripts/Events/childrens_week.cpp | 63 ++++++++++------------ 4 files changed, 66 insertions(+), 73 deletions(-) create mode 100644 sql/updates/world/2014_09_06_02_trinity_string.sql delete mode 100644 sql/updates/world/2014_XX_XX_XX_trinity_string.sql (limited to 'src') diff --git a/sql/updates/world/2014_09_06_02_trinity_string.sql b/sql/updates/world/2014_09_06_02_trinity_string.sql new file mode 100644 index 00000000000..d791e59647d --- /dev/null +++ b/sql/updates/world/2014_09_06_02_trinity_string.sql @@ -0,0 +1,14 @@ +DELETE FROM `trinity_string` WHERE `entry` IN (5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056); +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES +(5045, 'Map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s'), +(5046, 'Player binds: %d'), +(5047, 'Group binds: %d'), +(5048, 'Unbinding map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s'), +(5049, 'Instances unbound: %d'), +(5050, 'Instances loaded: %d'), +(5051, 'Players in instances: %d'), +(5052, 'Instance saves: %d'), +(5053, 'Players bound: %d'), +(5054, 'Groups bound: %d'), +(5055, 'Map is not a dungeon.'), +(5056, 'Map has no instance data.'); diff --git a/sql/updates/world/2014_XX_XX_XX_trinity_string.sql b/sql/updates/world/2014_XX_XX_XX_trinity_string.sql deleted file mode 100644 index d791e59647d..00000000000 --- a/sql/updates/world/2014_XX_XX_XX_trinity_string.sql +++ /dev/null @@ -1,14 +0,0 @@ -DELETE FROM `trinity_string` WHERE `entry` IN (5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056); -INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES -(5045, 'Map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s'), -(5046, 'Player binds: %d'), -(5047, 'Group binds: %d'), -(5048, 'Unbinding map: %d inst: %d perm: %s diff: %d canReset: %s TTR: %s'), -(5049, 'Instances unbound: %d'), -(5050, 'Instances loaded: %d'), -(5051, 'Players in instances: %d'), -(5052, 'Instance saves: %d'), -(5053, 'Players bound: %d'), -(5054, 'Groups bound: %d'), -(5055, 'Map is not a dungeon.'), -(5056, 'Map has no instance data.'); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 158ff17ea11..d7a9fb130f2 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5887,32 +5887,30 @@ float Player::OCTRegenMPPerSpirit() void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) { float oldRating = m_baseRatingValue[cr]; - m_baseRatingValue[cr]+=(apply ? value : -value); + m_baseRatingValue[cr] += (apply ? value : -value); + // explicit affected values - if (cr == CR_HASTE_MELEE || cr == CR_HASTE_RANGED || cr == CR_HASTE_SPELL) - { - float const mult = GetRatingMultiplier(cr); - float const oldVal = oldRating * mult; - float const newVal = m_baseRatingValue[cr] * mult; - switch (cr) - { - case CR_HASTE_MELEE: - ApplyAttackTimePercentMod(BASE_ATTACK, oldVal, false); - ApplyAttackTimePercentMod(OFF_ATTACK, oldVal, false); - ApplyAttackTimePercentMod(BASE_ATTACK, newVal, true); - ApplyAttackTimePercentMod(OFF_ATTACK, newVal, true); - break; - case CR_HASTE_RANGED: - ApplyAttackTimePercentMod(RANGED_ATTACK, oldVal, false); - ApplyAttackTimePercentMod(RANGED_ATTACK, newVal, true); - break; - case CR_HASTE_SPELL: - ApplyCastTimePercentMod(oldVal, false); - ApplyCastTimePercentMod(newVal, true); - break; - default: // shut up compiler warnings - break; - } + float const mult = GetRatingMultiplier(cr); + float const oldVal = oldRating * mult; + float const newVal = m_baseRatingValue[cr] * mult; + switch (cr) + { + case CR_HASTE_MELEE: + ApplyAttackTimePercentMod(BASE_ATTACK, oldVal, false); + ApplyAttackTimePercentMod(OFF_ATTACK, oldVal, false); + ApplyAttackTimePercentMod(BASE_ATTACK, newVal, true); + ApplyAttackTimePercentMod(OFF_ATTACK, newVal, true); + break; + case CR_HASTE_RANGED: + ApplyAttackTimePercentMod(RANGED_ATTACK, oldVal, false); + ApplyAttackTimePercentMod(RANGED_ATTACK, newVal, true); + break; + case CR_HASTE_SPELL: + ApplyCastTimePercentMod(oldVal, false); + ApplyCastTimePercentMod(newVal, true); + break; + default: + break; } UpdateRating(cr); diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp index 6a338c2f03a..4bc0642e348 100644 --- a/src/server/scripts/Events/childrens_week.cpp +++ b/src/server/scripts/Events/childrens_week.cpp @@ -27,7 +27,7 @@ enum Orphans ORPHAN_BLOOD_ELF = 22817, ORPHAN_DRAENEI = 22818, ORPHAN_HUMAN = 14305, - ORPHAN_ORCISH = 14444, + ORPHAN_ORCISH = 14444 }; enum Texts @@ -68,7 +68,7 @@ enum Texts TEXT_ELDER_KEKEK_1 = 1, TEXT_ALEXSTRASZA_2 = 2, - TEXT_KRASUS_8 = 8, + TEXT_KRASUS_8 = 8 }; enum Quests @@ -99,7 +99,7 @@ enum Quests QUEST_NOW_WHEN_I_GROW_UP = 11975, QUEST_HOME_OF_THE_BEAR_MEN = 13930, QUEST_THE_DRAGON_QUEEN_ORACLE = 13954, - QUEST_THE_DRAGON_QUEEN_WOLVAR = 13955, + QUEST_THE_DRAGON_QUEEN_WOLVAR = 13955 }; enum Areatriggers @@ -120,7 +120,7 @@ enum Areatriggers NPC_SPOREGGAR_CW_TRIGGER = 22829, NPC_THRONE_OF_ELEMENTS_CW_TRIGGER = 22839, NPC_SILVERMOON_01_CW_TRIGGER = 22866, - NPC_KRASUS = 27990, + NPC_KRASUS = 27990 }; enum Misc @@ -128,7 +128,7 @@ enum Misc SPELL_SNOWBALL = 21343, SPELL_ORPHAN_OUT = 58818, - DISPLAY_INVISIBLE = 11686, + DISPLAY_INVISIBLE = 11686 }; uint64 getOrphanGUID(Player* player, uint32 orphan) @@ -163,13 +163,12 @@ class npc_winterfin_playmate : public CreatureScript orphanGUID = 0; } - void Reset() + void Reset() override { Initialize(); } void MoveInLineOfSight(Unit* who) override - { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -182,7 +181,7 @@ class npc_winterfin_playmate : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -241,7 +240,7 @@ class npc_winterfin_playmate : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_winterfin_playmateAI(creature); } @@ -270,7 +269,7 @@ class npc_snowfall_glade_playmate : public CreatureScript orphanGUID = 0; } - void Reset() + void Reset() override { Initialize(); } @@ -289,7 +288,7 @@ class npc_snowfall_glade_playmate : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -347,7 +346,7 @@ class npc_snowfall_glade_playmate : public CreatureScript uint64 orphanGUID; }; - CreatureAI* GetAI(Creature* pCreature) const + CreatureAI* GetAI(Creature* pCreature) const override { return new npc_snowfall_glade_playmateAI(pCreature); } @@ -377,7 +376,7 @@ class npc_the_biggest_tree : public CreatureScript orphanGUID = 0; } - void Reset() + void Reset() override { Initialize(); } @@ -395,7 +394,7 @@ class npc_the_biggest_tree : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -442,7 +441,7 @@ class npc_the_biggest_tree : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_the_biggest_treeAI(creature); } @@ -471,7 +470,7 @@ class npc_high_oracle_soo_roo : public CreatureScript orphanGUID = 0; } - void Reset() + void Reset() override { Initialize(); } @@ -490,7 +489,7 @@ class npc_high_oracle_soo_roo : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -539,7 +538,7 @@ class npc_high_oracle_soo_roo : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_high_oracle_soo_rooAI(creature); } @@ -568,13 +567,12 @@ class npc_elder_kekek : public CreatureScript orphanGUID = 0; } - void Reset() + void Reset() override { Initialize(); } void MoveInLineOfSight(Unit* who) override - { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -587,7 +585,7 @@ class npc_elder_kekek : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -635,7 +633,7 @@ class npc_elder_kekek : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_elder_kekekAI(creature); } @@ -665,7 +663,7 @@ class npc_the_etymidian : public CreatureScript orphanGUID = 0; } - void Reset() + void Reset() override { Initialize(); } @@ -683,7 +681,7 @@ class npc_the_etymidian : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -739,7 +737,7 @@ class npc_the_etymidian : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_the_etymidianAI(creature); } @@ -768,7 +766,7 @@ class npc_alexstraza_the_lifebinder : public CreatureScript orphanGUID = 0; } - void Reset() + void Reset() override { Initialize(); } @@ -791,7 +789,6 @@ class npc_alexstraza_the_lifebinder : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (!phase && who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -813,7 +810,7 @@ class npc_alexstraza_the_lifebinder : public CreatureScript } } - void UpdateAI(uint32 diff) + void UpdateAI(uint32 diff) override { if (!phase) return; @@ -908,7 +905,7 @@ class npc_alexstraza_the_lifebinder : public CreatureScript }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_alexstraza_the_lifebinderAI(creature); } @@ -923,7 +920,7 @@ class at_bring_your_orphan_to : public AreaTriggerScript public: at_bring_your_orphan_to() : AreaTriggerScript("at_bring_your_orphan_to") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) + bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) override { if (player->isDead() || !player->HasAura(SPELL_ORPHAN_OUT)) return false; @@ -986,7 +983,6 @@ class npc_cw_area_trigger : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (who && me->GetDistance2d(who) < 20.0f) if (Player* player = who->ToPlayer()) @@ -1061,7 +1057,7 @@ class npc_cw_area_trigger : public CreatureScript } }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_cw_area_triggerAI(creature); } @@ -1083,7 +1079,6 @@ class npc_grizzlemaw_cw_trigger : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (who && who->GetDistance2d(me) < 10.0f) if (Player* player = who->ToPlayer()) @@ -1096,7 +1091,7 @@ class npc_grizzlemaw_cw_trigger : public CreatureScript } }; - CreatureAI* GetAI(Creature* creature) const + CreatureAI* GetAI(Creature* creature) const override { return new npc_grizzlemaw_cw_triggerAI(creature); } -- cgit v1.2.3 From 80fe88337e3411122763dcc345a2f00060e33e73 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Sat, 6 Sep 2014 03:12:51 +0200 Subject: Core: Fix git fail -.- --- src/server/game/Entities/Player/Player.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d7a9fb130f2..0edc84a9796 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5884,16 +5884,16 @@ float Player::OCTRegenMPPerSpirit() return regen; } -void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) +void Player::ApplyRatingMod(CombatRating combatRating, int32 value, bool apply) { - float oldRating = m_baseRatingValue[cr]; - m_baseRatingValue[cr] += (apply ? value : -value); + float oldRating = m_baseRatingValue[combatRating]; + m_baseRatingValue[combatRating] += (apply ? value : -value); // explicit affected values - float const mult = GetRatingMultiplier(cr); - float const oldVal = oldRating * mult; - float const newVal = m_baseRatingValue[cr] * mult; - switch (cr) + float const multiplier = GetRatingMultiplier(combatRating); + float const oldVal = oldRating * multiplier; + float const newVal = m_baseRatingValue[combatRating] * multiplier; + switch (combatRating) { case CR_HASTE_MELEE: ApplyAttackTimePercentMod(BASE_ATTACK, oldVal, false); @@ -5913,7 +5913,7 @@ void Player::ApplyRatingMod(CombatRating cr, int32 value, bool apply) break; } - UpdateRating(cr); + UpdateRating(combatRating); } void Player::UpdateRating(CombatRating cr) -- cgit v1.2.3 From 9cb6c1ffd2e0bda59ca24e3c52878b5084fca422 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Sat, 6 Sep 2014 18:37:55 +0200 Subject: Misc: Update worldserver.conf.dist to TC standards --- src/server/worldserver/worldserver.conf.dist | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index ca53e91737b..b49f9ebd9ec 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -2644,11 +2644,7 @@ UI.ShowQuestLevelsInDialogs = 0 # ################################################################################################### -################################### -# Auction House Bot Configuration # -################################### - -################################################################################################################### +################################################################################################### # AUCTION HOUSE BOT SETTINGS # # AuctionHouseBot.Update.Interval @@ -2871,7 +2867,10 @@ AuctionHouseBot.Class.Key = 1 AuctionHouseBot.Class.Misc = 5 AuctionHouseBot.Class.Glyph = 3 -################################################################################################################### +# +################################################################################################### + +################################################################################################### # # AHBot ITEM FINE TUNING # The following are usefull for limiting what character levels can @@ -2943,9 +2942,9 @@ AuctionHouseBot.forceIncludeItems = "" AuctionHouseBot.forceExcludeItems = "" # -################################################################################################################### +################################################################################################### -################################################################################################################### +################################################################################################### # AHBot Buyer config # # AuctionHouseBot.Buyer.Enabled @@ -2993,7 +2992,7 @@ AuctionHouseBot.Buyer.Horde.Chance.Ratio = 3 AuctionHouseBot.Buyer.Neutral.Chance.Ratio = 3 # -################################################################################################################### +################################################################################################### ################################################################################################### # LOGGING SYSTEM SETTINGS @@ -3149,6 +3148,7 @@ Log.Async.Enable = 0 # 1 - (Enabled) Allow.IP.Based.Action.Logging = 0 + # ################################################################################################### -- cgit v1.2.3 From 25f75501ef65f0ef70fa3d4d10cfba93b82ef4a3 Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Sat, 6 Sep 2014 15:37:46 -0300 Subject: Scripts/Scholomance: - Updated Ras Frostwhisper to EventMaps - Updated Vectus to EventMaps --- .../Scholomance/boss_ras_frostwhisper.cpp | 145 +++++++++------------ .../EasternKingdoms/Scholomance/boss_vectus.cpp | 104 ++++++++------- 2 files changed, 116 insertions(+), 133 deletions(-) (limited to 'src') diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp index 9351224863c..41873d778ca 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore - * Copyright (C) 2006-2009 ScriptDev2 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,122 +15,108 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Boss_Ras_Frostwhisper -SD%Complete: 100 -SDComment: -SDCategory: Scholomance -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" enum Spells { SPELL_FROSTBOLT = 21369, - SPELL_ICEARMOR = 18100, // This is actually a buff he gives himself + SPELL_ICE_ARMOR = 18100, // This is actually a buff he gives himself SPELL_FREEZE = 18763, SPELL_FEAR = 26070, - SPELL_CHILLNOVA = 18099, + SPELL_CHILL_NOVA = 18099, SPELL_FROSTVOLLEY = 8398 }; +enum Events +{ + EVENT_FROSTBOLT = 1, + EVENT_ICE_ARMOR, + EVENT_FREEZE, + EVENT_FEAR, + EVENT_CHILL_NOVA, + EVENT_FROSTVOLLEY +}; + class boss_boss_ras_frostwhisper : public CreatureScript { public: boss_boss_ras_frostwhisper() : CreatureScript("boss_boss_ras_frostwhisper") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new boss_rasfrostAI(creature); - } - struct boss_rasfrostAI : public ScriptedAI { - boss_rasfrostAI(Creature* creature) : ScriptedAI(creature) - { - Initialize(); - } - - void Initialize() - { - IceArmor_Timer = 2000; - Frostbolt_Timer = 8000; - ChillNova_Timer = 12000; - Freeze_Timer = 18000; - FrostVolley_Timer = 24000; - Fear_Timer = 45000; - } - - uint32 IceArmor_Timer; - uint32 Frostbolt_Timer; - uint32 Freeze_Timer; - uint32 Fear_Timer; - uint32 ChillNova_Timer; - uint32 FrostVolley_Timer; + boss_rasfrostAI(Creature* creature) : ScriptedAI(creature) { } void Reset() override { - Initialize(); - - DoCast(me, SPELL_ICEARMOR, true); + events.Reset(); + DoCast(me, SPELL_ICE_ARMOR); } - void EnterCombat(Unit* /*who*/) override { } + void EnterCombat(Unit* /*who*/) override + { + events.ScheduleEvent(EVENT_ICE_ARMOR, 2000); + events.ScheduleEvent(EVENT_FROSTBOLT, 8000); + events.ScheduleEvent(EVENT_CHILL_NOVA, 12000); + events.ScheduleEvent(EVENT_FREEZE, 18000); + events.ScheduleEvent(EVENT_FEAR, 45000); + } void UpdateAI(uint32 diff) override { if (!UpdateVictim()) return; - //IceArmor_Timer - if (IceArmor_Timer <= diff) - { - DoCast(me, SPELL_ICEARMOR); - IceArmor_Timer = 180000; - } else IceArmor_Timer -= diff; - - //Frostbolt_Timer - if (Frostbolt_Timer <= diff) - { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(target, SPELL_FROSTBOLT); - - Frostbolt_Timer = 8000; - } else Frostbolt_Timer -= diff; - - //Freeze_Timer - if (Freeze_Timer <= diff) - { - DoCastVictim(SPELL_FREEZE); - Freeze_Timer = 24000; - } else Freeze_Timer -= diff; + events.Update(diff); - //Fear_Timer - if (Fear_Timer <= diff) - { - DoCastVictim(SPELL_FEAR); - Fear_Timer = 30000; - } else Fear_Timer -= diff; - - //ChillNova_Timer - if (ChillNova_Timer <= diff) - { - DoCastVictim(SPELL_CHILLNOVA); - ChillNova_Timer = 14000; - } else ChillNova_Timer -= diff; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - //FrostVolley_Timer - if (FrostVolley_Timer <= diff) + while (uint32 eventId = events.ExecuteEvent()) { - DoCastVictim(SPELL_FROSTVOLLEY); - FrostVolley_Timer = 15000; - } else FrostVolley_Timer -= diff; + switch (eventId) + { + case EVENT_ICE_ARMOR: + DoCast(me, SPELL_ICE_ARMOR); + events.ScheduleEvent(EVENT_ICE_ARMOR, 180000); + break; + case EVENT_FROSTBOLT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) + DoCast(target, SPELL_FROSTBOLT); + events.ScheduleEvent(EVENT_FROSTBOLT, 8000); + break; + case EVENT_FREEZE: + DoCastVictim(SPELL_FREEZE); + events.ScheduleEvent(EVENT_FREEZE, 24000); + break; + case EVENT_FEAR: + DoCastVictim(SPELL_FEAR); + events.ScheduleEvent(EVENT_FEAR, 30000); + break; + case EVENT_CHILL_NOVA: + DoCastVictim(SPELL_CHILL_NOVA); + events.ScheduleEvent(EVENT_CHILL_NOVA, 14000); + break; + case EVENT_FROSTVOLLEY: + DoCastVictim(SPELL_FROSTVOLLEY); + events.ScheduleEvent(EVENT_FROSTVOLLEY, 15000); + break; + default: + break; + } + } DoMeleeAttackIfReady(); } + + private: + EventMap events; }; + CreatureAI* GetAI(Creature* creature) const override + { + return new boss_rasfrostAI(creature); + } }; void AddSC_boss_rasfrost() diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp index fba5f3faa14..654f06ad3ed 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp @@ -1,6 +1,5 @@ /* * Copyright (C) 2008-2014 TrinityCore - * Copyright (C) 2006-2009 ScriptDev2 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -16,103 +15,102 @@ * with this program. If not, see . */ -/* ScriptData -SDName: Boss_Vectus -SD%Complete: 100 -SDComment: -SDCategory: Scholomance -EndScriptData */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" enum Emotes { - EMOTE_FRENZY_KILL = 0 + EMOTE_FRENZY = 0 }; enum Spells { SPELL_FLAMESTRIKE = 18399, SPELL_BLAST_WAVE = 16046, - SPELL_FIRESHIELD = 19626, + SPELL_FIRE_SHIELD = 19626, SPELL_FRENZY = 8269 // 28371 }; +enum Events +{ + EVENT_FIRE_SHIELD = 1, + EVENT_BLAST_WAVE, + EVENT_FRENZY +}; + class boss_vectus : public CreatureScript { public: boss_vectus() : CreatureScript("boss_vectus") { } - CreatureAI* GetAI(Creature* creature) const override - { - return new boss_vectusAI(creature); - } - struct boss_vectusAI : public ScriptedAI { - boss_vectusAI(Creature* creature) : ScriptedAI(creature) + boss_vectusAI(Creature* creature) : ScriptedAI(creature) { } + + void Reset() override { - Initialize(); + events.Reset(); } - void Initialize() + void EnterCombat(Unit* /*who*/) override { - m_uiFireShield_Timer = 2000; - m_uiBlastWave_Timer = 14000; - m_uiFrenzy_Timer = 0; + events.ScheduleEvent(EVENT_FIRE_SHIELD, 2000); + events.ScheduleEvent(EVENT_BLAST_WAVE, 14000); } - uint32 m_uiFireShield_Timer; - uint32 m_uiBlastWave_Timer; - uint32 m_uiFrenzy_Timer; - - void Reset() override + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - Initialize(); + if (me->HealthBelowPctDamaged(25, damage)) + { + DoCast(me, SPELL_FRENZY); + Talk(EMOTE_FRENZY); + events.ScheduleEvent(EVENT_FRENZY, 24000); + } } - void UpdateAI(uint32 uiDiff) override + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) return; - //FireShield_Timer - if (m_uiFireShield_Timer <= uiDiff) - { - DoCast(me, SPELL_FIRESHIELD); - m_uiFireShield_Timer = 90000; - } - else - m_uiFireShield_Timer -= uiDiff; + events.Update(diff); - //BlastWave_Timer - if (m_uiBlastWave_Timer <= uiDiff) - { - DoCastVictim(SPELL_BLAST_WAVE); - m_uiBlastWave_Timer = 12000; - } - else - m_uiBlastWave_Timer -= uiDiff; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - //Frenzy_Timer - if (HealthBelowPct(25)) + while (uint32 eventId = events.ExecuteEvent()) { - if (m_uiFrenzy_Timer <= uiDiff) + switch (eventId) { - DoCast(me, SPELL_FRENZY); - Talk(EMOTE_FRENZY_KILL); - - m_uiFrenzy_Timer = 24000; + case EVENT_FIRE_SHIELD: + DoCast(me, SPELL_FIRE_SHIELD); + events.ScheduleEvent(EVENT_FIRE_SHIELD, 90000); + break; + case EVENT_BLAST_WAVE: + DoCast(me, SPELL_BLAST_WAVE); + events.ScheduleEvent(EVENT_BLAST_WAVE, 12000); + case EVENT_FRENZY: + DoCast(me, SPELL_FRENZY); + Talk(EMOTE_FRENZY); + events.ScheduleEvent(EVENT_FRENZY, 24000); + break; + default: + break; } - else - m_uiFrenzy_Timer -= uiDiff; } DoMeleeAttackIfReady(); } + + private: + EventMap events; }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new boss_vectusAI(creature); + } }; void AddSC_boss_vectus() -- cgit v1.2.3 From 29b9e5f0d5856fd84102b2ebbada57eff5863e8c Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sat, 6 Sep 2014 20:41:24 +0200 Subject: Scripts/Commands: Fix issues reported by static analysis Fix possible buffer overflow in ".server shutdown" and NULL-dereference/Triggered Debug Assert. --- src/server/scripts/Commands/cs_server.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index 14a68d1fdae..f828b66a93a 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -316,6 +316,9 @@ private: if (!*args) return false; + if (strlen(args) > 255) + return false; + // #delay [#exit_code] [reason] char* delayStr = strtok((char*)args, " "); if (!delayStr || !isNumeric(delayStr)) @@ -323,10 +326,7 @@ private: char* exitCodeStr = nullptr; - if (strlen(args) > 255) - return false; - - char reason[255] = { 0 }; + char reason[256] = { 0 }; while (char* nextToken = strtok(nullptr, " ")) { @@ -335,8 +335,11 @@ private: else { strcat(reason, nextToken); - strcat(reason, " "); - strcat(reason, strtok(nullptr, "\0")); + if (char* remainingTokens = strtok(nullptr, "\0")) + { + strcat(reason, " "); + strcat(reason, remainingTokens); + } break; } } -- cgit v1.2.3 From 9ab74b39109bb611c0deb5228640b92f22c83089 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 6 Sep 2014 22:58:29 +0200 Subject: Core/DBLayer: Fixed GetUInt32,GetInt64 and GetUInt64 on windows when value stored in db was greater than 2147483647 --- src/server/shared/Database/Field.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/server/shared/Database/Field.h b/src/server/shared/Database/Field.h index 5f427a5871b..2e888be5ed3 100644 --- a/src/server/shared/Database/Field.h +++ b/src/server/shared/Database/Field.h @@ -50,7 +50,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atol((char*)data.value)); + return static_cast(strtoul((char*)data.value, nullptr, 10)); } int8 GetInt8() const @@ -68,7 +68,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atol((char*)data.value)); + return static_cast(strtol((char*)data.value, NULL, 10)); } uint16 GetUInt16() const @@ -86,7 +86,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atol((char*)data.value)); + return static_cast(strtoul((char*)data.value, nullptr, 10)); } int16 GetInt16() const @@ -104,7 +104,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atol((char*)data.value)); + return static_cast(strtol((char*)data.value, NULL, 10)); } uint32 GetUInt32() const @@ -122,7 +122,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atol((char*)data.value)); + return static_cast(strtoul((char*)data.value, nullptr, 10)); } int32 GetInt32() const @@ -140,7 +140,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atol((char*)data.value)); + return static_cast(strtol((char*)data.value, NULL, 10)); } uint64 GetUInt64() const @@ -158,7 +158,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atol((char*)data.value)); + return static_cast(strtoull((char*)data.value, nullptr, 10)); } int64 GetInt64() const @@ -176,7 +176,7 @@ class Field if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtol((char*)data.value, NULL, 10)); + return static_cast(strtoll((char*)data.value, NULL, 10)); } float GetFloat() const -- cgit v1.2.3