陈娜佳

撰写了文章 发布于 2017-09-24 21:53:52

评论 5

琪露诺 1年前

看上去想要做到的需求是“修改(添加、删除)地图事件”……

最直接的做法我觉得可以是:
1、先选一张空白地图,用来放置各种临时添加的事件样板;
2、在Game_Map里加上attr_reader :map_id用来访问编号,还需要一个attr_accessor :need_refresh用来刷新;
2、假设空白地图的地图编号是A,需要的事件编号是B,在当前地图上下面脚本
map = load_data(sprintf("Data/Mapd.rxdata", A))
$game_map.events[$game_map.events.keys.max + 1] = Game_Event.new($game_map.map_id, map.events[B])
$game_map.need_refresh = true
这样的最大缺点是读档的时候不能保存事件位置,如果就一辆交通工具需要动态添加,可以用变量额外存一下地图id、X、Y,在读档以后用并行事件恢复一下。
思路就是直接复制空白地图的事件强行塞进新地图了(

另外VX和VA已经有了交通工具功能……可以直接使用没有任何麻烦。

陈娜佳 [作者] 1年前

@琪露诺 ‍ 我已经不碰rm很多年了。感觉你对rpgmaker的了解程度在我之上。关于你说的rm的自带交通工具,乘坐交通工具之后地图上的角色小队就消失了(我的推测,没验证过)。对于想完整复刻重装机兵的朋友来说,默认的交通工具不够完美。你的方法应该也能实现乘降系统,不过我原本的想法是把交通工具(乘降事件)直接放在地图里,方便作者设置。

琪露诺 1年前

@陈娜佳 ‍ 抱歉不了解重装机兵的系统,这样看上去的话,需要一小队成员全部替换成乘坐交通工具的图……那样也许还是脚本更方便吧。我也只是提出思路讨论啦,用在具体游戏里也要针对性想办法吧,可能从头修改脚本反而是最好用的……

IamI 1年前

把乘降放在菜单中不是什么大问题,呼出菜单的时候扫一遍$game_map.events,检查有没有相邻的标识事件即可。
真正的问题是当你**移过一个地图又下车时,需要为这辆车再度创建新事件,并把事件「真正的」保存到地图中(回存 $data_map),或者干脆不允许**在地图间切换。
我个人认为,对RM后续版本中的交通工具功能稍作改造来做这个系统,远远方便于用纯脚本混杂事件的方式来做。

陈娜佳 [作者] 1年前

@IamI ‍ 文中乘车的方法我已经在va中验证过了,但是下车和切换地图下车我还没有验证。如果能“对RM后续版本中的交通工具功能稍作改造来做这个系统”当然更好

登录奶牛关账号即可参与讨论

陈娜佳 的更多文章

查看所有文章

更多你可能感兴趣的文章

嵌入内容
复制以下代码可将该奶牛关内容分享到其他网站。
预览
复制地址
复制以下链接可将该奶牛关该内容分享到其他网站。
1 / 1