|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
8 ^8 R& u2 F! f8 r2 m: ~0 h代码:
5 e9 D; l, K' Q* U% _, D4 U0 S7 b/ j4 v1 U8 j
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");: m( V" A% Q3 C4 w3 B
echo mssql_num_rows($mssql);- M7 }7 N: I2 [5 t/ C
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:( j& {8 O6 r8 x" _+ L7 j
9 ?. V: b) Q$ c1 H
代码:
" D% @" E5 x& Z9 a8 o0 j# s$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");
5 m4 X/ A$ s: J8 f+ o% u( Z% l, jecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
B6 A" M" N1 B% h4 r, j% f3 A
* K& H. w% l DSpikensbror的更快的方法: , Y) }- I# @* M$ D
邮编:' E* [# [9 `+ p$ e3 l( t
2 @' x# u# V$ Q$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');1 h H. R% G+ d! x# t% Y
$ccu = mssql_fetch_assoc($query);
" D2 L' ]' W, @/ I$ccu = $ccu['CCU'];- A0 W1 s6 L5 E q7 W# d
1 P0 k; A3 v }, K
. b7 \2 p& Y0 ~9 Q* m+ M( h" a7 z, U J
4 i0 U. o- }4 | g2 F$ J& z |
|