|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: 6 y" s5 D3 N# g! G# h" B3 c
代码:
- z: y) M* k# P" V& h& I6 `* P# m' o8 t9 u, b* E
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
( G2 J7 h v* F9 r9 y4 z$ Uecho mssql_num_rows($mssql); \( |+ g" N) A* J; K4 I
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
# |" D: s. t$ H6 h" C1 [' E0 x$ _% i2 j4 u) r+ j I* l4 e
代码:
1 {3 t, d6 c! {! N% ]6 E9 v$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");3 t6 c0 j. _ v* b g5 R2 g
echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
/ K0 Q5 K. u) F2 r/ G& Q
7 v! u4 N0 P8 }% H( ?$ V9 w7 FSpikensbror的更快的方法:
3 \& {' O+ n7 ]1 C: f. t4 R h/ d邮编:# y' M6 |; C4 q
* `" k) k8 y8 z$ A" l; V; `$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');0 t Y; V, }+ ^8 ~
$ccu = mssql_fetch_assoc($query);4 b, k8 ]3 S" ?$ L$ g
$ccu = $ccu['CCU'];& |! o5 Y8 Z8 @ A5 D/ y
) e( @6 t; A, \
: C, s4 @2 `- G% h/ p; r
% |, ^) Y" V. H( X. v, c5 ]
9 T" \1 U* L6 I' i5 e) M
|
|