网淘吧来吧,欢迎您!

Pokemon Red

2026-03-31 新闻来源:网淘吧 围观:12
电脑广告
手机广告

《宝可梦 红》——你就是训练师

你将直接操作《宝可梦 红》游戏。无需通过中间脚本。你需要启动模拟器服务器,调用其HTTP接口获取游戏画面截图与状态,观察屏幕内容,决定操作指令并发送给模拟器。

首次设置

克隆代码库并安装依赖:

Pokemon Red

git clone https://github.com/drbarq/Pokemon-OpenClaw.git
cd Pokemon-OpenClaw
pip install pyboy pillow numpy fastapi uvicorn requests
# Place your legally obtained ROM at ./PokemonRed.gb

POKEMON_DIR环境变量设置为代码库的克隆路径(默认路径为:~/Code/pokemon-openclaw)。

启动游戏会话

# Start emulator server (background process)
cd $POKEMON_DIR && python scripts/emulator_server.py --save ready --port 3456

操作循环流程

每个操作回合按顺序执行以下步骤:

1. 获取游戏状态与截图

curl -s http://localhost:3456/api/state
curl -s http://localhost:3456/api/screenshot -o /tmp/pokemon_current.png

随后通过图像查看工具观察游戏截图。务必先观察再行动。

2. 决策:选择自动导航或手动操作?

行进时使用自动导航功能——该功能将保持阻塞状态直至抵达目标、遭遇对战或陷入卡顿:

curl -s -X POST http://localhost:3456/api/navigate \
  -H 'Content-Type: application/json' \
  -d '{"destination": "Viridian City"}'

自动导航将返回以下状态之一:

  • "状态": "已抵达"— 你到了!继续任务。
  • "状态": "战斗中"— 遭遇野外战斗。先战斗,然后再继续导航。
  • "状态": "卡住"— 无法到达目的地。尝试手动按钮或不同路线。
  • "状态": "错误"— 未知目的地或无路径。检查目的地列表。

响应始终包含完整的游戏状态,因此你能准确知道自己的位置。

重要提示:导航阻塞 — 在curl调用上设置较长超时(60-120秒)。

首先检查可用目的地:

curl -s http://localhost:3456/api/destinations

检查哪些地图有路径查找数据:

curl -s http://localhost:3456/api/maps

仅在以下情况回退到手动按钮:

  • 导航返回"卡住"或"错误"
  • 你在建筑物内进行特定交互时
  • 你在对话或菜单中时

3. 手动控制(需要时)

# Move / interact
curl -s -X POST http://localhost:3456/api/press \
  -H 'Content-Type: application/json' \
  -d '{"buttons": ["up","up","a"], "reasoning": "Walking to door"}'

有效按钮:,,,a,b,开始,选择. 每回合发送1-5个。4. 战斗 (当状态中 in_battle 为 true 时)

战斗:

  • a打开战斗菜单,a再次选择战斗,导航到招式,a确认,然后连按a跳过动画逃跑:
  • Press一个,然后一个选择"奔跑",快速连按一个跳过文本
  • 检查状态后 — 如果仍然战斗中,则重复操作

5. 任务追踪

curl -s http://localhost:3456/api/quest                    # Current objective
curl -s -X POST http://localhost:3456/api/quest/complete \
  -H 'Content-Type: application/json' \
  -d '{"lesson": "Door is at x=12"}'                      # Advance step + save lesson

6. 频繁保存

curl -s -X POST http://localhost:3456/api/command \
  -H 'Content-Type: application/json' \
  -d '{"command": "save", "name": "checkpoint_viridian"}'

关键端点

端点方法用途
/api/stateGET从RAM获取游戏状态(位置、队伍、徽章、战斗)
/api/screenshotGET游戏屏幕的PNG截图
/api/navigatePOST寻路至指定目的地
/api/destinationsGET列出所有导航目的地
/api/mapsGET哪些地图包含寻路数据
/api/pressPOST发送按键操作
/api/questGET当前任务与步骤
/api/quest/completePOST标记步骤完成,可选择保存一个经验教训
/api/knowledgeGET所有已学习的经验教训
/api/knowledge/lessonPOST添加新经验教训
/api/commandPOST保存/加载/加速指令

策略优先级

  1. 导航优先。进行任何移动时,使用/api/navigate接口。它会阻塞直到抵达目的地或遭遇战斗——无需轮询。
  2. 立即处理战斗。如果导航返回"status": "battle"状态,则进行战斗(狂按A键),然后再次导航至同一目的地。
  3. 检查任务。始终明确当前目标。不要漫无目的地游荡。
  4. HP管理。低于30% → 考虑治疗。低于15% → 必须治疗。导航至最近的宝可梦中心。
  5. 忽略text_active标志。文本检测标志已损坏(始终为真)。不要狂按B键来关闭不存在的文本。
  6. 频繁保存。每10个回合或完成任何里程碑后保存。

会话模式

子代理会话应遵循以下流程:

  1. 启动模拟器服务器(如果尚未运行)
  2. 检查任务状态与目的地
  3. 进行20-50个回合(根据需要结合导航与手动操作)
  4. 退出前保存状态
  5. 报告进度(位置、等级、任务步骤、任何亮点)

将笔记保存在/tmp/pokemon_notepad.txt以确保单次会话内的连续性。

完整游戏策略

请参阅references/game_instructions.md了解《宝可梦红》基础知识:移动、建筑、门、战斗、属性相克、治疗及任务系统。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第383856名访客 今日有1篇新文章/评论