From b9853cb95894e4c67244c4e21f98b7b45decc1f6 Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Sun, 26 Apr 2009 23:28:16 +0400 Subject: [PATCH] [7720] Fixed crash at .character level use from console. Include GM name in message for command target if report need. --- sql/mangos.sql | 8 ++++---- sql/updates/7720_01_mangos_mangos_string.sql | 7 +++++++ sql/updates/Makefile.am | 2 ++ src/game/Level3.cpp | 20 ++++++++++++-------- src/shared/revision_nr.h | 2 +- 5 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 sql/updates/7720_01_mangos_mangos_string.sql diff --git a/sql/mangos.sql b/sql/mangos.sql index e321ce018..822ae85e8 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -23,7 +23,7 @@ DROP TABLE IF EXISTS `db_version`; CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, - `required_7714_01_mangos_command` bit(1) default NULL + `required_7720_01_mangos_mangos_string` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -2844,9 +2844,9 @@ INSERT INTO `mangos_string` VALUES (554,'%s has hidden all zones from you.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (555,'Hover enabled',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (556,'Hover disabled',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(557,'You have been leveled up (%i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(558,'You have been leveled down (%i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(559,'Your level progress has been reset.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(557,'%s level up you to (%i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(558,'%s level down you to (%i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(559,'%s reset your level progress.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (560,'The area has been set as explored.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (561,'The area has been set as not explored.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (562,'GUID=%i \'s updateIndex: %i, value: %i.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), diff --git a/sql/updates/7720_01_mangos_mangos_string.sql b/sql/updates/7720_01_mangos_mangos_string.sql new file mode 100644 index 000000000..41435c0e8 --- /dev/null +++ b/sql/updates/7720_01_mangos_mangos_string.sql @@ -0,0 +1,7 @@ +ALTER TABLE db_version CHANGE COLUMN required_7714_01_mangos_command required_7720_01_mangos_mangos_string bit; + +DELETE FROM mangos_string WHERE entry IN(557,558,559); +INSERT INTO mangos_string VALUES +(557,'%s level up you to (%i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(558,'%s level down you to (%i)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(559,'%s reset your level progress.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 2c349097c..302a634d1 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -176,6 +176,7 @@ pkgdata_DATA = \ 7705_01_mangos_command.sql \ 7706_01_mangos_command.sql \ 7714_01_mangos_command.sql \ + 7720_01_mangos_mangos_string.sql \ README ## Additional files to include when running 'make dist' @@ -332,4 +333,5 @@ EXTRA_DIST = \ 7705_01_mangos_command.sql \ 7706_01_mangos_command.sql \ 7714_01_mangos_command.sql \ + 7720_01_mangos_mangos_string.sql \ README diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 5c344813d..58d2d61bb 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -3904,12 +3904,15 @@ void ChatHandler::HandleCharacterLevel(Player* player, uint64 player_guid, uint3 player->InitTalentForLevel(); player->SetUInt32Value(PLAYER_XP,0); - if(oldlevel == newlevel) - ChatHandler(player).SendSysMessage(LANG_YOURS_LEVEL_PROGRESS_RESET); - else if(oldlevel < newlevel) - ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_UP,newlevel-oldlevel); - else // if(oldlevel > newlevel) - ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_DOWN,newlevel-oldlevel); + if(needReportToTarget(player)) + { + if(oldlevel == newlevel) + ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_PROGRESS_RESET,GetNameLink().c_str()); + else if(oldlevel < newlevel) + ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_UP,GetNameLink().c_str(),newlevel); + else // if(oldlevel > newlevel) + ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_DOWN,GetNameLink().c_str(),newlevel); + } } else { @@ -4002,7 +4005,7 @@ bool ChatHandler::HandleCharacterLevelCommand(const char* args) HandleCharacterLevel(chr,chr_guid,oldlevel,newlevel); - if(m_session->GetPlayer() != chr) // including player==NULL + if(m_session && m_session->GetPlayer() != chr) // including player==NULL { std::string nameLink = playerLink(name); PSendSysMessage(LANG_YOU_CHANGE_LVL,nameLink.c_str(),newlevel); @@ -4087,11 +4090,12 @@ bool ChatHandler::HandleLevelUpCommand(const char* args) HandleCharacterLevel(chr,chr_guid,oldlevel,newlevel); - if(m_session->GetPlayer() != chr) // including chr==NULL + if(m_session && m_session->GetPlayer() != chr) // including chr==NULL { std::string nameLink = playerLink(name); PSendSysMessage(LANG_YOU_CHANGE_LVL,nameLink.c_str(),newlevel); } + return true; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 4d7282a96..ea879a1a2 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 "7719" + #define REVISION_NR "7720" #endif // __REVISION_NR_H__