| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 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;
|