飞飞世界论坛

标题: 在线玩家数(没有错误) [打印本页]

作者: admin    时间: 2016-1-10 03:45
标题: 在线玩家数(没有错误)
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
! ]& X0 @, a6 E/ A代码:
! L5 w$ q# r0 c8 J1 A! t( Z# E  `' T5 n0 p0 B# @! s
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");, i- f5 a. l9 Y9 c- Q% h- W
echo mssql_num_rows($mssql);& k* C6 ^) |2 c8 F
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
( X( `5 W+ `+ z6 ~; Y, Z' I
; x- U$ v; x: \6 B代码:& d, H2 u6 u2 I
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");8 D+ R7 Z3 T% ^- T' G
echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
( N5 m, R& f6 s- A# J1 c8 y- c/ p" e# h) k4 r
Spikensbror的更快的方法:
/ e( }/ U0 V4 m3 D5 F( W* u邮编:) g% I* n3 O8 }0 [3 J

4 E) O' w* p) m: Q& N/ z; h$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');$ Y1 O1 Y$ K. h
$ccu = mssql_fetch_assoc($query);# k1 M6 p, v) h- w" S
$ccu = $ccu['CCU'];4 C# @( D1 [) Y1 N7 A: |
5 [  J) u6 g/ Y; Z$ r( K
+ T* u; n* }4 l3 b

3 z# T- p( k# U
, D9 @# x5 f% d) {




欢迎光临 飞飞世界论坛 (http://ffwold.com/) Powered by Discuz! X3.2