初始化仓库:友乐/gameabc 房卡游戏平台脚手架(client + server + docs)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
// ============================================================================
|
||||
// 01_SubGame_modify.js —— 平台交互/创建房间接口「转发壳」(框架维护,子游戏不碰)
|
||||
// 顶部为「房型/创建房间配置区」(数据,子游戏填值);其下为接口转发壳(转发到 SubGameHooks)。
|
||||
// 严格 ES5。
|
||||
// ----------------------------------------------------------------------------
|
||||
// 【平台约定精灵:25 号 = 创建房间确认按钮】(接入子游戏必看)
|
||||
// 平台框架在「创建房间」界面提供 25 号精灵作为“确认/提交”按钮;其点击交互与
|
||||
// 发送的数据包,均需【子游戏自己实现】(平台不代发),约定流程:
|
||||
// 1. 子游戏在打开创建房间界面时注册 25 号精灵的点击(经 SpriteEventController
|
||||
// 或 mouseup),点击即“确认创建房间”。
|
||||
// 2. 子游戏按界面选项拼出 roomtype(房型配置串,编码局数/人数/扣卡/规则等,
|
||||
// 由各子游戏按玩法自定义与解析),组装并发送创建房间请求:
|
||||
// Net.Send_create_room({
|
||||
// agentid : GameData.AgentId,
|
||||
// playerid: C_Player.playerid,
|
||||
// gameid : GameData.GameId,
|
||||
// roomtype: <房型配置字符串>
|
||||
// });
|
||||
//
|
||||
// 本麻将实现见 codes/game/ui/handlers/CreateRoomEventHandler(bindEvents 注册
|
||||
// 25→submit;submit 用 UIManager._buildRoomTypeString 拼 roomtype 后 Net.Send_create_room)。
|
||||
// ============================================================================
|
||||
|
||||
// ---------- 配置区(数据,子游戏按玩法填值;与 00 的 Game_Config 分工) ----------
|
||||
var Game_Modify = Game_Modify || {};
|
||||
// ---------- 平台需要的必须字段 ----------
|
||||
Game_Modify.roomDes = ""; // 房间描述,子游戏在 setRoomDes 内填
|
||||
Game_Modify.game_config = {}; // 游戏配置默认值
|
||||
Game_Modify.combat = {
|
||||
maxPlayerCount: 5,
|
||||
pageOnelimitStrLen: 8,
|
||||
pageOneDoc: false,
|
||||
pageTwolimitStrLen: 16,
|
||||
pageTwoDoc: false
|
||||
};
|
||||
Game_Modify.Type_1 = [
|
||||
{ id: 0, des: "10局(房卡X1)", roomcard: 1, type: 1 },
|
||||
{ id: 1, des: "20局(房卡X2)", roomcard: 2, type: 2 }
|
||||
];
|
||||
Game_Modify.Type_2 = [
|
||||
{ id: 0, des: "房主扣卡", type: 1 },
|
||||
{ id: 1, des: "每人扣卡", type: 2 }
|
||||
];
|
||||
Game_Modify.CreateRoomData = {
|
||||
Type_1: 0,
|
||||
Type_2: 0
|
||||
};
|
||||
|
||||
|
||||
// ---------- 接口转发壳(A 类:无 hook 即 no-op) ----------
|
||||
Game_Modify.utlmousedown = function (gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6) {
|
||||
if (window.SubGameHooks && SubGameHooks.utlmousedown) return SubGameHooks.utlmousedown(gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6);
|
||||
};
|
||||
Game_Modify.utlmousedown_nomove = function (gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5) {
|
||||
if (window.SubGameHooks && SubGameHooks.utlmousedown_nomove) return SubGameHooks.utlmousedown_nomove(gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5);
|
||||
};
|
||||
Game_Modify.mouseup = function (gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2) {
|
||||
if (window.SubGameHooks && SubGameHooks.mouseup) return SubGameHooks.mouseup(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
|
||||
};
|
||||
Game_Modify.utlmousemove = function (gameid, spid, downx, downy, movex, movey, timelong, offmovex, offmovey, no1) {
|
||||
if (window.SubGameHooks && SubGameHooks.utlmousemove) return SubGameHooks.utlmousemove(gameid, spid, downx, downy, movex, movey, timelong, offmovex, offmovey, no1);
|
||||
};
|
||||
Game_Modify.utlgamemydrawbegin = function (gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7) {
|
||||
if (window.SubGameHooks && SubGameHooks.utlgamemydrawbegin) return SubGameHooks.utlgamemydrawbegin(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
};
|
||||
Game_Modify.gamemydraw = function (gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7) {
|
||||
if (window.SubGameHooks && SubGameHooks.gamemydraw) return SubGameHooks.gamemydraw(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
};
|
||||
Game_Modify.OpenCreateRoom = function () {
|
||||
if (window.SubGameHooks && SubGameHooks.OpenCreateRoom) return SubGameHooks.OpenCreateRoom();
|
||||
};
|
||||
Game_Modify.CloseCreateRoom = function () {
|
||||
if (window.SubGameHooks && SubGameHooks.CloseCreateRoom) return SubGameHooks.CloseCreateRoom();
|
||||
};
|
||||
Game_Modify.setRoomDes = function (roomcode, asetcount, roomtype) {
|
||||
if (window.SubGameHooks && SubGameHooks.setRoomDes) return SubGameHooks.setRoomDes(roomcode, asetcount, roomtype);
|
||||
};
|
||||
|
||||
// ---------- gameCombat 兼容空定义 ----------
|
||||
// 平台 gamemain.js 仍直接调用 gameCombat.utl*(战绩界面回调),保留全局对象与 6 个空接口防报错。
|
||||
// 战绩功能由 RecordView 重建(见迁移子项目 2);届时这些接口可改为委托或保持空。
|
||||
var gameCombat = gameCombat || {};
|
||||
gameCombat.utlani_doend = gameCombat.utlani_doend || function () {};
|
||||
gameCombat.utlmousedown = gameCombat.utlmousedown || function () {};
|
||||
gameCombat.utlmouseup = gameCombat.utlmouseup || function () {};
|
||||
gameCombat.utlmousemove = gameCombat.utlmousemove || function () {};
|
||||
gameCombat.utlgamemydraw = gameCombat.utlgamemydraw || function () {};
|
||||
gameCombat.utlgamemydrawbegin = gameCombat.utlgamemydrawbegin || function () {};
|
||||
// 战绩接收入口(平台 09_Net 调):转发到 SubGameHooks(框架转发壳不引用 codes;子游戏在 SubGameHooks 内转 CombatService)
|
||||
gameCombat.get_player_grade1 = function (_msg) {
|
||||
if (window.SubGameHooks && SubGameHooks.get_player_grade1) return SubGameHooks.get_player_grade1(_msg);
|
||||
};
|
||||
gameCombat.get_player_grade2 = function (_msg) {
|
||||
if (window.SubGameHooks && SubGameHooks.get_player_grade2) return SubGameHooks.get_player_grade2(_msg);
|
||||
};
|
||||
|
||||
// 战绩入口:13 号精灵点击 → 发送获取战绩请求(Net.Send_get_player_grade1,平台底层发送)
|
||||
// 点击经 平台 → Game_Modify.mouseup → SubGameHooks.mouseup → SpriteEventController 链到达
|
||||
if (typeof SpriteEventController !== 'undefined' && SpriteEventController.registerMouseUp) {
|
||||
SpriteEventController.registerMouseUp(13, function () {
|
||||
if (typeof Net !== 'undefined' && Net.Send_get_player_grade1) {
|
||||
Net.Send_get_player_grade1({
|
||||
agentid: GameData.AgentId,
|
||||
playerid: C_Player.playerid,
|
||||
gameid: GameData.GameId,
|
||||
type: 0
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 平台通用精灵交互(从 SubGameHooks 移入;经 Game_Modify.mouseup/gamemydraw→SubGameHooks→SpriteEventController 分发)
|
||||
// 注:25 号(创建房间提交)已归创建房间职责,移至 codes/game/ui/handlers/CreateRoomEventHandler.bindEvents。
|
||||
if (typeof SpriteEventController !== 'undefined') {
|
||||
// 150:帮助按钮
|
||||
if (SpriteEventController.registerMouseUp) {
|
||||
SpriteEventController.registerMouseUp(150, function () {
|
||||
if (typeof GameUI !== 'undefined' && GameUI.OpenHelp) { GameUI.OpenHelp(); }
|
||||
});
|
||||
}
|
||||
// 248:协议勾选绘制(勾上时自绘钩)
|
||||
if (SpriteEventController.registerDraw) {
|
||||
SpriteEventController.registerDraw(248, function (e) {
|
||||
if (GameData.ProtocolIndex) {
|
||||
ifast_mydrawbmp(e.spriteId, 4, 5, 5, 40, 40, 0, 0, 40, 40);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user