幼麒棋牌四川麻将的扩展

幼麒棋牌四川麻将的扩展(1)

分布式game_serve的扩展

前几天刚git下了一份代码,研究了下,考虑怎么加一个斗地主。于是修改了下game_server 和hall_server。下面简单的讲一下思路

新的改变

  1. config里的game_server增加了 GAME_ID。如下 GAME_ID: [“xzdd”, “xlch”],在向大厅注册游戏服务的时候把这个gameserver包涵哪些游戏传过去,这样大厅服在创建房间的时候就可以根据客户端传入的gameid进行查找匹配了。
    game_server配置
    在这里插入图片描述
    大厅服里注册游戏服务的时候 保存下gameIds在这里插入图片描述在这里插入图片描述

大厅服中选择游戏服的函数改成根据gameId查询
代码片.

function chooseServer(gameId) {
	var serverinfo = null;
	if (gameId == null) {
		return null;
	}


	for (var s in serverMap) {
		var info = serverMap[s];

		var ar = info.gameIds.filter(function (elem) {
			return elem == gameId;
		});
		if (ar != undefined) {
			if (serverinfo == null) {
				serverinfo = info;
			}
			else {
				if (serverinfo.load > info.load) {
					serverinfo = info;
				}
			}
		}

	}
	return serverinfo;
}

// 这里可以改进下 游戏分布式考虑  加入gameid
exports.createRoom = function (gameId, account, userId, roomConf, fnCallback) {

	var serverinfo = chooseServer(gameId); //加入gameid
	if (serverinfo == null) {
		fnCallback(101, null);
		return;
	}
// 大厅服 客户端创建房间的入口 create_private_room  加入gameid
app.get('/create_private_room', function (req, res) {
	//验证参数合法性
	var data = req.query;
	//验证玩家身份
	if (!check_account(req, res)) {
		return;
	}

	var account = data.account;

	data.account = null;
	data.sign = null;
	var conf = data.conf;
	var gameId = data.gameId;
	db.get_user_data(account, function (data) {
		if (data == null) {
			http.send(res, 1, "system error");
			return;
		}
		var userId = data.userid;
		var name = data.name;
		//验证玩家状态
		db.get_room_id_of_user(userId, function (roomId) {
			if (roomId != null) {
				http.send(res, -1, "user is playing in room now.");
				return;
			}
			//创建房间
			room_service.createRoom(gameId, account, userId, conf, function (err, roomId) {

完毕待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
幼麟棋牌社区版,是幼麟棋牌的开源版本,用于提供给大家学习游戏服务器编程和客户端编程。 在此之前,幼麟棋牌早已开源在Cocos社区,造成了不小的影响力。 已有不下百个团队或者个人在使用本套代码开发作品。 使用幼麟棋牌框架开发出来的产品更是无法统计,抛开幼麟科技官方的数十款不算,第三方已上线产品不下百款。 幼麟棋牌框架被业内众多爱好者评为 业界清流。 它打破了早期的C++为主的棋牌格局。开创了新一代的纯Javascript脚本模式。 同时也是目前唯一能够一次开发,同时发布iOS,Android,H5三端的棋牌框架。由于其纯脚本特性,在发布iOS和Android时,天然支持热更新功能。 有了幼麟棋牌的动静,业内也有部分团队开始以棋牌平台为主打,建立开源社区,希望在开源社区找到新的盈利模式。 幼麟棋牌社区版包含功能如下: 完整的服务器客户端源代码,搭建后即可运行 完整的房卡棋牌玩法(加入,创建房间) 完整的四川麻将玩法(血战到底,血流成河两种模式) 房卡战绩记录 微信登陆,微信分享 断线重连 适合人群: 想通过完整案例,快速入手游戏开发 想通过完整源码,快速开发棋牌游戏 想通过完整源码,快速开发麻将游戏 想替换一下美术资源,就拥有一款四川麻将 想直接打个包,就拥有一款四川麻将
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值