飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 11775|回复: 0
打印 上一主题 下一主题

在线玩家数(没有错误)

[复制链接]

200

主题

203

帖子

984

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
984
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:45:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
9 z7 ?9 C8 A* h0 n$ ?$ M0 m1 g% Z代码:  s3 T7 U  O0 y+ |6 k

$ W0 a, o$ N  x6 r$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
. M2 G+ d7 f0 K2 L* r1 q9 Aecho mssql_num_rows($mssql);- d+ {! h1 c( ]$ m
这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
$ y; M9 }8 a; v8 c0 z7 }' J' p; w9 }' {! j
代码:
! D4 {8 ~% ?5 f$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");6 l2 y% F" r) o8 K* _% M0 |% \
echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0
; R9 e+ Z  m9 B+ P* t" D8 b' z# R7 b: F" e4 d1 q( \+ `$ A( R
Spikensbror的更快的方法:
9 w! p  y! I2 g% o+ G5 P4 L( |邮编:
' Y! X! Y) j# V+ d; D8 h! m
0 n0 ?% O0 m. [  h1 @$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');/ W' \& q. B0 d0 V; X# q
$ccu = mssql_fetch_assoc($query);
; h8 k  v0 {/ b7 i8 |5 u  E$ccu = $ccu['CCU'];! u0 V. [  d- h; r3 ]
! e  f( [9 C  l% N
+ r) i" H6 }7 |* O5 u' S
- _+ n1 d/ a( s
# X5 w8 t1 V* a( \" ?2 Y
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|飞飞世界技术论坛  

GMT+8, 2024-4-20 20:15 , Processed in 0.063210 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表