|
|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
1 w3 @0 I& U. _3 f6 B( |% T4 T代码:6 x" C6 q8 R! y5 Q0 z% x& z# V* v
# x! Z8 Q" k9 D9 } l9 b$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
+ d$ f% Z$ i8 [ F, A: Becho mssql_num_rows($mssql);
: B9 C7 L. a" D; U* B) c; u5 C这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:" X2 N. V9 X& v- L0 `
0 k; _* Q( t' T1 x代码:
& I8 E, E9 A! b# j! G& x$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
! Y$ E9 a C+ f- ]2 m4 ^; Secho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=03 j5 z2 s- q9 g+ g/ C0 q- w4 Z8 x
& a& B# \7 y% w+ ~% [ [( NSpikensbror的更快的方法:
! S# j* [- H: k( t邮编:, R- r5 P0 s5 l5 n$ B1 U1 l) w
O5 O% @8 K6 G! `3 t2 ]+ f! L$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');( X: L/ J$ [8 u8 j9 w
$ccu = mssql_fetch_assoc($query);( n( x8 R v8 o% v) o6 D% f; v
$ccu = $ccu['CCU'];
( i. M$ m3 I& _3 `) B: Y" k4 g$ ?5 H! K/ ?- O
* [4 ?$ w5 W- N; g, ]; h1 |
" H, o2 Y; k5 M4 Q! g4 k4 c! ]7 d# `' |% v3 m
|
|