aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2012_09_01_00_world_spell_script_names.sql4
-rw-r--r--src/server/authserver/authserver.conf.dist6
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp4
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp6
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp4
-rw-r--r--src/server/scripts/Outland/shadowmoon_valley.cpp40
-rwxr-xr-xsrc/server/shared/Logging/Log.cpp17
-rwxr-xr-xsrc/server/shared/Logging/Log.h2
-rw-r--r--src/server/worldserver/worldserver.conf.dist7
9 files changed, 70 insertions, 20 deletions
diff --git a/sql/updates/world/2012_09_01_00_world_spell_script_names.sql b/sql/updates/world/2012_09_01_00_world_spell_script_names.sql
new file mode 100644
index 00000000000..888cc15e276
--- /dev/null
+++ b/sql/updates/world/2012_09_01_00_world_spell_script_names.sql
@@ -0,0 +1,4 @@
+-- Unlocking zuluhed chains
+DELETE FROM `spell_script_names` WHERE `spell_id`=38790;
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(38790, 'spell_unlocking_zuluheds_chains');
diff --git a/src/server/authserver/authserver.conf.dist b/src/server/authserver/authserver.conf.dist
index ee7e5970155..67d22c49da1 100644
--- a/src/server/authserver/authserver.conf.dist
+++ b/src/server/authserver/authserver.conf.dist
@@ -9,6 +9,7 @@
# EXAMPLE CONFIG
# AUTH SERVER SETTINGS
# MYSQL SETTINGS
+# LOGGING SYSTEM SETTINGS
#
###################################################################################################
@@ -148,7 +149,7 @@ LoginDatabase.WorkerThreads = 1
###################################################################################################
#
-# Logging system options.
+# LOGGING SYSTEM SETTINGS
#
# Appender config values: Given a appender "name"
# Appender.name
@@ -247,3 +248,6 @@ Logger.Root=0,3,Console Auth
# Default: "root"
Loggers=Root
+
+#
+################################################################################################### \ No newline at end of file
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index d9798571de5..ca8cb4763d7 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -541,6 +541,10 @@ uint32 Unit::DealDamage(Unit* victim, uint32 damage, CleanDamage const* cleanDam
if (IsAIEnabled)
GetAI()->DamageDealt(victim, damage, damagetype);
+ if (victim->GetTypeId() == TYPEID_PLAYER)
+ if (victim->ToPlayer()->GetCommandStatus(CHEAT_GOD))
+ return 0;
+
// Signal to pets that their owner was attacked
if (victim->GetTypeId() == TYPEID_PLAYER)
{
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 8544266840f..c294dd9b772 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -723,11 +723,7 @@ void WorldSession::HandleCharDeleteOpcode(WorldPacket & recv_data)
{
std::string dump;
if (PlayerDumpWriter().GetDump(GUID_LOPART(guid), dump))
- {
- std::ostringstream ss;
- ss << GetAccountId() << '_' << name.c_str();
- sLog->outCharDump(ss.str().c_str(), dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
- }
+ sLog->outCharDump(dump.c_str(), GetAccountId(), GUID_LOPART(guid), name.c_str());
}
Player::DeleteFromDB(guid, GetAccountId());
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 119e828680d..3637bb18049 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -277,6 +277,10 @@ void Spell::EffectInstaKill(SpellEffIndex /*effIndex*/)
if (!unitTarget || !unitTarget->isAlive())
return;
+ if (unitTarget->GetTypeId() == TYPEID_PLAYER)
+ if (unitTarget->ToPlayer()->GetCommandStatus(CHEAT_GOD))
+ return;
+
if (m_caster == unitTarget) // prevent interrupt message
finish();
diff --git a/src/server/scripts/Outland/shadowmoon_valley.cpp b/src/server/scripts/Outland/shadowmoon_valley.cpp
index c79bf74aab6..1656f7221ed 100644
--- a/src/server/scripts/Outland/shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/shadowmoon_valley.cpp
@@ -45,6 +45,7 @@ EndContentData */
#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "Group.h"
+#include "SpellScript.h"
/*#####
# mob_mature_netherwing_drake
@@ -1868,9 +1869,41 @@ public:
};
};
-/*#####
-#
-######*/
+enum ZuluhedChains
+{
+ QUEST_ZULUHED = 10866,
+ NPC_KARYNAKU = 22112,
+};
+
+class spell_unlocking_zuluheds_chains : public SpellScriptLoader
+{
+ public:
+ spell_unlocking_zuluheds_chains() : SpellScriptLoader("spell_unlocking_zuluheds_chains") { }
+
+ class spell_unlocking_zuluheds_chains_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_unlocking_zuluheds_chains_SpellScript);
+
+ void HandleOnCast()
+ {
+ // FIXME: Hackish solution, a better way to reward killcredit should be found
+ if (Unit* caster = GetCaster())
+ if(Player* player = caster->ToPlayer())
+ if (player->GetQuestStatus(QUEST_ZULUHED) == QUEST_STATUS_INCOMPLETE)
+ player->CastedCreatureOrGO(NPC_KARYNAKU, MAKE_NEW_GUID(0, NPC_KARYNAKU, HIGHGUID_UNIT), 0);
+ }
+
+ void Register()
+ {
+ OnCast += SpellCastFn(spell_unlocking_zuluheds_chains_SpellScript::HandleOnCast);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_unlocking_zuluheds_chains_SpellScript();
+ }
+};
void AddSC_shadowmoon_valley()
{
@@ -1889,4 +1922,5 @@ void AddSC_shadowmoon_valley()
new mob_illidari_spawn();
new mob_torloth_the_magnificent();
new npc_enraged_spirit();
+ new spell_unlocking_zuluheds_chains();
}
diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp
index 0b2bbb3122a..88259831095 100755
--- a/src/server/shared/Logging/Log.cpp
+++ b/src/server/shared/Logging/Log.cpp
@@ -435,19 +435,20 @@ void Log::outFatal(LogFilterType filter, const char * str, ...)
va_end(ap);
}
-void Log::outCharDump(const char* param, const char * str, ...)
+void Log::outCharDump(char const* str, uint32 accountId, uint32 guid, char const* name)
{
if (!str || !ShouldLog(LOG_FILTER_PLAYER_DUMP, LOG_LEVEL_INFO))
return;
- va_list ap;
- va_start(ap, str);
- char text[MAX_QUERY_LEN];
- vsnprintf(text, MAX_QUERY_LEN, str, ap);
- va_end(ap);
+ std::ostringstream ss;
+ ss << "== START DUMP == (account: " << accountId << " guid: " << guid << " name: " << name
+ << ")\n" << str << "\n== END DUMP ==\n";
- LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_PLAYER_DUMP, text);
- msg->param1 = param;
+ LogMessage* msg = new LogMessage(LOG_LEVEL_INFO, LOG_FILTER_PLAYER_DUMP, ss.str());
+ ss.clear();
+ ss << guid << '_' << name;
+
+ msg->param1 = ss.str();
write(msg);
}
diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h
index cd1e9dc80df..7980df0d52a 100755
--- a/src/server/shared/Logging/Log.h
+++ b/src/server/shared/Logging/Log.h
@@ -56,7 +56,7 @@ class Log
void EnableDBAppenders();
void outCommand(uint32 account, const char * str, ...) ATTR_PRINTF(3, 4);
- void outCharDump(const char* param, const char* str, ...) ATTR_PRINTF(3, 4);
+ void outCharDump(char const* str, uint32 account_id, uint32 guid, char const* name);
static std::string GetTimestampStr();
void SetRealmID(uint32 id);
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index e5b8f21da8e..1370f62bd3e 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -26,6 +26,7 @@
# CONSOLE AND REMOTE ACCESS
# CHARACTER DELETE OPTIONS
# CUSTOM SERVER OPTIONS
+# LOGGING SYSTEM SETTINGS
#
###################################################################################################
@@ -2660,7 +2661,7 @@ PlayerDump.DisallowOverwrite = 1
###################################################################################################
#
-# Logging system options.
+# LOGGING SYSTEM SETTINGS
#
# Appender config values: Given a appender "name"
# Appender.name
@@ -2803,7 +2804,7 @@ Appenders=Console Server GM DBErrors Char RA Warden Chat
#
Logger.Root=0,5,Console Server
-Logger.Chat=22,3,Chat
+Logger.Chat=22,2,Chat
Logger.DBErrors=26,5,Console Server DBErrors
Logger.GM=27,3,Console Server GM
Logger.RA=28,3,RA
@@ -2825,3 +2826,5 @@ Logger.Opcodes=41,6,Console Server
Loggers=Root Chat DBErrors GM RA Warden Character Load WorldServer Opcodes
+#
+###################################################################################################