|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: ) j! W6 Y+ }' v& l1 @$ \$ S* z0 g
代码:/ J" _* E3 R6 b7 F. l E
. y- v D9 d% ?0 Q4 x, F$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
: X0 {8 W2 n- g. x$ Q) lecho mssql_num_rows($mssql);
) W: H9 m4 i7 F这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:9 K3 o; o$ J: |6 T% F& M5 p% I1 j" [, Q- C
! ` O# e# P% O Y代码:7 J6 D4 Q- v: n, u, h
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");- F H2 \1 t0 t( L
echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0; L! A" Z+ d+ f! l- H, c
* C: R6 W' |2 r U8 z& @3 \0 A7 \, y
Spikensbror的更快的方法:
8 G1 W3 P% o; k- J邮编:6 K: `8 X6 f9 U' M( H1 [. c
" c. o( w5 E6 J$ o0 T$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');0 l7 s l+ ^( r( M& F$ v$ U, m
$ccu = mssql_fetch_assoc($query);
( X- m3 Z2 d. y$ ]& t$ccu = $ccu['CCU'];
4 d2 n% ?, O1 ?5 F6 I
2 h9 S. J, e8 Y g8 k9 b( }# P0 w2 u4 `+ W8 k$ r
( J; J; S; E: y
7 @$ t- t3 O+ e/ i. d6 i |
|