diff options
author | megamage <none@none> | 2009-02-17 14:51:25 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-02-17 14:51:25 -0600 |
commit | d73b38f0fa09b68489c8407dee59804272ce9dd8 (patch) | |
tree | 80efe2adf4d248b79c3999307c4e10382d38bb38 /src | |
parent | 1c894bee918b1b5e50c49d91e80bb09446dc84e3 (diff) |
[7290] Command .npc setdeathstate on/off. Author: GriffonHeart
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Chat.cpp | 2 | ||||
-rw-r--r-- | src/game/Chat.h | 1 | ||||
-rw-r--r-- | src/game/Creature.h | 2 | ||||
-rw-r--r-- | src/game/Level2.cpp | 31 | ||||
-rw-r--r-- | src/shared/revision_nr.h | 2 |
5 files changed, 37 insertions, 1 deletions
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index bc2ed1d27dc..4730269b167 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -468,6 +468,8 @@ ChatCommand * ChatHandler::getCommandTable() { "yell", SEC_MODERATOR, false, &ChatHandler::HandleNpcYellCommand, "", NULL }, { "addtemp", SEC_GAMEMASTER, false, &ChatHandler::HandleTempAddSpwCommand, "", NULL }, { "addformation", SEC_MODERATOR, false, &ChatHandler::HandleNpcAddFormationCommand, "", NULL }, + { "tame", SEC_GAMEMASTER, false, &ChatHandler::HandleNpcTameCommand, "", NULL }, + { "setdeathstate", SEC_GAMEMASTER, false, &ChatHandler::HandleNpcSetDeathStateCommand, "", NULL }, //{ TODO: fix or remove this commands { "name", SEC_GAMEMASTER, false, &ChatHandler::HandleNameCommand, "", NULL }, diff --git a/src/game/Chat.h b/src/game/Chat.h index a47397212d8..7ff89e5071c 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -208,6 +208,7 @@ class ChatHandler bool HandleNpcWhisperCommand(const char* args); bool HandleNpcYellCommand(const char* args); bool HandleNpcAddFormationCommand(const char* args); + bool HandleNpcSetDeathStateCommand(const char* args); bool HandleReloadAllCommand(const char* args); bool HandleReloadAllAreaCommand(const char* args); diff --git a/src/game/Creature.h b/src/game/Creature.h index d218e2dcd93..8351c76a718 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -642,6 +642,8 @@ class TRINITY_DLL_SPEC Creature : public Unit uint32 GetFormationID(){return m_formationID;} Unit *SelectVictim(); + void SetDeadByDefault (bool death_state) {m_isDeadByDefault = death_state;} + protected: bool CreateFromProto(uint32 guidlow,uint32 Entry,uint32 team, const CreatureData *data = NULL); bool InitEntry(uint32 entry, uint32 team=ALLIANCE, const CreatureData* data=NULL); diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 8d560783d89..05af6cbcbfe 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -4495,3 +4495,34 @@ bool ChatHandler::HandleGOPhaseCommand(const char* args) obj->SaveToDB(); return true; } + +bool ChatHandler::HandleNpcSetDeathStateCommand(const char* args) +{ + if (!*args) + return false; + + Creature* pCreature = getSelectedCreature(); + if(!pCreature || pCreature->isPet()) + { + SendSysMessage(LANG_SELECT_CREATURE); + SetSentErrorMessage(true); + return false; + } + + if (strncmp(args, "on", 3) == 0) + pCreature->SetDeadByDefault(true); + else if (strncmp(args, "off", 4) == 0) + pCreature->SetDeadByDefault(false); + else + { + SendSysMessage(LANG_USE_BOL); + SetSentErrorMessage(true); + return false; + } + + pCreature->SaveToDB(); + pCreature->Respawn(); + + return true; +} + diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index d254fae6a3b..8c65ce49575 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7289" + #define REVISION_NR "7290" #endif // __REVISION_NR_H__ |