|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
1 b4 a+ C3 L$ _1 X2 w7 d代码:0 u* A' k4 H% ]4 f
* i( W; h% ^' ^0 H$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
/ O( j- P( H6 Jecho mssql_num_rows($mssql);
7 B o' N( x, d# o+ g2 P这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:. w1 l0 O5 B% z/ Q
' p1 w% |4 ~/ x代码:, V3 X9 L. S0 J0 k8 v
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
, F: u1 G$ A7 D6 d+ ~echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0. t0 m7 F" Y o+ f B
, N/ I+ f$ Y& u. ~3 wSpikensbror的更快的方法:
4 c- f* |& X, W" i邮编:
9 s) L7 M' ~; X9 z1 S2 r. B0 C- b$ J
- y, `' C, d; p* Z5 T$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');
p& K6 I9 {/ z$ccu = mssql_fetch_assoc($query);
5 ^4 V% Y. e: N) |- L$ccu = $ccu['CCU'];
1 [/ w) l0 J" G7 N
# S$ P4 P N8 A, P" i2 g/ P( ~$ t! e1 V* b+ p. f& V8 M' A
1 N; r( J {6 _
9 K6 w. f3 g$ w& G P8 f' p
|
|