|
|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: : \" G8 G3 {- R; r
代码:3 m" X/ u" U- Z) Z
. ^" K4 T5 c' [1 V y3 I6 m2 y( o; E4 T
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
+ x% L% N% k, q; H0 hecho mssql_num_rows($mssql);3 N4 O" @* T2 J8 H3 H
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:5 }* y# o6 q( _
0 `0 o. _+ u( j9 x5 Y1 g5 Y! X代码:
, ^$ T, T1 V- A$ f* Z( h( ^$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
6 s4 e3 d9 y- J4 G jecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0% M$ B: V* C! d* W
2 T% K( m9 K. _2 n, PSpikensbror的更快的方法:
& Y% a1 j, \$ K- m邮编:3 I, N x: v8 k
& n$ O) q$ D' d# k$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');
: y4 w' b n5 [# p& J/ I0 W% I3 K$ccu = mssql_fetch_assoc($query);
. ?9 t! ^6 p' U3 C* K$ L' w$ccu = $ccu['CCU'];
: r) N, W: c2 b ~3 _9 e( J8 m& D% }9 Z* o: g- B# Y8 y
( n. [" }2 s3 s, I, V8 E: ?2 }/ a
$ M f8 F" R# L: D3 A5 x6 n. B+ c
2 M* Y3 z D5 ~& d |
|