房卡麻将分析之"代开房间"
如今的房卡麻将市场,纯粹的单一房卡模式在竞争激烈的地区已经难以吸引代理商,以“代开房间”功能为特色的新模式出现极大的提升了代理商对房卡的定价权,受到了代理商们的欢迎。“代开房间”,即代理商或群主开设房间供玩家进入游戏,这个功能有两个好处:一是代理商或群主可以在不用参与游戏的情况下提供游戏房间,极大方便群内活动增加人气,二是代理商或群主可以把控游戏房间的价格,拥有定价权。代理商拥有了这个武器后,可以极大的增强自身的运营手段,提升营收。那么,在技术上怎么实现呢?其实,“代开房
如今的房卡麻将市场,纯粹的单一房卡模式在竞争激烈的地区已经难以吸引代理商,以“代开房间”功能为特色的新模式出现极大的提升了代理商对房卡的定价权,受到了代理商们的欢迎。
“代开房间”,即代理商或群主开设房间供玩家进入游戏,这个功能有两个好处:一是代理商或群主可以在不用参与游戏的情况下提供游戏房间,极大方便群内活动增加人气,二是代理商或群主可以把控游戏房间的价格,拥有定价权。代理商拥有了这个武器后,可以极大的增强自身的运营手段,提升营收。
那么,在技术上怎么实现呢?
其实,“代开房间”的主要流程与正常的房主创建房间区别并不大,只是创建完房间后在服务器端不要自动加入房间需要处理。但要注意的是,一定要加一个判断,对代理的开房间数量有所限制,否则可能会造成服务器的房间的利用不合理。
但在客户端层面要做的工作就略多,一方面要有"代开房间"的按钮,另一方面还需要对代开的多个房间进行管理。
"大赢家"麻将里的代理创建房间页面,有点臃肿,发图着急,后面再美化。。。
所以,要设计一套消息结构能够获取当前代理代开的房间信息列表。在收到创建房间成功的消息后,服务器将消息返回回来,客户端收到后将房间列表显示出来。
要注意,代理在点击"管理房间"时可能并没有连接服务器,是无法收到游戏服务器的消息的,所以要连接一下。
void SDManageRooms::Button_ManageRoom(cocos2d::Ref*, WidgetUserInfo*)
{
setVisible(true);
WidgetFun::setVisible(this, "GameRoomsScencePlane", true);
//发送请求获取当前我创建的房间
HNPrivateScenceBase::InstanceBase().setGetRoomCallBack(this, button_selector(SDManageRooms::onGPBackMyRoomsList));
HNPrivateScenceBase::InstanceBase().ConnectAndGetMyRoomsByKind(XZDDGameScence::KIND_ID);
}
"大赢家"麻将里的管理房间页面:包括房号信息,创建时间,玩家列表以及管理和邀请按钮,能够让代理把创建出来的房间发出微信邀请到微信好友或微信群以及解散掉房间。
在玩家加入房间并完成相应牌局会涉及到扣房卡的处理, 不管是“房主开房"还是"代理开房",服务器会对房间创建者进行扣卡处理,所以也没有什么不同。不过游戏结束,房间自动解散时,还是要设计一个解散消息通知给代理,让代理能够看到房间被实时清除掉。
这样做完后,整个"代开房间"功能就基本做好了。