在《世間知らずの猫エルーシャ》的地图场景按 M 键,打开当前地图的实时渲染视图。
地图由 $dataMap 与 tileset 实时绘制,不使用任何预拼接图片——所以迷宫、宝箱、门、任务箭头的位置都是当前这一局的真实状态,包括已经打开过的宝箱和被事件改掉的地形。
世間知らずの猫エルーシャ (RPG Maker MV, NW.js 0.93, EnigmaVB) v1.04 パッケージ版
插件是纯 RMMV 代码,不使用 require / fs / process 等 NW.js 专属 API,因此打包版(经注入器加载)与解包版(nw.exe 直跑)行为一致。
| 类别 | 说明 |
|---|---|
| 图块 | 下层(z=0/1)与上层(z=2/3)分别绘制,含 A1–A4 自动图块、A5、B–E,另有阴影位与桌沿补正 |
| 远景图 | parallaxName 指定的远景按原尺寸平铺 |
| 图块事件 | tileId > 0 的事件始终渲染 |
| 门 / 闸门 | 图像名命中 door gate shutter 扉 ドア |
| 宝箱 | 图像名命中 chest 宝箱 |
| 对象角色 | 以 ! 前缀命名的行走图(isObjectCharacter) |
| 箭头 | 矢印 移動用矢印 arrow |
| 任务标记 | 事件页注释含 MOD:QG: 的事件 |
| 环境装饰 | 白名单内的图像名(见下方「渲染白名单」) |
NPC 与敌人的行走图不在白名单内,不渲染——否则整张图会糊成一片人形色块。
事件按 y → x → eventId 排序绘制以保证前后遮挡关系,并按事件优先级分层:优先级 0/1 画在上层图块之下,优先级 2 画在上层图块之上。
地图上的红点 + 白色描边 + 十字准星,始终绘制在最顶层。
标题栏显示地图名与当前坐标,底栏显示操作提示,并在底栏左侧标注当前语言。
界面文案支持简体中文 / 英文 / 日文三种语言,由一套外置语言包系统驱动(文案不硬编码在插件里)。详见下文「语言包」。
- 打开地图后,按 Tab 可在三种语言间循环切换;选择写入
localStorage,下次启动直接生效。 - 未手动切换时,语言按
auto逻辑判定:日语系统 → 日文,中文系统 → 中文,其余系统 → 英文。 - 语言包缺失时自动回退到插件内置的同套文案,功能不受影响,只是不能切换。
- 字号自适应:底栏「语言提示(左)+ 操作提示(右)」共用一行,会按两段宽度之和加间隙自动缩字号,因此日文、英文这类较长文案不会在中缝互相压字。顶栏同理按可用宽度收缩。基准字号为顶栏 16px、底栏 14px,需要微调改源码顶部的
TITLE_FONT_SIZE/FOOTER_FONT_SIZE即可。
| 操作 | 按键 |
|---|---|
| 打开 / 关闭地图 | M(或 Esc) |
| 关闭地图 | 鼠标右键 |
| 缩放 | 鼠标滚轮,或 Q / W |
| 平移 | 方向键,或鼠标拖动 |
| 快速平移 | Shift + 方向键(双倍速度) |
| 切换语言 | Tab(在小地图界面内循环切换 中 / 英 / 日) |
打开时自动缩放到「整张图刚好铺满窗口」并居中显示(小图放大到 1.0 倍封顶,不会拉伸)。缩放以玩家位置为锚点,所以放大后视口会跟着玩家走。缩放范围为整图铺满到 4 倍,每档 1.25 倍。
方向键是按住连续平移(每帧 22 px,按地图缩放比例换算),不是一格一格跳。
Esc 走的是 RMMV 的 cancel 键位,所以 X、Insert、小键盘 0 同样能关闭。
- 游戏目录已安装艾露莎注入器(
ElushaInjector.exe) - 打开注入器 → 导入 / 拖放
dist/MOD_RuntimeMap-0.7.1.elsmod - 打开插件开关 → 启动游戏
- 复制
dist/src/MOD_RuntimeMap/www/js/plugins/下全部内容到游戏www/js/plugins/(含MOD_RuntimeMap.js与data/MOD_RuntimeMap_真红/lang/语言包) - 在
www/js/plugins.js的$plugins数组末尾加一行:
{"name":"MOD_RuntimeMap","status":true,"description":"","parameters":{"language":"auto"}}- 用
nw.exe启动游戏
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
language |
select | auto |
默认语言。zh / en / ja,或 auto(跟随系统:ja→日文,zh→中文,其余→英文)。小地图界面内按 Tab 可临时切换,且会被记住 |
参数通过 PluginManager.parameters('MOD_RuntimeMap') 读取。若找不到同名插件,会自动尝试 MOD_RuntimeMap_JA,方便按语言分发不同文件名的版本。
文案外置在插件 data 目录下,遵循插件开发文档 §5.3 的 data/<插件名>_<作者>/ 路径规范:
files/www/js/plugins/data/MOD_RuntimeMap_真红/
├── plugin.json
└── lang/
├── _index.json 语言清单与切换顺序:["zh","en","ja"]
├── zh.json {"code":"zh","name":"简体中文","texts":{...}}
├── en.json
└── ja.json
加载顺序为三级兜底:fs(www/js/plugins/…) → fs(mods/…) → XHR(js/plugins/…),全失败则使用插件内置的同套文案。因此即便语言包读不到,小地图仍能正常显示。
- 新增语言:复制一份
<code>.json,在_index.json的order里加入新码即可,无需改动引擎代码。 - 修改文案:直接编辑对应
<code>.json的texts字段,重新打包生效。
要增删渲染的环境物件,直接编辑源码里的两个常量(MOD_RuntimeMap.js 约 516 行起):
var RENDERABLE_IMAGE_NAMES = [ // 精确匹配图像名
'Nature', 'Rural_TileC', 'Damage2', 'y46V6pT',
'$魔法陣', '$魔法陣2', // 魔法阵(监狱塔牢房封印等)
'$馬車', '$馬車2', // 马车
'$拘束', // 拘束台
'$boss01', '$boss02' // 地标性 BOSS(史莱姆大巢、魔王城)
];
var RENDERABLE_IMAGE_PATTERNS = [ // 正则匹配同族图像
/^RTPRecreation/i, // RTP 家具/摆设系列(XP/VX2/2k3)
/触手/ // 触手环境装饰(遗迹、巢穴)
];改完重新打包即可,不需要动别的地方。
python tools/build_elsmod.py # 重建全部插件
python tools/build_elsmod.py MOD_RuntimeMap # 只重建小地图产物输出在 dist/,源码副本在 dist/src/。脚本会自动把 JS 头注释的 @author 与 plugin.json、data 目录名三处同步,并做结构与 zip 校验。
.elsmod 就是 zip,包内结构:
MOD_RuntimeMap-0.7.1.elsmod
└── www/js/plugins/
├── MOD_RuntimeMap.js
└── data/MOD_RuntimeMap_真红/
├── plugin.json
└── lang/
├── _index.json
├── zh.json
├── en.json
└── ja.json
├── mods/MOD-03-runtime-map/ # 原始 MOD 目录(含已弃用的注入器 bootstrap)
│ └── files/www/js/plugins/
│ ├── MOD_RuntimeMap.js # ← 插件本体
│ ├── MOD_RuntimeMap_PackedBootstrap.js # ✗ 注入器专用,已弃用
│ └── MOD_RuntimeMap_OrigEventInformation.js # ✗ 原版插件备份,已弃用
├── dist/ # 可分发产物
│ └── MOD_RuntimeMap-0.7.1.elsmod
├── tools/build_elsmod.py # 打包脚本
└── 开发资料/插件开发文档.md # 插件开发规范
| 字段 | 值 |
|---|---|
| 名称 | MOD_RuntimeMap |
| 版本 | 0.7.1 |
| 作者 | 真红 |
| 游戏版本 | 1.04 |
| 依赖 | 无 |
| 冲突 | 无 |
- 占用 M 键:插件把按键码 77 映射为
modRuntimeMap。若同时装了别的占用 M 的插件,后加载的一方会覆盖映射。 - 菜单可用时才生效:沿用 RMMV 的
isMenuEnabled()判断,在禁用菜单的事件演出中按 M 不会打开地图。 - 首帧等待:地图较大时,打开瞬间需要等 tileset 与事件行走图加载完成(
isReady()挡住渲染),通常不到一秒。 - 本仓库根目录下的
README.txt(日文)、injector.exe、hookdll.dll、deploy.ps1、地図MOD起動-パッケージ版.bat都是注入器时期的遗留物,与插件本体无关。