
Dynamic Map Tiles Extended - DMTE
使地图图块动态化 - 实时改变图块、图块集和属性;图块可被推动和炸毁;可治疗或伤害;给予物品和金钱;播放音效和切换音乐;显示自定义事件;触发增益、减益、表情,以及
查看大图动态地图图块 (DMT)
DMT 允许你对地图图块应用动作,这些动作可以通过多种方式触发。
[img]https://i.ibb.co/dJP8H2Z8/triggers.png[/img]
DMT 目前支持以下触发器:
- Action - 玩家对图块执行操作时触发。
- CropHarvest - 作物、花卉或采集作物被收获时触发。
- CropPlanted - 作物、花卉或采集作物被种植时触发。
- Enter - 玩家进入某个地点时触发。
- Explode - 图块处于爆炸的爆裂范围内时触发。
- Item - 玩家手持指定物品与图块互动时触发。
- Load - 地图首次加载时触发。
- MonsterSlain - 玩家击杀怪物时触发。
- ObjectClicked - 指定物品完成生产并被收集时触发。
- ObjectPlaced - 指定物品被放置时触发。
- ObjectRemoved - 可使用工具移除的指定物品被移除时触发。
- Off - 玩家离开图块时触发。
- On - 玩家踩上图块时触发。
- Push - 图块被推动时触发。
- Pushed - 图块推动完成时触发。
- Talk - 玩家与 NPC 对话时触发。
- Tool - 在某个图块上使用特定工具时触发。
触发器的完整文档可在 GitHub 上找到。
[img]https://i.ibb.co/ZzbpVy0d/tile-actions.png[/img]
DMT 目前支持以下动作键:
地图相关动作
- DMT/action - 触发图块动作
- DMT/addLayer - 添加地图层
- DMT/addTilesheet - 添加地图图块表
- DMT/barrier - 阻止进入此图块
- DMT/changeIndex - 更改图块索引
- DMT/changeMultipleIndex - 更改多个图块索引
- DMT/changeProperties - 更改图块属性
- DMT/changeMultipleProperties - 更改多个图块属性
- DMT/push - 推动图块
- DMT/pushable - 使图块可被推动
- DMT/pushAlso - 同时推动
- DMT/pushOthers - 推动其他图块
玩家相关动作
- DMT/addQuest - 添加任务
- DMT/appearance - 更改玩家外观
- DMT/buff - 为玩家施加增益
- DMT/emote - 使玩家做出表情
- DMT/friends - 修改好感度
- DMT/health - 修改生命值
- DMT/healthPerSecond - 每秒修改生命值
- DMT/healthPerSecondContinuous - 持续每秒修改生命值
- DMT/give - 给予物品或金钱
- DMT/mailbox - 发送邮件到信箱
- DMT/mail - 设置邮件标志
- DMT/mailRemove - 移除邮件标志
- DMT/makeover - 应用换装套装
- DMT/makeoverGendered - 根据性别应用换装套装
- DMT/move - 移动玩家
- DMT/removeQuest - 移除任务
- DMT/slippery - 使玩家滑行
- DMT/speed - 修改玩家速度
- DMT/stamina - 修改玩家体力
- DMT/staminaPerSecond - 每秒修改体力
- DMT/staminaPerSecondContinuous - 持续每秒修改体力
- DMT/teleport - 传送玩家
- DMT/teleportTile - 将玩家传送到某个图块
- DMT/take - 从玩家处拿走物品或金钱
- DMT/transmog - 应用外观幻化
- DMT/transmogGendered - 根据性别应用外观幻化
- DMT/warp - 传送玩家到另一地点
- DMT/wardrobe - 应用衣柜套装
- DMT/wardrobeGendered - 根据性别应用衣柜套装
视觉和音频动作
- DMT/animation - 显示动画
- DMT/animationOff - 隐藏动画
- DMT/message - 显示消息
- DMT/music - 播放音乐
- DMT/sound - 播放音效
游戏玩法动作
- DMT/chest - 生成宝箱
- DMT/event - 开始事件
- DMT/explode - 使图块可爆炸
- DMT/explosion - 触发爆炸
- DMT/modData - 为物品或家具设置模组数据
- DMT/monster - 生成怪物
- DMT/object - 生成物品或家具
- DMT/terrainFeature - 生成地形特征
作物动作
- DMT/fertilize - 给图块施肥
- DMT/growCrop - 让作物完全生长
- DMT/killCrop - 杀死作物
- DMT/setCrop - 设置图块的作物
杂项动作
- DMT/invalidate - 使资产失效
动作的完整文档可在此处查阅:这里
[img]https://i.ibb.co/GfVPfPLp/getting-started.png[/img]
要开始使用 DMTE,首先安装模组。安装后,创建一个文件夹以便轻松访问,并为其命名,例如你的模组名。
打开文件夹并创建以下文件:
Content Patcher 的文档详细说明了语法的填写方式,因此建议仔细阅读。此模组不需要作为依赖项添加,任何编辑都可以通过 Content Patcher 的 HasMod 条件有条件地添加。
[img]https://i.ibb.co/XrkQsQCW/how-to-add-tile-actions.png[/img]
图块动作可以通过两种方式添加到地图中:EditMap 和 EditData。
EditMap
任何图块动作键都可以直接添加到图块的属性中,通过编辑地图图块实现,如下所示:
{
"Format": "2.8.0",
"Changes":
[
{
"LogName": "Change A Tile Index When Stepped On A Specific Coordinate",
"Action": "EditMap",
"Target": "Maps/Farm",
"MapTiles":
[
{
"Position":
{
"X": 72,
"Y": 15
},
"Layer": "Back",
"SetProperties":
{
"DMT/changeIndex_On": "69"
}
}
]
}
]
}
以上代码编辑了农场地图,并在位置 X:72、Y:15 的“Back”层图块上设置了属性 "DMT/changeIndex"。此属性带有触发器 "On",意味着当玩家踩上该图块时,属性将被激活。激活后,图块的纹理将更改为图块表中指定的索引(本例中为 "69")。
你可以在动作和触发器之间添加 Once 或 Swap,例如:
- "DMT/changeIndex_Once_On"
- "DMT/changeIndex_Swap_On"
Once 会在触发一次后移除该属性。
Swap 会将属性值与键前缀为 "Swap" 的属性进行交换,例如:
- "DMT/changeIndex_Swap_On"
- "SwapDMT/changeIndex_Swap_On"
你需要同时创建这两个条目才能使 Swap 生效。
EditData
该模组还提供了一个自定义数据字典,你可以将所有内容添加进去,这些内容会在游戏地点加载时自动应用。数据包含以下字段:
Locations:(可选) 应用属性的地点名称列表,例如:"Locations: ["Farm", "Beach"]" 或 "locations: ["Town", "Mountain", "Forest"]"。留空或省略将把动作应用到每个地点(不推荐)。
Layers:(可选) 应用属性的层 ID 列表,例如:"Layers: ["Back"]" 或 "layers: ["Buildings"]"。留空或省略将应用到每个层(不推荐)。
TileSheets:(可选) 在应用属性前检查的图块表 ID 列表。如果图块没有指定的图块表 ID,属性将不会被应用。例如:"TileSheets: ["indoors"]" 或 "tileSheets: ["outdoors"]"。
TileSheetPaths:(可选) 在应用属性前检查的图块表路径 ID 列表。如果图块没有指定路径的图块表,属性将不会被应用。
Indexes:(可选) 在应用属性前检查的图块索引数字 ID 列表。如果图块在图块表中的索引不在此列表中,属性将不会被应用。
Rectangles:(可选) 指定搜索区域的列表,例如:"Rectangles: [{"X": 5, "Y": 7, "Width": 3, "Height": 3}, {"X": 12, "Y": 23, "Width": 2, "Height": 6}]"。矩形是按图块而不是按大小搜索的。
Tiles:(可选) 指定应用动作的图块列表,例如:"Tiles: [{"X": 7, "Y": 18}, {"X": 24, "Y": 20}]"。建议与 Layers 一起使用。
Properties:(可选) 当条件满足时要应用的属性字典。此字段是旧格式;请改用 Actions。
Actions:对象列表,指定要应用于地图的属性的详细信息。动作具有以下格式:
- LogName:(可选) 一个唯一名称,当与此属性相关的任何内容记录到控制台时都会包含此名称,便于调试。
- Key:图块属性的键,例如 "DMT/give" 或 "DMT/animate"。
- Value:图块属性的值,遵循你希望使用的动作所描述的格式。
- Trigger:(依赖于动作) 用于激活此属性的触发器。
- Once:(可选) 是否只运行此属性一次然后移除。默认为 false。
- Swap:(可选) 触发后,将此键的值与键前缀为 Swap 的值进行交换(例如 DMT/sound 和 SwapDMT/sound)。默认为 false。
按照更新的格式,你的 Content Patcher 文件应如下所示:
{
"Format": "2.8.0",
"Changes": [
{
"LogName": "Slippery Tiles",
"Action": "EditData",
"Target": "DMT/Tiles",
"Entries": {
"{{ModId}}.IceTiles": {
"Locations": [
"Forest"
],
"Layers": [
"Back"
],
"TileSheets": [
"fest"
],
"TileSheetPaths": [
"Festivals"
],
"Indexes": [
226,
227
],
"Rectangles": [
{
"X": 0,
"Y": 0,
"Width": 100,
"Height": 100
}
],
"Actions": [
{
"LogName": "Ice Tiles Festival",
"Key": "DMT/slippery",
"Value": "0.25",
"Trigger": "Load",
"Once": false
}
]
}
}
}
]
}
在此示例中,满足所列条件的图块会变得滑溜。
[img]https://i.ibb.co/vfszq64/known-issues.png[/img]
暂无已知问题。
[img]https://i.ibb.co/gK0CmYz/technical.png[/img]
这是 aedenthorn 原版 Dynamic Map Tiles 模组的更新版本,由 MindMeldMax 从头重写以实现更简单的扩展性。此模组替换并扩展了 DMT 框架,该框架允许模组开发者通过为单个或广泛的地图图块分配图块属性来创建动态的游戏机制。虽然大多数以前的 DMT 内容包无法在不经修改的情况下直接使用,但这些改动应该很小;不过,建议迁移到更新的语法。
需要 SMAPI 和 Content Patcher。
源代码:https://github.com/aedenthorn/StardewValleyMods/tree/master/DynamicMapTilesExtended
[img]https://i.ibb.co/fV9Sqfvw/credits.png[/img]
- MindMeltMax:负责开发和维护 DMTE,并撰写文档。
- aedenthorn:负责开发原版框架、添加更多功能,并维护 DMTE。
- TheMightyAmondee:修复了滑行动作。
- kdau:提供了卷轴生成的图片。
- Stardew Valley Font Generator:提供了缩略图字体。
- Hitme:负责缩略图设计。
- Sexynes:负责组织协调工作。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。