aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-09-06 22:03:20 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-09-06 22:03:20 +0100
commit1f6066c6e3624a4273de3d84a265bf3ed1311896 (patch)
tree310fa6f7ba582e606010eaa3cb244e9e9d334242 /src
parentfe99efd6fa2ea879970d4984361edc6b29d949b5 (diff)
parent9ab74b39109bb611c0deb5228640b92f22c83089 (diff)
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts: src/server/game/Entities/Player/Player.cpp
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp54
-rw-r--r--src/server/game/Miscellaneous/Language.h17
-rw-r--r--src/server/scripts/Commands/cs_instance.cpp27
-rw-r--r--src/server/scripts/Commands/cs_server.cpp15
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_ras_frostwhisper.cpp145
-rw-r--r--src/server/scripts/EasternKingdoms/Scholomance/boss_vectus.cpp104
-rw-r--r--src/server/scripts/Events/childrens_week.cpp16
-rw-r--r--src/server/shared/Database/Field.h16
-rw-r--r--src/server/worldserver/worldserver.conf.dist18
9 files changed, 204 insertions, 208 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index a94b58868ee..bfd3a1bbcb9 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -5846,40 +5846,38 @@ 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
- 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);
+ 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);
+ ApplyAttackTimePercentMod(OFF_ATTACK, oldVal, false);
+ ApplyAttackTimePercentMod(BASE_ATTACK, newVal, true);
+ ApplyAttackTimePercentMod(OFF_ATTACK, newVal, true);
if (getClass() == CLASS_DEATH_KNIGHT)
UpdateAllRunesRegen();
- 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;
- }
+ 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);
+ UpdateRating(combatRating);
}
void Player::UpdateRating(CombatRating cr)
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index e0e9dcd540d..c8106952488 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -1104,7 +1104,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;
}
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;
}
}
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 <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* 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 <http://www.gnu.org/licenses/>.
*/
-/* 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 <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* 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 <http://www.gnu.org/licenses/>.
*/
-/* 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()
diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp
index 021714e3055..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)
@@ -169,7 +169,6 @@ class npc_winterfin_playmate : public CreatureScript
}
void MoveInLineOfSight(Unit* who) override
-
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -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);
}
@@ -574,7 +573,6 @@ class npc_elder_kekek : public CreatureScript
}
void MoveInLineOfSight(Unit* who) override
-
{
if (!phase && who && who->GetDistance2d(me) < 10.0f)
if (Player* player = who->ToPlayer())
@@ -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())
@@ -1082,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())
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<uint8*>(data.value);
- return static_cast<uint8>(atol((char*)data.value));
+ return static_cast<uint8>(strtoul((char*)data.value, nullptr, 10));
}
int8 GetInt8() const
@@ -68,7 +68,7 @@ class Field
if (data.raw)
return *reinterpret_cast<int8*>(data.value);
- return static_cast<int8>(atol((char*)data.value));
+ return static_cast<int8>(strtol((char*)data.value, NULL, 10));
}
uint16 GetUInt16() const
@@ -86,7 +86,7 @@ class Field
if (data.raw)
return *reinterpret_cast<uint16*>(data.value);
- return static_cast<uint16>(atol((char*)data.value));
+ return static_cast<uint16>(strtoul((char*)data.value, nullptr, 10));
}
int16 GetInt16() const
@@ -104,7 +104,7 @@ class Field
if (data.raw)
return *reinterpret_cast<int16*>(data.value);
- return static_cast<int16>(atol((char*)data.value));
+ return static_cast<int16>(strtol((char*)data.value, NULL, 10));
}
uint32 GetUInt32() const
@@ -122,7 +122,7 @@ class Field
if (data.raw)
return *reinterpret_cast<uint32*>(data.value);
- return static_cast<uint32>(atol((char*)data.value));
+ return static_cast<uint32>(strtoul((char*)data.value, nullptr, 10));
}
int32 GetInt32() const
@@ -140,7 +140,7 @@ class Field
if (data.raw)
return *reinterpret_cast<int32*>(data.value);
- return static_cast<int32>(atol((char*)data.value));
+ return static_cast<int32>(strtol((char*)data.value, NULL, 10));
}
uint64 GetUInt64() const
@@ -158,7 +158,7 @@ class Field
if (data.raw)
return *reinterpret_cast<uint64*>(data.value);
- return static_cast<uint64>(atol((char*)data.value));
+ return static_cast<uint64>(strtoull((char*)data.value, nullptr, 10));
}
int64 GetInt64() const
@@ -176,7 +176,7 @@ class Field
if (data.raw)
return *reinterpret_cast<int64*>(data.value);
- return static_cast<int64>(strtol((char*)data.value, NULL, 10));
+ return static_cast<int64>(strtoll((char*)data.value, NULL, 10));
}
float GetFloat() const
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index 043d19b66cd..c301d66de34 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -2612,11 +2612,7 @@ UI.ShowQuestLevelsInDialogs = 0
#
###################################################################################################
-###################################
-# Auction House Bot Configuration #
-###################################
-
-###################################################################################################################
+###################################################################################################
# AUCTION HOUSE BOT SETTINGS
#
# AuctionHouseBot.Update.Interval
@@ -2839,7 +2835,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
@@ -2911,9 +2910,9 @@ AuctionHouseBot.forceIncludeItems = ""
AuctionHouseBot.forceExcludeItems = ""
#
-###################################################################################################################
+###################################################################################################
-###################################################################################################################
+###################################################################################################
# AHBot Buyer config
#
# AuctionHouseBot.Buyer.Enabled
@@ -2961,7 +2960,7 @@ AuctionHouseBot.Buyer.Horde.Chance.Ratio = 3
AuctionHouseBot.Buyer.Neutral.Chance.Ratio = 3
#
-###################################################################################################################
+###################################################################################################
###################################################################################################
# LOGGING SYSTEM SETTINGS
@@ -3117,6 +3116,7 @@ Log.Async.Enable = 0
# 1 - (Enabled)
Allow.IP.Based.Action.Logging = 0
+
#
###################################################################################################