Install
openclaw skills install @hmily741963/qgqx-skill七国图腾战旗系统(选国 7 面 + 战斗单位按真实国别显示) • 基于阴阳家五德说的真实国色(秦黑/楚土黄/齐紫/赵红蓝/魏红/燕蓝/韩绿) • 7 种矢量图腾(鹰/凤/狼/鼎/龙/燕鸟/弓)+ 7 种特色边饰(锋刃/火焰/狼牙/回纹/水波/竹节)+ 穗 • 零报错,Playwright 真机验证通过
openclaw skills install @hmily741963/qgqx-skillA zero-dependency, single-file HTML5 Canvas strategy wargame in the spirit of 三国群英传 — isometric 3D 战棋, seven-warring-states theme, with combo chains, bond auras, co-op ultimate (合击必杀), and a general codex (武将图鉴). Two modes are bundled, and each supports two play styles:
人机对战 (vs AI) — default; you command one side, the computer commands the other.
双人轮流 Hotseat(同设备) — two human players share one device and take turns on the same screen. Chosen on the state-select screen via the 👥 双人轮流(同设备) toggle.
联机对战 (Net Play) — two players on separate tabs / separate devices play live. Chosen on the state-select screen via the 🌐 联机对战 toggle. Two transports: 本机多标签 (BroadcastChannel, same browser, zero setup) and 跨设备 (WebSocket relay net-server.js, two devices). Both skirmish and campaign support net play, host = red/我方, client = blue/敌方 (viewpoint swapped on client).
战役模式 (Campaign) — campaign-mode.html: pick a state, conquer cities, recruit generals, and unify the realm. Includes the 武将图鉴 collection system. Hotseat and 联机 apply to each battle (the strategic map stays single-player setup).
普通模式 (Skirmish) — skirmish-mode.html: pick a state + scenario, fast single battle. Hotseat and 联机 fully supported.
The skill is purely a launcher: it copies the bundled HTML into the current workspace and opens it in the built-in preview panel so the user plays instantly. No server, no build step, no network.
net-server.js and use 跨设备.Follow these steps exactly. The game is bundled under assets/ in this skill's directory.
Resolve the skill directory. The current skill lives at ~/.workbuddy/skills/qiguo-strategy-game/. The bundled files are:
assets/campaign-mode.html — 战役模式assets/skirmish-mode.html — 普通模式net-server.js — zero-dependency WebSocket relay for 跨设备 联机 (only needed for two-device matches)Choose which mode to open based on the user's words:
campaign-mode.htmlskirmish-mode.htmlHotseat note: the 人机 / 双人 toggle lives on the state-select screen (a row reading
对战模式: 🤖 人机对战 · 👥 双人轮流(同设备)). It is selected before choosing a state and applies to the whole battle. In Hotseat, Player 1 commands the blue side and Player 2 the red side; 结束回合 passes control to the other player (not the AI).
Copy the chosen HTML into the current workspace so the user owns a playable, editable copy. Use the Bash tool:
mkdir -p "<cwd>/七国群雄传" && cp "<skill_dir>/assets/<file>.html" "<cwd>/七国群雄传/<file>.html"
Replace <cwd> with the current working directory (from context) and <skill_dir> with the resolved skill path. Keep the English filename so the path stays portable.
CRITICAL — open in the built-in preview via present_files. After copying, call the present_files tool with the absolute path of the copied HTML file(s). This renders the game directly inside the conversation's preview panel and shows an artifact card.
present_files with the absolute local path, e.g. C:\Users\...\七国群雄传\campaign-mode.htmlfile://... URL or a relative path and tell the user to open it themselves. The user must be able to play immediately in the preview.Tell the user, in one short line, that the game is open in the preview and how to start (choose a state → start battle; in campaign, march from your capital to an adjacent enemy city).
localStorage; open via the 图鉴 button, shows "collected / total".These hooks keep players coming back and help the game spread — mention them when describing the skill:
gameMode='hotseat'.玩家1 · 秦 行动) and the status bar (玩家1 / 玩家2 counts, current side's 阵型 and 军师).玩家2 结束回合 ▶ when it is Player 2's turn.🏆 玩家1 · 秦 胜利! / 🏆 玩家2 · 赵 胜利! so both humans get credit.On the state-select screen, tap 🌐 联机对战 (default 🤖 人机对战). A room row appears with a room number, a transport toggle (本机多标签 / 跨设备), an optional server box, and 创建房间(主机)/ 加入房间(客机)buttons.
Two transports
net-server.js in this skill's directory. Start it with node net-server.js (default port 8770) on a machine reachable by both players; both enter ws://<host-ip>:8770 in the 服务器 box before joining.Match flow
Rules
🟢 你方回合(红方) / ⏳ 等待对方(蓝方) so each side knows when to act.net-server.js first.Note: in campaign net play, only the tactical battle is networked (host plays the strategy map; the client joins the battle the host launches). This is by design.