|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: $ D9 q; {: Q* h$ X) i# |* d
代码:
h8 G% H& G& {) r/ Q4 H2 m2 [: D* j9 j
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");/ f9 F# |: J1 V8 `# s
echo mssql_num_rows($mssql);
* o T7 R9 i" Z6 O s5 P3 A这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
4 |& P" y; H+ w
' D" H) |: u4 ?3 U( _5 Q% e代码:
" ]! l" S8 T: x6 k$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
7 q* V! D, \- B; t: I) y9 a" U0 ~" fecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0) U/ l$ n: g" r2 T6 L4 b
0 M, t, W6 o" L6 j8 e) W+ P7 |Spikensbror的更快的方法:
" |: @2 I# f- X, W邮编:
( `- ^, H' R0 F9 v. v% j" a+ {- q; G' B
$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');/ T2 i9 Y: _ F- g
$ccu = mssql_fetch_assoc($query);
3 j- I5 t8 E3 I$ccu = $ccu['CCU'];, Y; |- ]3 l2 d7 z, x0 n
/ W/ f' Q0 R0 `
4 t$ R* e, a s* ?+ Y1 f( O% C0 I3 ]; E: i
/ \5 K$ E; F; A" G6 F5 @$ x# c
|
|