标题: 在线玩家数(没有错误) [打印本页] 作者: admin 时间: 2016-1-10 03:45 标题: 在线玩家数(没有错误) 在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: 8 ]# l0 E! u8 v: i. _- k代码:8 i# J' G) B3 [+ h( D+ |
' e3 t. J8 g% a1 B( ?. _
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'"); ) [) t1 R' x3 y' R5 a* I8 \echo mssql_num_rows($mssql); ! x8 ^5 Z- r7 P- @ \7 Z8 b/ `5 O这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:3 x. L4 T0 F' U. f( L7 g a
( w1 W$ Z- p* I9 a代码:6 D2 h$ e. [0 k' J! y# g
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0"); 5 D* {) p2 M; `+ X" ?) y' Kecho mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0$ T! o9 u: a' {/ i
# E- j/ S' d7 t, c1 jSpikensbror的更快的方法: ' Y/ u+ m2 E+ N8 [
邮编:6 R! j# h0 K, E3 K' U+ F
: Y6 m0 j8 N, y. p r( Q# Q; [
$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');- B) {) F5 L. j' [- R. `7 S! I
$ccu = mssql_fetch_assoc($query);+ J% K% \/ i3 k2 o: o5 o' N% L: N
$ccu = $ccu['CCU'];! s% i- \+ ^7 ~* c5 I# F, z7 |
$ O1 [6 }5 h# E4 D( }& x- S- b1 H& i: Y% U0 K- S' V! N