飞飞世界论坛

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

在线玩家数(没有错误)

[复制链接]

197

主题

203

帖子

1064

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1064
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:45:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
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
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 12:25 , Processed in 0.059072 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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