Initial import of NousResearch/hermes-agent
Deploy Site / deploy-vercel (push) Has been cancelled
Deploy Site / deploy-docs (push) Has been cancelled
Docker / shell lint / Lint Dockerfile (hadolint) (push) Has been cancelled
Docker / shell lint / Lint docker/ shell scripts (shellcheck) (push) Has been cancelled
Docker Build and Publish / build-amd64 (push) Has been cancelled
Docker Build and Publish / build-arm64 (push) Has been cancelled
Lint (ruff + ty) / ruff + ty diff (push) Has been cancelled
Lint (ruff + ty) / ruff enforcement (blocking) (push) Has been cancelled
Lint (ruff + ty) / Windows footguns (blocking) (push) Has been cancelled
Nix Lockfile Fix / auto-fix-main (push) Has been cancelled
Nix Lockfile Fix / fix (push) Has been cancelled
Nix / nix (macos-latest) (push) Has been cancelled
Nix / nix (ubuntu-latest) (push) Has been cancelled
OSV-Scanner / Scan lockfiles (push) Has been cancelled
Build Skills Index / build-index (push) Has been cancelled
Tests / test (1) (push) Has been cancelled
Tests / test (2) (push) Has been cancelled
Tests / test (3) (push) Has been cancelled
Tests / test (4) (push) Has been cancelled
Tests / test (5) (push) Has been cancelled
Tests / test (6) (push) Has been cancelled
Tests / e2e (push) Has been cancelled
uv.lock check / uv lock --check (push) Has been cancelled
Docker Build and Publish / merge (push) Has been cancelled
Build Skills Index / trigger-deploy (push) Has been cancelled
Tests / save-durations (push) Has been cancelled
Deploy Site / deploy-vercel (push) Has been cancelled
Deploy Site / deploy-docs (push) Has been cancelled
Docker / shell lint / Lint Dockerfile (hadolint) (push) Has been cancelled
Docker / shell lint / Lint docker/ shell scripts (shellcheck) (push) Has been cancelled
Docker Build and Publish / build-amd64 (push) Has been cancelled
Docker Build and Publish / build-arm64 (push) Has been cancelled
Lint (ruff + ty) / ruff + ty diff (push) Has been cancelled
Lint (ruff + ty) / ruff enforcement (blocking) (push) Has been cancelled
Lint (ruff + ty) / Windows footguns (blocking) (push) Has been cancelled
Nix Lockfile Fix / auto-fix-main (push) Has been cancelled
Nix Lockfile Fix / fix (push) Has been cancelled
Nix / nix (macos-latest) (push) Has been cancelled
Nix / nix (ubuntu-latest) (push) Has been cancelled
OSV-Scanner / Scan lockfiles (push) Has been cancelled
Build Skills Index / build-index (push) Has been cancelled
Tests / test (1) (push) Has been cancelled
Tests / test (2) (push) Has been cancelled
Tests / test (3) (push) Has been cancelled
Tests / test (4) (push) Has been cancelled
Tests / test (5) (push) Has been cancelled
Tests / test (6) (push) Has been cancelled
Tests / e2e (push) Has been cancelled
uv.lock check / uv lock --check (push) Has been cancelled
Docker Build and Publish / merge (push) Has been cancelled
Build Skills Index / trigger-deploy (push) Has been cancelled
Tests / save-durations (push) Has been cancelled
This commit is contained in:
+206
@@ -0,0 +1,206 @@
|
||||
---
|
||||
title: "Minecraft模组包服务器 — 托管模组 Minecraft 服务器(CurseForge、Modrinth)"
|
||||
sidebar_label: "Minecraft 模组包服务器"
|
||||
description: "托管模组 Minecraft 服务器(CurseForge、Modrinth)"
|
||||
---
|
||||
|
||||
{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
|
||||
|
||||
# Minecraft 模组包服务器
|
||||
|
||||
托管模组 Minecraft 服务器(CurseForge、Modrinth)。
|
||||
|
||||
## 技能元数据
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| 来源 | 内置(默认安装) |
|
||||
| 路径 | `skills/gaming/minecraft-modpack-server` |
|
||||
| 平台 | linux, macos |
|
||||
|
||||
## 参考:完整 SKILL.md
|
||||
|
||||
:::info
|
||||
以下是 Hermes 在触发该技能时加载的完整技能定义。这是技能激活时 Agent 所看到的指令内容。
|
||||
:::
|
||||
|
||||
# Minecraft 模组包服务器配置
|
||||
|
||||
## 适用场景
|
||||
- 用户希望从服务器包 zip 文件搭建模组 Minecraft 服务器
|
||||
- 用户需要 NeoForge/Forge 服务器配置方面的帮助
|
||||
- 用户询问 Minecraft 服务器性能调优或备份相关问题
|
||||
|
||||
## 首先收集用户偏好
|
||||
开始配置前,向用户询问以下内容:
|
||||
- **服务器名称 / MOTD** — 服务器列表中显示什么?
|
||||
- **种子(Seed)** — 指定种子还是随机?
|
||||
- **难度** — 和平 / 简单 / 普通 / 困难?
|
||||
- **游戏模式** — 生存 / 创造 / 冒险?
|
||||
- **在线模式** — true(Mojang 验证,正版账号)还是 false(局域网/离线友好)?
|
||||
- **玩家数量** — 预计多少玩家同时在线?(影响内存与视距调优)
|
||||
- **内存分配** — 由用户指定,还是由 Agent 根据模组数量和可用内存决定?
|
||||
- **视距 / 模拟距离** — 由用户指定,还是由 Agent 根据玩家数量和硬件决定?
|
||||
- **PvP** — 开启还是关闭?
|
||||
- **白名单** — 开放服务器还是仅白名单?
|
||||
- **备份** — 是否需要自动备份?多久一次?
|
||||
|
||||
若用户不在意,使用合理默认值,但务必在生成配置前先行询问。
|
||||
|
||||
## 步骤
|
||||
|
||||
### 1. 下载并检查模组包
|
||||
```bash
|
||||
mkdir -p ~/minecraft-server
|
||||
cd ~/minecraft-server
|
||||
wget -O serverpack.zip "<URL>"
|
||||
unzip -o serverpack.zip -d server
|
||||
ls server/
|
||||
```
|
||||
查找:`startserver.sh`、安装器 jar(neoforge/forge)、`user_jvm_args.txt`、`mods/` 文件夹。
|
||||
检查脚本以确定:模组加载器类型、版本及所需 Java 版本。
|
||||
|
||||
### 2. 安装 Java
|
||||
- Minecraft 1.21+ → Java 21:`sudo apt install openjdk-21-jre-headless`
|
||||
- Minecraft 1.18-1.20 → Java 17:`sudo apt install openjdk-17-jre-headless`
|
||||
- Minecraft 1.16 及以下 → Java 8:`sudo apt install openjdk-8-jre-headless`
|
||||
- 验证:`java -version`
|
||||
|
||||
### 3. 安装模组加载器
|
||||
大多数服务器包包含安装脚本。使用 `INSTALL_ONLY` 环境变量可仅安装而不启动:
|
||||
```bash
|
||||
cd ~/minecraft-server/server
|
||||
ATM10_INSTALL_ONLY=true bash startserver.sh
|
||||
# 或对于通用 Forge 包:
|
||||
# java -jar forge-*-installer.jar --installServer
|
||||
```
|
||||
此步骤会下载库文件、修补服务器 jar 等。
|
||||
|
||||
### 4. 接受 EULA
|
||||
```bash
|
||||
echo "eula=true" > ~/minecraft-server/server/eula.txt
|
||||
```
|
||||
|
||||
### 5. 配置 server.properties
|
||||
模组/局域网的关键设置:
|
||||
```properties
|
||||
motd=\u00a7b\u00a7lServer Name \u00a7r\u00a78| \u00a7aModpack Name
|
||||
server-port=25565
|
||||
online-mode=true # false 表示无 Mojang 验证的局域网
|
||||
enforce-secure-profile=true # 与 online-mode 保持一致
|
||||
difficulty=hard # 大多数模组包以困难难度为平衡基准
|
||||
allow-flight=true # 模组服务器必须开启(飞行坐骑/物品)
|
||||
spawn-protection=0 # 允许所有人在出生点建造
|
||||
max-tick-time=180000 # 模组服务器需要更长的 tick 超时时间
|
||||
enable-command-block=true
|
||||
```
|
||||
|
||||
性能设置(根据硬件调整):
|
||||
```properties
|
||||
# 2 名玩家,高性能机器:
|
||||
view-distance=16
|
||||
simulation-distance=10
|
||||
|
||||
# 4-6 名玩家,中等配置机器:
|
||||
view-distance=10
|
||||
simulation-distance=6
|
||||
|
||||
# 8+ 名玩家或较弱硬件:
|
||||
view-distance=8
|
||||
simulation-distance=4
|
||||
```
|
||||
|
||||
### 6. 调整 JVM 参数(user_jvm_args.txt)
|
||||
根据玩家数量和模组数量调整内存。模组服务器的经验法则:
|
||||
- 100-200 个模组:6-12GB
|
||||
- 200-350+ 个模组:12-24GB
|
||||
- 为操作系统/其他任务至少保留 8GB 空闲内存
|
||||
|
||||
```
|
||||
-Xms12G
|
||||
-Xmx24G
|
||||
-XX:+UseG1GC
|
||||
-XX:+ParallelRefProcEnabled
|
||||
-XX:MaxGCPauseMillis=200
|
||||
-XX:+UnlockExperimentalVMOptions
|
||||
-XX:+DisableExplicitGC
|
||||
-XX:+AlwaysPreTouch
|
||||
-XX:G1NewSizePercent=30
|
||||
-XX:G1MaxNewSizePercent=40
|
||||
-XX:G1HeapRegionSize=8M
|
||||
-XX:G1ReservePercent=20
|
||||
-XX:G1HeapWastePercent=5
|
||||
-XX:G1MixedGCCountTarget=4
|
||||
-XX:InitiatingHeapOccupancyPercent=15
|
||||
-XX:G1MixedGCLiveThresholdPercent=90
|
||||
-XX:G1RSetUpdatingPauseTimePercent=5
|
||||
-XX:SurvivorRatio=32
|
||||
-XX:+PerfDisableSharedMem
|
||||
-XX:MaxTenuringThreshold=1
|
||||
```
|
||||
|
||||
### 7. 开放防火墙
|
||||
```bash
|
||||
sudo ufw allow 25565/tcp comment "Minecraft Server"
|
||||
```
|
||||
检查:`sudo ufw status | grep 25565`
|
||||
|
||||
### 8. 创建启动脚本
|
||||
```bash
|
||||
cat > ~/start-minecraft.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
cd ~/minecraft-server/server
|
||||
java @user_jvm_args.txt @libraries/net/neoforged/neoforge/<VERSION>/unix_args.txt nogui
|
||||
EOF
|
||||
chmod +x ~/start-minecraft.sh
|
||||
```
|
||||
注意:对于 Forge(非 NeoForge),参数文件路径不同。请查看 `startserver.sh` 获取确切路径。
|
||||
|
||||
### 9. 配置自动备份
|
||||
创建备份脚本:
|
||||
```bash
|
||||
cat > ~/minecraft-server/backup.sh << 'SCRIPT'
|
||||
#!/bin/bash
|
||||
SERVER_DIR="$HOME/minecraft-server/server"
|
||||
BACKUP_DIR="$HOME/minecraft-server/backups"
|
||||
WORLD_DIR="$SERVER_DIR/world"
|
||||
MAX_BACKUPS=24
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
[ ! -d "$WORLD_DIR" ] && echo "[BACKUP] No world folder" && exit 0
|
||||
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
|
||||
BACKUP_FILE="$BACKUP_DIR/world_${TIMESTAMP}.tar.gz"
|
||||
echo "[BACKUP] Starting at $(date)"
|
||||
tar -czf "$BACKUP_FILE" -C "$SERVER_DIR" world
|
||||
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
||||
echo "[BACKUP] Saved: $BACKUP_FILE ($SIZE)"
|
||||
BACKUP_COUNT=$(ls -1t "$BACKUP_DIR"/world_*.tar.gz 2>/dev/null | wc -l)
|
||||
if [ "$BACKUP_COUNT" -gt "$MAX_BACKUPS" ]; then
|
||||
REMOVE=$((BACKUP_COUNT - MAX_BACKUPS))
|
||||
ls -1t "$BACKUP_DIR"/world_*.tar.gz | tail -n "$REMOVE" | xargs rm -f
|
||||
echo "[BACKUP] Pruned $REMOVE old backup(s)"
|
||||
fi
|
||||
echo "[BACKUP] Done at $(date)"
|
||||
SCRIPT
|
||||
chmod +x ~/minecraft-server/backup.sh
|
||||
```
|
||||
|
||||
添加每小时 cron 任务:
|
||||
```bash
|
||||
(crontab -l 2>/dev/null | grep -v "minecraft/backup.sh"; echo "0 * * * * $HOME/minecraft-server/backup.sh >> $HOME/minecraft-server/backups/backup.log 2>&1") | crontab -
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
- 模组服务器**务必**设置 `allow-flight=true` — 带喷气背包/飞行功能的模组否则会踢出玩家
|
||||
- `max-tick-time=180000` 或更高 — 模组服务器在世界生成期间经常出现长 tick
|
||||
- 首次启动**很慢**(大型模组包需要数分钟)— 不必惊慌
|
||||
- 首次启动时出现"Can't keep up!"警告属正常现象,初始区块生成完成后会恢复
|
||||
- 若 `online-mode=false`,同时设置 `enforce-secure-profile=false`,否则客户端会被拒绝连接
|
||||
- 模组包的 `startserver.sh` 通常包含自动重启循环 — 请另行创建不含该循环的干净启动脚本
|
||||
- 删除 `world/` 文件夹可使用新种子重新生成世界
|
||||
- 部分模组包使用环境变量控制行为(例如 ATM10 使用 `ATM10_JAVA`、`ATM10_RESTART`、`ATM10_INSTALL_ONLY`)
|
||||
|
||||
## 验证
|
||||
- `pgrep -fa neoforge` 或 `pgrep -fa minecraft` 检查是否正在运行
|
||||
- 查看日志:`tail -f ~/minecraft-server/server/logs/latest.log`
|
||||
- 日志中出现"Done (Xs)!"表示服务器已就绪
|
||||
- 测试连接:玩家在多人游戏中添加服务器 IP
|
||||
+232
@@ -0,0 +1,232 @@
|
||||
---
|
||||
title: "Pokemon Player — 通过无头模拟器 + RAM 读取来玩宝可梦"
|
||||
sidebar_label: "Pokemon Player"
|
||||
description: "通过无头模拟器 + RAM 读取来玩宝可梦"
|
||||
---
|
||||
|
||||
{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
|
||||
|
||||
# Pokemon Player
|
||||
|
||||
通过无头模拟器 + RAM 读取来玩宝可梦。
|
||||
|
||||
## Skill 元数据
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| 来源 | 内置(默认安装) |
|
||||
| 路径 | `skills/gaming/pokemon-player` |
|
||||
| 平台 | linux, macos, windows |
|
||||
|
||||
## 参考:完整 SKILL.md
|
||||
|
||||
:::info
|
||||
以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 agent 在 skill 激活时看到的指令内容。
|
||||
:::
|
||||
|
||||
# Pokemon Player
|
||||
|
||||
通过使用 `pokemon-agent` 包进行无头模拟来玩宝可梦游戏。
|
||||
|
||||
## 使用时机
|
||||
- 用户说"play pokemon"、"start pokemon"、"pokemon game"
|
||||
- 用户询问 Pokemon Red、Blue、Yellow、FireRed 等
|
||||
- 用户想观看 AI 玩宝可梦
|
||||
- 用户提到 ROM 文件(.gb、.gbc、.gba)
|
||||
|
||||
## 启动流程
|
||||
|
||||
### 1. 首次设置(克隆、venv、安装)
|
||||
仓库为 GitHub 上的 NousResearch/pokemon-agent。克隆后,
|
||||
设置 Python 3.10+ 虚拟环境。使用 uv(速度更快,优先推荐)
|
||||
创建 venv 并以可编辑模式安装带有 pyboy extra 的包。
|
||||
若 uv 不可用,则回退到 python3 -m venv + pip。
|
||||
|
||||
本机已在 /home/teknium/pokemon-agent 完成设置,
|
||||
venv 已就绪 —— 只需 cd 进入该目录并执行 source .venv/bin/activate。
|
||||
|
||||
还需要一个 ROM 文件。请向用户索取。本机在该目录的
|
||||
roms/pokemon_red.gb 处已有一个。
|
||||
**绝不**下载或提供 ROM 文件 —— 始终向用户索取。
|
||||
|
||||
### 2. 启动游戏服务器
|
||||
在已激活 venv 的 pokemon-agent 目录内,运行
|
||||
pokemon-agent serve,通过 --rom 指定 ROM 路径,--port 9876。
|
||||
使用 & 在后台运行。
|
||||
如需从存档恢复,添加 --load-state 并指定存档名称。
|
||||
等待 4 秒启动完成,然后通过 GET /health 验证。
|
||||
|
||||
### 3. 为用户设置实时看板(dashboard)
|
||||
通过 localhost.run 使用 SSH 反向隧道,让用户可在浏览器中查看
|
||||
看板。使用 ssh 连接,将本地端口 9876 转发到 nokey@localhost.run
|
||||
的远程端口 80。将输出重定向到日志文件,等待 10 秒,
|
||||
然后在日志中 grep .lhr.life URL。将附加了 /dashboard/ 的 URL 提供给用户。
|
||||
隧道 URL 每次都会变化 —— 重启后请给用户新的 URL。
|
||||
|
||||
## 存档与读档
|
||||
|
||||
### 何时存档
|
||||
- 每 15-20 回合游戏操作后
|
||||
- 在道馆战、对手遭遇或高风险战斗**前**务必存档
|
||||
- 进入新城镇或地下城前
|
||||
- 在任何不确定的操作前
|
||||
|
||||
### 如何存档
|
||||
使用描述性名称 POST /save。示例:
|
||||
before_brock、route1_start、mt_moon_entrance、got_cut
|
||||
|
||||
### 如何读档
|
||||
使用存档名称 POST /load。
|
||||
|
||||
### 列出可用存档
|
||||
GET /saves 返回所有已保存状态。
|
||||
|
||||
### 服务器启动时读档
|
||||
启动服务器时使用 --load-state 标志可自动加载存档。
|
||||
这比启动后通过 API 加载更快。
|
||||
|
||||
## 游戏循环
|
||||
|
||||
### 第 1 步:观察(OBSERVE)—— 检查状态并截图
|
||||
GET /state 获取位置、HP、战斗、对话信息。
|
||||
GET /screenshot 并保存到 /tmp/pokemon.png,然后使用 vision_analyze。
|
||||
两者都要做 —— RAM 状态提供数值,视觉提供空间感知。
|
||||
|
||||
### 第 2 步:判断(ORIENT)
|
||||
- 屏幕上有对话/文字 → 推进对话
|
||||
- 在战斗中 → 战斗或逃跑
|
||||
- 队伍受伤 → 前往宝可梦中心
|
||||
- 接近目标 → 谨慎导航
|
||||
|
||||
### 第 3 步:决策(DECIDE)
|
||||
优先级:对话 > 战斗 > 治疗 > 剧情目标 > 练级 > 探索
|
||||
|
||||
### 第 4 步:行动(ACT)—— 最多移动 2-4 步,然后重新检查
|
||||
POST /action,使用**简短**的动作列表(2-4 个动作,而非 10-15 个)。
|
||||
|
||||
### 第 5 步:验证(VERIFY)—— 每次移动序列后截图
|
||||
截图并使用 vision_analyze 确认移动到了预期位置。
|
||||
这是**最重要**的步骤。没有视觉你**一定会**迷路。
|
||||
|
||||
### 第 6 步:用 PKM: 前缀将进度记录到记忆中
|
||||
|
||||
### 第 7 步:定期存档
|
||||
|
||||
## 动作参考
|
||||
- press_a —— 确认、对话、选择
|
||||
- press_b —— 取消、关闭菜单
|
||||
- press_start —— 打开游戏菜单
|
||||
- walk_up/down/left/right —— 移动一格
|
||||
- hold_b_N —— 按住 B 键 N 帧(用于加速文字显示)
|
||||
- wait_60 —— 等待约 1 秒(60 帧)
|
||||
- a_until_dialog_end —— 反复按 A 直到对话结束
|
||||
|
||||
## 经验总结的关键提示
|
||||
|
||||
### 持续使用视觉
|
||||
- 每移动 2-4 步截一次图
|
||||
- RAM 状态告诉你位置和 HP,但**不告诉你周围有什么**
|
||||
- 悬崖、栅栏、标牌、建筑门口、NPC —— 只能通过截图看到
|
||||
- 向视觉模型提出具体问题:"我北边一格是什么?"
|
||||
- 卡住时,在尝试随机方向前务必先截图
|
||||
|
||||
### 传送过渡需要额外等待时间
|
||||
走过门或楼梯时,地图切换期间屏幕会淡入黑色。
|
||||
**必须**等待切换完成。在任何门/楼梯传送后添加 2-3 个 wait_60 动作。
|
||||
不等待的话,位置读取会是旧数据,你会以为自己还在旧地图。
|
||||
|
||||
### 建筑出口陷阱
|
||||
离开建筑时,你会出现在门**正前方**。
|
||||
如果向北走,你会直接回到建筑内。**务必**先向左或向右侧移 2 格,
|
||||
再朝目标方向前进。
|
||||
|
||||
### 对话处理
|
||||
第一代文字逐字母缓慢滚动。要加速对话,
|
||||
按住 B 键 120 帧,然后按 A。根据需要重复。按住 B 使文字以最快速度显示。
|
||||
然后按 A 推进到下一行。
|
||||
a_until_dialog_end 动作会检查 RAM 对话标志,但该标志
|
||||
**不能捕获所有文字状态**。如果对话似乎卡住,
|
||||
改用手动 hold_b + press_a 模式,并通过截图验证。
|
||||
|
||||
### 悬崖是单向的
|
||||
悬崖(小型断崖边缘)只能向下跳(向南),不能向上攀爬(向北)。
|
||||
如果向北被悬崖阻挡,必须向左或向右找到绕行缺口。
|
||||
使用视觉识别缺口在哪个方向。明确询问视觉模型。
|
||||
|
||||
### 导航策略
|
||||
- 每次移动 2-4 步,然后截图检查位置
|
||||
- 进入新区域时,立即截图定向
|
||||
- 询问视觉模型"去[目的地]往哪个方向?"
|
||||
- 若尝试 3 次以上仍卡住,截图并完全重新评估
|
||||
- 不要连发 10-15 个移动动作 —— 你会走过头或卡住
|
||||
|
||||
### 从野生战斗逃跑
|
||||
在战斗菜单中,RUN 在右下角。从默认光标位置(FIGHT,左上角)到达 RUN:
|
||||
按下再按右将光标移到 RUN,然后按 A。用 hold_b 加速文字/动画。
|
||||
|
||||
### 战斗(FIGHT)
|
||||
战斗菜单中 FIGHT 在左上角(默认光标位置)。
|
||||
按 A 进入招式选择,再按 A 使用第一个招式。
|
||||
然后按住 B 加速攻击动画和文字。
|
||||
|
||||
## 战斗策略
|
||||
|
||||
### 决策树
|
||||
1. 想要捕捉?→ 削弱后投掷精灵球
|
||||
2. 不需要的野生宝可梦?→ 逃跑
|
||||
3. 有属性克制?→ 使用效果拔群的招式
|
||||
4. 无克制优势?→ 使用最强的本系招式
|
||||
5. HP 低?→ 换人或使用药水
|
||||
|
||||
### 第一代属性克制表(关键对应)
|
||||
- 水克火、地面、岩石
|
||||
- 火克草、虫、冰
|
||||
- 草克水、地面、岩石
|
||||
- 电克水、飞行
|
||||
- 地面克火、电、岩石、毒
|
||||
- 超能力克格斗、毒(第一代中极为强势!)
|
||||
|
||||
### 第一代特性
|
||||
- 特殊能力 = 特殊招式的攻击**和**防御
|
||||
- 超能力属性过于强大(幽灵系招式存在 bug)
|
||||
- 要害一击基于速度能力值
|
||||
- 缠绕/束缚使对手无法行动
|
||||
- 专注能量 bug:**降低**要害率而非提升
|
||||
|
||||
## 记忆约定
|
||||
| 前缀 | 用途 | 示例 |
|
||||
|--------|---------|---------|
|
||||
| PKM:OBJECTIVE | 当前目标 | 从青莲市商店取包裹 |
|
||||
| PKM:MAP | 导航知识 | 青莲:商店在东北方 |
|
||||
| PKM:STRATEGY | 战斗/队伍计划 | 对战小霞前需要草系 |
|
||||
| PKM:PROGRESS | 里程碑追踪 | 击败对手,前往青莲市 |
|
||||
| PKM:STUCK | 卡住情况 | y=28 处悬崖向右绕行 |
|
||||
| PKM:TEAM | 队伍备注 | 杰尼龟 Lv6,撞击 + 尾巴摇摆 |
|
||||
|
||||
## 进度里程碑
|
||||
- 选择初始宝可梦
|
||||
- 从青莲市商店取回包裹,获得图鉴
|
||||
- 岩石徽章 —— 小刚(岩石)→ 使用水/草
|
||||
- 瀑布徽章 —— 小霞(水)→ 使用草/电
|
||||
- 雷电徽章 —— 马修(电)→ 使用地面
|
||||
- 彩虹徽章 —— 莉卡(草)→ 使用火/冰/飞行
|
||||
- 灵魂徽章 —— 阿桂(毒)→ 使用地面/超能力
|
||||
- 沼泽徽章 —— 娜姿(超能力)→ 最难道馆
|
||||
- 火山徽章 —— 夏伯(火)→ 使用水/地面
|
||||
- 大地徽章 —— 坂木(地面)→ 使用水/草/冰
|
||||
- 四天王 → 冠军!
|
||||
|
||||
## 停止游戏
|
||||
1. 通过 POST /save 以描述性名称存档
|
||||
2. 用 PKM:PROGRESS 更新记忆
|
||||
3. 告知用户:"游戏已存为 [名称]!说 'play pokemon' 可继续。"
|
||||
4. 终止服务器和隧道后台进程
|
||||
|
||||
## 注意事项
|
||||
- **绝不**下载或提供 ROM 文件
|
||||
- 不要在未检查视觉的情况下发送超过 4-5 个动作
|
||||
- 离开建筑后向北走前务必先侧移
|
||||
- 门/楼梯传送后务必添加 wait_60 x2-3
|
||||
- 通过 RAM 检测对话不可靠 —— 用截图验证
|
||||
- 在高风险遭遇**前**存档
|
||||
- 每次重启隧道 URL 都会变化
|
||||
Reference in New Issue
Block a user