Project1

标题: 请问有什么办法能把事件永久移动到指定位置? [打印本页]

作者: idler    时间: 2018-5-23 22:59
标题: 请问有什么办法能把事件永久移动到指定位置?
问题背景是这样的:使用物品随身帐篷,可以在野外任意一处建一个永久帐篷。
目前的想法是使用物品调用公共事件,把人物XY坐标存进变量,在地图上提前做一个帐篷,每次进地图就自动执行移动到指定地点,因为不自动执行下一次帐篷就会复原到指定地点。
但这样如果每建一个帐篷就需要保存两个永久的变量,并且数量是未知的。请问有什么办法可以把事件永久移动到指定位置吗?或者其他的方案解决这个问题。
作者: yang1zhi    时间: 2018-5-24 08:32
你是想在地图上生成无限个帐篷吗
作者: idler    时间: 2018-5-24 12:09
yang1zhi 发表于 2018-5-24 08:32
你是想在地图上生成无限个帐篷吗

是的。发帖有超过10字的限制,好坑
作者: yang1zhi    时间: 2018-5-24 15:08
idler 发表于 2018-5-24 12:09
是的。发帖有超过10字的限制,好坑

最好是有上限。无限个迟早会崩溃掉。不用两个。一个变量就能无限加所有坐标了。把这个变量设置成数组,然后把坐标添加进去。
$gameVariables._data[1] = []
像这样,先把1号变量设成空的数组
然后
var xy = [1,2]
把XY坐标设成数组
然后
$gameVariables._data[1].push(xy)
这样1号变量里面的内容就是
[[1,2]]
再添加个坐标就是
var xy = [3,4]
$gameVariables._data[1].push(xy)
就是
[[1,2],[3,4]]
你要是想获得   [1,2]
就是    $gameVariables._data[1][0]
[3,4]就是   $gameVariables._data[1][1]
获得3就是   $gameVariables._data[1][1][0]
获得最后一组内容就是
var last = $gameVariables._data[1].length
这样获得了这个数组的内容的个数,也就是长度
最后一位也就是最大个数减少一位,因为是从0开始
var new_last = lasr -1
然后下面这个就是获得了最后一位
var jieguo = $gameVariables._data[1][new_last]

作者: idler    时间: 2018-5-24 15:55
yang1zhi 发表于 2018-5-24 15:08
最好是有上限。无限个迟早会崩溃掉。不用两个。一个变量就能无限加所有坐标了。把这个变量设置成数组,然 ...

哦哦,谢谢大佬,理解了,感谢大佬的解答。不过刚找到一个很方便的插件,YEP_SaveEventLocations.js,可以保存事件移动之后的位置,下次进入地图不会复原,这样就不用一个变量来专门位置了,准备用这个了。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1