|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
. R3 W( F( L z# j9 S" g& Q代码:- {& G3 h# O0 a1 v0 Q
& X- { {7 X0 e3 o& G8 X, K0 K$ r$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
: @! Y4 G7 g J$ ?, x3 |; U! Kecho mssql_num_rows($mssql);2 ~6 z" A& {+ ?' J
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:# m' Y% }2 T; ]9 d6 r. z) _
9 u R' Y3 J9 a% \2 ]- F4 o
代码:, {" X% r) C0 P
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
. N1 ^+ m* W, g+ H4 [# Fecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
! U* x& ~( W% n! ^2 |+ c1 }( S8 r8 u4 \+ t
Spikensbror的更快的方法:
4 @/ z2 p7 k/ C( b' f8 h# i邮编:
" I/ y. H: j' P5 b: L+ U, K
& b$ D: _9 l, I' m$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');; o" D% [# Q, b0 X- N
$ccu = mssql_fetch_assoc($query);; [ S4 b8 h) Q
$ccu = $ccu['CCU'];( K" J. }8 I" d: _
. { A K. I. K [4 O$ D
- A# R2 G }: e% _- E" ]' j4 G$ M2 Y. V6 C
9 ~8 T/ e) E( Y. Z* {0 X; F, K
|
|