-
Notifications
You must be signed in to change notification settings - Fork 1
/
diff
87 lines (80 loc) · 4.7 KB
/
diff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
diff -r 45c0556f5052 src/server/game/Globals/ObjectMgr.cpp
--- a/src/server/game/Globals/ObjectMgr.cpp Thu Dec 22 22:14:23 2011 +0200
+++ b/src/server/game/Globals/ObjectMgr.cpp Tue Jan 03 17:42:29 2012 +0400
@@ -5917,7 +5917,7 @@
void ObjectMgr::SendExternalMails()
{
- QueryResult result = CharacterDatabase.PQuery("SELECT id, receiver, subject, message, money, item, item_count FROM mail_external");
+ QueryResult result = CharacterDatabase.PQuery("SELECT id, receiver, subject, message, money, item, item_count FROM mail_external JOIN mail_external_items ON (mail_external.id = mail_external_items.mail_id) WHERE sent=0");
if(!result)
{
sLog->outString("Izb00shkaMailer: No Mails in Queue...");
@@ -5996,7 +5996,7 @@
std::ostringstream ss;
- ss << "DELETE FROM mail_external WHERE id = " << id << ";";
+ ss << "UPDATE mail_external SET sent=1 WHERE id = " << id << ";";
trans->Append(ss.str().c_str());
diff -r 45c0556f5052 src/server/game/World/World.cpp
--- a/src/server/game/World/World.cpp Thu Dec 22 22:14:23 2011 +0200
+++ b/src/server/game/World/World.cpp Tue Jan 03 17:42:29 2012 +0400
@@ -524,6 +524,7 @@
rate_values[RATE_MOVESPEED] = 1.0f;
}
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) playerBaseMoveSpeed[i] = baseMoveSpeed[i] * rate_values[RATE_MOVESPEED];
+ rate_values[RATE_ONLINE] = sConfig.GetFloatDefault("Rate.Online", 1.47f);
rate_values[RATE_CORPSE_DECAY_LOOTED] = sConfig->GetFloatDefault("Rate.Corpse.Decay.Looted",0.5f);
rate_values[RATE_TARGET_POS_RECALCULATION_RANGE] = sConfig->GetFloatDefault("TargetPosRecalculateRange",1.5f);
@@ -1987,6 +1988,7 @@
if (m_updateTimeSum > m_int_configs[CONFIG_INTERVAL_LOG_UPDATE])
{
sLog->outBasic("Update time diff: %u. Players online: %u.", m_updateTimeSum / m_updateTimeCount, GetActiveSessionCount());
+ LoginDatabase.PExecute("UPDATE realmlist set online=%u where id=%u", GetActiveSessionCount(), realmID);
m_updateTimeSum = m_updateTime;
m_updateTimeCount = 1;
}
diff -r 45c0556f5052 src/server/game/World/World.h
--- a/src/server/game/World/World.h Thu Dec 22 22:14:23 2011 +0200
+++ b/src/server/game/World/World.h Tue Jan 03 17:42:29 2012 +0400
@@ -422,6 +422,7 @@
RATE_DURABILITY_LOSS_ABSORB,
RATE_DURABILITY_LOSS_BLOCK,
RATE_MOVESPEED,
+ RATE_ONLINE,
MAX_RATES
};
@@ -607,12 +608,12 @@
/// Get the number of current active sessions
void UpdateMaxSessionCounters();
const SessionMap& GetAllSessions() const { return m_sessions; }
- uint32 GetActiveAndQueuedSessionCount() const { return m_sessions.size(); }
- uint32 GetActiveSessionCount() const { return m_sessions.size() - m_QueuedPlayer.size(); }
+ uint32 GetActiveAndQueuedSessionCount() const { return m_sessions.size() * getRate(RATE_ONLINE); }
+ uint32 GetActiveSessionCount() const { return (m_sessions.size() - m_QueuedPlayer.size()) * getRate(RATE_ONLINE); }
uint32 GetQueuedSessionCount() const { return m_QueuedPlayer.size(); }
/// Get the maximum number of parallel sessions on the server since last reboot
uint32 GetMaxQueuedSessionCount() const { return m_maxQueuedSessionCount; }
- uint32 GetMaxActiveSessionCount() const { return m_maxActiveSessionCount; }
+ uint32 GetMaxActiveSessionCount() const { return m_maxActiveSessionCount * getRate(RATE_ONLINE); }
/// Get number of players
inline uint32 GetPlayerCount() const { return m_PlayerCount; }
inline uint32 GetMaxPlayerCount() const { return m_MaxPlayerCount; }
diff -r 45c0556f5052 src/server/shared/Database/MySQLConnection.cpp
--- a/src/server/shared/Database/MySQLConnection.cpp Thu Dec 22 22:14:23 2011 +0200
+++ b/src/server/shared/Database/MySQLConnection.cpp Tue Jan 03 17:42:29 2012 +0400
@@ -137,6 +137,16 @@
// set connection properties to UTF8 to properly handle locales for different
// server configs - core sends data in UTF8, so MySQL must expect UTF8 too
mysql_set_character_set(m_Mysql, "utf8");
+
+ #if MYSQL_VERSION_ID >= 50003
+ my_bool my_true = (my_bool)1;
+ if (mysql_options(mMysql, MYSQL_OPT_RECONNECT, &my_true))
+ sLog.outDetail("Failed to turn on MYSQL_OPT_RECONNECT.");
+ else
+ sLog.outDetail("Successfully turned on MYSQL_OPT_RECONNECT.");
+ #else
+ #warning "Your mySQL client lib version does not support reconnecting after a timeout.\nIf this causes you any trouble we advice you to upgrade your mySQL client libs to at least mySQL 5.0.13 to resolve this problem."
+ #endif
return true;
}
else