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

Project1

 找回密码
 注册会员
搜索

有没有可能拦截地图事件,并在此前线执行一段代码?

查看数: 3050 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-10-13 18:13

正文摘要:

本帖最后由 寒凌天 于 2019-10-14 07:46 编辑 比如001地图的ID005事件,我知道了001和005这两个关键变量,在脚本里某处加个识别代码,判断有人运行这个位置的事件后,在此之前先执行一段代码? 就是说我想做个判 ...

回复

fux2 发表于 2019-10-14 13:03:48
寒凌天 发表于 2019-10-14 11:56
不是……每个地图事件不是都可以设置出现条件吗?比如某开关为ON时出现,或者变量为多少时出现。
我想不 ...

脚本放在最下方main以上,不知道你放在什么地方的,至少不能在Interpreter上方

评分

参与人数 1星屑 +20 收起 理由
RyanBern + 20 醋疯

查看全部评分

寒凌天 发表于 2019-10-14 09:52:31

哇!厉害啊,不愧是大神!能不能再请教个问题……
想要运行的地图事件因为“未满足出现条件”而未显示时,能不能让它出来,并执行上面你说的这个代码?
我说的出来,意思是类似给地图事件上添加新的没有出现条件的事件页……
前提还是不能修改地图文件……

点评

未满足条件运行?是走到某个地方运行么。。这样你直接一个公共事件并行判断角色坐标就行  发表于 2019-10-14 11:33
张咚咚 发表于 2019-10-14 09:01:47
本帖最后由 张咚咚 于 2019-10-14 15:46 编辑
  1. $map_event_proc = {
  2.   :map => {
  3.     1 => {
  4.       1 => proc{ p '1号地图1号事件执行前' },
  5.       2 => proc{ p '1号地图2号事件执行前' },
  6.     },
  7.   },
  8.   :common_event => {
  9.     1 => proc{ p '1号公共事件执行前' },
  10.     2 => proc{ p '2号公共事件执行前' },
  11.   },
  12. }
  13. class Interpreter
  14.   alias qqeat_start_before_interpreter_setup setup
  15.   def setup(list, event_id)
  16.     if list.is_a?(RPG::CommonEvent)
  17.       common_event_id = list.id
  18.       list = list.list
  19.     end
  20.     qqeat_start_before_interpreter_setup(list, event_id)
  21.     if common_event_id
  22.       proc = $map_event_proc[:common_event][common_event_id]
  23.       proc.call if proc
  24.     else
  25.       proc = $map_event_proc[:map][@map_id]
  26.       proc[@event_id].call if proc and proc[@event_id]
  27.     end
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 公共事件
  31.   #--------------------------------------------------------------------------
  32.   def command_117
  33.     # 获取公共事件
  34.     common_event = $data_common_events[@parameters[0]]
  35.     # 公共事件有效的情况下
  36.     if common_event != nil
  37.       # 生成子解释器
  38.       @child_interpreter = Interpreter.new(@depth + 1)
  39.       @child_interpreter.setup(common_event, @event_id)
  40.     end
  41.     # 继续
  42.     return true
  43.   end
  44. end
复制代码

点评

哇!大神厉害啊……地图钩子已经完全问题了!可以满足我的一切需求,不过公共事件好像运行没效果,但好在这个需求不是紧迫,总之太谢谢了!  发表于 2019-10-14 17:41

评分

参与人数 1星屑 +100 +1 收起 理由
RyanBern + 100 + 1 认可答案

查看全部评分

寒凌天 发表于 2019-10-14 07:43:51
ppspssss 发表于 2019-10-13 19:11
看不懂你說什么,表达不清楚, 建議去整理好再問 ,

谢谢建议,我已经做了补充说明。
我是说我想做个判定,在有人执行了某地图某特定位置的地图事件后,我能获知这个信息,并在他执行地图信息之前,先执行我自己的一段代码
ppspssss 发表于 2019-10-13 19:11:08
本帖最后由 ppspssss 于 2019-10-13 21:48 编辑

看不懂你說什么,表达不清楚, 建議去整理好再問 ,
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-23 13:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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