赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 56 |
经验 | 1174 |
最后登录 | 2024-6-20 |
在线时间 | 177 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 5621
- 在线时间
- 177 小时
- 注册时间
- 2011-6-3
- 帖子
- 32
|
本帖最后由 lqi991 于 2021-10-1 03:36 编辑
两段代码,保存,和刷新位置
1.需要在两段代码注释下设置一个变量ID,和设置需要保存的事件ID
(注:限一个地图,如果需要多地图保存再说吧)
2.为方便执行代码,可以写在公共事件,一个保存,一个刷新
3.创建一个事件,触发条件:并行处理,调用刷新事件位置代码,然后在底下暂时删除事件,这样地图切换回来就读取位置
保存事件位置:
- // 需要一个变量保存,输入ID
- let id = 1;
- // 需要保存的事件如 1,3,4
- // 输入: [1,3,4]
- // (注意 , 号,是英文符号)
- let sz = [];
- (function () {if (!$gameVariables.value(id)) $gameVariables._data[id] = [];let d = $gameVariables._data[id];const sx = ['x', 'y', '_direction', '_directionFix', '_moveSpeed', '_moveFrequency', '_characterName', '_characterIndex', '_pattern', '_walkAnime', '_stepAnime', '_through'];for (let a = 0; a < sz.length; a++) {let sj = $gameMap.event(sz[a]);if (sj) {d[sz[a]] = {};for (let b = 0; b < sx.length; b++) {d[sz[a]][sx[b]] = sj[sx[b]];};};};})();
复制代码
刷新事件位置:
- // 输入读取的变量ID
- let id = 1;
- ;(function () {if (!$gameVariables.value(id)) $gameVariables._data[id] = [];let d = $gameVariables._data[id];for (let n in d) {if (d[n]) {let sj = $gameMap.event(n);if(sj){for(let b in d[n]){sj[b] = d[n][b]};sj.setPosition(d[n].x,d[n].y)}};};})();
复制代码 |
|