房卡麻将分析之“俱乐部功能”
Posted 火云洞红孩儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了房卡麻将分析之“俱乐部功能”相关的知识,希望对你有一定的参考价值。
什么是俱乐部?
群主(代理)创建俱乐部后,可以邀请自已的群成员成为自已的俱乐部会员,方便管理。俱乐部玩法由创始人设置,只有俱乐部成员才能加入,并且俱乐部房间全部消耗创始人房卡。俱乐部成员无需创建房间,直接开始游戏进行玩家匹配。
为什么要做俱乐部?
(1)代理不再需要盯着玩家群,手动给群成员充卡,也不再需要输入房号,省事方便,提升收益。
(2)代理设置好玩法后,玩家点击进入,系统自动分配房间,避免了打和牌的情况。
三个核心功能:
(1)代理创建和查看俱乐部相关处理。
(2)玩家加入俱乐部相关处理。
(3)玩家要进游戏,服务器自动创建俱乐部房间并坐下,以及同俱乐部玩家查找匹配处理。
数据库表与存储过程: 需要创建三个表:
1.代理的俱乐部信息表clubinfo,用于记录某个代理创建的俱乐部的信息。
2.俱乐部生成的房间表clubrooms,用于记录俱乐部所生成的房间列表和对应房间玩家名单信息。
3.玩家加入俱乐部的名单表clubplayers,用于记录玩家加入了哪个俱乐部。
对应也需要创建个存储过程:
1.创建俱乐部相关:判断创建人身份,将创建信息记录到表clubinfo。
2.创建俱乐部房间相关:判断创建人房卡数量,将房间信息记录到表clubrooms,以及对应的创建人俱乐部房间信息列表获取。
3.玩家加入俱乐部相关:将玩家添加到俱乐部,以及从俱乐部移除。
代理身份创建俱乐部的开发流程:
(1)客户端增加“创建俱乐部”的界面,发送“创建俱乐部”的消息。
(2)修改私人场服务器,转发至游戏服务器。
(3)修改游戏服务器,增加俱乐部的数据表和相应存储过程以存读俱乐部数据库表,并增加相应的消息和数据结构,处理接收到消息后判断和调用。
(4)修改前端表现,在获取创建成功消息后提示成功。
加入俱乐部功能开发流程:
(1)客户端新增加一个“加入俱乐部”的界面。
(2)申请加入,向私人场服务器发送消息。
(3)获取返回消息后,显示提示。
修改私人场服务器和游戏服务器:
(1)PriaveteGame::OnEventSocketPrivate函数中加入处理申请加入俱乐部消息的处理,并转发给游戏服务器。
(2)游戏服务器接收到消息后调用存储过程,将玩家ID,名称加入到表clubplayers中,并返回加入成功消息。
(3)私人场服务器收到返回消息后转发给客户端。
进入游戏的流程:
(1)修改加入房间消息结构,附带俱乐部类型或ID,客户端点击“开始游戏”,发送消息结构给私人场服务器。
(2)修改服务器上PrivateTableInfo结构,附带俱乐部ID,在PriaveteGame::OnTCPNetworkSubJoinPrivate函数中接收到加入房间消息,如果是俱乐部,就遍历在线房间,匹配俱乐部ID,如果找到此房间里有空座位,就坐下。如果没有找到房间,就调用创建房间函数,创建附带俱乐部ID的新房间并坐下,发送更新clubrooms表的消息给游戏服务器进行数据表更新。
(3)成功加入房间后,返回加入房间结果消息给客户端。
(4)房间解散时,也要发送更新clubrooms表的消息给游戏服务器进行数据表更新。
(5)如果不允许自动创建房间,也可以把创建房间这部分移到前端供代理手动创建房间。
代理管理俱乐部的功能:
(1)在服务器和客户端增加对于数据表信息clubrooms的获取消息和处理。
(2)在前端部分对于代理功能加入相应的列表显示和分享功能。
以上就是基本的流程。
以上是关于房卡麻将分析之“俱乐部功能”的主要内容,如果未能解决你的问题,请参考以下文章