|
|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
* Z8 b- X+ m! w* P1 \! {代码:
& K+ j+ z9 |, Y8 W, K8 \0 d9 u j5 c# j* h, _
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
. n% l: y6 H; @) C4 M' Techo mssql_num_rows($mssql);
' D0 R9 m9 X2 [; G/ N+ s' }这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
7 I( r8 J K0 J1 E, G
9 z+ P* m/ d9 j% x M% }. {4 E代码:9 S5 u. m# q- D' Z6 g% u2 v3 c5 V
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
5 z- j/ H+ X5 a" M8 wecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
+ X* T* i& p( m5 f) Y9 {7 V7 y5 }% V; @
Spikensbror的更快的方法:
3 Z" r% H/ t$ l$ L/ M邮编:
: |" M: h5 O7 X6 ~ g! Z" n" [0 w
$ G& p: t* ~) _( p8 o$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');
) c; f+ z6 H' N; ]$ccu = mssql_fetch_assoc($query);
! S: `, o" N/ g7 N6 {* T4 h$ccu = $ccu['CCU'];' L- R% U7 p9 X9 H+ _" x( h+ y
' Y- m# L M7 ]
3 S% j7 C( `7 S: G5 e4 l! M0 H/ F; L1 y. C
5 A a3 F! s, N- ?
|
|