1、游戏服务器通信协议设计说明书 UniSync Protocol V1.5 文档编号:UniSheng-2004-08-21-yx-1 联盛TeveQ游戏 服务器设计 (Ver 1.5) 协议设计书 项目负责人 :乐祥 北京联盛无限科技有限公司版权所有,违者必纠 版数 改版年月日 改版记事 确认 查阅 执行 初版 2004/07/27 乐祥 V1.3 2004/09/14
2、乐祥 V1.4 2004/10/11 新协议追加,强化用户体验 乐祥 V1.5 2005/04/09 聊天管理 乐祥 <履历表> 版数 制定/ 改订日 位置 制定理由/ 改定要点/ 废止理由 备注 初版1.0 2004/07/27 全章 新规 2004/09/08 3.17 3.18 1.添加HLD命令 减少协议传输中的冗余问题 2.添加CHG命令 2004/09/09 1 1. 游戏列表不从web获取,改成通过MGS入口server获取 2. VER命令中添加oemid参数
3、 2004/09/10 3.2 追加 登陆类对话框的用户响应 V1.3 2004/09/14 1. 参考韩松文档追加新功能 2. 删除DLG命令,改用FRM命名 2004/09/27 3.9 1.增加画网格命令 2004/09/28 3.3 3.4 3.21 3.22 1. GML命令中增加游戏服务器分层次管理功能 2. 删除游戏人数UCT命令 3. 删除HLD命令 4. 删除CHG命令 2004/10/06 3.20 增加广告命令:ADV V1.4 2004/10/11 3.6 3.7 3.8 1
4、 增加用户注册命令:REG命令 2. 增加找回密码命令:GWD命令 3. 增加修改用户资料命令:MOD命令 2004/10/12 3.3 3.19 3.20 3.21 1. GML 1 命令中增加ip和port 2. GML 3 命令中增加tag标志房间是否满员 3. 增加聊天命令 CHT 4. 增加显示信息命令 SHW 5. 增加用户操作命令 OPR 2004/10/13 3.1 3.5 3.2 3.3 3.20.3 3.20.4 3.21 1. 修改PLT命令参数说明 2. 修改登录命令 LGN 3. 修改版本检查命令的响
5、应 VER 4. 修改游戏列表,增加GML 1请求命令 5. 参考军强Review结果,修改SHW命令 添加是否在线标志 6. 参考军强Review结果,修改OPR命令 操作成功res项为空 2004/10/18 3.2 1. 修改版本响应命令,增加一个有新版本但老版本可以继续使用的命令 2004/10/19 3.20.3 3.20.4 3.20.5 1. 参考军强建议,返回信息中增加用户级别和财富 2. SHW 4命令的响应中增加tag参数,标识请求命令的类型 2004/10/20 3.27 3.20.5 3.20.
6、63.20.7 1. 增加游戏房间操作命令 PLY,处理用户在游戏大厅选择座位然后等待进入游戏的状态变化 2. 增加道具类别命令 2004/10/21 3.7 1. 找回密码,增加一个UQ[参考军强建议] 2004/10/22 3.8 3.20.3 3.20.4 1. 用户修改资料中,添加新老密码,防止别人恶意修改 2. 好友和黑名单列表中增加用户性别字段 2004/10/23 3.25 3.3.1 1. 增加游戏服务器向登录服务器发送退出命令 2. 获取游戏类表中增加sectionid返回 2004/10/25 3.21
7、6 1. 使用道具命令在客户端和游戏服务器之间使用 2004/10/26 3.19 1. 增加命令:新消息通知,退出聊天 2. 修改CHT 1命令 2004/10/27 3.25 3.27.4 3.27.5 3.27.2 1. 退出命令中增加:2:用户游戏中强行退出 2. 增加游戏开始通知命令 3. 增加游戏结束通知命令 4. 修改房间状态变化的发送方式:无须客户端请求,服务器自动发送 2004/10/28 3.20.8 1. 增加上线标志通知命令 2004/10/29 3.20.8 3.25 1. 上线标志通知中增加
8、游戏id 2. 退出命令中增加游戏id 2004/10/30 3.5 3.20.8 3.25 1. LGN命令中增加sectionid参数 2. SHW 7命令中增加sectionid参数 3. EXT命令中增加sectionid参数 2004/11/01 3.27.2 3.27.3 1. 房间状态信息中,座位上没人的不发送状态信息 减少信息冗余 2. 删除PLY 4命令中的uq参数,减少冗余 3. 增加用户离开游戏大厅命令 2004/11/03 3.27 1. 座位方位编号修改(0,1,2,3 -> 2,3,1,0) 20
9、04/11/05 3.28 1. 增加游戏超时通知命令 2004/11/10 3.20.9 1. 增加获取系统帮助信息处理命令 2004/11/11 3.29 3.30 1. 增加客户端使用区域通知命令RGN 2. 增加超时时钟停止控制通知 2004/11/15 3.6 1. 参考强的建议,增加推荐人的uq 2004/11/16 3.1 1. 通知客户端如何装载图标 2004/11/20 3.27.4 1. 采纳军强的建议增加超时类型 2. 修改PLT相应命令,删除图层,放到BMG命令中 3. 增加通知客户端图片
10、装载方法[BMG命令] 2004/11/22 3.32 3.33 1. 和军强讨论决定增加对话框命令DLG 2. 增加和悔认输命令 2004/11/29 3.33 1. 参考军强的建议,V1.4版本不传alttxt参数 2004/12/01 3.32 1. 军强讨论结果DLG命令中增加type参数 2004/12/03 3.20.2 1. 修改获取对手信息命令 2004/12/06 3.20.10 3.27.5 1. 增加查询用户是否在线命令 2. 修改游戏结束通知命令 2004/12/09 3.19.1
11、 1. 军强讨论结果修改聊天信息命令 2004/12/10 3.20.1 1. 修改获取对手信息和用户自己信息的通讯方向,改成客户端向游戏服务器直接发送 2004/12/15 3.19.3 3.3.1 1. 增加聊天信息详细说明,包括聊天常用语定义 2. 游戏主列表中追加游戏图标id字段 2004/12/16 3.10 1. MNU命令中增加menuid字段 2004/12/21 3.20.2 1. 获取对手信息SHW 9 -> SHW 10,9已经被使用 2004/12/22 3.5 1. 军强讨论确定增加快速进入游
12、戏功能,修改LGN 1命令,增加LGN 3命令 2004/12/23 3.27.1 3.6 1. 增加:通知客户端游戏桌游戏已经开始,统一使用PLY命令 2. 注册命令中增加字段:用户头像id和个人签名 2004/12/27 4 1. 插入一节4 ,获取登陆服务器的ip地址 2004/12/28 3.27.5 3.5 1. 游戏结束通知中增加一个参数winflag通知客户端用户输赢和的情况 2. 增加说明用户不能快速进入游戏的返回说明 2005/01/03 3.8 1. 修改用户资料中,获取的时候返回头像id和个性签名
13、 2005/01/04 3.11 1. 追加BGD 6命令说明,原来的BGD 6命令改称BGD 7命令 2005/01/05 3.27.5 1. PLY 6命令后的参数位置调整,客户端会存在参数长度越界的问题 2005/01/06 3.6 1. 用户注册信息中增加用户出生日期字段 2005/01/11 3.2 1. 增加help,tips,adv信息版本 2005/01/12 3.19.1 3.32 1. 修改layout 2005/01/13 3.34 1. 增加游戏控制权标志通知命令 TAG 200
14、5/01/17 3.1 3.35 1. 修改PLT响应命令 step –> checkonlinetimespan 2. 增加ONL命令 2005/01/18 3.6 1. 参考军强建议调整birthday字段的位置 2005/01/20 3.8 1. 修改用户资料中增加birthday,recomid字段 2005/01/22 3.2 1. 新版本中不提供prog_ver给客户端 2005/01/26 3.20 3.27.5 3.27.2 3.27.1 1. 修改SHW 1命令,增加字段 2. 修改游戏结果通知命令,便于
15、客户端动画显示 3. PLY 3命令中增加sublevel字段 4. PLY 2命令中增加sublevel字段 2005/01/31 3.8 1. MOD 3命令直接表示修改成功,不返回uq和密码 2005/02/01 3.2 3. 26 1. 广告不传具体的内容,传送广告编号id 2. 修改ADV命令,支持动态获取具体广告内容 2005/02/04 3. 22 1. 修改动画命令,梭哈动画特殊处理 2005/02/24 3.26 1. ADV命令增加参数userid 2005/02/25 3.20.11 1. 增加
16、SHW 11命令 2005/02/28 3.20.9 1. 修改SHW 8命令,获取具体的帮助信息 2005/03/01 3.20.12 1. 增加SHW 12命令,获取用户的星辰运势 2005.03.02 3.4 3.20.12 1. 警告命令修改,特别说明 2. SHW 12命令响应中增加astroindex 2005/03/05 3.4 3.20.12 1. ALT命令增加类别2 2.增加三个指数 2005/03/11 3.20.1 1. 级别TTL添加 2005/03/23 3.1 1. 增加4
17、参数,标示是否给Kjava发送激活指令 2005/04/06 3.19 1.修改聊天协议,支持图文混合和用户自定义聊天 V1.5 2005/04/09 3.5 1.增加spthumbnail字段 2. 增加3.20.13/14/15节,实现合作伙伴广告发布功能 3. 增加3.19.6节修改3.19.3节,实现信息广播功能 2005/04/18 3.3.4 1. 增加GML 4命令/响应 2005/04/22 4 7 1. 增加休闲游戏扩展指令集 2. 修改第7节为协议加密算法说明,删除原来的手机型号,具体的手机型号说明参考其他文档
18、 2005.04.27 3.27.2 1. PLY 3命令中增加用户呢称 2005.05.04 3.19.6-10 1. 增加留言板功能指令 2. 增加管理员使用特殊指令 2005.05.17 3.1 1. 增加origin中的参数4 2005.05.24 4.3 1. 增加道具方向参数[目前连连看和对对碰使用] 2005.06.06 4.3 1. 增加x,y参数[泡泡龙俄罗斯专用] 2005.06.14 4.1 1. 增加STS 3指令 2005.06.15 3.4 1. ALT指令增加类型3
19、需要响应 2005.06.27 3.2 1.增加ClientID参数,标识每个客户端 2005.07.06 3.1 3.21.7 1.增加协议版本参数 2. 增加搜索好友指令 2005.07.13 3.21.7 1. 增加showid参数 2005.07.15 3.19.8 1.增加showid参数 2005.07.21 3.12 1. ITEM增加Digital属性 2005.07.28 3.27.1 1.PLY 1 增加toolflag参数控制房间是否有道具 2005.07.29 3.21
20、7 3.21 3.19.7 3.27.1 3.3.4 3.6 1. 检索条件中增加年龄段+城市 2. 修改OPR命令的响应 3. 增加OPR 8指令 4. 增加OPR 9指令 5. 发送留言的回复指令修改 6. 参考军强建议,有无道具放到PLY 1处 7. gamid :18000分给聊天室专用 8. 注册中增加城市字段 2005.08.19 3.20.10 3.19.10 1. 增加子命令2标识游戏币更新 2. 删除留言中增加全部删除指令 2005.08.22 3.21.10 3.21.11 3.19.1 1.增加点券和
21、游戏币兑换相关指令 2.聊天标题中增加头像 2005.08.29 3.19.2 1. 增加头像 2. 增加CHT 3指令响应 2010.1.8 3.36 1. 增加AMY指令 2. 修改LGN REG指令 3. 增加PLY 8指令 目 录 1 概述 10 2 屏幕控制 11 3 协议命令集 12 3.1 平台检查 PLT 14 3.2 版本检查 VER 15 3.3 游戏列表 GML 17 3.3.1 获取游戏列表 17 3.3.2 获取游戏
22、分区列表 18 3.3.3 获取游戏房间列表 18 3.3.4 获取游戏房间列表[扩展] 19 3.4 警告 ALT 20 3.5 登录 LGN 21 3.6 注册 REG 22 3.7 找回密码 GWD 23 3.8 修改用户资料 MOD 24 3.9 表单 FRM[已经取消不用实现] 26 3.10 菜单 MNU 31 3.11 屏幕背景 BGD 32 3.12 屏幕元素 ITM 34 3.13 光标 CUR 38 3.14 静态文本 TXT 39 3.15 滚动文本 SIP[已经取消不用实现] 39 3.16 空闲 IDL 40 3.17 游戏控制权 CT
23、L 40 3.18 游戏动作 ACT 41 3.19 聊天 CHT 41 3.19.1 获取聊天信息 41 3.19.2 选择聊天对象 43 3.19.3 发送聊天信息 44 3.19.4 新消息通知 45 3.19.5 退出聊天 45 3.19.6 游戏中广播信息通知 45 3.19.7 发送留言 46 3.19.8 获取留言 46 3.19.9 回复留言 47 3.19.10 删除留言 48 3.20 显示信息 SHW 48 3.20.1 获取用户信息 49 3.20.2 获取对手信息 52 3.20.3 获取好友列表 52 3.20.4 获取黑名单列表
24、53 3.20.5 获取用户道具 53 3.20.6 获取道具类别 54 3.20.7 获取道具类别中道具 54 3.20.8 上线标志通知 55 3.20.9 获取系统帮助信息 55 3.20.10 查询用户是否在线 56 3.20.11 获取用户最新配置 56 3.20.12 获取用户星辰运势 57 3.20.13 获取合作伙伴广告信息 58 3.20.14 获取合作伙伴广告分类详细信息 58 3.20.15 获取合作伙伴广告详细信息 59 3.21 用户操作 OPR 59 3.21.1 添加好友 59 3.21.2 删除好友 60 3.21.3 添加黑名单
25、60 3.21.4 删除黑名单 61 3.21.5 购买道具 61 3.21.6 使用道具 61 3.21.7 检索好友 62 3.21.8 添加好友请求 63 3.21.9 添加好友请求应答 63 3.21.10 获取兑换比率 63 3.21.11 兑换点券/游戏币 64 3.22 动画 ANM 65 3.23 快捷键 FKY[已经取消不用实现] 65 3.24 暂停 SLP[已经取消不用实现] 66 3.25 退出 EXT 66 3.26 广告 ADV 67 3.27 游戏房间操作 PLY 67 3.27.1 通知房间座位 67 3.27.2 游戏房间状态汇
26、报 68 3.27.3 游戏玩家状态变化 69 3.27.4 游戏开始通知 70 3.27.5 游戏结束通知 71 3.27.6 游戏结束通知 71 3.28 游戏超时通知EXP 71 3.29 客户端使用区域通知 RGN 72 3.30 通知客户端游戏超时控制停止 TTP 72 3.31 通知客户端图片装载方法 BMG 72 3.32 对话框命令 DLG 73 3.33 和悔认命令 BOS 74 3.34 游戏控制权标志通知命令 TAG 75 3.35 客户端在线通知命令 ONL 75 3.36 充值命令 AMY 76 4 TeveQ休闲协议命令集[基本协议扩展]
27、 77 4.1 玩家状态 STS 78 4.2 实时数据 HTY 81 4.3 使用道具 MGT 81 5 系统管理员使用指令 88 5.1 发布公告 88 5.2 踢人 88 5.3 查询用户量 88 6 获取登陆服务器ip地址 89 7 分隔符 89 8 协议加密 90 9 获取移动手机号码 90 10 参考文件 90 1 概述 本文档制订的是适用于“棋牌世界”里的所有棋牌类游戏(包括麻将)的通信协议,该协议由一些基本的控制命令组成,与具体的游戏规则无关。 本协议主要说明手机游戏与服务器之间进行通信的基本内容,包括手机游戏对服务器的请求(R
28、equest),服务器的应答(Response)。 本游戏服务器支持多种Client端,包括手机、PC等。虽然各种Client端游戏程序界面和运行的硬件平台各不相同,但是由于所有的Client与Server的通信采用的是相同的游戏协议,因此也都能够进行游戏。 MGS 1 MGS 2 MGS LoginServer DBS 图1-1 系统总体结构图 对于手机端,支持三大平台:KJAVA平台(中国移动-CMCC)和BREW平台,UniJava平台(中国联通-UNIC
29、OM)。 手机游戏首先通过登录LoginServer(以下缩写为LGS)来得到棋牌游戏列表(每款游戏对应一个服务器),用户选择游戏后,就自动与相应的游戏服务器连接。 游戏用户分区管理。每个服务器管理固定数量的用户,一旦用户数量超过极限,就增加新的服务器来处理,而软件本身不做任何改动。 棋牌世界实现了智能机器人功能。当一个人等待对手时间过长时(如10秒),手机游戏服务器(Mobile Game Server:以下简称MGS)自动启动机器人与真人进行比赛。在比赛过程中,如果某个人因断线或退出时,在等待一定时间后,MGS也自动启动机器人来替换他。该比赛者断线后重新进入,如果比赛还未结束,他
30、可以旁观机器人替自己完成当前局的比赛,这局比赛完后,MGS自动关闭机器人,原比赛继续加入。 2 屏幕控制 由于手机端的游戏程序是抽象了“棋牌世界”的所有游戏,而不是针对某款具体的游戏,需要将这些“棋牌”类游戏的所有屏幕表现的元素和动作进行抽象。因此,需要服务器来根据具体的游戏和具体的手机屏幕大小来给手机端游戏程序发送命令,控制手机来绘制游戏屏幕。 主要的屏幕控制对象包括: (1)屏幕背景; (2)图片元素: 对棋类游戏:棋盘、棋子、 对牌类游戏:牌 个人头像、按钮、图标、轮流标记 (3)文本 (4)菜单 (5)对话框 手机端的屏幕永远都是全部绘制,具体的绘制内
31、容是由MGS针对用户选择的不同游戏和游戏的进展发送不同的命令来完成的。 3 协议命令集 本协议的内容是一个高度抽象的描述性协议,每条命令执行一个基本的屏幕显示,而在实际使用中,用户的一个操作可能包含了多个命令的组合,每条命令都以换行符结束。 本协议是基于文本字符流的,每个数据包就是一个命令行,命令行的结束标志是一个换行符。这样做的一个最大好处是服务器端在开发过程中,可以不依赖Client端程序而直接通过Telnet程序来独立地进行对服务器的调试和测试。 协议主要以命令行的形式来实现,这些命令的基本格式为: CMD param_1,param_2,…,param_
32、n 一个完整的命令包括3个组成部分: n 命令标识 CMD表示命令标识符(命令标识符必须大写);统一用3个大写字符来表示各个功能命令; n 命令参数 param_1, param_2, … param_n为命令参数 命令参数必须小写,除非客户的信息里包括大写字符 n 命令结束符 换行符 必须使用换行符(\n)表示一个命令行的结束。 备注:命令符与参数之间用空格符分隔;各个参数之间用逗号(,)分隔。 协议制订基本原则主要有下面3条: n 冗余性。 协议中的每条命令不包括任何冗余数据,尽量缩短命令的长度,减少网络通信量。 n 准确性。 协议中的每条命令,其信息必须全
33、面、精确,不存在二义性。 n 安全性。 协议中还必须考虑服务器和手机端程序的安全性,防止任何可能的对游戏的恶意篡改。 本式样书中定义的命令集如下表: No. Commd 命令全称 功能 1 PLT PlatForm 平台检查 2 VER Version 版本检查 3 GML GameList 游戏列表 4 ALT Alert 警告 5 LGN Login 登录 6 REG Register 注册 7 GWD GetPassword 获取密码 8 MOD Modification 修改用户资料 9 FRM
34、 Form 表单 10 MNU Menu 菜单 11 BGD Background 屏幕背景 12 ITM Item 屏幕元素 13 CUR Cursor 光标 14 TXT Text 静态文本 15 SIP Slip 滚动文本 16 IDL Idle 空闲 17 CTL Control 游戏控制权 18 ACT Action 游戏动作 19 CHT Chat 聊天 20 SHW Show 显示信息 21 OPR Operation 用户操作 22 ANM Animation 动画 23
35、 FKY FlashKey 快捷键 24 SLP Sleep 暂停 25 EXT Exit 退出 26 ADV Advertise 广告 27 PLY Player Status 玩家状态变化命令 28 EXP Expire 超时命令 29 RGN Client Region 客户端使用区域通知命令 30 TTP TimeoutStop 客户端超时停止控制命令 31 BMG Builder Image 组装图片命令 32 DLG Dialog 对话框命令 33 BOS BackOneStep 棋类中的认输,和
36、棋和悔棋命令 34 TAG Tag 游戏控制权标志图标通知命令(当前版本仅限中国象棋,五子棋和黑白棋) 35 ONL Online 客户端定期给服务器发送在线标志 36 BRD Broadcast Message 管理员发布公告信息 37 TKO TickOut Player 管理员踢人 38 CHK Check Online Player count 管理员查询用户量 下面将具体地对每条命令进行消息描述: 3.1 平台检查 PLT 说明:本命令是手机给服务器(LGS/MGS)发送的第一条命令。 检查手机端平台:KJava平台,BREW
37、平台,UniJava平台。 由于MGS与KJava手机采用UTF8编码,而与BREW手机采用UNICODE编码,所以本命令需要按ANSI格式发送,以便于MGS确定客户端手机平台类型。 l 用户请求 (客户端 -> 服务器) 命令格式 PLT sp,mobileplat, modelname,origin, w, h, fw, fh,protocolversion 说明 手机平台检查命令。 参 数 说 明 参数 说明 sp sp编号 mobileplat 手机平台 0:缺省(ANSI) 1:KJAVA平台(UTF8) - 发送激活指令 2:BREW平台(Un
38、icode) 3:UniJava平台(UTF8) 4:KJAVA平台(UTF8) - 不发送激活指令 modelname 手机型号名称,例如:BREWPHONE,NK3650等等 origin 客户端来源 1 : CDMA 2 : KJava 3 : UniJava 4 : Kjava休闲系列[发送扩展游戏列表] w,h 手机屏幕大小 fw, fh 手机字体大小 protocolversion 当前协议版本,版本用字符串表示,例如:USP15,表示当前版本为:UniSync Protocol V1.5 通过协议版本参数可以实现版本的向下兼容。 当前
39、版本为: USP15 l PLT命令响应 ( 游戏服务器/登陆服务器 -> 客户端) 命令格式 PLT checkonlinetimespan 说明 通知客户端定时向服务器发送是否在线命令的时间周期 参 数 说 明 参数 说明 checkonlinetimespan 客户端定时向服务器发送是否在线命令的时间周期(单位:秒) 由于运营商网关延迟,造成服务器不能及时检测用户掉线(例如:对于Brew手机的关盖,拔电池,突然没电),为了及时检测用户是否在线,需要客户端定时给服务器发送ONL命令,通知服务器客户端还在线。客户端给服务器发送ONL的时机应
40、该是用户没有任何socket数据收发的情况下累计时间到达checkonlinetimespan。 3.2 版本检查 VER 检查客户端程序版本。 本操作在LGS上完成。 如果客户端程序需要更新,LGS需要提醒用户,由用户自己去下载最新的客户端程序。 l VER (客户端->服务器) 命令格式 VER clientid, model, pro_ver,res_ver,ad_ver,help_ver,tips_ver 说明 手机端程序向LGS发送版本检查命令。 参 数 说 明 参数 说明 clientid 客户端的标识号码,长度50个字符。 客户
41、端统一编号,编号从1开始,每个不同的客户端分配一个唯一的识别ID。 对于KJava客户端,采用jar包名作为识别号码(不包含.jar) model 手机型号名称,例如:BREWPHONE,NK3650等等 pro_ver 手机端程序的版本号 res_ver 手机端程序的资源文件版本号 ad_ver 系统广告版本 help_ver 系统帮助信息版本[保留] tips_ver 系统tips版本 此命令是用户连接服务器后,发送的第二条命令。 l VER命令响应 (服务器->客户端) 命令格式 VER res[,resurl,resextname,{resid
42、}][,{adttl,adid}][,helpmsg][,{tipsmsg}][,newres_ver,newad_ver,newhelp_ver,newtips_ver] 说明 服务器向客户端发送版本检查的响应信息。 参 数 说 明 参数 说明 res 0 - 版本检查成功 1 - 客户端有新版本,老版本可以继续使用 2 - 客户端程序版本太低,必须下载新版本 3 - 客户端资源版本太低 4 - 客户端广告内容版本太低 5 - 客户端帮助信息版本太低 6 - 客户端Tips信息版本太低 7 – 最新的版本号 当res=3,4,5,6,7的时候需要分析res
43、后面的内容 resurl 资源文件所在的url resextname 资源文件扩展名,例如:png , gif resid 需要更新的资源id号,多个资源id用逗号分割 adttl 广告信息的标题 adid 广告信息的编号 helpmsg 系统帮助信息 tipsmsg 系统Tips信息 newres_ver 最新的客户端资源版本号 newad_ver 最新的客户端广告信息版本号 newhelp_ver 最新的客户端帮助信息版本号 newtips_ver 最新的可户端Tips信息版本号 [ ] – 表示可选 {} – 表示多个 客户端收到
44、res 7 …命令的时候,需要保存最新的各相关项目的版本号,下次再登陆的时候,应该给服务器发送最新的版本号。客户端必须保证所有需要更新的资源都被正确更新了以后,才能保存最新的版本。 资源更新只限头像和表情,其他资源不能动态更新 如果用户需要查看详细的广告信息,客户端需要根据adid,从登陆服务器或游戏服务获取。详细的命令请参考ADV命令 [注] 对于不需要更新的版本号,版本号设置为0 3.3 游戏列表 GML 用户登录成功以后,LGS首先向客户端发送GML 1命令,客户端得到游戏主类信息包括游戏id,游戏名,当前用户量和当前人数最多的服务器的ip地址和通讯端口。 当用户选
45、择一个游戏的时候,自动进入用户登录时候人数最多的游戏服务器。 用户可以通过客户端的设置工具选择不同的游戏服务器分区或游戏房间。 客户端根据用户的选择向服务器发送获取游戏分区信息(GML 2命令), LGS收到GML 2命令,发送游戏分区信息给用户, 客户端根据用户的选择向服务器发送获取游戏房间信息(GML 3命令), LGS收到GML 3命令,发送游戏分区内的房间信息给用户。 3.3.1 获取游戏列表 l 客户端向服务器发送获取游戏列表 命令格式 GML 1 说明 客户端向LGS发送该命令,获取游戏主类列表信息 参 数 说 明 参数 类型 说明
46、 l 服务器响应 命令格式 GML 1, {game_id, game_name,imgid ,usercount,ip,port ,sectionid} 说明 参 数 说 明 参数 类型 说明 game_id 游戏编号 game_name 游戏名称 以五子棋游戏为例: 五子棋 imgid 游戏对应的小图标id usercount 游戏用户量 ip 当前最多用户量的游戏服务器的ip port 当前最多用户量的游戏服务器的通讯端口 sectionid 游戏分区id {} – 表示可以多个重复 如果没内容,
47、则只返回GML 1 3.3.2 获取游戏分区列表 l 客户端向服务器发送获取游戏分区信息 命令格式 GML 2, game_id 说明 参 数 说 明 参数 类型 说明 game_id 游戏编号 l 服务器向客户端发送游戏分区信息 命令格式 GML 2,{ section_id,name,usercount} 说明 参 数 说 明 参数 类型 说明 section_id 游戏分区编号 name 游戏分区名 usercount 本分区内用户量 {} – 表示可以多个重复 如果没内容,则只
48、返回GML 2 3.3.3 获取游戏房间列表 l 客户端向服务器发送获取游戏房间信息 命令格式 GML 3,game_id, section_id 说明 参 数 说 明 参数 类型 说明 game_id 游戏编号 section_id 游戏分区编号 l 服务器向客户端发送游戏分区内房间信息 命令格式 GML 3,{ name,ip,port,usercount,tag} 说明 参 数 说 明 参数 类型 说明 name 游戏房间名 ip 游戏房间的ip地址 port 游戏房间的
49、通讯端口 usercount 游戏房间内用户量 tag 人数是否已满(0:未满,1:满) {} – 表示可以多个重复 如果没内容,则只返回GML 3 3.3.4 获取游戏房间列表[扩展] l 客户端向登陆服务器发送获取游戏信息 命令格式 GML 4 说明 参 数 说 明 参数 类型 说明 l 登陆服务器向客户端发送游戏房间信息 命令格式 GML 4,gamecount,{gamid,gamename,imgid,usercount,roomcount,{roomid, roomname,com
50、ment,ip,port,needmoney,usercount,supportcount}} 说明 当前版本,客户端不需要给登陆服务器发送GML 4命令,当客户端登陆成功以后,登陆服务器将主动发送GML 4的响应信息给客户端。 参 数 说 明 参数 类型 说明 gamecount 游戏的个数 gameid 游戏编号 编号:18000作为聊天室专门使用,客户端判断是18000的时候需要显示聊天室对应的图标。 gamename 游戏名称 imgid 游戏的小图标id usercount 游戏目前在线人数 roomcount 游






