var GameRulesUtil = { // 游戏规则常量定义(从CMD_Game_21201.js复制) GAME_RULE_SP_20: 0x00000001, // AA付费 GAME_RULE_SP_15: 0x04000000, // 台湾北部麻将 GAME_RULE_SP_16: 0x08000000, // 台湾南部麻将 // GAME_RULE_SP_6: 0x00000200, // 庄家无台 // GAME_RULE_SP_17: 0x10000000, // 呖咕呖咕 GAME_RULE_RENSHU_2: 0x00040000, // 2人 GAME_RULE_RENSHU_1: 0x00010000, // 4人 GAME_RULE_TUOGUAN_15: 0x00000001, // 15秒 GAME_RULE_TUOGUAN_30: 0x00000002, // 30秒 GAME_RULE_TUOGUAN_60: 0x00000004, // 60秒 GAME_RULE_TUOGUAN_NONE: 0x00000008, // 无托管 // 获取规则对象数组 GetRulesStr: function (dwServerRules, dwRulesArr) { var rulesArray = []; // 付费方式 var payMethod = ""; if (dwServerRules & this.GAME_RULE_SP_20) { payMethod = "AA付费"; } else { payMethod = "房主付费"; } // 麻将类型 var mahjongType = ""; if (dwRulesArr[0] & this.GAME_RULE_SP_15){ mahjongType = "台湾北部麻将"; } else if (dwRulesArr[0] & this.GAME_RULE_SP_16) { mahjongType = "台湾南部麻将"; } // 圈数 var circleCount = this.getCircleCount(dwServerRules) + "圈"; // 人数 var playerCount = ""; if (dwServerRules & this.GAME_RULE_RENSHU_2) { playerCount = "2人"; } else if (dwServerRules & this.GAME_RULE_RENSHU_1) { playerCount = "4人"; } // 底分和台数 var baseScore = dwRulesArr[1] ? "底分" + dwRulesArr[1] : ""; var tableCount = dwRulesArr[2] ? dwRulesArr[2] : ""; // 场次 var gameField = this.getGameFieldName(dwRulesArr[3]); // 构建对象数组 rulesArray = [ { type: "付费方式", value: payMethod },//0 { type: "麻将类型", value: mahjongType },//1 { type: "圈数", value: circleCount },//2 { type: "人数", value: playerCount },//3 { type: "底分", value: baseScore },//4 { type: "台数", value: tableCount },//5 { type: "场次", value: gameField }//6 ]; return rulesArray; }, // 圈数计算 - 添加缺失的方法 getCircleCount: function (rules) { if (rules & 0x00080000) return 1; if (rules & 0x00100000) return 2; if (rules & 0x00200000) return 3; return 8; }, // 获取游戏场次名称 getGameFieldName: function (fieldId) { if (fieldId == 1000) { return "新手场"; } else if (fieldId == 2000) { return "初级场"; } else if (fieldId == 10000) { return "中级场"; } else if (fieldId == 15000) { return "高级场"; } else if (fieldId == 30000) { return "大师场"; } else { // 默认返回未知场次或原值 return "其他场次"; } } }; //导出GameRulesUtil module.exports = GameRulesUtil;