游戏-测试权限开发解析(此文章仅供学习,请勿用于非法行为)

一直好奇游戏类的辅助是这么开发的,这次刚好手上有一个游戏程序,报着试试看的态度尝试自己去写一个,废话不多说,直入正题。

整体技术栈介绍:
服务器:node.js
框架:pomelo -^2.2.5
数据库:mongoDb
缓存:redis
客户端:CocosCreator-2.3.3
Ps:这套程序没有用传统的关系型数据库,而是大胆启用文档型数据库mongoDb,搭配node.js性能比传统型的数据库高上不少

一, 启动程序
1,服务器启动
//启动
pomelo start

/ 停止游戏 这里的amdin是在配置文件中配置的用户名和密码
pomelo stop -u admin -p admin /

// 查看已启动的服务
pomelo list-u admin -p admin
游戏服务-代码结构图


后台网站-代码结构图


1 启动redis,mongodb, 然后在游戏服务目录下pomelo start 当出现下图时说明启动成功

 

2启动网站,可以用PM2启动 也可以直接node启动 如下图

 

2,启动客户端
用户Cocos Creator导入客户端代码:版本是2.3.3。然后运行即可

 

游戏辅助一般分为两种,一种是指定换牌的,第二种就是透视。指定换牌指的是可以将自己的牌换成自己想要的牌,而透视就是在没有开牌的情况下看所有人的牌。这里为了方便,我只简单讲解下第二种辅助。

整体流程
1,设置玩家特殊属性,

这里需要判断玩家是否是拥有特殊权限的玩家,数据库增加布尔属性:iAuth。如果为真,则用户拥有权限,反之则没有。

客户端处理
2,定义协议

proto.GAME_GETTOUSHI_NOTIFY = 317; // 获取单个玩家的牌型
proto.GAME_GETTOUSHI_PUSH = 417; // 获取单个玩家的牌型
3,玩家登陆时游戏返回特殊权限属性缓存在客户端,玩家在游戏途中点击自己头像,如果iAuth为真则向服务器发送请求明牌消息。

 

服务器处理
1,定义协议

proto.GAME_GETTOUSHI_NOTIFY = 317; // 获取单个玩家的牌型
proto.GAME_GETTOUSHI_PUSH = 417; // 获取单个玩家的牌型
2,服务器接受请求

 

3,获取玩家牌型,在发牌的时候玩家的牌型已经存在handCards中,直接取出发送给客户端即可。

/**
* 获取某个玩家的牌型
* @param {*} chairID
* @param {*} data
*/
pro.onGetUserCards = function ( chairID, uid ) {
this.sendData(gameProto.getUserCards(uid, this.handCards[uid]),[chairID]);
}
3,客户端收到消息 显示所有玩家的牌。


// 玩家透视
else if(msg.type === SZProto.GAME_GETTOUSHI_PUSH) {
let cardLogic = this.getCardsNodeByChairID(msg.data.formchair).getComponent('SZCards');
cardLogic.toushiCards(msg.data.formchair, msg.data.listcards);
}

大厅界面

 

此文章仅供学习,请勿用于非法行为),如有使用,后果自负。

————————————————
版权声明:本文为CSDN博主「Truemiss」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Truemiss/article/details/125234730

posted @ 2022-06-11 18:05  见者  阅读(71)  评论(0)    收藏  举报