mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
[7393] Implement access to client side holiday ids.
* src/game/GameEvent.* renamed to src/game/GameEventMgr.* for consistence * `game_event` now have new `holiday` field for store client side holiday id associated with game event * Added new enum HolidayIds with existed at this moment holiday ids. * New function "bool IsHolidayActive(HolidayIds id)" added accessabel from scripts for active holidays check.
This commit is contained in:
parent
4523a47155
commit
be74937146
19 changed files with 162 additions and 62 deletions
|
|
@ -22,7 +22,7 @@
|
||||||
DROP TABLE IF EXISTS `db_version`;
|
DROP TABLE IF EXISTS `db_version`;
|
||||||
CREATE TABLE `db_version` (
|
CREATE TABLE `db_version` (
|
||||||
`version` varchar(120) default NULL,
|
`version` varchar(120) default NULL,
|
||||||
`required_7390_01_mangos_areatrigger_teleport` bit(1) default NULL
|
`required_7393_01_mangos_game_event` bit(1) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
@ -1072,6 +1072,7 @@ CREATE TABLE `game_event` (
|
||||||
`end_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute end date, the event will never start afler',
|
`end_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute end date, the event will never start afler',
|
||||||
`occurence` bigint(20) unsigned NOT NULL default '86400' COMMENT 'Delay in hours between occurences of the event',
|
`occurence` bigint(20) unsigned NOT NULL default '86400' COMMENT 'Delay in hours between occurences of the event',
|
||||||
`length` bigint(20) unsigned NOT NULL default '43200' COMMENT 'Length in hours of the event',
|
`length` bigint(20) unsigned NOT NULL default '43200' COMMENT 'Length in hours of the event',
|
||||||
|
`holiday` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Client side holiday id',
|
||||||
`description` varchar(255) default NULL COMMENT 'Description of the event displayed in console',
|
`description` varchar(255) default NULL COMMENT 'Description of the event displayed in console',
|
||||||
PRIMARY KEY (`entry`)
|
PRIMARY KEY (`entry`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
|
||||||
4
sql/updates/7393_01_mangos_game_event.sql
Normal file
4
sql/updates/7393_01_mangos_game_event.sql
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_7390_01_mangos_areatrigger_teleport required_7393_01_mangos_game_event bit;
|
||||||
|
|
||||||
|
ALTER TABLE game_event
|
||||||
|
ADD COLUMN holiday mediumint(8) unsigned NOT NULL default '0' COMMENT 'Client side holiday id' AFTER length;
|
||||||
|
|
@ -193,6 +193,7 @@ pkgdata_DATA = \
|
||||||
7382_01_mangos_creature_template.sql \
|
7382_01_mangos_creature_template.sql \
|
||||||
7388_01_mangos_mangos_string.sql \
|
7388_01_mangos_mangos_string.sql \
|
||||||
7390_01_mangos_areatrigger_teleport.sql \
|
7390_01_mangos_areatrigger_teleport.sql \
|
||||||
|
7393_01_mangos_game_event.sql \
|
||||||
README
|
README
|
||||||
|
|
||||||
## Additional files to include when running 'make dist'
|
## Additional files to include when running 'make dist'
|
||||||
|
|
@ -366,4 +367,5 @@ EXTRA_DIST = \
|
||||||
7382_01_mangos_creature_template.sql \
|
7382_01_mangos_creature_template.sql \
|
||||||
7388_01_mangos_mangos_string.sql \
|
7388_01_mangos_mangos_string.sql \
|
||||||
7390_01_mangos_areatrigger_teleport.sql \
|
7390_01_mangos_areatrigger_teleport.sql \
|
||||||
|
7393_01_mangos_game_event.sql \
|
||||||
README
|
README
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,10 @@
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "WorldPacket.h"
|
#include "WorldPacket.h"
|
||||||
#include "Database/DBCEnums.h"
|
#include "Database/DBCEnums.h"
|
||||||
|
#include "GameEventMgr.h"
|
||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#include "Guild.h"
|
#include "Guild.h"
|
||||||
#include "Database/DatabaseEnv.h"
|
#include "Database/DatabaseEnv.h"
|
||||||
#include "GameEvent.h"
|
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
#include "SpellMgr.h"
|
#include "SpellMgr.h"
|
||||||
#include "ArenaTeam.h"
|
#include "ArenaTeam.h"
|
||||||
|
|
@ -607,7 +607,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
||||||
if(Player::GetDrunkenstateByValue(GetPlayer()->GetDrunkValue()) != DRUNKEN_SMASHED)
|
if(Player::GetDrunkenstateByValue(GetPlayer()->GetDrunkValue()) != DRUNKEN_SMASHED)
|
||||||
continue;
|
continue;
|
||||||
// TODO: hardcoding eventid is bad, it can differ from DB to DB - maye implement something using HolidayNames.dbc?
|
// TODO: hardcoding eventid is bad, it can differ from DB to DB - maye implement something using HolidayNames.dbc?
|
||||||
if(!gameeventmgr.IsActiveEvent(26))
|
if(!IsHolidayActive(HOLIDAY_BREWFEST))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// miscvalue1 is the ingame fallheight*100 as stored in dbc
|
// miscvalue1 is the ingame fallheight*100 as stored in dbc
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#include "PoolHandler.h"
|
#include "PoolHandler.h"
|
||||||
|
|
@ -26,9 +26,9 @@
|
||||||
#include "MapManager.h"
|
#include "MapManager.h"
|
||||||
#include "Policies/SingletonImp.h"
|
#include "Policies/SingletonImp.h"
|
||||||
|
|
||||||
INSTANTIATE_SINGLETON_1(GameEvent);
|
INSTANTIATE_SINGLETON_1(GameEventMgr);
|
||||||
|
|
||||||
bool GameEvent::CheckOneGameEvent(uint16 entry) const
|
bool GameEventMgr::CheckOneGameEvent(uint16 entry) const
|
||||||
{
|
{
|
||||||
// Get the event information
|
// Get the event information
|
||||||
time_t currenttime = time(NULL);
|
time_t currenttime = time(NULL);
|
||||||
|
|
@ -39,7 +39,7 @@ bool GameEvent::CheckOneGameEvent(uint16 entry) const
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 GameEvent::NextCheck(uint16 entry) const
|
uint32 GameEventMgr::NextCheck(uint16 entry) const
|
||||||
{
|
{
|
||||||
time_t currenttime = time(NULL);
|
time_t currenttime = time(NULL);
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@ uint32 GameEvent::NextCheck(uint16 entry) const
|
||||||
return delay;
|
return delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::StartEvent( uint16 event_id, bool overwrite )
|
void GameEventMgr::StartEvent( uint16 event_id, bool overwrite )
|
||||||
{
|
{
|
||||||
AddActiveEvent(event_id);
|
AddActiveEvent(event_id);
|
||||||
ApplyNewEvent(event_id);
|
ApplyNewEvent(event_id);
|
||||||
|
|
@ -77,7 +77,7 @@ void GameEvent::StartEvent( uint16 event_id, bool overwrite )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::StopEvent( uint16 event_id, bool overwrite )
|
void GameEventMgr::StopEvent( uint16 event_id, bool overwrite )
|
||||||
{
|
{
|
||||||
RemoveActiveEvent(event_id);
|
RemoveActiveEvent(event_id);
|
||||||
UnApplyEvent(event_id);
|
UnApplyEvent(event_id);
|
||||||
|
|
@ -89,7 +89,7 @@ void GameEvent::StopEvent( uint16 event_id, bool overwrite )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::LoadFromDB()
|
void GameEventMgr::LoadFromDB()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
QueryResult *result = WorldDatabase.Query("SELECT MAX(entry) FROM game_event");
|
QueryResult *result = WorldDatabase.Query("SELECT MAX(entry) FROM game_event");
|
||||||
|
|
@ -108,7 +108,7 @@ void GameEvent::LoadFromDB()
|
||||||
mGameEvent.resize(max_event_id+1);
|
mGameEvent.resize(max_event_id+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryResult *result = WorldDatabase.Query("SELECT entry,UNIX_TIMESTAMP(start_time),UNIX_TIMESTAMP(end_time),occurence,length,description FROM game_event");
|
QueryResult *result = WorldDatabase.Query("SELECT entry,UNIX_TIMESTAMP(start_time),UNIX_TIMESTAMP(end_time),occurence,length,holiday,description FROM game_event");
|
||||||
if( !result )
|
if( !result )
|
||||||
{
|
{
|
||||||
mGameEvent.clear();
|
mGameEvent.clear();
|
||||||
|
|
@ -142,6 +142,8 @@ void GameEvent::LoadFromDB()
|
||||||
pGameEvent.end = time_t(endtime);
|
pGameEvent.end = time_t(endtime);
|
||||||
pGameEvent.occurence = fields[3].GetUInt32();
|
pGameEvent.occurence = fields[3].GetUInt32();
|
||||||
pGameEvent.length = fields[4].GetUInt32();
|
pGameEvent.length = fields[4].GetUInt32();
|
||||||
|
pGameEvent.holiday_id = fields[5].GetUInt32();
|
||||||
|
|
||||||
|
|
||||||
if(pGameEvent.length==0) // length>0 is validity check
|
if(pGameEvent.length==0) // length>0 is validity check
|
||||||
{
|
{
|
||||||
|
|
@ -149,7 +151,16 @@ void GameEvent::LoadFromDB()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
pGameEvent.description = fields[5].GetCppString();
|
if(pGameEvent.holiday_id)
|
||||||
|
{
|
||||||
|
if(!sHolidaysStore.LookupEntry(pGameEvent.holiday_id))
|
||||||
|
{
|
||||||
|
sLog.outErrorDb("`game_event` game event id (%i) have not existed holiday id %u.",event_id,pGameEvent.holiday_id);
|
||||||
|
pGameEvent.holiday_id = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pGameEvent.description = fields[6].GetCppString();
|
||||||
|
|
||||||
} while( result->NextRow() );
|
} while( result->NextRow() );
|
||||||
delete result;
|
delete result;
|
||||||
|
|
@ -405,7 +416,7 @@ void GameEvent::LoadFromDB()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 GameEvent::Initialize() // return the next event delay in ms
|
uint32 GameEventMgr::Initialize() // return the next event delay in ms
|
||||||
{
|
{
|
||||||
m_ActiveEvents.clear();
|
m_ActiveEvents.clear();
|
||||||
uint32 delay = Update();
|
uint32 delay = Update();
|
||||||
|
|
@ -414,7 +425,7 @@ uint32 GameEvent::Initialize() // return the next e
|
||||||
return delay;
|
return delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 GameEvent::Update() // return the next event delay in ms
|
uint32 GameEventMgr::Update() // return the next event delay in ms
|
||||||
{
|
{
|
||||||
uint32 nextEventDelay = max_ge_check_delay; // 1 day
|
uint32 nextEventDelay = max_ge_check_delay; // 1 day
|
||||||
uint32 calcDelay;
|
uint32 calcDelay;
|
||||||
|
|
@ -450,7 +461,7 @@ uint32 GameEvent::Update() // return the next e
|
||||||
return (nextEventDelay + 1) * IN_MILISECONDS; // Add 1 second to be sure event has started/stopped at next call
|
return (nextEventDelay + 1) * IN_MILISECONDS; // Add 1 second to be sure event has started/stopped at next call
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::UnApplyEvent(uint16 event_id)
|
void GameEventMgr::UnApplyEvent(uint16 event_id)
|
||||||
{
|
{
|
||||||
sLog.outString("GameEvent %u \"%s\" removed.", event_id, mGameEvent[event_id].description.c_str());
|
sLog.outString("GameEvent %u \"%s\" removed.", event_id, mGameEvent[event_id].description.c_str());
|
||||||
// un-spawn positive event tagged objects
|
// un-spawn positive event tagged objects
|
||||||
|
|
@ -464,7 +475,7 @@ void GameEvent::UnApplyEvent(uint16 event_id)
|
||||||
UpdateEventQuests(event_id, false);
|
UpdateEventQuests(event_id, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::ApplyNewEvent(uint16 event_id)
|
void GameEventMgr::ApplyNewEvent(uint16 event_id)
|
||||||
{
|
{
|
||||||
switch(sWorld.getConfig(CONFIG_EVENT_ANNOUNCE))
|
switch(sWorld.getConfig(CONFIG_EVENT_ANNOUNCE))
|
||||||
{
|
{
|
||||||
|
|
@ -487,13 +498,13 @@ void GameEvent::ApplyNewEvent(uint16 event_id)
|
||||||
UpdateEventQuests(event_id, true);
|
UpdateEventQuests(event_id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::GameEventSpawn(int16 event_id)
|
void GameEventMgr::GameEventSpawn(int16 event_id)
|
||||||
{
|
{
|
||||||
int32 internal_event_id = mGameEvent.size() + event_id - 1;
|
int32 internal_event_id = mGameEvent.size() + event_id - 1;
|
||||||
|
|
||||||
if(internal_event_id < 0 || internal_event_id >= mGameEventCreatureGuids.size())
|
if(internal_event_id < 0 || internal_event_id >= mGameEventCreatureGuids.size())
|
||||||
{
|
{
|
||||||
sLog.outError("GameEvent::GameEventSpawn attempt access to out of range mGameEventCreatureGuids element %i (size: %u)",internal_event_id,mGameEventCreatureGuids.size());
|
sLog.outError("GameEventMgr::GameEventSpawn attempt access to out of range mGameEventCreatureGuids element %i (size: %u)",internal_event_id,mGameEventCreatureGuids.size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -526,7 +537,7 @@ void GameEvent::GameEventSpawn(int16 event_id)
|
||||||
|
|
||||||
if(internal_event_id < 0 || internal_event_id >= mGameEventGameobjectGuids.size())
|
if(internal_event_id < 0 || internal_event_id >= mGameEventGameobjectGuids.size())
|
||||||
{
|
{
|
||||||
sLog.outError("GameEvent::GameEventSpawn attempt access to out of range mGameEventGameobjectGuids element %i (size: %u)",internal_event_id,mGameEventGameobjectGuids.size());
|
sLog.outError("GameEventMgr::GameEventSpawn attempt access to out of range mGameEventGameobjectGuids element %i (size: %u)",internal_event_id,mGameEventGameobjectGuids.size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -560,7 +571,7 @@ void GameEvent::GameEventSpawn(int16 event_id)
|
||||||
|
|
||||||
if(internal_event_id < 0 || internal_event_id >= mGameEventPoolIds.size())
|
if(internal_event_id < 0 || internal_event_id >= mGameEventPoolIds.size())
|
||||||
{
|
{
|
||||||
sLog.outError("GameEvent::GameEventSpawn attempt access to out of range mGameEventPoolIds element %i (size: %u)",internal_event_id,mGameEventPoolIds.size());
|
sLog.outError("GameEventMgr::GameEventSpawn attempt access to out of range mGameEventPoolIds element %i (size: %u)",internal_event_id,mGameEventPoolIds.size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -570,13 +581,13 @@ void GameEvent::GameEventSpawn(int16 event_id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::GameEventUnspawn(int16 event_id)
|
void GameEventMgr::GameEventUnspawn(int16 event_id)
|
||||||
{
|
{
|
||||||
int32 internal_event_id = mGameEvent.size() + event_id - 1;
|
int32 internal_event_id = mGameEvent.size() + event_id - 1;
|
||||||
|
|
||||||
if(internal_event_id < 0 || internal_event_id >= mGameEventCreatureGuids.size())
|
if(internal_event_id < 0 || internal_event_id >= mGameEventCreatureGuids.size())
|
||||||
{
|
{
|
||||||
sLog.outError("GameEvent::GameEventUnspawn attempt access to out of range mGameEventCreatureGuids element %i (size: %u)",internal_event_id,mGameEventCreatureGuids.size());
|
sLog.outError("GameEventMgr::GameEventUnspawn attempt access to out of range mGameEventCreatureGuids element %i (size: %u)",internal_event_id,mGameEventCreatureGuids.size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -597,7 +608,7 @@ void GameEvent::GameEventUnspawn(int16 event_id)
|
||||||
|
|
||||||
if(internal_event_id < 0 || internal_event_id >= mGameEventGameobjectGuids.size())
|
if(internal_event_id < 0 || internal_event_id >= mGameEventGameobjectGuids.size())
|
||||||
{
|
{
|
||||||
sLog.outError("GameEvent::GameEventUnspawn attempt access to out of range mGameEventGameobjectGuids element %i (size: %u)",internal_event_id,mGameEventGameobjectGuids.size());
|
sLog.outError("GameEventMgr::GameEventUnspawn attempt access to out of range mGameEventGameobjectGuids element %i (size: %u)",internal_event_id,mGameEventGameobjectGuids.size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -614,7 +625,7 @@ void GameEvent::GameEventUnspawn(int16 event_id)
|
||||||
}
|
}
|
||||||
if(internal_event_id < 0 || internal_event_id >= mGameEventPoolIds.size())
|
if(internal_event_id < 0 || internal_event_id >= mGameEventPoolIds.size())
|
||||||
{
|
{
|
||||||
sLog.outError("GameEvent::GameEventUnspawn attempt access to out of range mGameEventPoolIds element %i (size: %u)",internal_event_id,mGameEventPoolIds.size());
|
sLog.outError("GameEventMgr::GameEventUnspawn attempt access to out of range mGameEventPoolIds element %i (size: %u)",internal_event_id,mGameEventPoolIds.size());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -624,7 +635,7 @@ void GameEvent::GameEventUnspawn(int16 event_id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::ChangeEquipOrModel(int16 event_id, bool activate)
|
void GameEventMgr::ChangeEquipOrModel(int16 event_id, bool activate)
|
||||||
{
|
{
|
||||||
for(ModelEquipList::iterator itr = mGameEventModelEquip[event_id].begin();itr != mGameEventModelEquip[event_id].end();++itr)
|
for(ModelEquipList::iterator itr = mGameEventModelEquip[event_id].begin();itr != mGameEventModelEquip[event_id].end();++itr)
|
||||||
{
|
{
|
||||||
|
|
@ -703,7 +714,7 @@ void GameEvent::ChangeEquipOrModel(int16 event_id, bool activate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameEvent::UpdateEventQuests(uint16 event_id, bool Activate)
|
void GameEventMgr::UpdateEventQuests(uint16 event_id, bool Activate)
|
||||||
{
|
{
|
||||||
QuestRelList::iterator itr;
|
QuestRelList::iterator itr;
|
||||||
for (itr = mGameEventQuests[event_id].begin();itr != mGameEventQuests[event_id].end();++itr)
|
for (itr = mGameEventQuests[event_id].begin();itr != mGameEventQuests[event_id].end();++itr)
|
||||||
|
|
@ -729,7 +740,19 @@ void GameEvent::UpdateEventQuests(uint16 event_id, bool Activate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GameEvent::GameEvent()
|
GameEventMgr::GameEventMgr()
|
||||||
{
|
{
|
||||||
isSystemInit = false;
|
isSystemInit = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MANGOS_DLL_SPEC bool IsHolidayActive( HolidayIds id )
|
||||||
|
{
|
||||||
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
|
GameEventMgr::ActiveEvents const& ae = gameeventmgr.GetActiveEventList();
|
||||||
|
|
||||||
|
for(GameEventMgr::ActiveEvents::const_iterator itr = ae.begin(); itr != ae.end(); ++itr)
|
||||||
|
if(events[id].holiday_id==id)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
@ -16,15 +16,18 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MANGOS_GAMEEVENT_H
|
#ifndef MANGOS_GAMEEVENT_MGR_H
|
||||||
#define MANGOS_GAMEEVENT_H
|
#define MANGOS_GAMEEVENT_MGR_H
|
||||||
|
|
||||||
|
#include "Common.h"
|
||||||
|
#include "SharedDefines.h"
|
||||||
#include "Platform/Define.h"
|
#include "Platform/Define.h"
|
||||||
#include "Creature.h"
|
|
||||||
#include "GameObject.h"
|
|
||||||
|
|
||||||
#define max_ge_check_delay 86400 // 1 day in seconds
|
#define max_ge_check_delay 86400 // 1 day in seconds
|
||||||
|
|
||||||
|
class Creature;
|
||||||
|
class GameObject;
|
||||||
|
|
||||||
struct GameEventData
|
struct GameEventData
|
||||||
{
|
{
|
||||||
GameEventData() : start(1),end(0),occurence(0),length(0) {}
|
GameEventData() : start(1),end(0),occurence(0),length(0) {}
|
||||||
|
|
@ -32,6 +35,7 @@ struct GameEventData
|
||||||
time_t end;
|
time_t end;
|
||||||
uint32 occurence;
|
uint32 occurence;
|
||||||
uint32 length;
|
uint32 length;
|
||||||
|
uint32 holiday_id;
|
||||||
std::string description;
|
std::string description;
|
||||||
|
|
||||||
bool isValid() const { return length > 0; }
|
bool isValid() const { return length > 0; }
|
||||||
|
|
@ -45,11 +49,11 @@ struct ModelEquip
|
||||||
uint32 equipement_id_prev;
|
uint32 equipement_id_prev;
|
||||||
};
|
};
|
||||||
|
|
||||||
class GameEvent
|
class GameEventMgr
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GameEvent();
|
GameEventMgr();
|
||||||
~GameEvent() {};
|
~GameEventMgr() {};
|
||||||
typedef std::set<uint16> ActiveEvents;
|
typedef std::set<uint16> ActiveEvents;
|
||||||
typedef std::vector<GameEventData> GameEventDataMap;
|
typedef std::vector<GameEventData> GameEventDataMap;
|
||||||
ActiveEvents const& GetActiveEventList() const { return m_ActiveEvents; }
|
ActiveEvents const& GetActiveEventList() const { return m_ActiveEvents; }
|
||||||
|
|
@ -92,5 +96,8 @@ class GameEvent
|
||||||
bool isSystemInit;
|
bool isSystemInit;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define gameeventmgr MaNGOS::Singleton<GameEvent>::Instance()
|
#define gameeventmgr MaNGOS::Singleton<GameEventMgr>::Instance()
|
||||||
|
|
||||||
|
MANGOS_DLL_SPEC bool IsHolidayActive(HolidayIds id);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
#include "MapManager.h"
|
#include "MapManager.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "SpellMgr.h"
|
#include "SpellMgr.h"
|
||||||
#include "PoolHandler.h"
|
#include "PoolHandler.h"
|
||||||
#include "AccountMgr.h"
|
#include "AccountMgr.h"
|
||||||
|
|
@ -162,7 +162,7 @@ bool ChatHandler::HandleTargetObjectCommand(const char* args)
|
||||||
{
|
{
|
||||||
Player* pl = m_session->GetPlayer();
|
Player* pl = m_session->GetPlayer();
|
||||||
QueryResult *result;
|
QueryResult *result;
|
||||||
GameEvent::ActiveEvents const& activeEventsList = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEventsList = gameeventmgr.GetActiveEventList();
|
||||||
if(*args)
|
if(*args)
|
||||||
{
|
{
|
||||||
int32 id = atoi((char*)args);
|
int32 id = atoi((char*)args);
|
||||||
|
|
@ -185,7 +185,7 @@ bool ChatHandler::HandleTargetObjectCommand(const char* args)
|
||||||
eventFilter << " AND (event IS NULL ";
|
eventFilter << " AND (event IS NULL ";
|
||||||
bool initString = true;
|
bool initString = true;
|
||||||
|
|
||||||
for (GameEvent::ActiveEvents::const_iterator itr = activeEventsList.begin(); itr != activeEventsList.end(); ++itr)
|
for (GameEventMgr::ActiveEvents::const_iterator itr = activeEventsList.begin(); itr != activeEventsList.end(); ++itr)
|
||||||
{
|
{
|
||||||
if (initString)
|
if (initString)
|
||||||
{
|
{
|
||||||
|
|
@ -3617,8 +3617,8 @@ bool ChatHandler::HandleLookupEventCommand(const char* args)
|
||||||
|
|
||||||
uint32 counter = 0;
|
uint32 counter = 0;
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
|
|
||||||
for(uint32 id = 0; id < events.size(); ++id )
|
for(uint32 id = 0; id < events.size(); ++id )
|
||||||
{
|
{
|
||||||
|
|
@ -3651,12 +3651,12 @@ bool ChatHandler::HandleEventActiveListCommand(const char* /*args*/)
|
||||||
{
|
{
|
||||||
uint32 counter = 0;
|
uint32 counter = 0;
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
|
|
||||||
char const* active = GetMangosString(LANG_ACTIVE);
|
char const* active = GetMangosString(LANG_ACTIVE);
|
||||||
|
|
||||||
for(GameEvent::ActiveEvents::const_iterator itr = activeEvents.begin(); itr != activeEvents.end(); ++itr )
|
for(GameEventMgr::ActiveEvents::const_iterator itr = activeEvents.begin(); itr != activeEvents.end(); ++itr )
|
||||||
{
|
{
|
||||||
uint32 event_id = *itr;
|
uint32 event_id = *itr;
|
||||||
GameEventData const& eventData = events[event_id];
|
GameEventData const& eventData = events[event_id];
|
||||||
|
|
@ -3687,7 +3687,7 @@ bool ChatHandler::HandleEventInfoCommand(const char* args)
|
||||||
|
|
||||||
uint32 event_id = atoi(cId);
|
uint32 event_id = atoi(cId);
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
|
|
||||||
if(event_id >=events.size())
|
if(event_id >=events.size())
|
||||||
{
|
{
|
||||||
|
|
@ -3704,7 +3704,7 @@ bool ChatHandler::HandleEventInfoCommand(const char* args)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
bool active = activeEvents.find(event_id) != activeEvents.end();
|
bool active = activeEvents.find(event_id) != activeEvents.end();
|
||||||
char const* activeStr = active ? GetMangosString(LANG_ACTIVE) : "";
|
char const* activeStr = active ? GetMangosString(LANG_ACTIVE) : "";
|
||||||
|
|
||||||
|
|
@ -3736,7 +3736,7 @@ bool ChatHandler::HandleEventStartCommand(const char* args)
|
||||||
|
|
||||||
int32 event_id = atoi(cId);
|
int32 event_id = atoi(cId);
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
|
|
||||||
if(event_id < 1 || event_id >=events.size())
|
if(event_id < 1 || event_id >=events.size())
|
||||||
{
|
{
|
||||||
|
|
@ -3753,7 +3753,7 @@ bool ChatHandler::HandleEventStartCommand(const char* args)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
if(activeEvents.find(event_id) != activeEvents.end())
|
if(activeEvents.find(event_id) != activeEvents.end())
|
||||||
{
|
{
|
||||||
PSendSysMessage(LANG_EVENT_ALREADY_ACTIVE,event_id);
|
PSendSysMessage(LANG_EVENT_ALREADY_ACTIVE,event_id);
|
||||||
|
|
@ -3777,7 +3777,7 @@ bool ChatHandler::HandleEventStopCommand(const char* args)
|
||||||
|
|
||||||
int32 event_id = atoi(cId);
|
int32 event_id = atoi(cId);
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
|
|
||||||
if(event_id < 1 || event_id >=events.size())
|
if(event_id < 1 || event_id >=events.size())
|
||||||
{
|
{
|
||||||
|
|
@ -3794,7 +3794,7 @@ bool ChatHandler::HandleEventStopCommand(const char* args)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
|
|
||||||
if(activeEvents.find(event_id) == activeEvents.end())
|
if(activeEvents.find(event_id) == activeEvents.end())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -109,8 +109,8 @@ libmangosgame_a_SOURCES = \
|
||||||
FleeingMovementGenerator.cpp \
|
FleeingMovementGenerator.cpp \
|
||||||
FleeingMovementGenerator.h \
|
FleeingMovementGenerator.h \
|
||||||
Formulas.h \
|
Formulas.h \
|
||||||
GameEvent.cpp \
|
GameEventMgr.cpp \
|
||||||
GameEvent.h \
|
GameEventMgr.h \
|
||||||
GameObject.cpp \
|
GameObject.cpp \
|
||||||
GameObject.h \
|
GameObject.h \
|
||||||
GlobalEvents.cpp \
|
GlobalEvents.cpp \
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
#include "Transports.h"
|
#include "Transports.h"
|
||||||
#include "ProgressBar.h"
|
#include "ProgressBar.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "Spell.h"
|
#include "Spell.h"
|
||||||
#include "Chat.h"
|
#include "Chat.h"
|
||||||
#include "AccountMgr.h"
|
#include "AccountMgr.h"
|
||||||
|
|
@ -6684,7 +6684,7 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val
|
||||||
}
|
}
|
||||||
case CONDITION_ACTIVE_EVENT:
|
case CONDITION_ACTIVE_EVENT:
|
||||||
{
|
{
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
if(value1 >=events.size() || !events[value1].isValid())
|
if(value1 >=events.size() || !events[value1].isValid())
|
||||||
{
|
{
|
||||||
sLog.outErrorDb("Active event condition requires existed event id (%u), skipped", value1);
|
sLog.outErrorDb("Active event condition requires existed event id (%u), skipped", value1);
|
||||||
|
|
|
||||||
|
|
@ -1591,6 +1591,31 @@ enum CreatureEliteType
|
||||||
CREATURE_UNKNOWN = 5 // found in 2.2.3 for 2 mobs
|
CREATURE_UNKNOWN = 5 // found in 2.2.3 for 2 mobs
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// values based at Holidays.dbc
|
||||||
|
enum HolidayIds
|
||||||
|
{
|
||||||
|
HOLIDAY_FIREWORKS_SPECTACULAR = 62,
|
||||||
|
HOLIDAY_FEAST_OF_WINTER_VEIL = 141,
|
||||||
|
HOLIDAY_NOBLEGARDEN = 181,
|
||||||
|
HOLIDAY_CHILDRENS_WEEK = 201,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_AV = 283,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_WG = 284,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_AB = 285,
|
||||||
|
HOLIDAY_FISHING_EXTRAVAGANZA = 301,
|
||||||
|
HOLIDAY_HARVEST_FESTIVAL = 321,
|
||||||
|
HOLIDAY_HALLOWS_END = 324,
|
||||||
|
HOLIDAY_LUNAR_FESTIVAL = 327,
|
||||||
|
HOLIDAY_LOVE_IS_IN_THE_AIR = 335,
|
||||||
|
HOLIDAY_FIRE_FESTIVAL = 341,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_ES = 353,
|
||||||
|
HOLIDAY_BREWFEST = 372,
|
||||||
|
HOLIDAY_DARKMOON_FAIRE_ELWYNN = 374,
|
||||||
|
HOLIDAY_DARKMOON_FAIRE_THUNDER = 375,
|
||||||
|
HOLIDAY_DARKMOON_FAIRE_SHATTRATH = 376,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_SA = 400,
|
||||||
|
HOLIDAY_WOTLK_LAUNCH = 406
|
||||||
|
};
|
||||||
|
|
||||||
// values based at QuestInfo.dbc
|
// values based at QuestInfo.dbc
|
||||||
enum QuestTypes
|
enum QuestTypes
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
#include "WaypointMovementGenerator.h"
|
#include "WaypointMovementGenerator.h"
|
||||||
#include "VMapFactory.h"
|
#include "VMapFactory.h"
|
||||||
#include "GlobalEvents.h"
|
#include "GlobalEvents.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "PoolHandler.h"
|
#include "PoolHandler.h"
|
||||||
#include "Database/DatabaseImpl.h"
|
#include "Database/DatabaseImpl.h"
|
||||||
#include "GridNotifiersImpl.h"
|
#include "GridNotifiersImpl.h"
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,7 @@ DBCStorage <GtOCTRegenHPEntry> sGtOCTRegenHPStore(GtOCTRegenHPfmt);
|
||||||
//DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore(GtOCTRegenMPfmt); -- not used currently
|
//DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore(GtOCTRegenMPfmt); -- not used currently
|
||||||
DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore(GtRegenHPPerSptfmt);
|
DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore(GtRegenHPPerSptfmt);
|
||||||
DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore(GtRegenMPPerSptfmt);
|
DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore(GtRegenMPPerSptfmt);
|
||||||
|
DBCStorage <HolidaysEntry> sHolidaysStore(Holidaysfmt);
|
||||||
DBCStorage <ItemEntry> sItemStore(Itemfmt);
|
DBCStorage <ItemEntry> sItemStore(Itemfmt);
|
||||||
//DBCStorage <ItemCondExtCostsEntry> sItemCondExtCostsStore(ItemCondExtCostsEntryfmt);
|
//DBCStorage <ItemCondExtCostsEntry> sItemCondExtCostsStore(ItemCondExtCostsEntryfmt);
|
||||||
//DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore(ItemDisplayTemplateEntryfmt); -- not used currently
|
//DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore(ItemDisplayTemplateEntryfmt); -- not used currently
|
||||||
|
|
@ -193,7 +194,7 @@ void LoadDBCStores(const std::string& dataPath)
|
||||||
{
|
{
|
||||||
std::string dbcPath = dataPath+"dbc/";
|
std::string dbcPath = dataPath+"dbc/";
|
||||||
|
|
||||||
const uint32 DBCFilesCount = 72;
|
const uint32 DBCFilesCount = 73;
|
||||||
|
|
||||||
barGoLink bar( DBCFilesCount );
|
barGoLink bar( DBCFilesCount );
|
||||||
|
|
||||||
|
|
@ -266,6 +267,7 @@ void LoadDBCStores(const std::string& dataPath)
|
||||||
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenMPStore, dbcPath,"gtOCTRegenMP.dbc"); -- not used currently
|
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenMPStore, dbcPath,"gtOCTRegenMP.dbc"); -- not used currently
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenHPPerSptStore, dbcPath,"gtRegenHPPerSpt.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenHPPerSptStore, dbcPath,"gtRegenHPPerSpt.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenMPPerSptStore, dbcPath,"gtRegenMPPerSpt.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenMPPerSptStore, dbcPath,"gtRegenMPPerSpt.dbc");
|
||||||
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sHolidaysStore, dbcPath,"Holidays.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemStore, dbcPath,"Item.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemStore, dbcPath,"Item.dbc");
|
||||||
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemDisplayInfoStore, dbcPath,"ItemDisplayInfo.dbc"); -- not used currently
|
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemDisplayInfoStore, dbcPath,"ItemDisplayInfo.dbc"); -- not used currently
|
||||||
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemCondExtCostsStore, dbcPath,"ItemCondExtCosts.dbc");
|
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemCondExtCostsStore, dbcPath,"ItemCondExtCosts.dbc");
|
||||||
|
|
|
||||||
|
|
@ -167,6 +167,7 @@ extern DBCStorage <GtOCTRegenHPEntry> sGtOCTRegenHPStore;
|
||||||
//extern DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore; -- not used currently
|
//extern DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore; -- not used currently
|
||||||
extern DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore;
|
extern DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore;
|
||||||
extern DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore;
|
extern DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore;
|
||||||
|
extern DBCStorage <HolidaysEntry> sHolidaysStore;
|
||||||
extern DBCStorage <ItemEntry> sItemStore;
|
extern DBCStorage <ItemEntry> sItemStore;
|
||||||
//extern DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore; -- not used currently
|
//extern DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore; -- not used currently
|
||||||
extern DBCStorage <ItemExtendedCostEntry> sItemExtendedCostStore;
|
extern DBCStorage <ItemExtendedCostEntry> sItemExtendedCostStore;
|
||||||
|
|
|
||||||
|
|
@ -854,6 +854,40 @@ struct GtRegenMPPerSptEntry
|
||||||
float ratio;
|
float ratio;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* no used
|
||||||
|
struct HolidayDescriptionsEntry
|
||||||
|
{
|
||||||
|
uint32 ID; // 0, this is NOT holiday id
|
||||||
|
//char* name[16] // 1-16 m_name_lang
|
||||||
|
// 17 name flags
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* no used
|
||||||
|
struct HolidayNamesEntry
|
||||||
|
{
|
||||||
|
uint32 ID; // 0, this is NOT holiday id
|
||||||
|
//char* name[16] // 1-16 m_name_lang
|
||||||
|
// 17 name flags
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct HolidaysEntry
|
||||||
|
{
|
||||||
|
uint32 ID; // 0, holiday id
|
||||||
|
//uint32 unk1; // 1
|
||||||
|
//uint32 unk2; // 2
|
||||||
|
//uint32 unk3[8] // 3-10, empty fields
|
||||||
|
//uint32 unk11[13] // 11-23, some unknown data (bit strings?)
|
||||||
|
//uint32 unk11[13] // 24-36, some empty fields (continue prev?)
|
||||||
|
//uint32 unk11[12] // 37-48, counters?
|
||||||
|
//uint32 holidayNameId; // 49, id for HolidayNames.dbc
|
||||||
|
//uint32 holidayDescriptionId; // 50, id for HolidayDescriptions.dbc
|
||||||
|
//uint32 unk51; // 51
|
||||||
|
//uint32 unk52; // 52
|
||||||
|
//uint32 unk53; // 53
|
||||||
|
};
|
||||||
|
|
||||||
struct ItemEntry
|
struct ItemEntry
|
||||||
{
|
{
|
||||||
uint32 ID; // 0
|
uint32 ID; // 0
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,7 @@ const char GtOCTRegenHPfmt[]="f";
|
||||||
//const char GtOCTRegenMPfmt[]="f";
|
//const char GtOCTRegenMPfmt[]="f";
|
||||||
const char GtRegenHPPerSptfmt[]="f";
|
const char GtRegenHPPerSptfmt[]="f";
|
||||||
const char GtRegenMPPerSptfmt[]="f";
|
const char GtRegenMPPerSptfmt[]="f";
|
||||||
|
const char Holidaysfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||||
const char Itemfmt[]="nixiiiii";
|
const char Itemfmt[]="nixiiiii";
|
||||||
//const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx";
|
//const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx";
|
||||||
//const char ItemCondExtCostsEntryfmt[]="xiii";
|
//const char ItemCondExtCostsEntryfmt[]="xiii";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7392"
|
#define REVISION_NR "7393"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
|
|
@ -276,10 +276,10 @@
|
||||||
RelativePath="..\..\src\game\DuelHandler.cpp">
|
RelativePath="..\..\src\game\DuelHandler.cpp">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.cpp">
|
RelativePath="..\..\src\game\GameEventMgr.cpp">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.h">
|
RelativePath="..\..\src\game\GameEventMgr.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GMTicketHandler.cpp">
|
RelativePath="..\..\src\game\GMTicketHandler.cpp">
|
||||||
|
|
|
||||||
|
|
@ -539,11 +539,11 @@
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.cpp"
|
RelativePath="..\..\src\game\GameEventMgr.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.h"
|
RelativePath="..\..\src\game\GameEventMgr.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
|
|
|
||||||
|
|
@ -541,11 +541,11 @@
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.cpp"
|
RelativePath="..\..\src\game\GameEventMgr.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.h"
|
RelativePath="..\..\src\game\GameEventMgr.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue