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

Project1

 找回密码
 注册会员
搜索

有没有刷新当前事件的脚本?

查看数: 5046 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-21 18:41

正文摘要:

有没有刷新当前事件的脚本?或者可以关闭地图中批量事件的独立开关的脚本也可以,是部分关闭,不是全部关闭。谢谢大佬们!

回复

Rarian 发表于 2020-5-27 05:05:42
Rarian 发表于 2020-5-23 05:01
for(var eventID = 11; eventID

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

评分

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

查看全部评分

太陽黑子 发表于 2020-5-23 12:05:12
其实前面那个事件的做法稍微改改就好
我这里有四个冰面事件


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

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

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

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

点评

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

评分

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

查看全部评分

芯☆淡茹水 发表于 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 塞糖

查看全部评分

Rarian 发表于 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 塞糖

查看全部评分

raisewing 发表于 2020-5-22 18:01:24
来个好心大佬指导一下吧!~~
hanyilun 发表于 2020-5-22 00:20:13
hanyilun 发表于 2020-5-22 00:06
这个简单啊,只要做一些简单的调整就好了~
事件页1:不变
事件页2:与玩家接触,当独立开关A打开时启用, ...

这样

评分

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

查看全部评分

hanyilun 发表于 2020-5-22 00:06:30
raisewing 发表于 2020-5-21 23:58
就是这样看上去比较怪

这个简单啊,只要做一些简单的调整就好了~
事件页1:不变
事件页2:与玩家接触,当独立开关A打开时启用,打开独立开关B
事件页3:并行处理,当独立开关B打开时启用,掉落事件,打开开关1
事件页4:并行处理,当开关1打开时启用,关闭独立开关A和B,关闭开关1

其实就是把原来的事件页2换成事件页3,事件页3的行走图替换成坑洞就好了
不过这样的话,掉落事件最好先等待20-30帧左右,或者加上一句“掉下去啦”之类的提示
不然行走图转换速度太快,会导致看不出来变成坑洞的过程

点评

嗯嗯,谢谢了哈,赶紧休息!  发表于 2020-5-22 01:00
今天太晚了,你看看能不能理解我说的意思,不能的话明天再研究吧  发表于 2020-5-22 00:58
每次进入有冰面的地图前打开公共开关啊,相当于把公共开关分离出来  发表于 2020-5-22 00:55
但是这样依然不能恢复在独立开关A或B开启状态下的冰面吧?因为A和B开关没有被关闭不会出现状态1的冰面?  发表于 2020-5-22 00:52
我刚才没考虑到不同地图的问题,这样应该是最稳妥的方法了  发表于 2020-5-22 00:48

评分

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

查看全部评分

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

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

GMT+8, 2025-1-12 20:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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