飞飞世界论坛

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

在线玩家数(没有错误)

[复制链接]

197

主题

203

帖子

1078

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1078
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:45:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个: ) j! W6 Y+ }' v& l1 @$ \$ S* z0 g
代码:/ J" _* E3 R6 b7 F. l  E

. y- v  D9 d% ?0 Q4 x, F$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");
: X0 {8 W2 n- g. x$ Q) lecho mssql_num_rows($mssql);
) W: H9 m4 i7 F这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:9 K3 o; o$ J: |6 T% F& M5 p% I1 j" [, Q- C

! `  O# e# P% O  Y代码:7 J6 D4 Q- v: n, u, h
$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");- F  H2 \1 t0 t( L
echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0; L! A" Z+ d+ f! l- H, c
* C: R6 W' |2 r  U8 z& @3 \0 A7 \, y
Spikensbror的更快的方法:
8 G1 W3 P% o; k- J邮编:6 K: `8 X6 f9 U' M( H1 [. c

" c. o( w5 E6 J$ o0 T$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');0 l7 s  l+ ^( r( M& F$ v$ U, m
$ccu = mssql_fetch_assoc($query);
( X- m3 Z2 d. y$ ]& t$ccu = $ccu['CCU'];
4 d2 n% ?, O1 ?5 F6 I
2 h9 S. J, e8 Y  g8 k9 b( }# P0 w2 u4 `+ W8 k$ r

( J; J; S; E: y
7 @$ t- t3 O+ e/ i. d6 i
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-22 23:47 , Processed in 0.064660 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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