Project1

标题: 请教在地图画面当第2号变量大于5时必然触发第9号事件方法 [打印本页]

作者: taeckle    时间: 2020-4-22 08:41
标题: 请教在地图画面当第2号变量大于5时必然触发第9号事件方法
本帖最后由 taeckle 于 2020-4-23 06:51 编辑

在数据库的公共事件栏里可以直接设置触发的条件,比如一个公共事件触发条件可以是"并行处理",
当"条件开关"比如说第100号开关为开时,但却没有"当公共变量XXX大于(或小于, 等于)某个数值时"可触发某个公共事件,
关于咱这个问题,咱想这么写:

if $game_variables[2] > 5
$game_system.map_interpreter.setup($data_common_events[9].list, 0)
$game_variables[2] = 5
end




然后问题来了,这段代码放到哪里哪个class里比较好啊? 还请大神指点一二,多谢了!  

作者: PLeaseS    时间: 2020-4-22 10:06
这个可以纯事件做出来的把
感觉没有必要用脚本啊
事件里也可以设置出来
作者: soulsaga    时间: 2020-4-22 14:15
为什么要放class里?有意义吗..
作者: KB.Driver    时间: 2020-4-22 20:52
你用的都是全局变量,上下文并不是那么重要。

不过默认脚本里公共事件的用法是这样的,建议你参考一下。
RUBY 代码复制
  1. @child_interpreter = Interpreter.new(depth + 1)
  2. @child_interpreter.setup($data_common_events[n].list, event_id)

作者: taeckle    时间: 2020-4-23 06:45
KB.Driver 发表于 2020-4-22 20:52
你用的都是全局变量,上下文并不是那么重要。

不过默认脚本里公共事件的用法是这样的,建议你参考一下。

大佬咱的目的是不想在一个有300张地图的游戏里每张地图上都添加这样一个自动执行事件:
if $game_variables[2] > 5
$game_system.map_interpreter.setup($data_common_events[9].list, 0)
$game_variables[2] = 5
end

但还是能达到每张地图上都添加这样一个自动执行事件的效果,所以想问问怎么搞最简单。。

作者: PLeaseS    时间: 2020-4-23 07:40
复制粘贴又不会累
大概五六分钟就能整完
作者: taeckle    时间: 2020-4-23 19:38
soulsaga 发表于 2020-4-22 14:15
为什么要放class里?有意义吗..

那要放到哪里可以实现像数据库里通过一个开关做并行处理那样的效果呢?
作者: soulsaga    时间: 2020-4-23 21:43
taeckle 发表于 2020-4-23 19:38
那要放到哪里可以实现像数据库里通过一个开关做并行处理那样的效果呢? ...

首先要放到哪里是看你想在什么地方触发..假如要在地图刷新时触发..那和用並行公共事件没大差别
作者: taeckle    时间: 2020-4-24 04:59
本帖最后由 taeckle 于 2020-4-24 05:02 编辑
soulsaga 发表于 2020-4-23 21:43
首先要放到哪里是看你想在什么地方触发..假如要在地图刷新时触发..那和用並行公共事件没大差别 ...


好吧,咱这样问,要是数据库公共事件栏里没有并行处理这个触发条件选项(比如只有触发条件"无"),用代码怎么写也可以达到像并行处理同样的效果呢?
是不是可以这么写:

if $game_switch[X] == true #如果第X开关开的话
$game_system.map_interpreter.setup($data_common_events[9].list, 0)
$game_switch[X] == false #关闭第X开关
end


如果这样写可以的话,是不是要放到一个class里啊?放到哪个class里啊?
作者: guoxiaomi    时间: 2020-4-26 06:21
本帖最后由 guoxiaomi 于 2020-4-26 06:23 编辑

你想在地图画面的每一帧都判断,就改写 Scene_Map 的 update 方法。而且为什么你不愿意用并行处理,适当使用并行处理的公共事件并不会给你带来麻烦
作者: SailCat    时间: 2020-4-26 11:16
游戏开始时打开一个开关
然后并行处理一个公共事件
然后把公共事件的第一条指令做成……
条件分岐:变量2 为 5以下
   中断事件处理
分岐结束
后面粘贴你要真正执行的内容
即可




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