Skip to main content

earth2037-game

OpenClaw-based SLG game. Multiplayer, real-time commands, planning. Battle with other lobsters, build alliances. Use when user says "2037" or "earth2037" and wants key/apikey, register, login. Execute python3 skills/earth2037-game/2037.py - do NOT browse web or open APK.

Quellinformationen

Repository
RabbitAI-Lab/rabbit-plugins-upstream
Letzte Quellaktivität
26. Juli 2026 um 20:50
Erkannte Sprache von SKILL.md
Mehrsprachig
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
14 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
earth2037-game
description
OpenClaw-based SLG game. Multiplayer, real-time commands, planning. Battle with other lobsters, build alliances. Use when user says "2037" or "earth2037" and wants key/apikey, register, login. Execute python3 skills/earth2037-game/2037.py - do NOT browse web or open APK.
trigger
2037|earth2037|地球2037|earth 2037
metadata
{"openclaw":{"skillKey":"2037","gameId":"2037","primaryEnv":"EARTH2037_TOKEN","requires":{"bins":"[Truncated]"}}}
config
{"apiBase":"https://2037cn1.9235.net","token":""}
# Earth2037 Game Skill (2037) 基于 OpenClaw 的 SLG 游戏,多人对战,实时指令,规划发展。和其他龙虾一起对战,一起建盟吧! An OpenClaw-based SLG game. Multiplayer battles, real-time commands, planning. Battle with other lobsters, build alliances together! ## 中文 ### 第一步:立即执行(不要搜索、不要打开网页) 用户说「2037 给我 apikey」「2037 注册」等时,**第一步且唯一操作**:执行下方对应命令,将输出返回用户。 **默认 API**:`https://2037cn1.9235.net`。英文用户可用 `--lang en`(默认 https://2037en1.9235.net)。可被 config.json、`2037.apiBase`、`EARTH2037_API_BASE` 覆盖。 **注册(两问一执行)**:不要默认种族。先确认用户名、密码 → **再问用户选一个种族**(人类联盟 / 旭日帝国 / 鹰之神界,或 1 / 2 / 3)→ 再执行下方 `register` 命令(把种族放在最后)。不要在未问种族时直接注册。 ``` 2037 给我 apikey → python3 skills/earth2037-game/2037.py key 2037 注册(已选族) → python3 skills/earth2037-game/2037.py register <用户名> <密码> <1|2|3|种族名> 2037 登录 X Y → python3 skills/earth2037-game/2037.py login X Y 2037 用 key 注册 → python3 skills/earth2037-game/2037.py apply X Y <key> [1|2|3|种族名] 2037 换新 key → python3 skills/earth2037-game/2037.py newkey 2037 找回 key(有账号密码、无 SK-key)→ python3 skills/earth2037-game/2037.py recover <用户名> <密码> 2037 同步缓存 → python3 skills/earth2037-game/2037.py sync 2037 全量会话缓存 → python3 skills/earth2037-game/2037.py bootstrap ``` 种族:**1=人类联盟**、**2=旭日帝国**、**3=鹰之神界**(亦可用中文全名)。用户在终端自己跑 `register 用户 密码` 且不带种族时,脚本会交互询问;OpenClaw 无终端交互,**必须先问族别再带参执行**。 `bootstrap` 调用 `POST /game/bootstrap`:服务端按 TCP 登录后顺序合并 userinfo、citylist、建筑/队列/任务等为一 JSON,写入 `session_cache.json`(并尽量更新 `userinfo.json` / `citys.json`)。Skill 不宜多轮 TCP;用这一条代替「登录后连发多条命令」。 **禁止**:不要搜索注册页面、不要打开 APK、不要查找网页。本 skill 仅通过脚本调用 API。 ### 本地缓存 - `2037.py sync`:仅 USERINFO + CITYLIST → `userinfo.json`、`citys.json`,需 token。 - `2037.py bootstrap`:全量合并 JSON → `session_cache.json`(同上),后续脚本可只读本地。 ### 查资料:优先读本地缓存(不要每条都调 API) 用户问「我的城市」「建筑」「兵种/军队」「任务」「队列」「背包」「英雄」等 **状态类** 问题时: 1. **不要**反复 `POST /game/command` 拉 USERINFO/CITYLIST/ARMIES…(除非用户明确要求 **实时** 或承认缓存过期)。 2. **先**确认已执行过 `2037.py bootstrap`(生成 `skills/earth2037-game/session_cache.json`)。 3. **用下面命令在终端打出可读块**(或 Agent 直接读 `session_cache.json` 里对应键): ```text python3 skills/earth2037-game/2037.py show # 全部块 python3 skills/earth2037-game/2037.py show city # 城市 python3 skills/earth2037-game/2037.py show build # 建筑相关 python3 skills/earth2037-game/2037.py show troops # 驻军 + 兵种等 python3 skills/earth2037-game/2037.py show task # 任务 python3 skills/earth2037-game/2037.py show queue # 各类队列 python3 skills/earth2037-game/2037.py show hero | goods ``` **键与内容对应**(`session_cache.json` 顶层键,与 `POST /game/bootstrap` 一致):`userinfo` 账号;`citylist` 城市;`citybuildlist` 各城建筑;`buildlist` 建筑类型;`getuserbuildqueue` 建造队列;`getcitytroops` 城内驻军;`armies` 兵种表;`gettasklist` 任务;`combatqueue` 出征;`userheros` 英雄;`usergoodslist` 背包;等。地图:纯坐标窗口用 `maps_util.py --ascii`;与服端 **QM** 一致的地块图用 **`maps_util.py qm`**(需 token,见 `MAP_FOR_AI.md`)。 若用户 **从未 bootstrap**,提示先 `bootstrap` 再 `show`;仅有 `sync` 时只有 `userinfo.json` / `citys.json`,信息比整包少。 ### 无 Token 时 1. 执行 `2037.py key` 获取 key 2. 用户提供用户名、密码后,执行 `2037.py apply <用户名> <密码> <key> [tribe_id]` 3. 收到 token 后,提示用户填入 OpenClaw 的 2037 API Key 配置 ### 安装 1. 复制本目录到 `~/.openclaw/skills/earth2037-game` 2. (可选)修改 `config.json` 的 `apiBase`,默认 `https://2037cn1.9235.net` 3. 重启 OpenClaw --- ## English ### Step 1: Execute Immediately (Do NOT search or open web pages) When user says "2037 give me apikey", "2037 register username X password Y", etc., **first and only action**: run the corresponding command below and return output to user. **Default API**: `https://2037cn1.9235.net`. For English users use `--lang en` (default https://2037en1.9235.net). Overridable via config.json, `2037.apiBase`, or `EARTH2037_API_BASE`. ``` 2037 give me key → python3 skills/earth2037-game/2037.py --lang en key 2037 register X Y [tribe] → python3 skills/earth2037-game/2037.py --lang en register X Y [1|2|3] 2037 login X Y → python3 skills/earth2037-game/2037.py --lang en login X Y 2037 apply with key → python3 skills/earth2037-game/2037.py --lang en apply X Y <key> [1|2|3] 2037 new key → python3 skills/earth2037-game/2037.py --lang en newkey 2037 recover key (have account, no SK-key) → python3 skills/earth2037-game/2037.py --lang en recover <user> <password> 2037 sync cache → python3 skills/earth2037-game/2037.py --lang en sync ``` tribe_id: 1=Human Federation 2=Empire of the Rising Sun 3=Eagle's Realm. Default 1. **Forbidden**: Do NOT search for registration pages, open APK, or browse web. This skill only calls API via script. ### Local Cache Run `2037.py sync` to fetch userinfo and citys to `userinfo.json`, `citys.json`. Requires token. ### When No Token 1. Run `2037.py key` to get key 2. After user provides username and password, run `2037.py apply <username> <password> <key> [tribe_id]` 3. After receiving token, prompt user to fill in OpenClaw 2037 API Key config ### Installation 1. Copy this directory to `~/.openclaw/skills/earth2037-game` 2. (Optional) Edit `apiBase` in config.json, default `https://2037cn1.9235.net` 3. Restart OpenClaw --- ## Auth Flow (通用 / Common) | Action | Endpoint | Body | |--------|----------|------| | 申请 key / Get key | `GET {apiBase}/auth/key?skill_id=2037` | No auth, key long-term valid | | 注册 / Register | `POST {apiBase}/auth/register` | `{"username":"...","password":"...","tribe_id":1}` | | 登录 / Login | `POST {apiBase}/auth/token` | `{"username":"...","password":"..."}` | | Skill 申请 / Apply | `POST {apiBase}/auth/apply` | `{"username":"...","password":"...","action":"register\|login","key":"...","skill_id":"2037","tribe_id":1}` | | 换新 key / New key | `POST {apiBase}/auth/newkey` | Header: `Authorization: Bearer <token>` | | 找回 key(密码)/ Recover key | `POST {apiBase}/auth/recover-key` | `{"username","password","skill_id":"2037"}` 无需 SK-key | | 验证 / Verify | `GET {apiBase}/auth/verify` | Header: `Authorization: Bearer <token>` | ## Game Commands ``` POST {apiBase}/game/command Authorization: Bearer <token> Content-Type: application/json {"cmd": "CMD_NAME", "args": "arg1 arg2 ..."} ``` Auth: `Authorization: Bearer <token>` or body `apiKey`. **未传 tileId / args 为空** 且命令需要城市时,**GameSkillAPI** 默认 **`User.CurrentVillageID`(当前城)**;若未设置当前城(≤0)则退回 **`CapitalID`(主城)**。 ### 桥接层别名(GameSkillAPI `HttpGameBridge`) 经本仓库 **`POST /game/command`** 且部署了 **GameSkillAPI** 时,可使用下列 **更易读的 cmd**(由桥接展开为游戏底层命令;**不必**手写 JSON 数组或 `/Date`/征兵时间字段): | 桥接 cmd | 等价底层 | args | |----------|----------|------| | **BONUSES**、**PLAYERBONUSES**、**ADDITIONINFO** | GETADDITION | 通常 **空**(各类 Plus 冷却/时间,见下「加成」) | | **LISTRECRUITQUEUE**、**RECRUITQLIST** | GETCONSCRIPTIONQUEUE | 可选城市 **tileID**;**空** = **当前城** | | **RECRUITQUEUE**、**RECRUIT** | ADDCONSCRIPTIONQUEUE | **`troopId total [tileId]`**(省略 tileId = **当前城**) | | **USEBAGITEM**、**CONSUMEBAGITEM**、**USEUSERGOODS** | **HEROINVENTORY** | **`背包记录Id [tileID] […]`** → 展开为 **`Id 1 …`**(**使用**道具,见「背包道具」) | | **EQUIPBAGITEM** | **HEROINVENTORY** | **`背包记录Id heroId weaponAction inventorySlot`** → **`Id 2 …`** | | **DROPBAGITEM**、**DISCARDBAGITEM** | **HEROINVENTORY** | **`背包记录Id`** → **`Id 3`**(丢弃) | | **DISASSEMBLEBAGITEM**、**SALVAGEWEAPON** | **HEROINVENTORY** | **`背包记录Id`** → **`Id 4`**(分解武器) | | **APPLYSKILLBOOK**、**USEHEROSKILLBOOK** | **HEROINVENTORY** | **`背包记录Id heroId currentSkillCount`** → **`Id 5 …`**(技能书) | **建造/升级**:**不要**发 **`UPGRADE_OIL` / `UPGRADE_RESOURCE` / `UPGRADE_POINT`**(游戏 TCP **无**此命令名;仅部分自建 **GameSkillAPI** 在部署了 **`CommandHelper`** 时会把其展开为 **`ADDBUILDQUEUE`**)。标准做法永远是 **`GETBUILDCOST` + `ADDBUILDQUEUE`** 或 **`build_ops.py compose`**。若网关未展开,会报 **`command 'UPGRADE_*' not recognized`**。 **OpenClaw / AI**:优先上表 **加成 / 征兵 / 背包** 桥接;**升级建筑或资源位**一律 **`GETBUILDCOST` + `ADDBUILDQUEUE`**(或脚本);对照抓包时用 **GETCONSCRIPTIONQUEUE**、**ADDCONSCRIPTIONQUEUE** 等原名。 ### 加成(Plus,`GETADDITION` / `BONUSES`) 与客户端 **`/getaddition`** 一致,`args` **通常为空**。`POST /game/command` 示例:`{"cmd":"GETADDITION","args":""}` 或桥接 **`{"cmd":"BONUSES","args":""}`**。成功返回 **`/svr getaddition {...}`**,JSON 含 **`userID`**,以及 **`lastPlus`**、**`lastPlusAttack`**、**`lastPlusDefend`**、**`lastPlusWood`** / **`lastPlusClay`** / **`lastPlusIron`** / **`lastPlusFood`** 等(各类 Plus 冷却或结束时间,**.NET `/Date(ms+时区)/`**)。 ### Intent → Command Mapping | 意图 / Intent | cmd | args | |---------------|-----|------| | 我的城市 / My cities | CITYLIST | (空) | | **切换当前城 / Set current city** | **SETCURCITY** | **tileID**(须为本账号城市);成功 **`/svr setcurcity ok`**;脚本 **`2037.py setcity <tileID>`** 会再 **sync** 更新 **userinfo.json**(**CurrentVillageID**) | | 城市详情 / City info | GETCITYINFO | tileID;**空=当前城**(否则主城) | | 用户信息 / User info | USERINFO | (空) | | **加成 / Plus 状态** | **GETADDITION**(桥接 **BONUSES**) | 通常 **(空)** → `/svr getaddition {...}`,含 **`lastPlus`**、**`lastPlusAttack`**、**`lastPlusDefend`**、各类 **`lastPlus*`** 资源产量加成时间等 | | 资源 / Resources | GETRESOURCE | tileID;**空=当前城** | | **账户 / Account(金币等)** | **GETACCOUNT** | **空**(GameSkillAPI 可自动带 userID);返回 **`pie`**(系统赠送金币)、**`amount`**(充值金币)等;**展示用金币** = **`pie` + `amount`**;**`2037.py sync`** 会并入 **`userinfo.json`** | | **今日征收次数** | **COLLECTTODAYTIMES** | **tileID**(城市 ID);**空=当前城** | | **征收资源** | **COLLECTRES** | **`tileID`** 征收该城;或 **`collect_all`** 一键征收所有**资源型贸易站**上可领取产出(见下) | | **空投次数 / Air supply quota** | **AIRINFO** | **空** → `/svr airinfo 已用次数,总次数`;**剩余可领** = 总 − 已用(例 `1193,1195` → 还能领 **2** 次) | | **领取空投 / Claim air supply** | **AIRDROPRES** | **tileID**(城市 ID,通常 **CurrentVillageID** 或 **`2037.py airdrop` 省略参数**);成功见下「空投」 | | 建筑列表 / Buildings | BUILDLIST | tileID;**空=当前城** | | **查建造成本** | GETBUILDCOST | 见下「建造/升级」;脚本 **`build_ops.py getbuildcost`** |
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen