RMVA关于类似墙顶的自动元件可以自下而上通行的问题的解决方案

202301051
202301052

请看,图1展示的是RPG Maker VXAce自带RTP素材,在数据库-图块中被归类为“迷宫地图”的部分图块元件,是常用于绘制“城墙顶部”的元件之一,但是尽管我们如图2所示将该元件的上下两部分都设置为“X”的不可通行,玩家依然可以从没有下半部分墙体的位置行走到黑色的区域里去,这是不符合我们的预期的,以下是该问题的两种解决方案。

如果您使用的地图元件全部为默认自带的RTP素材,您可以直接使用方案1,如果您使用了外来的第三方素材,则您需要使用方案2并在数据库中对图块的数据进行一些调整。

打开脚本编辑器,我们的目标是修改Game_Map的472行左右的def passable?(x, y, d)函数的内容,但是为了后续代码管理与维护的方便,我们把左侧脚本列表滚动至最底端,看到名为Main的脚本后,鼠标右击并点选“插入”,复制下面的代码片段,并且粘贴在脚本编辑器右侧脚本内容的界面当中,同时在左下角,为这个新插入的脚本随意命名,例如“墙顶通行性修复”。

class Game_Map

def passable?(x, y, d)
#return false if terrain_tag(x, y) == 7
return false if (4367..8158).include?(layered_tiles(x, y)[2])
return check_passage(x, y, (1 << (d / 2 - 1)) & 0x0f)
end

end

方案1 默认素材方案:
完成上方代码内容的粘贴并且保存工程后,该问题理论上就已经得到解决。4367至8158是经过测试得到的可以被是做是墙顶的自动元件的ID范围,仅使用默认素材时您可直接套用该数据。

方案2 外来素材方案:
完成上方代码内容的粘贴,然后把第4行开头的井号删除以取消对该行的注释,并且在第5行的开头新增一个井号以注释此行,此举的目的是通过判断图块元件的地形标志而非元件ID的方法来决定元件的通行性,因为每位创作者所使用的外来素材规格和排列方式不完全一致,无法确立统一的ID范围,因此只能使用地形标志的方法进行通行性的界定。如果您已经使用地形标志7在其他的用途上,您也可以修改第4行末尾的数值7为0-6之间的任一数值,确保不与其他功能产生冲突。
在脚本编辑器中完成上述步骤并保存后,接下来回到数据库-图块中,在最右侧点击“地形标志”按钮,最后在您的图块中设置指定的墙顶元件的标记数值为7(或您自定义的0-6之间的那个数值),默认的地形标志数值均为0,鼠标左右键对其进行调整,如下图。
202301053

 

以上内容仅供参考。

 

发布者

ML4455739

宣传站维护团队

发表评论

电子邮件地址不会被公开。