diff --git a/sql/mangos.sql b/sql/mangos.sql index 39ea61dc5..5b7cb3b10 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -24,7 +24,7 @@ CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, `cache_id` int(10) default '0', - `required_10973_01_mangos_game_event_mail` bit(1) default NULL + `required_10988_01_mangos_mangos_string` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -3130,8 +3130,10 @@ INSERT INTO `mangos_string` VALUES (59,'Using creature EventAI: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (61,'Username: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (62,'Password: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(63, "Accepts whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), -(64, "Doesn't accept whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(63,"Accepts whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(64,"Doesn't accept whispers", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(65,'Using script library: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(66,'Using script library: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (100,'Global notify: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (101,'Map: %u (%s) Zone: %u (%s) Area: %u (%s) Phase: %u\nX: %f Y: %f Z: %f Orientation: %f\ngrid[%u,%u]cell[%u,%u] InstanceID: %u\n ZoneX: %f ZoneY: %f\nGroundZ: %f FloorZ: %f Have height data (Map: %u VMap: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (102,'%s is already being teleported.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), diff --git a/sql/updates/10988_01_mangos_mangos_string.sql b/sql/updates/10988_01_mangos_mangos_string.sql new file mode 100644 index 000000000..313c1901a --- /dev/null +++ b/sql/updates/10988_01_mangos_mangos_string.sql @@ -0,0 +1,7 @@ +ALTER TABLE db_version CHANGE COLUMN required_10973_01_mangos_game_event_mail required_10988_01_mangos_mangos_string bit; + +DELETE FROM mangos_string WHERE entry IN (65,66); + +INSERT INTO mangos_string VALUES +(65,'Using script library: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(66,'Using script library: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 5634b00f0..248acdc87 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -147,6 +147,7 @@ pkgdata_DATA = \ 10972_01_mangos_command.sql \ 10973_01_characters_game_event_status.sql \ 10973_01_mangos_game_event_mail.sql \ + 10988_01_mangos_mangos_string.sql \ README ## Additional files to include when running 'make dist' @@ -274,4 +275,5 @@ EXTRA_DIST = \ 10972_01_mangos_command.sql \ 10973_01_characters_game_event_status.sql \ 10973_01_mangos_game_event_mail.sql \ + 10988_01_mangos_mangos_string.sql \ README diff --git a/src/game/Language.h b/src/game/Language.h index 745204249..6656561a9 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -88,7 +88,9 @@ enum MangosStrings LANG_RA_PASS = 62, LANG_GM_ACCEPTS_WHISPER = 63, LANG_GM_NO_WHISPER = 64, - // Room for more level 0 65-99 not used + LANG_USING_SCRIPT_LIB_UNKNOWN = 65, + LANG_USING_SCRIPT_LIB_NONE = 66, + // Room for more level 0 67-99 not used // level 1 chat LANG_GLOBAL_NOTIFY = 100, diff --git a/src/game/Level0.cpp b/src/game/Level0.cpp index 623676c5e..37f570128 100644 --- a/src/game/Level0.cpp +++ b/src/game/Level0.cpp @@ -25,6 +25,7 @@ #include "ObjectAccessor.h" #include "Language.h" #include "AccountMgr.h" +#include "ScriptMgr.h" #include "SystemConfig.h" #include "revision.h" #include "revision_nr.h" @@ -99,9 +100,19 @@ bool ChatHandler::HandleServerInfoCommand(char* /*args*/) full = _FULLVERSION(REVISION_DATE,REVISION_TIME,REVISION_NR,"|cffffffff|Hurl:" REVISION_ID "|h" REVISION_ID "|h|r"); else full = _FULLVERSION(REVISION_DATE,REVISION_TIME,REVISION_NR,REVISION_ID); - SendSysMessage(full); - PSendSysMessage(LANG_USING_SCRIPT_LIB,sWorld.GetScriptsVersion()); + + if (sScriptMgr.IsScriptLibraryLoaded()) + { + char const* ver = sScriptMgr.GetScriptLibraryVersion(); + if (ver && *ver) + PSendSysMessage(LANG_USING_SCRIPT_LIB, ver); + else + SendSysMessage(LANG_USING_SCRIPT_LIB_UNKNOWN); + } + else + SendSysMessage(LANG_USING_SCRIPT_LIB_NONE); + PSendSysMessage(LANG_USING_WORLD_DB,sWorld.GetDBVersion()); PSendSysMessage(LANG_USING_EVENT_AI,sWorld.GetCreatureEventAIVersion()); PSendSysMessage(LANG_CONNECTED_USERS, activeClientsNum, maxActiveClientsNum, queuedClientsNum, maxQueuedClientsNum); diff --git a/src/game/ScriptMgr.cpp b/src/game/ScriptMgr.cpp index 893e04461..bd014a450 100644 --- a/src/game/ScriptMgr.cpp +++ b/src/game/ScriptMgr.cpp @@ -911,6 +911,14 @@ uint32 ScriptMgr::GetEventIdScriptId(uint32 eventId) const return 0; } +char const* ScriptMgr::GetScriptLibraryVersion() const +{ + if (!m_pGetScriptLibraryVersion) + return ""; + + return m_pGetScriptLibraryVersion(); +} + CreatureAI* ScriptMgr::GetCreatureAI(Creature* pCreature) { if (!m_pGetCreatureAI) @@ -1094,12 +1102,7 @@ ScriptLoadResult ScriptMgr::LoadScriptLibrary(const char* libName) if (strcmp(pGetMangosRevStr(), REVISION_NR) != 0) return SCRIPT_LOAD_ERR_OUTDATED; - if (m_pOnInitScriptLibrary) - m_pOnInitScriptLibrary(); - - if (m_pGetScriptLibraryVersion) - sWorld.SetScriptsVersion(m_pGetScriptLibraryVersion()); - + m_pOnInitScriptLibrary(); return SCRIPT_LOAD_OK; } diff --git a/src/game/ScriptMgr.h b/src/game/ScriptMgr.h index 426c8c700..d8ef488de 100644 --- a/src/game/ScriptMgr.h +++ b/src/game/ScriptMgr.h @@ -341,10 +341,12 @@ class ScriptMgr ScriptLoadResult LoadScriptLibrary(const char* libName); void UnloadScriptLibrary(); + bool IsScriptLibraryLoaded() const { return m_hScriptLib != NULL; } CreatureAI* GetCreatureAI(Creature* pCreature); InstanceData* CreateInstanceData(Map* pMap); + char const* GetScriptLibraryVersion() const; bool OnGossipHello(Player* pPlayer, Creature* pCreature); bool OnGossipHello(Player* pPlayer, GameObject* pGameObject); bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 sender, uint32 action, const char* code); diff --git a/src/game/World.h b/src/game/World.h index 828958a77..3bf111dca 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -577,10 +577,6 @@ class World char const* GetDBVersion() { return m_DBVersion.c_str(); } char const* GetCreatureEventAIVersion() { return m_CreatureEventAIVersion.c_str(); } - //used Script version - void SetScriptsVersion(char const* version) { m_ScriptsVersion = version ? version : "unknown scripting library"; } - char const* GetScriptsVersion() { return m_ScriptsVersion.c_str(); } - protected: void _UpdateGameTime(); // callback for UpdateRealmCharacters @@ -675,7 +671,6 @@ class World //used versions std::string m_DBVersion; std::string m_CreatureEventAIVersion; - std::string m_ScriptsVersion; }; extern uint32 realmID; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 044b2ffdc..576c3f0ed 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 "10987" + #define REVISION_NR "10988" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index eda27ffef..47db1b04b 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_10973_01_characters_game_event_status" - #define REVISION_DB_MANGOS "required_10973_01_mangos_game_event_mail" + #define REVISION_DB_MANGOS "required_10988_01_mangos_mangos_string" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__