[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';
--
@ -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: <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());
m_pOnInitScriptLibrary();
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__