|
|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: & w Z" Y* ~$ [ ]
代码:$ Q5 w' P `9 r+ V
6 a/ X' y5 w7 \. {( Y) M$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
b/ R: j' p3 M6 zecho mssql_num_rows($mssql);
; ^& Y# Z9 l. F9 I' e, r这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:( O1 r1 B, e- N/ t3 @
$ J8 b' ^) e9 `/ j) m代码:: h3 M* s; i* U" \7 h
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
/ e9 N1 W, I! H2 d" p( zecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
) k* X: ^# E! u1 m; `' B- |$ }2 h3 R) R8 P8 R/ }! B- }+ @
Spikensbror的更快的方法:
5 O. n. j$ t9 t0 Q邮编:
' `& J7 \+ N# n2 k* m$ p9 W2 \. p ~6 T n' \+ b- {
$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');
/ R3 k0 {. Y- e2 `$ccu = mssql_fetch_assoc($query);4 L4 Q( r* u O! N
$ccu = $ccu['CCU'];
7 j+ M' L' M. N4 [( q8 j5 L
* ? |( _6 T4 U# K3 @5 ~& q! g# }" i: d6 s0 }* U; E9 |
3 a8 h: Y {! I7 ?
! T; V3 Z2 S% _2 o0 B9 a |
|