[10988] Propertly note for not loaded script library version.

* Better support localization in case built-in version notes.
* Move script library version functions to ScriptMgr
This commit is contained in:
VladimirMangos 2011-01-09 05:37:45 +03:00
parent 6e241689e7
commit d2b3977fee
10 changed files with 43 additions and 19 deletions

View file

@ -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';
--
@ -3132,6 +3132,8 @@ INSERT INTO `mangos_string` VALUES
(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),
(65,'Using script library: <Unknown Script Library>',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(66,'Using script library: <No Script Library Loaded>',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),

View file

@ -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: <Unknown Script Library>',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(66,'Using script library: <No Script Library Loaded>',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

View file

@ -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

View file

@ -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,

View file

@ -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);

View file

@ -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());
return SCRIPT_LOAD_OK;
}

View file

@ -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);

View file

@ -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;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "10987"
#define REVISION_NR "10988"
#endif // __REVISION_NR_H__

View file

@ -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__