Skip to content

About

RA2 map manager 红警2多版本地图管理器。使用前先移除游戏目录中的第三方地图才能识别最准确。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

红警2地图管理器GUI

截图展示:

XP版

win10版

功能说明

  1. 将地图整理放置在 maps 文件夹,支持子文件夹分类
  2. config.ini 保存多版本游戏目录
  3. 地图库按文件夹层级展示,支持将选中的地图安装到指定的游戏目录(可多选、可整文件夹安装)
  4. 支持列出和移除游戏目录中的第三方地图
  5. 自动读取地图文件内的真实名称([Basic] Name=),读取失败时回退显示文件名
  6. 安装时按地图格式自动匹配游戏版本,不兼容的格式自动跳过
  7. 地图预览:选中即显示官方内嵌预览图,可强制由地形数据渲染、保存/批量导出 PNG、打开独立 TK 预览器
  8. 一键启动游戏(原版 ra2.exe,尤里复仇 ra2md.exe / yuri.exe),详见下方"启动游戏规则"

地图格式说明

  • .map 任务地图:原版《红色警戒2》与《尤里的复仇》通用,仅用于单人战役,不能作为遭遇战对战地图
  • .mpr 原版遭遇战地图:由 ra2.exe 加载;原版/MOD 目录可用,含 ra2.exe 的尤里复仇目录同样可用(尤里复仇安装包通常自带 ra2.exe 原版端)
  • .yrm 尤里遭遇战地图:仅适配《尤里的复仇》本体及衍生MOD,原版红警2无法识别
  • .mmx 多地图包(MultiMap):内含多个遭遇战地图,原版与尤里复仇通用

安装自动匹配规则

  • .mpr 可安装到任何含 ra2.exe 的目录(原版/MOD 目录,以及含 ra2.exe 的尤里复仇目录);.yrm 只安装到"尤里复仇/MOD"目录
  • .map 与 .mmx 两个版本均可安装(.map 任务地图按内容检测版本:若检测到尤里复仇专属对象,则只安装到尤里复仇目录)

地图预览(ra2_map_previewer.py)

红警2 / 尤里复仇地图文件是 INI 文本 + Base64 二进制段混合格式:

[Map]           Size=0,0,宽,高
[Preview]       Size=0,0,预览宽,预览高
[PreviewPack]   官方内嵌预览图,24bpp RGB888,LZO1X 压缩
[IsoMapPack5]   等距地形格子,每格 11 字节,LZO1X 压缩
[OverlayPack]   矿石等覆盖物,512x512 字节,Format80/LCW 压缩

预览引擎(ra2_map_previewer.py,纯函数、无 GUI 依赖)优先还原地图内嵌的官方预览图(与游戏中看到的一致); 没有内嵌预览或预览损坏时,回退为根据 [IsoMapPack5] 绘制等距地形图。

  • GUI 版(MapManagerGUI.py):主窗口左下方"地图预览"框,选中左侧地图即显示;支持"强制地形渲染"开关、"保存当前预览"、"批量生成"、"打开 TK 预览器"。

  • TK 版(MapManagerTk.py,XP 专版):窗口按 1280x600 优化,主窗口同样集成"地图预览"框(选中即预览),并提供"保存预览 / 批量生成 / TK预览器 / 打开目录"。

  • 命令行(不依赖 GUI):

    • python ra2_map_previewer.py # 启动独立 TK 预览器
    • python ra2_map_previewer.py --map maps/xxx.mpr # 直接预览某张地图
    • python ra2_map_previewer.py --cli ./maps ./previews 2 # 批量导出 PNG(倍数 2)
    • python ra2_map_previewer.py --cli --render # 强制由地形数据渲染

    预览图保存在 previews/ 目录(文件名加 _preview.png 后缀)。

文件说明

  • MapManagerGUI.py 图形界面版(PyQt6/PyQt5 双兼容,自动选择)
  • MapManagerTk.py 图形界面版 · XP 专用(Tkinter,窗口 1280x600 优化,无需 PyQt)
  • ra2_map_previewer.py 地图预览图渲染引擎 + 独立 TK 预览器 + 命令行批量导出
  • map_utils.py 地图解析、格式识别、目录识别、安装/启动等公共逻辑
  • config.ini 游戏版本配置(见下方格式)
  • maps/ 地图库文件夹
  • 打包版(dist\RA2MapManager.exe):首次运行会自动在 exe 同目录生成默认 config.ini 与 maps 文件夹,无需手工创建
  • XP 打包版(dist\RA2MapManagerXP.exe):32 位,供 Windows XP 使用,需要目标XP系统环境+python3.4编译打包

config.ini 格式示例(可自行增删版本)

[ra2]
name=红色警戒2原版
gamedir=

[ra2md]
name=红色警戒2:尤里的复仇
gamedir=

[ra2glory]
name=红色警戒2共和国之辉
gamedir=

游戏目录识别规则

  • 目录中存在 gamemd.exe 或 yuri.dll -> 识别为"尤里复仇/MOD"
  • 否则 -> 识别为"原版/MOD"
  • 说明:仅存在 ra2md.exe 时(部分精简版无 gamemd.exe/yuri.dll)也按尤里复仇处理

启动游戏规则

操作行的两个启动按钮常驻,所选版本目录中没有对应 exe 时按钮自动禁用(变灰):

  • ▶ 启动 RA2:启动 ra2.exe(原版红警2,备选 game.exe)
  • ▶ 启动尤里:启动 ra2md.exe / yuri.exe(尤里复仇,MOD 备选 gamemd.exe)

使用提示

  • 双击游戏版本表格中的目录列,可直接选择游戏根目录
  • 点击"▶ 启动 RA2"或"▶ 启动尤里"按钮启动当前选中的游戏版本(按钮不可用时说明该目录不含对应 exe)
  • 地图分发默认平铺到游戏根目录(原版红警不识别子目录地图)
  • 在左侧地图库选中一张地图,左下方/左侧"地图预览"框会立即显示其预览图;勾选"强制地形渲染"可忽略内嵌预览改由地形数据绘制
  • 若游戏安装在 Program Files 等系统保护目录(普通权限无法写入, 会导致安装/移除地图失败或启动 ra2.exe 权限不足),启动程序或 点击启动按钮时会询问是否以管理员身份运行;仅此时询问, 平时不弹窗;Windows XP 无 UAC,不受影响

运行环境

  • Windows 7 及以上:Python 3.x + PyQt6 或 PyQt5(源码运行 MapManagerGUI.py); 或运行 MapManagerTk.py(Tkinter,无需 PyQt)
  • Windows XP:源码运行需 32 位 Python 3.4 + 仅标准库 Tk(TK 版); 打包使用 build_xp.bat(PyInstaller 3.3.1 加 --noupx), 产物 dist\RA2MapManagerXP.exe(32 位)可直接在 XP 运行
  • 可选依赖 Pillow(pip install Pillow)—— 提供地图预览与批量导出; 未安装时预览功能不可用,其余地图管理功能不受影响

附:地图格式详解

  • .map 格式:是《红色警戒2》原版、《尤里的复仇》通用的任务地图格式,仅用于单人游戏的新战役模式,无法直接作为遭遇战对战地图使用。
  • .mpr 格式:是《红色警戒2》原版(含共和国之辉等主流MOD)的专属遭遇战地图格式,由 ra2.exe 加载;尤里复仇目录若自带 ra2.exe 原版端,同样可加载运行该格式作为对战地图。
  • .yrm 格式:是资料片《尤里的复仇》的专属遭遇战地图格式,仅适配尤里的复仇本体及对应衍生MOD,原版红警2无法识别该类地图文件。

About

RA2 map manager 红警2多版本地图管理器。使用前先移除游戏目录中的第三方地图才能识别最准确。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages