|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: 5 Z$ `( K6 u6 F" }$ f5 X
代码:* C/ K t, n' L9 _
/ N; G" a$ Y \3 C: Z/ _
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");# }: {; e( B1 S @
echo mssql_num_rows($mssql);: s- N* t- H3 r7 t
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
5 ~# @* ?6 X# T: M t7 m1 E7 t% H) Y% l( W3 I8 U
代码:$ M; L* d" [8 i8 T
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
9 t! o3 V& k2 n4 ^) W( k/ Vecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0! N; t8 Y2 y N8 H: _2 o
1 |: k! h- T$ C1 ?
Spikensbror的更快的方法:
, @5 W7 h4 t. d3 D1 ~3 H }邮编:! w6 U; y& b( V
! I+ e, G! M8 |; o: u& k
$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');
+ \$ @2 X7 H G2 q. o! @ n; k f$ccu = mssql_fetch_assoc($query);
; c- d! ]( _4 J8 z3 r) c) Y$ccu = $ccu['CCU'];
6 V6 I/ z) ?* b E3 Y! r; n/ c* ]( T+ P# k3 {/ r& g7 h
' _7 A) c6 v1 ^: C) d2 F, w% h
$ e) u! v: {+ @7 D4 `" \8 j' A( C
. _4 o9 J! a, K" j7 U! g |
|