|
|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
1 s& g: o3 Q9 y代码:
7 F( T9 U2 W2 N1 w9 |$ U) |. M4 a6 }" ~) c3 I
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");4 _8 i. ^% p- o2 L/ C* _" p/ c3 Z
echo mssql_num_rows($mssql);
9 e& ^' x, O/ K8 }4 K2 [' k7 q- Y2 ]这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
K, [4 x, D& g/ k' t+ W/ b5 D$ h* O2 a5 w
代码:/ K1 i4 U' S( B. p5 L- @
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
4 q# j! Y: |! cecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
9 L6 F% z; ?6 q6 ^+ D. J( X$ E: r9 @7 `+ H1 j- ]: s
Spikensbror的更快的方法: . R0 ~" c( R2 y; W- T4 B
邮编:' K7 Q: ]( e4 l8 a1 _* W
& ]" K5 V# H+ G b& L, p' L! ]$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');- r% g- C1 j0 h7 c s
$ccu = mssql_fetch_assoc($query);
\5 ?4 f% \) c- z" t9 ?$ccu = $ccu['CCU'];6 d- V! K" s' l F
3 x# O7 r, W! R
* H& n0 I; L$ `6 U+ I
4 X* u2 w4 l4 s$ t
, [/ P3 t$ p; h$ }6 A |
|