Merge branch 'master' into Playerbot

This commit is contained in:
Yunfan Li
2024-07-23 18:23:10 +08:00
83 changed files with 320 additions and 247 deletions
+3 -1
View File
@@ -61,7 +61,9 @@ body:
attributes:
label: AC rev. hash/commit
description: |
Copy the result of the `.server debug` command (if you need to run it from the client get a prat addon)
Paste the entire output result of the `.server debug` command. (If you need to run it from the client get a prat addon)
placeholder: |
Paste the entire output result of the `.server debug` command. (If you need to run it from the client get a prat addon)
validations:
required: true
- type: input
+6 -5
View File
@@ -16,6 +16,11 @@ inputs:
description: Flag to install modules or not
required: true
type: boolean
tools:
default: none
description: Flag to enable tools build
required: false
type: string
pch:
default: false
description: Flag to enable or disable PCH
@@ -94,7 +99,7 @@ runs:
cmake "$GITHUB_WORKSPACE" \
-DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/env/dist" \
-DAPPS_BUILD="all" \
-DTOOLS_BUILD="all" \
-DTOOLS_BUILD=${{ inputs.tools }} \
-DSCRIPTS="static" \
-DMODULES="static" \
-DWITH_WARNINGS="ON" \
@@ -144,10 +149,6 @@ runs:
shell: bash
run: sudo systemctl start mysql.service
- name: run dbimport
shell: bash
run: env/dist/bin/dbimport
- name: Dry run authserver
shell: bash
run: timeout 5m env/dist/bin/authserver --dry-run
+12 -26
View File
@@ -12,15 +12,15 @@ concurrency:
jobs:
build:
strategy:
fail-fast: false
fail-fast: true
matrix:
# the result of the matrix will be the combination of all attributes, so we get os*compiler builds
os: [ubuntu-24.04]
compiler: [clang]
include:
- os: ubuntu-24.04
compiler:
CC: clang-18
CXX: clang++-18
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }}-${{ matrix.compiler }}
env:
COMPILER: ${{ matrix.compiler }}
name: ${{ matrix.os }}-${{ matrix.compiler.CC }}
if: |
github.repository == 'liyunfan1223/azerothcore-wotlk' && !github.event.pull_request.draft
&& (
@@ -29,23 +29,9 @@ jobs:
)
steps:
- uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
env:
cache-name: cache-tools
- uses: ./.github/actions/linux-build
with:
path: var/ccache
key: ${{ env.cache-name }}-${{ matrix.os }}-${{ matrix.compiler }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ env.cache-name }}-${{ matrix.os }}-${{ matrix.compiler }}-${{ github.ref }}-
${{ env.cache-name }}-${{ matrix.os }}-${{ matrix.compiler }}-
${{ env.cache-name }}-${{ matrix.os }}-
- name: Configure OS
run: source ./acore.sh install-deps
env:
CONTINUOUS_INTEGRATION: true
- name: Create conf/config.sh
run: source ./apps/ci/ci-conf-tools.sh
- name: Build
run: source ./apps/ci/ci-compile.sh
CC: ${{ matrix.compiler.CC }}
CXX: ${{ matrix.compiler.CXX }}
tools: all
pch: false
@@ -0,0 +1,36 @@
-- DB update 2024_07_18_00 -> 2024_07_19_00
--
UPDATE `creature_template_addon` SET `bytes2` = 1, `auras` = '18950' WHERE (`entry` = 22878);
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 22878);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(22878, 0, 0, 0, 0, 0, 100, 0, 7000, 11000, 9000, 13000, 0, 0, 11, 40100, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Aqueous Lord - In Combat - Cast \'Crashing Wave\''),
(22878, 0, 1, 0, 0, 0, 100, 0, 9000, 15000, 6000, 12000, 0, 0, 11, 40099, 0, 0, 0, 0, 0, 5, 100, 1, 0, 0, 0, 0, 0, 0, 'Aqueous Lord - In Combat - Cast \'Vile Slime\''),
(22878, 0, 2, 3, 0, 0, 100, 0, 14000, 18000, 30000, 40000, 0, 0, 11, 40101, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Aqueous Lord - In Combat - Cast \'Serverside - Summon Aqueous Spawn\''),
(22878, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 22883, 4, 30000, 0, 0, 0, 202, 10, 1, 1, 0, 0, 0, 0, 0, 'Aqueous Lord - In Combat - Summon Creature \'Aqueous Spawn\'');
UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`|2048, `mechanic_immune_mask` = `mechanic_immune_mask`&~8, `flags_extra` = `flags_extra`|256 WHERE (`entry` = 22960);
DELETE FROM `creature_text` WHERE (`CreatureID` = 23028);
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(23028, 0, 0, 'I\'ve seen female Gnomes hit harder than you!', 14, 0, 100, 0, 0, 0, 21354, 0, 'Bonechewer Taskmaster'),
(23028, 0, 1, 'If you don\'t start throwing some real punches, you\'ll be cleaning the drake stalls for a year!', 14, 0, 100, 0, 0, 0, 21356, 0, 'Bonechewer Taskmaster'),
(23028, 0, 2, 'Stop your slacking and fight like a true fel orc!', 14, 0, 100, 0, 0, 0, 21353, 0, 'Bonechewer Taskmaster'),
(23028, 0, 3, 'You call that an offense? I\'ve seen more offensive tallstriders!', 14, 0, 100, 0, 0, 0, 21355, 0, 'Bonechewer Taskmaster'),
(23028, 1, 0, '%s becomes increasingly enraged as he sees his allies fall in battle!', 16, 0, 100, 0, 0, 0, 21352, 0, 'Bonechewer Taskmaster');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 23028);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(23028, 0, 0, 1, 0, 0, 100, 0, 5000, 15000, 14000, 14000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bonechewer Taskmaster - In Combat - Talk'),
(23028, 0, 1, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 67, 1, 3000, 3000, 0, 0, 100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bonechewer Taskmaster - In Combat - Create Timed Event'),
(23028, 0, 2, 0, 59, 0, 100, 0, 1, 0, 0, 0, 0, 0, 11, 40851, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bonechewer Taskmaster - On Timed Event - Cast Disgruntled'),
(23028, 0, 3, 0, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 11, 40845, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bonechewer Taskmaster - On Data Set 1 1 - Cast \'Fury\''),
(23028, 0, 4, 0, 38, 0, 100, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bonechewer Taskmaster - On Data Set 1 1 - Say Line 1 (No Repeat)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 22963);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(22963, 0, 0, 0, 0, 0, 100, 1, 5000, 15000, 0, 0, 0, 0, 11, 40844, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Bonechewer Worker - In Combat - Cast \'Throw Pick\' (No Repeat)'),
(22963, 0, 1, 0, 8, 0, 100, 0, 40851, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bonechewer Worker - On Spellhit \'Disgruntled\' - Say Line 0'),
(22963, 0, 2, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 23028, 40, 0, 0, 0, 0, 0, 0, 'Bonechewer Worker - On Just Died - Set Data 1 1');
UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`|1|2|4|16|64|256|512|1024|2048|4096|8192|131072|4194304|8388608|33554432 WHERE (`entry` = 22954);
@@ -0,0 +1,15 @@
-- DB update 2024_07_19_00 -> 2024_07_19_01
--
DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 23109);
INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES
(23109, 0, 40325, 0),
(23109, 2, 40157, 0),
(23109, 3, 40175, 0),
(23109, 4, 40314, 0),
(23109, 6, 40322, 0);
UPDATE `creature_template` SET `AIName` = '', `ScriptName` = 'npc_vengeful_spirit' WHERE (`entry` = 23109);
DELETE FROM `spell_script_names` WHERE `spell_id` = 41999 AND `ScriptName` = 'spell_teron_gorefiend_shadow_of_death_remove';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(41999, 'spell_teron_gorefiend_shadow_of_death_remove');
@@ -0,0 +1,3 @@
-- DB update 2024_07_19_01 -> 2024_07_19_02
--
UPDATE `item_template` SET `HolidayId` = 409 WHERE `entry` = 46861;
@@ -0,0 +1,25 @@
-- DB update 2024_07_19_02 -> 2024_07_19_03
--
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 10996 AND `SourceEntry` = 6 AND `ConditionTypeOrReference` IN (2,8);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15, 10996, 6, 0, 1, 2, 0, 50375, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Courage\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50376, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Vengeance\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50377, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Destruction\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50378, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Wisdom\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50384, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Greater Destruction\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50386, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Greater Wisdom\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50387, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Greater Vengeance\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50388, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Greater Courage\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50397, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Unmatched Destruction\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50398, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Endless Destruction\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50399, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Unmatched Wisdom\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50400, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Endless Wisdom\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50401, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Unmatched Vengeance\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50402, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Endless Vengeance\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50403, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Unmatched Courage\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 50404, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Endless Courage\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 52569, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Might\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 52570, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Greater Might\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 52571, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Unmatched Might\' AND'),
(15, 10996, 6, 0, 1, 2, 0, 52572, 1, 1, 1, 0, 0, '', 'Show Gossip Option 6 if player does not have item \'Ashen Band of Endless Might\' AND'),
(15, 10996, 6, 0, 1, 8, 0, 24815, 0, 0, 0, 0, 0, '', 'Show Gossip Option 6 if Quest \'Choose your path\' is rewarded');
@@ -0,0 +1,6 @@
-- DB update 2024_07_19_03 -> 2024_07_21_00
--
DELETE FROM `spell_custom_attr` WHERE `spell_id` IN (25646, 13444);
INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES
(25646, 4194304),
(13444, 4194304);
+1 -39
View File
@@ -144,29 +144,17 @@ namespace
// read line error
if (!in.good() && !in.eof())
{
throw ConfigException(Acore::StringFormatFmt("> Config::LoadFile: Failure to read line number {} in file '{}'", lineNumber, file));
}
// remove whitespace in line
line = Acore::String::Trim(line, in.getloc());
if (line.empty())
{
continue;
}
// comments
// comments and headers
if (line[0] == '#' || line[0] == '[')
{
continue;
}
size_t found = line.find_first_of('#');
if (found != std::string::npos)
{
line = line.substr(0, found);
}
auto const equal_pos = line.find('=');
@@ -183,9 +171,7 @@ namespace
// Skip if 2+ same options in one config file
if (IsDuplicateOption(entry))
{
continue;
}
// Add to temp container
fileConfigs.emplace(entry, value);
@@ -663,30 +649,6 @@ bool ConfigMgr::LoadModulesConfigs(bool isReload /*= false*/, bool isNeedPrintIn
return true;
}
/// @deprecated DO NOT USE - use GetOption<std::string> instead.
std::string ConfigMgr::GetStringDefault(std::string const& name, const std::string& def, bool showLogs /*= true*/)
{
return GetOption<std::string>(name, def, showLogs);
}
/// @deprecated DO NOT USE - use GetOption<bool> instead.
bool ConfigMgr::GetBoolDefault(std::string const& name, bool def, bool showLogs /*= true*/)
{
return GetOption<bool>(name, def, showLogs);
}
/// @deprecated DO NOT USE - use GetOption<int32> instead.
int ConfigMgr::GetIntDefault(std::string const& name, int def, bool showLogs /*= true*/)
{
return GetOption<int32>(name, def, showLogs);
}
/// @deprecated DO NOT USE - use GetOption<float> instead.
float ConfigMgr::GetFloatDefault(std::string const& name, float def, bool showLogs /*= true*/)
{
return GetOption<float>(name, def, showLogs);
}
#define TEMPLATE_CONFIG_OPTION(__typename) \
template __typename ConfigMgr::GetOption<__typename>(std::string const& name, __typename const& def, bool showLogs /*= true*/) const;
-20
View File
@@ -50,26 +50,6 @@ public:
template<class T>
T GetOption(std::string const& name, T const& def, bool showLogs = true) const;
/*
* Deprecated geters. This geters will be deleted
*/
[[deprecated("Use GetOption<std::string> instead")]]
std::string GetStringDefault(std::string const& name, const std::string& def, bool showLogs = true);
[[deprecated("Use GetOption<bool> instead")]]
bool GetBoolDefault(std::string const& name, bool def, bool showLogs = true);
[[deprecated("Use GetOption<int32> instead")]]
int GetIntDefault(std::string const& name, int def, bool showLogs = true);
[[deprecated("Use GetOption<float> instead")]]
float GetFloatDefault(std::string const& name, float def, bool showLogs = true);
/*
* End deprecated geters
*/
bool isDryRun() { return dryRun; }
void setDryRun(bool mode) { dryRun = mode; }
@@ -697,6 +697,26 @@ Logger.spells.scripts=2,Console Errors
#Logger.bg.battleground=4,Console Server
#Logger.bg.reportpvpafk=4,Console Server
#Logger.calendar=4,Console Server
#Logger.chat.say=4,Console Chat
#Logger.chat.emote=4,Console Chat
#Logger.chat.yell=4,Console Chat
#Logger.chat.whisper=4,Console Chat
#Logger.chat.party=4,Console Chat
#Logger.chat.raid=4,Console Chat
#Logger.chat.bg=4,Console Chat
#Logger.chat.guild=4,Console Chat
#Logger.chat.guild.officer=4,Console Chat
#Logger.chat.channel=4,Console Chat
#Logger.chat.addon.msg=4,Console Chat
#Logger.chat.addon.emote=4,Console Chat
#Logger.chat.addon.yell=4,Console Chat
#Logger.chat.addon.whisper=4,Console Chat
#Logger.chat.addon.party=4,Console Chat
#Logger.chat.addon.raid=4,Console Chat
#Logger.chat.addon.bg=4,Console Chat
#Logger.chat.addon.guild=4,Console Chat
#Logger.chat.addon.guild.officer=4,Console Chat
#Logger.chat.addon.channel=4,Console Chat
#Logger.chat.log=4,Console Server
#Logger.chat.log.addon=4,Console Server
#Logger.chat.system=4,Console Server
@@ -4393,6 +4413,13 @@ DailyRBGArenaPoints.MinLevel = 71
MunchingBlizzlike.Enabled = 1
#
# Daze.Enabled
# Description: Enable or disable the chance for mob melee attacks to daze the victim.
# Default: 1 - (Blizzlike)
Daze.Enabled = 1
#
###################################################################################################
@@ -248,19 +248,6 @@ namespace Acore::ChatCommands
ChatCommandBuilder(char const* name, std::vector<ChatCommandBuilder> const& subCommands)
: _name{ ASSERT_NOTNULL(name) }, _data{ std::in_place_type<SubCommandEntry>, subCommands } { }
[[deprecated("char const* parameters to command handlers are deprecated; convert this to a typed argument handler instead")]]
ChatCommandBuilder(char const* name, bool(&handler)(ChatHandler*, char const*), uint32 securityLevel, Acore::ChatCommands::Console allowConsole)
: ChatCommandBuilder(name, handler, AcoreStrings(), securityLevel, allowConsole) { }
template <typename TypedHandler>
[[deprecated("you are using the old-style command format; convert this to the new format ({ name, handler (not a pointer!), permission, Console::(Yes/No) })")]]
ChatCommandBuilder(char const* name, uint32 securityLevel, bool console, TypedHandler* handler, char const*)
: ChatCommandBuilder(name, *handler, AcoreStrings(), securityLevel, static_cast<Acore::ChatCommands::Console>(console)) { }
[[deprecated("you are using the old-style command format; convert this to the new format ({ name, subCommands })")]]
ChatCommandBuilder(char const* name, uint32, bool, std::nullptr_t, char const*, std::vector <ChatCommandBuilder> const& sub)
: ChatCommandBuilder(name, sub) { }
private:
std::string_view _name;
std::variant<InvokerEntry, SubCommandEntry> _data;
@@ -451,7 +451,7 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU
uint32 moneyRew = 0;
Player* player = _session->GetPlayer();
if (player && (player->getLevel() >= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL) || sScriptMgr->ShouldBeRewardedWithMoneyInsteadOfExp(player)))
if (player && (player->GetLevel() >= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL) || sScriptMgr->ShouldBeRewardedWithMoneyInsteadOfExp(player)))
{
moneyRew = quest->GetRewMoneyMaxLevel();
}
+3 -2
View File
@@ -1915,6 +1915,8 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss)
if (Probability > 40.0f)
Probability = 40.0f;
// Daze application
if (sWorld->getBoolConfig(CONFIG_ENABLE_DAZE))
if (roll_chance_f(std::max(0.0f, Probability)))
CastSpell(victim, 1604, true);
}
@@ -3054,9 +3056,8 @@ void Unit::SendMeleeAttackStop(Unit* victim)
if (victim)
{
uint8 nowDead = victim->isDead();
data << victim->GetPackGUID();
data << nowDead;
data << (uint32)victim->isDead();
}
SendMessageToSet(&data, true);
LOG_DEBUG("entities.unit", "WORLD: Sent SMSG_ATTACKSTOP");
+1 -3
View File
@@ -1506,9 +1506,7 @@ public:
[[nodiscard]] bool IsTotem() const { return m_unitTypeMask & UNIT_MASK_TOTEM; }
[[nodiscard]] bool IsVehicle() const { return m_unitTypeMask & UNIT_MASK_VEHICLE; }
/// @deprecated Use GetLevel() instead!
[[nodiscard]] uint8 getLevel() const { return uint8(GetUInt32Value(UNIT_FIELD_LEVEL)); }
[[nodiscard]] uint8 GetLevel() const { return getLevel(); }
[[nodiscard]] uint8 GetLevel() const { return uint8(GetUInt32Value(UNIT_FIELD_LEVEL)); }
uint8 getLevelForTarget(WorldObject const* /*target*/) const override { return GetLevel(); }
void SetLevel(uint8 lvl, bool showLevelChange = true);
[[nodiscard]] uint8 getRace(bool original = false) const;
+1 -2
View File
@@ -89,9 +89,8 @@ void WorldSession::SendAttackStop(Unit const* enemy)
if (enemy)
{
uint8 nowDead = enemy->isDead();
data << enemy->GetPackGUID(); // must be packed guid
data << nowDead;
data << (uint32)enemy->isDead();
}
SendPacket(&data);
}
+1 -1
View File
@@ -186,6 +186,7 @@ enum WorldBoolConfigs
CONFIG_STRICT_NAMES_PROFANITY,
CONFIG_ALLOWS_RANK_MOD_FOR_PET_HEALTH,
CONFIG_MUNCHING_BLIZZLIKE,
CONFIG_ENABLE_DAZE,
BOOL_CONFIG_VALUE_COUNT
};
@@ -567,7 +568,6 @@ public:
virtual void LoadConfigSettings(bool reload = false) = 0;
virtual void SendWorldText(uint32 string_id, ...) = 0;
virtual void SendWorldTextOptional(uint32 string_id, uint32 flag, ...) = 0;
virtual void SendGlobalText(const char* text, WorldSession* self) = 0;
virtual void SendGMText(uint32 string_id, ...) = 0;
virtual void SendGlobalMessage(WorldPacket const* packet, WorldSession* self = nullptr, TeamId teamId = TEAM_NEUTRAL) = 0;
virtual void SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self = nullptr, TeamId teamId = TEAM_NEUTRAL) = 0;
+2 -18
View File
@@ -1285,6 +1285,8 @@ void World::LoadConfigSettings(bool reload)
_bool_configs[CONFIG_MUNCHING_BLIZZLIKE] = sConfigMgr->GetOption<bool>("MunchingBlizzlike.Enabled", true);
_bool_configs[CONFIG_ENABLE_DAZE] = sConfigMgr->GetOption<bool>("Daze.Enabled", true);
_int_configs[CONFIG_DAILY_RBG_MIN_LEVEL_AP_REWARD] = sConfigMgr->GetOption<uint32>("DailyRBGArenaPoints.MinLevel", 71);
_int_configs[CONFIG_AUCTION_HOUSE_SEARCH_TIMEOUT] = sConfigMgr->GetOption<uint32>("AuctionHouse.SearchTimeout", 1000);
@@ -2653,24 +2655,6 @@ void World::SendGMText(uint32 string_id, ...)
va_end(ap);
}
/// @deprecated only for debug purpose. Send a System Message to all players (except self if mentioned)
void World::SendGlobalText(const char* text, WorldSession* self)
{
WorldPacket data;
// need copy to prevent corruption by strtok call in LineFromMessage original string
char* buf = strdup(text);
char* pos = buf;
while (char* line = ChatHandler::LineFromMessage(pos))
{
ChatHandler::BuildChatPacket(data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, nullptr, nullptr, line);
SendGlobalMessage(&data, self);
}
free(buf);
}
/// Send a packet to all players (or players selected team) in the zone (except self if mentioned)
bool World::SendZoneMessage(uint32 zone, WorldPacket const* packet, WorldSession* self, TeamId teamId)
{
-1
View File
@@ -239,7 +239,6 @@ public:
void LoadConfigSettings(bool reload = false) override;
void SendWorldText(uint32 string_id, ...) override;
void SendGlobalText(const char* text, WorldSession* self) override;
void SendGMText(uint32 string_id, ...) override;
void SendGlobalMessage(WorldPacket const* packet, WorldSession* self = nullptr, TeamId teamId = TEAM_NEUTRAL) override;
void SendGlobalGMMessage(WorldPacket const* packet, WorldSession* self = nullptr, TeamId teamId = TEAM_NEUTRAL) override;
+20 -20
View File
@@ -52,46 +52,46 @@ public:
{
static ChatCommandTable accountSetCommandTable =
{
{ "addon", SEC_GAMEMASTER, true, &HandleAccountSetAddonCommand, "" },
{ "gmlevel", SEC_CONSOLE, true, &HandleAccountSetGmLevelCommand, "" },
{ "password", SEC_CONSOLE, true, &HandleAccountSetPasswordCommand, "" },
{ "2fa", SEC_PLAYER, true, &HandleAccountSet2FACommand, "" }
{ "addon", HandleAccountSetAddonCommand, SEC_GAMEMASTER, Console::Yes },
{ "gmlevel", HandleAccountSetGmLevelCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "password", HandleAccountSetPasswordCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "2fa", HandleAccountSet2FACommand, SEC_PLAYER, Console::Yes }
};
static ChatCommandTable accountLockCommandTable
{
{ "country", SEC_PLAYER, true, &HandleAccountLockCountryCommand, "" },
{ "ip", SEC_PLAYER, true, &HandleAccountLockIpCommand, "" }
{ "country", HandleAccountLockCountryCommand, SEC_PLAYER, Console::Yes },
{ "ip", HandleAccountLockIpCommand, SEC_PLAYER, Console::Yes }
};
static ChatCommandTable account2faCommandTable
{
{ "setup", SEC_PLAYER, false, &HandleAccount2FASetupCommand, "" },
{ "remove", SEC_PLAYER, false, &HandleAccount2FARemoveCommand, "" },
{ "setup", HandleAccount2FASetupCommand, SEC_PLAYER, Console::No },
{ "remove", HandleAccount2FARemoveCommand, SEC_PLAYER, Console::No }
};
static ChatCommandTable accountRemoveCommandTable
{
{ "country", SEC_ADMINISTRATOR, true, &HandleAccountRemoveLockCountryCommand, "" }
{ "country", HandleAccountRemoveLockCountryCommand, SEC_ADMINISTRATOR, Console::Yes },
};
static ChatCommandTable accountCommandTable =
{
{ "2fa", SEC_PLAYER, true, nullptr, "", account2faCommandTable },
{ "addon", SEC_MODERATOR, false, &HandleAccountAddonCommand, "" },
{ "create", SEC_CONSOLE, true, &HandleAccountCreateCommand, "" },
{ "delete", SEC_CONSOLE, true, &HandleAccountDeleteCommand, "" },
{ "onlinelist", SEC_CONSOLE, true, &HandleAccountOnlineListCommand, "" },
{ "lock", SEC_PLAYER, false, nullptr, "", accountLockCommandTable },
{ "set", SEC_ADMINISTRATOR, true, nullptr, "", accountSetCommandTable },
{ "password", SEC_PLAYER, false, &HandleAccountPasswordCommand, "" },
{ "remove", SEC_ADMINISTRATOR, true, nullptr, "", accountRemoveCommandTable },
{ "", SEC_PLAYER, false, &HandleAccountCommand, "" }
{ "2fa", account2faCommandTable },
{ "addon", HandleAccountAddonCommand, SEC_MODERATOR, Console::No },
{ "create", HandleAccountCreateCommand, SEC_CONSOLE, Console::Yes },
{ "delete", HandleAccountDeleteCommand, SEC_CONSOLE, Console::Yes },
{ "onlinelist", HandleAccountOnlineListCommand, SEC_CONSOLE, Console::Yes },
{ "lock", accountLockCommandTable },
{ "set", accountSetCommandTable },
{ "password", HandleAccountPasswordCommand, SEC_PLAYER, Console::No },
{ "remove", accountRemoveCommandTable },
{ "", HandleAccountCommand, SEC_PLAYER, Console::No }
};
static ChatCommandTable commandTable =
{
{ "account", SEC_PLAYER, true, nullptr, "", accountCommandTable }
{ "account", accountCommandTable }
};
return commandTable;
+18 -18
View File
@@ -56,40 +56,40 @@ public:
{
static ChatCommandTable unbanCommandTable =
{
{ "account", SEC_ADMINISTRATOR, true, &HandleUnBanAccountCommand, "" },
{ "character", SEC_ADMINISTRATOR, true, &HandleUnBanCharacterCommand, "" },
{ "playeraccount", SEC_ADMINISTRATOR, true, &HandleUnBanAccountByCharCommand, "" },
{ "ip", SEC_ADMINISTRATOR, true, &HandleUnBanIPCommand, "" }
{ "account", HandleUnBanAccountCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "character", HandleUnBanCharacterCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "playeraccount", HandleUnBanAccountByCharCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "ip", HandleUnBanIPCommand, SEC_ADMINISTRATOR, Console::Yes }
};
static ChatCommandTable banlistCommandTable =
{
{ "account", SEC_GAMEMASTER, true, &HandleBanListAccountCommand, "" },
{ "character", SEC_GAMEMASTER, true, &HandleBanListCharacterCommand, "" },
{ "ip", SEC_GAMEMASTER, true, &HandleBanListIPCommand, "" }
{ "account", HandleBanListAccountCommand, SEC_GAMEMASTER, Console::Yes },
{ "character", HandleBanListCharacterCommand, SEC_GAMEMASTER, Console::Yes },
{ "ip", HandleBanListIPCommand, SEC_GAMEMASTER, Console::Yes }
};
static ChatCommandTable baninfoCommandTable =
{
{ "account", SEC_GAMEMASTER, true, &HandleBanInfoAccountCommand, "" },
{ "character", SEC_GAMEMASTER, true, &HandleBanInfoCharacterCommand, "" },
{ "ip", SEC_GAMEMASTER, true, &HandleBanInfoIPCommand, "" }
{ "account", HandleBanInfoAccountCommand, SEC_GAMEMASTER, Console::Yes },
{ "character", HandleBanInfoCharacterCommand, SEC_GAMEMASTER, Console::Yes },
{ "ip", HandleBanInfoIPCommand, SEC_GAMEMASTER, Console::Yes }
};
static ChatCommandTable banCommandTable =
{
{ "account", SEC_GAMEMASTER, true, &HandleBanAccountCommand, "" },
{ "character", SEC_GAMEMASTER, true, &HandleBanCharacterCommand, "" },
{ "playeraccount", SEC_GAMEMASTER, true, &HandleBanAccountByCharCommand, "" },
{ "ip", SEC_GAMEMASTER, true, &HandleBanIPCommand, "" }
{ "account", HandleBanAccountCommand, SEC_GAMEMASTER, Console::Yes },
{ "character", HandleBanCharacterCommand, SEC_GAMEMASTER, Console::Yes },
{ "playeraccount",HandleBanAccountByCharCommand, SEC_GAMEMASTER, Console::Yes },
{ "ip", HandleBanIPCommand, SEC_GAMEMASTER, Console::Yes }
};
static ChatCommandTable commandTable =
{
{ "ban", SEC_GAMEMASTER, true, nullptr, "", banCommandTable },
{ "baninfo", SEC_GAMEMASTER, true, nullptr, "", baninfoCommandTable },
{ "banlist", SEC_GAMEMASTER, true, nullptr, "", banlistCommandTable },
{ "unban", SEC_ADMINISTRATOR, true, nullptr, "", unbanCommandTable }
{ "ban", banCommandTable },
{ "baninfo", baninfoCommandTable },
{ "banlist", banlistCommandTable },
{ "unban", unbanCommandTable }
};
return commandTable;
+2 -2
View File
@@ -800,7 +800,7 @@ public:
{
LOG_INFO("server.loading", "Reloading `reputation_reward_rate` Table!" );
sObjectMgr->LoadReputationRewardRate();
handler->SendGlobalSysMessage("DB table `reputation_reward_rate` reloaded.");
handler->SendGlobalGMSysMessage("DB table `reputation_reward_rate` reloaded.");
return true;
}
@@ -808,7 +808,7 @@ public:
{
LOG_INFO("server.loading", "Reloading `reputation_spillover_template` Table!" );
sObjectMgr->LoadReputationSpilloverTemplate();
handler->SendGlobalSysMessage("DB table `reputation_spillover_template` reloaded.");
handler->SendGlobalGMSysMessage("DB table `reputation_spillover_template` reloaded.");
return true;
}
+8 -8
View File
@@ -42,17 +42,17 @@ public:
{
static ChatCommandTable wpCommandTable =
{
{ "add", SEC_ADMINISTRATOR, false, &HandleWpAddCommand, "" },
{ "event", SEC_ADMINISTRATOR, false, &HandleWpEventCommand, "" },
{ "load", SEC_ADMINISTRATOR, false, &HandleWpLoadCommand, "" },
{ "modify", SEC_ADMINISTRATOR, false, &HandleWpModifyCommand, "" },
{ "unload", SEC_ADMINISTRATOR, false, &HandleWpUnLoadCommand, "" },
{ "reload", SEC_ADMINISTRATOR, false, &HandleWpReloadCommand, "" },
{ "show", SEC_ADMINISTRATOR, false, &HandleWpShowCommand, "" }
{ "add", HandleWpAddCommand, SEC_ADMINISTRATOR, Console::No },
{ "event", HandleWpEventCommand, SEC_ADMINISTRATOR, Console::No },
{ "load", HandleWpLoadCommand, SEC_ADMINISTRATOR, Console::No },
{ "modify", HandleWpModifyCommand, SEC_ADMINISTRATOR, Console::No },
{ "unload", HandleWpUnLoadCommand, SEC_ADMINISTRATOR, Console::No },
{ "reload", HandleWpReloadCommand, SEC_ADMINISTRATOR, Console::No },
{ "show", HandleWpShowCommand, SEC_ADMINISTRATOR, Console::No }
};
static ChatCommandTable commandTable =
{
{ "wp", SEC_ADMINISTRATOR, false, nullptr, "", wpCommandTable }
{ "wp", wpCommandTable }
};
return commandTable;
}
@@ -178,6 +178,7 @@ struct go_firework_show : public GameObjectAI
// trigger despawn animation for firework explosion
if (go)
{
go->setActive(true);
go->DespawnOrUnsummon();
go->AddObjectToRemoveList();
}
-1
View File
@@ -22,7 +22,6 @@
#include "Player.h"
#include "PlayerScript.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "Spell.h"
#include "SpellAuras.h"
#include "SpellScript.h"
@@ -16,7 +16,6 @@
*/
#include "OutdoorPvPEP.h"
#include "CreatureScript.h"
#include "GameGraveyard.h"
#include "GameObject.h"
#include "Language.h"
@@ -16,7 +16,6 @@
*/
#include "OutdoorPvPGH.h"
#include "CreatureScript.h"
#include "GameEventMgr.h"
#include "MapMgr.h"
#include "OutdoorPvPMgr.h"
@@ -20,6 +20,7 @@
#include "SpellInfo.h"
#include "SpellScriptLoader.h"
#include "shadow_labyrinth.h"
#include "SpellScript.h"
enum Spells
{
@@ -19,6 +19,7 @@
#include "InstanceScript.h"
#include "SpellScriptLoader.h"
#include "shadow_labyrinth.h"
#include "SpellScript.h"
DoorData const doorData[] =
{
@@ -18,10 +18,8 @@
#ifndef DEF_SHADOW_LABYRINTH_H
#define DEF_SHADOW_LABYRINTH_H
#include "CreatureAI.h"
#include "CreatureAIImpl.h"
#include "GridNotifiers.h"
#include "SpellScript.h"
#define ShadowLabyrinthScriptName "instance_shadow_labyrinth"
@@ -19,12 +19,6 @@
#define BLACK_TEMPLE_H_
#include "CreatureAIImpl.h"
#include "GridNotifiers.h"
#include "PassiveAI.h"
#include "Player.h"
#include "ScriptedGossip.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#define DataHeader "BT"
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "SpellScript.h"
enum Says
{
@@ -20,6 +20,10 @@
#include "ScriptedEscortAI.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "Player.h"
#include "ScriptedGossip.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Says
{
@@ -19,6 +19,9 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "GridNotifiers.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Says
{
@@ -20,6 +20,9 @@
#include "Spell.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "Player.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Says
{
@@ -19,6 +19,11 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "PassiveAI.h"
#include "ScriptedGossip.h"
#include "SpellAuras.h"
#include "SpellInfo.h"
#include "SpellScript.h"
enum Says
{
@@ -81,7 +86,8 @@ enum Misc
ACTION_AKAMA_START_OUTRO = 1,
FACTION_DEFAULT = 1820,
FACTION_ENGAGE = 1868
FACTION_ENGAGE = 1868,
FACTION_DEFENDER = 1847
};
Position AkamaEngage = { 517.4877f, 400.79926f, 112.77704f };
@@ -364,11 +370,14 @@ struct npc_creature_generator_akama : public ScriptedAI
summon->GetMotionMaster()->MovePoint(POINT_ENGAGE, x, y, z);
}
break;
default:
summon->SetInCombatWithZone();
case NPC_ASHTONGUE_DEFENDER:
summon->SetFaction(FACTION_DEFENDER);
if (Creature* akama = instance->GetCreature(DATA_AKAMA_SHADE))
summon->AI()->AttackStart(akama);
break;
default:
summon->SetInCombatWithZone();
break;
}
}
@@ -19,6 +19,11 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "PassiveAI.h"
#include "Player.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
#include "SpellScript.h"
enum Says
{
@@ -77,7 +82,7 @@ struct boss_teron_gorefiend : public BossAI
void Reset() override
{
BossAI::Reset();
me->CastSpell(me, SPELL_SHADOW_OF_DEATH_REMOVE, true);
DoCastSelf(SPELL_SHADOW_OF_DEATH_REMOVE, true);
}
void JustEngagedWith(Unit* who) override
@@ -155,7 +160,7 @@ struct boss_teron_gorefiend : public BossAI
{
BossAI::JustDied(killer);
Talk(SAY_DEATH);
me->CastSpell(me, SPELL_SHADOW_OF_DEATH_REMOVE, true);
DoCastSelf(SPELL_SHADOW_OF_DEATH_REMOVE, true);
}
void UpdateAI(uint32 diff) override
@@ -172,6 +177,17 @@ struct boss_teron_gorefiend : public BossAI
bool _intro;
};
struct npc_vengeful_spirit : public NullCreatureAI
{
npc_vengeful_spirit(Creature* creature) : NullCreatureAI(creature) { }
void OnCharmed(bool apply)
{
if (!apply)
me->DespawnOnEvade();
}
};
class spell_teron_gorefiend_shadow_of_death : public AuraScript
{
PrepareAuraScript(spell_teron_gorefiend_shadow_of_death);
@@ -276,12 +292,44 @@ class spell_teron_gorefiend_shadowy_construct : public AuraScript
}
};
class spell_teron_gorefiend_shadow_of_death_remove : public SpellScript
{
PrepareSpellScript(spell_teron_gorefiend_shadow_of_death_remove);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo(
{
SPELL_SHADOW_OF_DEATH,
SPELL_POSSESS_SPIRIT_IMMUNE,
SPELL_SPIRITUAL_VENGEANCE
});
}
void HandleOnHit()
{
if (Unit* target = GetHitUnit())
{
target->RemoveAurasDueToSpell(SPELL_POSSESS_SPIRIT_IMMUNE);
target->RemoveAurasDueToSpell(SPELL_SPIRITUAL_VENGEANCE);
target->RemoveAurasDueToSpell(SPELL_SHADOW_OF_DEATH);
}
}
void Register() override
{
OnHit += SpellHitFn(spell_teron_gorefiend_shadow_of_death_remove::HandleOnHit);
}
};
void AddSC_boss_teron_gorefiend()
{
RegisterBlackTempleCreatureAI(boss_teron_gorefiend);
RegisterBlackTempleCreatureAI(npc_vengeful_spirit);
RegisterSpellScript(spell_teron_gorefiend_shadow_of_death);
RegisterSpellScript(spell_teron_gorefiend_spirit_lance);
RegisterSpellScript(spell_teron_gorefiend_spiritual_vengeance);
RegisterSpellScript(spell_teron_gorefiend_shadowy_construct);
RegisterSpellScript(spell_teron_gorefiend_shadow_of_death_remove);
}
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "SpellScript.h"
enum Yells
{
@@ -19,6 +19,9 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "Player.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Says
{
@@ -20,6 +20,9 @@
#include "InstanceScript.h"
#include "SpellScriptLoader.h"
#include "black_temple.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
#include "SpellScript.h"
DoorData const doorData[] =
{
@@ -104,7 +107,6 @@ public:
{
switch (creature->GetEntry())
{
case NPC_VENGEFUL_SPIRIT:
case NPC_SHADOWY_CONSTRUCT:
if (Creature* teron = GetCreature(DATA_TERON_GOREFIEND))
teron->AI()->JustSummoned(creature);
@@ -20,6 +20,8 @@
#include "SpellScriptLoader.h"
#include "TaskScheduler.h"
#include "serpent_shrine.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Talk
{
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "serpent_shrine.h"
#include "SpellScript.h"
enum Talk
{
@@ -22,6 +22,7 @@
#include "SpellScriptLoader.h"
#include "WorldSession.h"
#include "serpent_shrine.h"
#include "SpellScript.h"
enum Says
{
@@ -17,11 +17,14 @@
#include "CreatureGroups.h"
#include "CreatureScript.h"
#include "GridNotifiers.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "TaskScheduler.h"
#include "serpent_shrine.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Talk
{
@@ -17,9 +17,12 @@
#include "CreatureScript.h"
#include "GameObjectScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "serpent_shrine.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Spells
{
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "serpent_shrine.h"
#include "SpellScript.h"
enum Yells
{
@@ -23,6 +23,8 @@
#include "SpellScriptLoader.h"
#include "TemporarySummon.h"
#include "serpent_shrine.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
DoorData const doorData[] =
{
@@ -18,12 +18,7 @@
#ifndef DEF_SERPENT_SHRINE_H
#define DEF_SERPENT_SHRINE_H
#include "CreatureAI.h"
#include "CreatureAIImpl.h"
#include "GridNotifiers.h"
#include "Player.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#define DataHeader "SS"
@@ -27,7 +27,6 @@
#include "Map.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "PassiveAI.h"
#include "Player.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
@@ -19,7 +19,6 @@
#define DEF_STEAM_VAULT_H
#include "CreatureAIImpl.h"
#include "PassiveAI.h"
#define DataHeaders "SV"
@@ -21,6 +21,7 @@
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "gruuls_lair.h"
#include "SpellAuraEffects.h"
enum Yells
{
@@ -18,9 +18,7 @@
#ifndef GRUULS_LAIR_H_
#define GRUULS_LAIR_H_
#include "CreatureAI.h"
#include "CreatureAIImpl.h"
#include "SpellAuraEffects.h"
#define DataHeader "GL"
@@ -20,6 +20,7 @@
#include "SpellScriptLoader.h"
#include "TaskScheduler.h"
#include "hellfire_ramparts.h"
#include "SpellScript.h"
enum Says
{
@@ -19,6 +19,7 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "hellfire_ramparts.h"
#include "SpellScript.h"
enum Says
{
@@ -19,7 +19,6 @@
#define DEF_RAMPARTS_H
#include "CreatureAIImpl.h"
#include "SpellScript.h"
#define DataHeader "HR"
#define HellfireRampartsScriptName "instance_hellfire_ramparts"
@@ -23,6 +23,7 @@
#include "SpellScriptLoader.h"
#include "TaskScheduler.h"
#include "magtheridons_lair.h"
#include "SpellScript.h"
enum Yells
{
@@ -19,8 +19,6 @@
#define DEF_MAGTHERIDONS_LAIR_H
#include "CreatureAIImpl.h"
#include "SpellScript.h"
#define DataHeader "ML"
#define MagtheridonsLairScriptName "instance_magtheridons_lair"
@@ -21,6 +21,7 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "shattered_halls.h"
#include "SpellScript.h"
enum Texts
{
@@ -19,8 +19,6 @@
#define DEF_SHATTERED_H
#include "CreatureAIImpl.h"
#include "PassiveAI.h"
#include "SpellScript.h"
#define ShatteredHallsLairScriptName "instance_shattered_halls"
@@ -23,6 +23,9 @@
#include "the_eye.h"
#include <cmath>
#include "Player.h"
#include "SpellScript.h"
enum Spells
{
SPELL_BERSERK = 45078,
@@ -17,6 +17,8 @@
#include "CreatureScript.h"
#include "ScriptedCreature.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "the_eye.h"
@@ -16,8 +16,9 @@
*/
#include "CreatureScript.h"
#include "Opcodes.h"
#include "GridNotifiers.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "WorldPacket.h"
#include "the_eye.h"
@@ -17,6 +17,7 @@
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "the_eye.h"
@@ -19,10 +19,6 @@
#define DEF_THE_EYE_H
#include "CreatureAIImpl.h"
#include "GridNotifiers.h"
#include "Player.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#define DataHeader "TE"
@@ -19,6 +19,8 @@
#include "ScriptedCreature.h"
#include "SpellScriptLoader.h"
#include "mechanar.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
enum Says
{
@@ -18,11 +18,7 @@
#ifndef DEF_MECHANAR_H
#define DEF_MECHANAR_H
#include "CreatureAI.h"
#include "CreatureAIImpl.h"
#include "Player.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#define DataHeader "MR"
@@ -17,7 +17,9 @@
#include "arcatraz.h"
#include "CreatureScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
enum MillhouseSays
@@ -18,10 +18,7 @@
#ifndef ARCATRAZ_H
#define ARCATRAZ_H
#include "CreatureAI.h"
#include "CreatureAIImpl.h"
#include "Player.h"
#include "SpellScript.h"
#define DataHeader "AZ"
@@ -19,6 +19,7 @@
#include "GameTime.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "the_botanica.h"
@@ -19,7 +19,6 @@
#define DEF_THE_BOTANICA_H
#include "CreatureAIImpl.h"
#include "SpellScript.h"
#define TheBotanicaScriptName "instance_the_botanica"
@@ -23,7 +23,6 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
@@ -20,7 +20,6 @@
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
/* ScriptData
SDName: Nagrand
-1
View File
@@ -21,7 +21,6 @@
*/
#include "CreatureScript.h"
#include "PassiveAI.h"
#include "PetAI.h"
#include "ScriptedCreature.h"
#include "TotemAI.h"
@@ -22,7 +22,6 @@
#include "MapMgr.h"
#include "ScriptedCreature.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "Vehicle.h"
@@ -21,7 +21,6 @@
#include "SpellMgr.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "TemporarySummon.h"
#include "Unit.h"
/*
* Scripts for spells with SPELLFAMILY_SHAMAN and SPELLFAMILY_GENERIC spells used by shaman players.
@@ -23,7 +23,6 @@
#include "BattlegroundWS.h"
#include "Creature.h"
#include "Player.h"
#include "Vehicle.h"
class achievement_resilient_victory : public AchievementCriteriaScript
{
@@ -16,11 +16,9 @@
*/
#include "AreaTriggerScript.h"
#include "CreatureScript.h"
#include "GameTime.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellMgr.h"
/* ScriptData
SDName: Areatrigger_Scripts
SD%Complete: 100
+8 -4
View File
@@ -16,7 +16,6 @@
*/
#include "Channel.h"
#include "CreatureScript.h"
#include "Group.h"
#include "Guild.h"
#include "Log.h"
@@ -64,10 +63,15 @@ public:
player->GetName(), chatType, lang, msg);
}
void OnChat(Player* player, uint32 /*type*/, uint32 /*lang*/, std::string& msg, Player* receiver) override
void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Player* receiver) override
{
LOG_INFO("chat.whisper", "Player {} tells {}: {}",
player->GetName(), receiver ? receiver->GetName() : "<unknown>", msg);
//! NOTE:
//! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER"
std::string logType = (lang != LANG_ADDON) ? "chat." : "chat.addon.";
std::string msgType = "whisper";
LOG_INFO(logType + msgType, "Player {} {} {}: {}",
player->GetName(), msgType, receiver ? receiver->GetName() : "<unknown>", msg);
}
void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group) override
-1
View File
@@ -32,7 +32,6 @@ EndContentData */
#include "GuardAI.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
enum GuardShattrath
{
@@ -18,7 +18,6 @@
#ifndef NPC_STAVE_OF_ANCIENTS_H
#define NPC_STAVE_OF_ANCIENTS_H
#include "CreatureScript.h"
#include "ScriptedCreature.h"
enum Common
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "Player.h"
#include "PlayerScript.h"
-1
View File
@@ -74,7 +74,6 @@ public:
MOCK_METHOD(void, LoadConfigSettings, (bool reload), ());
void SendWorldText(uint32 string_id, ...) override {}
void SendWorldTextOptional(uint32 string_id, uint32 flag, ...) override {}
MOCK_METHOD(void, SendGlobalText, (const char* text, WorldSession* self), ());
void SendGMText(uint32 string_id, ...) override {}
MOCK_METHOD(void, SendGlobalMessage, (WorldPacket const* packet, WorldSession* self, TeamId teamId), ());
MOCK_METHOD(void, SendGlobalGMMessage, (WorldPacket const* packet, WorldSession* self, TeamId teamId), ());