GameRulesUtil.js 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. var GameRulesUtil = {
  2. // 游戏规则常量定义(从CMD_Game_21201.js复制)
  3. GAME_RULE_SP_20: 0x00000001, // AA付费
  4. GAME_RULE_SP_15: 0x04000000, // 台湾北部麻将
  5. GAME_RULE_SP_16: 0x08000000, // 台湾南部麻将
  6. // GAME_RULE_SP_6: 0x00000200, // 庄家无台
  7. // GAME_RULE_SP_17: 0x10000000, // 呖咕呖咕
  8. GAME_RULE_RENSHU_2: 0x00040000, // 2人
  9. GAME_RULE_RENSHU_1: 0x00010000, // 4人
  10. GAME_RULE_TUOGUAN_15: 0x00000001, // 15秒
  11. GAME_RULE_TUOGUAN_30: 0x00000002, // 30秒
  12. GAME_RULE_TUOGUAN_60: 0x00000004, // 60秒
  13. GAME_RULE_TUOGUAN_NONE: 0x00000008, // 无托管
  14. // 获取规则对象数组
  15. GetRulesStr: function (dwServerRules, dwRulesArr) {
  16. var rulesArray = [];
  17. // 付费方式
  18. var payMethod = "";
  19. if (dwServerRules & this.GAME_RULE_SP_20) {
  20. payMethod = "AA付费";
  21. } else {
  22. payMethod = "房主付费";
  23. }
  24. // 麻将类型
  25. var mahjongType = "";
  26. if (dwRulesArr[0] & this.GAME_RULE_SP_15){
  27. mahjongType = "台湾北部麻将";
  28. } else if (dwRulesArr[0] & this.GAME_RULE_SP_16) {
  29. mahjongType = "台湾南部麻将";
  30. }
  31. // 圈数
  32. var circleCount = this.getCircleCount(dwServerRules) + "圈";
  33. // 人数
  34. var playerCount = "";
  35. if (dwServerRules & this.GAME_RULE_RENSHU_2) {
  36. playerCount = "2人";
  37. } else if (dwServerRules & this.GAME_RULE_RENSHU_1) {
  38. playerCount = "4人";
  39. }
  40. // 底分和台数
  41. var baseScore = dwRulesArr[1] ? "底分" + dwRulesArr[1] : "";
  42. var tableCount = dwRulesArr[2] ? dwRulesArr[2] : "";
  43. // 场次
  44. var gameField = this.getGameFieldName(dwRulesArr[3]);
  45. // 构建对象数组
  46. rulesArray = [
  47. { type: "付费方式", value: payMethod },//0
  48. { type: "麻将类型", value: mahjongType },//1
  49. { type: "圈数", value: circleCount },//2
  50. { type: "人数", value: playerCount },//3
  51. { type: "底分", value: baseScore },//4
  52. { type: "台数", value: tableCount },//5
  53. { type: "场次", value: gameField }//6
  54. ];
  55. return rulesArray;
  56. },
  57. // 圈数计算 - 添加缺失的方法
  58. getCircleCount: function (rules) {
  59. if (rules & 0x00080000) return 1;
  60. if (rules & 0x00100000) return 2;
  61. if (rules & 0x00200000) return 3;
  62. return 8;
  63. },
  64. // 获取游戏场次名称
  65. getGameFieldName: function (fieldId) {
  66. if (fieldId == 1000) {
  67. return "新手场";
  68. } else if (fieldId == 2000) {
  69. return "初级场";
  70. } else if (fieldId == 10000) {
  71. return "中级场";
  72. } else if (fieldId == 15000) {
  73. return "高级场";
  74. } else if (fieldId == 30000) {
  75. return "大师场";
  76. } else {
  77. // 默认返回未知场次或原值
  78. return "其他场次";
  79. }
  80. }
  81. };
  82. //导出GameRulesUtil
  83. module.exports = GameRulesUtil;