Project1

标题: 请问如何用变量操作公共事件? [打印本页]

作者: 鱼香肉丝先辈    时间: 2022-4-18 20:16
标题: 请问如何用变量操作公共事件?
  各位大佬,感谢您的驻足。这是我个人的一点小问题。
  我游戏我决定以某个变量作为主线推动的标准。就是希望可以当某个变量达到时,无论玩家在哪里,都会主动触发一段剧情。
  我最先想到的是公共事件,不过公共事件只有开关……
  所以想问一下各位大佬,请问有办法做到吗?没有的话只能每个地图挨个粘贴吗?
作者: xiamumomo    时间: 2022-4-18 20:35
那就开关开启内容由分支条件判断变量
作者: 米诺松鼠    时间: 2022-4-19 00:25
触发条件选并行处理,然后执行内容第一句就是if变量=你想要的。然后分支里面写剧情事件。结束分支之前再加一个改变这个变量的语句避免反复触发。
作者: 小怪兽奇奇侠    时间: 2022-4-19 08:16
嗯,以上二位言之有理,令人赞同
作者: 鱼香肉丝先辈    时间: 2022-4-20 10:02
xiamumomo 发表于 2022-4-18 20:35
那就开关开启内容由分支条件判断变量

  谢谢大佬,我去试试。
作者: 鱼香肉丝先辈    时间: 2022-4-20 10:14
米诺松鼠 发表于 2022-4-19 00:25
触发条件选并行处理,然后执行内容第一句就是if变量=你想要的。然后分支里面写剧情事件。结束分支之前再加 ...

谢谢大佬
作者: asukalin    时间: 2022-4-20 10:20

触发条件并行处理,开关选你想要的那个
例如我这个图里的,就是开关#0041变为ON之后自动响起电话铃

如果你希望事件只执行一次就中止,可以在事件里加上一行
开关操作#XXXX = OFF
作者: bleen    时间: 2022-8-16 13:54
本帖最后由 bleen 于 2022-8-16 14:00 编辑

我现在遇到同样的问题,受教了受教了


作者: 小秋橙    时间: 2022-8-23 22:07
Game_Map.prototype.requestRefresh = function() {
    this._needsRefresh = true;
};
官方的所有事件页都是通过这个函数来刷新的(比如改变行走图),这个函数会在【开关/变量/独立开关/队员组成/道具数量】变化时自动执行。
既然公共事件的自动触发只能用开关而不能用变量,那我们可以在这个函数里判断变量并且根据变量去捆绑性地修改开关,比如这样:
Game_Map.prototype.requestRefresh = function() {
    if ($gameVariables.value(114) >= 514) $gameSwitches._data[810] = true; // 当114号变量的值大于等于514时,同步自动开启810号开关。
    this._needsRefresh = true;
};
那么你就可以把公共事件的条件设为810号开关,但实际上通过114号变量去触发了。




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