|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
% L! U3 T0 X$ W* I8 e I) s代码:
' W" n" P) k8 W/ a$ L8 J
& L1 l2 q% } t, G. [& j$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
- V( u: E' Y& ~4 s( xecho mssql_num_rows($mssql);+ O, L, G. R; L7 r0 b
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
# q4 S' Y, k% L! D
' O6 W& R( j% F3 H# A d3 b代码:
( O9 z, \% F$ O& O' s! }8 V L$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
: B, Z7 [3 F" a6 M3 r* S+ V+ ^echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=05 e! s2 a2 A7 q w: m* [
1 {* Q/ n( O9 G$ E8 G: x+ d+ }% D( XSpikensbror的更快的方法: / r7 x% s+ k& L0 L
邮编:3 k8 z2 j# g7 K3 @- ?) ?' a' g$ N
: q( l. U- d# j% [6 k
$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');; B# Y0 ?4 l; `
$ccu = mssql_fetch_assoc($query);/ S+ |: n$ i! ~( x7 o9 {8 a
$ccu = $ccu['CCU'];9 P0 l3 f. K* a- V" l7 @
J7 i5 S) k: ]) i4 U/ e% ?0 f
) x) J7 A% a8 Q7 R- D6 X% N! T( m8 h, Y' i1 D/ [
: [6 ]0 M T8 A7 P$ @
|
|