飞飞世界论坛

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

在线玩家数(没有错误)

[复制链接]

197

主题

203

帖子

1074

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1074
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:45:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在过去,我已经看到了各种方法检查当前在线玩家人数,但我见过有一个致命的缺陷。根据服务器被关闭(或更确切地说,如果它崩溃)播放器的计数被搞砸了。下面是我在谈论一个:
- Q8 N: \9 s1 [. V9 o# B2 `代码:2 M1 I* O$ o$ `8 L7 Q' W
& ]4 ?3 y# J8 a7 I! ^5 F% Z2 j; D
$mssql = mssql_query("SELECT * FROM [ACCOUNT_DBF].dbo.[ACCOUNT_TBL] WHERE isuse='J'");; u0 Z/ c* n; s# e1 j
echo mssql_num_rows($mssql);
* o- U5 p& ]1 v% {+ ~这里有一个更正确的代码,它会自动复位计数,每当世界上的服务器程序打开当前在线:
' ~9 X3 y$ j# A' f* e4 t
  [5 d5 j* s  D1 q4 U" c2 I5 n1 A代码:
' m. v0 w; F* a# S' _$mssql = mssql_query("SELECT * FROM [CHARACTER_01_DBF].dbo.[CHARACTER_TBL] WHERE MultiServer!=0");+ H- Z, j- W* s+ \  V$ K! t# h
echo mssql_num_rows($mssql);Credits to Sedrika for changing MultiServer=1 to Multiserver!=0- z0 T* R* L; m( b+ n5 X# [, D
. |( g, s: H) I" R; ^+ Q; q
Spikensbror的更快的方法:
7 w0 e! o+ i: I' h9 v6 ^/ g邮编:
( u  Z$ F! U9 b
) j2 Q1 v8 o: s- Y7 I( f4 g2 R( n6 U$query = mssql_query('SELECT COUNT(*) as [CCU] FROM [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL] WHERE [MultiServer] != 0;');5 h& j; l) S+ o% u6 F9 T# N" T
$ccu = mssql_fetch_assoc($query);
: N8 y+ }2 T+ {0 \: z% t$ccu = $ccu['CCU'];- j* {/ X+ h9 ]/ x9 ?0 ^# }2 l
" \& l( A: K- ?' T1 l1 M; Q

7 l9 d( J0 f4 z% c9 t: ~* S
! \9 _) T; `& X8 {8 i- Q) L, ]
/ I& D$ f2 C& r8 {9 \( r
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-14 06:18 , Processed in 0.066114 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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