什么是俱乐部?  

       
 群主(代理)创建俱乐部后,可以邀请自已的群成员成为自已的俱乐部会员,方便管理。俱乐部玩法由创始人设置,只有俱乐部成员才能加入,并且俱乐部房间全部消耗创始人房卡。俱乐部成员无需创建房间,直接开始游戏进行玩家匹配。

为什么要做俱乐部?

(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)在前端部分对于代理功能加入相应的列表显示和分享功能。


以上就是基本的流程。