|
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
( d) o6 b1 S2 h. {1 @# c代码:7 C( E5 U2 o9 L/ j" g; s/ o
# |' G$ J+ H7 U: R1 W
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");, s& K5 f O6 e& j/ V
echo mssql_num_rows($mssql);3 _0 Y: E! K5 z' z! H
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
5 I7 \7 \8 U$ F* h4 W6 F- `1 K( R. f6 N
代码:
7 i, P/ \3 P% W3 c& a$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");% A9 r8 k/ Y( B X- M
echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=08 `: \6 d" x5 v( d
2 m! ~" \# z# u3 T0 J3 k9 KSpikensbror的更快的方法: : H& K7 Y5 V! @( H# f9 o6 E2 Q$ G
邮编:
, z7 ]8 ]) ~0 Q5 _" m7 H( b
1 d2 ]) w, p( y( @/ }$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');! c' ]3 l" ^4 V' r( t+ Q$ H# {
$ccu = mssql_fetch_assoc($query);5 p6 ]( S+ A7 n* e X
$ccu = $ccu['CCU']; I. U9 w q0 B) e$ F3 O
) f8 I. y( x' P) p* P1 B E* }
$ r( \. ?" S: x9 d0 j4 B7 y+ z! W! f) n/ T2 d1 Y F
l& m1 W& g! ~, \ |
|