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

Project1

 找回密码
 注册会员
搜索
查看: 2742|回复: 7

[已经过期] 怎么用脚本立即执行某公共事件?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3072
在线时间
205 小时
注册时间
2019-9-16
帖子
224
发表于 2019-10-18 16:14:55 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
以前我用脚本调用公共事件都是用的    $game_temp.common_event_id = 编号

但是这个命令只是把特定ID的公共事件加入消息循环,当前任务执行完以后才执行那个,我想要个可以立刻执行的代码,执行完公共事件后,才继续往下执行,请问怎么搞?

Lv5.捕梦者

梦石
0
星屑
33038
在线时间
10469 小时
注册时间
2009-3-15
帖子
4756
发表于 2019-10-18 17:35:12 | 显示全部楼层
$game_system.map_interpreter.setup($data_common_events[10086].list, 0)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3072
在线时间
205 小时
注册时间
2019-9-16
帖子
224
 楼主| 发表于 2019-10-20 21:59:14 | 显示全部楼层
soulsaga 发表于 2019-10-18 17:35
$game_system.map_interpreter.setup($data_common_events[10086].list, 0)

你的代码我第一次用时好用,但是再用就不行了。
请问那个setup执行后,是不是要清除原有数据后才能再次执行?
如果是的话,清除代码怎么写呢?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33038
在线时间
10469 小时
注册时间
2009-3-15
帖子
4756
发表于 2019-10-20 22:57:53 | 显示全部楼层
本帖最后由 soulsaga 于 2019-10-20 23:06 编辑
寒凌天 发表于 2019-10-20 21:59
你的代码我第一次用时好用,但是再用就不行了。
请问那个setup执行后,是不是要清除原有数据后才能再次执 ...


$game_system.map_interpreter.update刷新一下试试?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

发表于 2019-11-4 20:31:12 | 显示全部楼层
本帖最后由 guoxiaomi 于 2019-11-4 23:22 编辑

应该使用child_interpreter,回头我整理一个范例

如果在事件脚本中使用脚本代替原本事件中的“调用公共事件”的效果,可以直接复制 command_117 的代码:

  1. # 获取公共事件
  2. common_event = $data_common_events[1]
  3. # 公共事件有效的情况下
  4. if common_event != nil
  5.   # 生成子解释器
  6.   @child_interpreter = Interpreter.new(@depth + 1)
  7.   @child_interpreter.setup(common_event.list, @event_id)
  8. end
  9. # 继续
复制代码
可以去掉3,4,8行,因为你自己调用的公共事件不可能失效

如果在 scripts 里调用公共事件,这种做法是不推荐的。

评分

参与人数 1星屑 +20 收起 理由
RyanBern + 20 我很赞同

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 04:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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