设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: raisewing
打印 上一主题 下一主题

[有事请教] 有没有刷新当前事件的脚本?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3859
在线时间
721 小时
注册时间
2016-2-28
帖子
147
11
发表于 2020-5-22 00:20:13 | 只看该作者
hanyilun 发表于 2020-5-22 00:06
这个简单啊,只要做一些简单的调整就好了~
事件页1:不变
事件页2:与玩家接触,当独立开关A打开时启用, ...

这样

评分

参与人数 1+1 收起 理由
raisewing + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
417
在线时间
125 小时
注册时间
2010-10-11
帖子
96
12
 楼主| 发表于 2020-5-22 18:01:24 | 只看该作者
来个好心大佬指导一下吧!~~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
405
在线时间
56 小时
注册时间
2020-3-27
帖子
34
13
发表于 2020-5-23 05:01:00 | 只看该作者
raisewing 发表于 2020-5-22 18:01
来个好心大佬指导一下吧!~~

for(var eventID = 11; eventID <= 20; eventID++){
var mapID = this._mapId;
$gameSelfSwitches.setValue([mapID, eventID, "A"], true);
}

不谢

点评

我再去试试哈!~~谢谢大佬!~  发表于 2020-5-27 10:33
改一下ID后面的数字就好了啊 for(var eventID = 1; eventID <= 51; eventID++){ var mapID = this._mapId; $gameSelfSwitches.setValue([mapID, eventID, "A"], true); } 这是id1到51独立开关A   发表于 2020-5-27 04:52
数量有点大,一次要关50多个事件的所有独立开关。。。  发表于 2020-5-26 22:20

评分

参与人数 1+1 收起 理由
raisewing + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
31989
在线时间
5081 小时
注册时间
2012-11-19
帖子
4877

开拓者

14
发表于 2020-5-23 09:07:40 | 只看该作者
  1. //=================================================================================================
  2. Game_Map.prototype.restoreEvent = function() {
  3.     var arr = Array.prototype.slice.call(arguments, 0);
  4.     arr.forEach(function(id){
  5.         this._events[id] && this._events[id].restoreInitialState();
  6.     }, this);
  7.     arr.length > 0 && this.requestRefresh();
  8. };
  9. //=================================================================================================
  10. Game_Event.prototype.restoreInitialState = function() {
  11.     ['A','B','C','D'].forEach(function(n){
  12.         var key = [this._mapId, this._eventId, n];
  13.         $gameSelfSwitches.setValue(key, false);
  14.     });
  15. };
  16. //=================================================================================================
复制代码

吧这个脚本做成插件塞到工程里,作用为将指定事件的 ABCD 四个独立开关全部关闭。
用法:事件 -> 脚本:$gameMap.restoreEvent(id,id,id...);
括号里面的 事件id 可以填写多个

点评

谢谢大佬,麻烦在帮我一下好吗?我按照你给的添加完脚本,然后执行发现没有效果,是不是我一次性关闭的时间独立开关有点多,50多个事件的独立...  发表于 2020-5-26 22:18

评分

参与人数 1+1 收起 理由
raisewing + 1 塞糖

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1075
在线时间
122 小时
注册时间
2018-9-19
帖子
4
15
发表于 2020-5-23 12:05:12 | 只看该作者
其实前面那个事件的做法稍微改改就好
我这里有四个冰面事件


事件页一,玩家踩上去触发,独立开关a打开,出现裂纹

事件页二,独立开关a打开时再次踩上去触发,独立开关a关闭,独立开关b打开,变成大洞

事件页三,独立开关b打开时自动触发,就是掉下去,独立开关b闭,公共开关冰面状态打开

事件页四,公共开关冰面状态打开时自动触发,处理独立开关的页面,在所有冰面事件中找到编号最大的那个,把公共开关冰面状态关闭,我这里就是左下角这个ev005,这样可以确保前面的冰面事件都执行了事件页四,别的其中只处理独立开关就好

点评

谢谢,人物移动出地图后事件后面的操作是不再执行直接中断了的  发表于 2020-5-26 22:31

评分

参与人数 1+1 收起 理由
raisewing + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
405
在线时间
56 小时
注册时间
2020-3-27
帖子
34
16
发表于 2020-5-27 05:05:42 | 只看该作者
Rarian 发表于 2020-5-23 05:01
for(var eventID = 11; eventID

这是事件的ID,选择你想要的事件直接改(比如从2到999什么的) 这样的话你应该看得懂了吧

评分

参与人数 1+1 收起 理由
raisewing + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
417
在线时间
125 小时
注册时间
2010-10-11
帖子
96
17
 楼主| 发表于 2020-5-27 11:01:02 | 只看该作者
本帖最后由 raisewing 于 2020-5-27 11:19 编辑
Rarian 发表于 2020-5-23 05:01
for(var eventID = 11; eventID


for(var eventID = 27; eventID <= 76; eventID++){
var mapID = this._mapId;
$gameSelfSwitches.setValue([mapID, eventID, "A,B,C"],false);
}
把以上这段在事件中插入脚本,是不是就是关闭当前地图的27-76号事件的ABC独立开关?

点评

成功了,谢谢大佬!~~  发表于 2020-5-27 15:00
$gameSelfSwitches.setValue([mapID, eventID, "A"],false); $gameSelfSwitches.setValue([mapID, eventID, "B"],false); $gameSelfSwitches.setValue([mapID, eventID, "C"],false);加这个,其他的不变   发表于 2020-5-27 14:36
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-3 00:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表