[7545] Fixed exploration achievements for certian areas Author: DonTomika

[7546] move uptime table to Realm database, use realmid column. Author: Triply

--HG--
branch : trunk
This commit is contained in:
megamage
2009-03-26 14:02:11 -06:00
parent 68c3039715
commit 1ac13728a7
8 changed files with 65 additions and 35 deletions
+1 -23
View File
@@ -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_7536_01_mangos_spell_chain` bit(1) default NULL `required_7544_01_mangos_uptime` 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';
-- --
@@ -17850,28 +17850,6 @@ LOCK TABLES `transports` WRITE;
/*!40000 ALTER TABLE `transports` DISABLE KEYS */; /*!40000 ALTER TABLE `transports` DISABLE KEYS */;
/*!40000 ALTER TABLE `transports` ENABLE KEYS */; /*!40000 ALTER TABLE `transports` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
--
-- Table structure for table `uptime`
--
DROP TABLE IF EXISTS `uptime`;
CREATE TABLE `uptime` (
`starttime` bigint(20) unsigned NOT NULL default '0',
`startstring` varchar(64) NOT NULL default '',
`uptime` bigint(20) unsigned NOT NULL default '0',
`maxplayers` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`starttime`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Uptime system';
--
-- Dumping data for table `uptime`
--
LOCK TABLES `uptime` WRITE;
/*!40000 ALTER TABLE `uptime` DISABLE KEYS */;
/*!40000 ALTER TABLE `uptime` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+23
View File
@@ -175,6 +175,29 @@ INSERT INTO `realmlist` VALUES
(1,'Trinity','127.0.0.1',8085,1,0,1,0,0); (1,'Trinity','127.0.0.1',8085,1,0,1,0,0);
/*!40000 ALTER TABLE `realmlist` ENABLE KEYS */; /*!40000 ALTER TABLE `realmlist` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
--
-- Table structure for table `uptime`
--
DROP TABLE IF EXISTS `uptime`;
CREATE TABLE `uptime` (
`realmid` int(11) unsigned NOT NULL,
`starttime` bigint(20) unsigned NOT NULL default '0',
`startstring` varchar(64) NOT NULL default '',
`uptime` bigint(20) unsigned NOT NULL default '0',
`maxplayers` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`realmid`,`starttime`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Uptime system';
--
-- Dumping data for table `uptime`
--
LOCK TABLES `uptime` WRITE;
/*!40000 ALTER TABLE `uptime` DISABLE KEYS */;
/*!40000 ALTER TABLE `uptime` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+3
View File
@@ -0,0 +1,3 @@
ALTER TABLE db_version CHANGE COLUMN required_7536_01_mangos_spell_chain required_7544_01_mangos_uptime bit;
DROP TABLE IF EXISTS `uptime`;
+16
View File
@@ -0,0 +1,16 @@
ALTER TABLE realmd_db_version CHANGE COLUMN required_6976_01_realmd_realmd_db_version required_7546_02_realmd_uptime bit;
--
-- Table structure for table `uptime`
--
DROP TABLE IF EXISTS `uptime`;
CREATE TABLE `uptime` (
`realmid` int(11) unsigned NOT NULL,
`starttime` bigint(20) unsigned NOT NULL default '0',
`startstring` varchar(64) NOT NULL default '',
`uptime` bigint(20) unsigned NOT NULL default '0',
`maxplayers` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`realmid`,`starttime`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Uptime system';
+16 -6
View File
@@ -725,14 +725,24 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
if(!worldOverlayEntry) if(!worldOverlayEntry)
break; break;
int32 exploreFlag = GetAreaFlagByAreaID(worldOverlayEntry->areatableID); bool matchFound = false;
if(exploreFlag < 0) for (int i = 0; i < 3; ++i)
break; {
int32 exploreFlag = GetAreaFlagByAreaID(worldOverlayEntry->areatableID[i]);
if(exploreFlag < 0)
break;
uint32 playerIndexOffset = uint32(exploreFlag) / 32; uint32 playerIndexOffset = uint32(exploreFlag) / 32;
uint32 mask = 1<< (uint32(exploreFlag) % 32); uint32 mask = 1<< (uint32(exploreFlag) % 32);
if(GetPlayer()->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + playerIndexOffset) & mask) if(GetPlayer()->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + playerIndexOffset) & mask)
{
matchFound = true;
break;
}
}
if(matchFound)
SetCriteriaProgress(achievementCriteria, 1); SetCriteriaProgress(achievementCriteria, 1);
break; break;
} }
+4 -4
View File
@@ -1472,8 +1472,8 @@ void World::SetInitialWorldSettings()
sprintf( isoDate, "%04d-%02d-%02d %02d:%02d:%02d", sprintf( isoDate, "%04d-%02d-%02d %02d:%02d:%02d",
local.tm_year+1900, local.tm_mon+1, local.tm_mday, local.tm_hour, local.tm_min, local.tm_sec); local.tm_year+1900, local.tm_mon+1, local.tm_mday, local.tm_hour, local.tm_min, local.tm_sec);
WorldDatabase.PExecute("INSERT INTO uptime (startstring, starttime, uptime) VALUES('%s', " I64FMTD ", 0)", loginDatabase.PExecute("INSERT INTO uptime (realmid, starttime, startstring, uptime) VALUES('%u', " I64FMTD ", '%s', 0)",
isoDate, uint64(m_startTime)); realmID, uint64(m_startTime), isoDate);
m_timers[WUPDATE_OBJECTS].SetInterval(0); m_timers[WUPDATE_OBJECTS].SetInterval(0);
m_timers[WUPDATE_SESSIONS].SetInterval(0); m_timers[WUPDATE_SESSIONS].SetInterval(0);
@@ -1707,10 +1707,10 @@ void World::Update(uint32 diff)
if (m_timers[WUPDATE_UPTIME].Passed()) if (m_timers[WUPDATE_UPTIME].Passed())
{ {
uint32 tmpDiff = (m_gameTime - m_startTime); uint32 tmpDiff = (m_gameTime - m_startTime);
uint32 maxClientsNum = sWorld.GetMaxActiveSessionCount(); uint32 maxClientsNum = GetMaxActiveSessionCount();
m_timers[WUPDATE_UPTIME].Reset(); m_timers[WUPDATE_UPTIME].Reset();
WorldDatabase.PExecute("UPDATE uptime SET uptime = %d, maxplayers = %d WHERE starttime = " I64FMTD, tmpDiff, maxClientsNum, uint64(m_startTime)); loginDatabase.PExecute("UPDATE uptime SET uptime = %u, maxplayers = %u WHERE realmid = %u AND starttime = " I64FMTD, tmpDiff, maxClientsNum, realmID, uint64(m_startTime));
} }
/// <li> Clean logs table /// <li> Clean logs table
+1 -1
View File
@@ -1621,7 +1621,7 @@ struct WorldSafeLocsEntry
struct WorldMapOverlayEntry struct WorldMapOverlayEntry
{ {
uint32 ID; // 0 uint32 ID; // 0
uint32 areatableID; // 2 uint32 areatableID[4]; // 2-5
}; };
// GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform // GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform
+1 -1
View File
@@ -98,4 +98,4 @@ const char VehicleEntryfmt[]="niffffiiiiiiiiffffiiiiiifffffffffffssssfifi";
const char VehicleSeatEntryfmt[]="niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiii"; const char VehicleSeatEntryfmt[]="niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiii";
const char WorldMapAreaEntryfmt[]="xinxffffix"; const char WorldMapAreaEntryfmt[]="xinxffffix";
const char WorldSafeLocsEntryfmt[]="nifffxxxxxxxxxxxxxxxxx"; const char WorldSafeLocsEntryfmt[]="nifffxxxxxxxxxxxxxxxxx";
const char WorldMapOverlayEntryfmt[]="nxixxxxxxxxxxxxxx"; const char WorldMapOverlayEntryfmt[]="nxiiiixxxxxxxxxxx";