Project1

标题: 关于使用脚本调用公用事件和用编辑器调用公用事件的区别 [打印本页]

作者: zhangmdk    时间: 2012-12-10 22:02
标题: 关于使用脚本调用公用事件和用编辑器调用公用事件的区别
再次来请教大家了……

我在小幽的VX实用代码里找到 $game_temp.common_event_id = 编号 这个,是用脚本调用公用事件的方法。

但是现在有段脚本,用$game_temp.common_event_id = 25的方式调用25号公用事件,却没有执行,将脚本改为编辑器的调用公用事件功能一切正常。

事件里的调用代码如下:
  1. $game_message.maxlineex = 8 #MSGBOSX用
  2. $game_variables[521] = @event_id #取当前事件ID
  3. $game_temp.common_event_id = 25  #当前事件名赋值变量520
  4. $current_city_info = $c_db.assoc($game_variables[520])  #$current_city_info 信息数组赋值
复制代码
意思是用系统变量521存储当前事件ID,然后调用25号公用事件,事件的用途是读取系统变量521号ID的地图事件的名称,然后存入系统变量520供后面的功能使用。
之后利用系统变量520的事件名去一个二维数组中索引城市设定数据……

25号公用事件如下:
  1. @event_id = $game_variables[521]
  2. #p @event_id.to_s + "also is 16"
  3. $game_variables[522] = $game_map.map.events[@event_id].name
  4. #p $game_map.map.events[@event_id].name
  5. if $game_map.map.events[@event_id].name[0] == 126 #当事件第一个字符为~  ASCII码为126
  6. $game_variables[520] =
  7.          $game_map.map.events[@event_id].name[1,$game_map.map.events[@event_id].name.size-1]
  8. else #否则直接赋值
  9. $game_variables[520] = $game_map.map.events[@event_id].name
  10. end
复制代码
可能和公用事件本身关系不大吧。

问题是为何这里会出现不执行公用事件的问题?我在其他地方使用这种方式调用都正常的说
或者说,这种脚本调用方式可能会有执行的延迟?
作者: 怪蜀黍    时间: 2012-12-11 18:23
事件过于繁忙,于是公共事件就不执行了。
看这个范例,故意造成事件页繁忙,导致公共事件1的脚本
  1. p "公共事件"
复制代码
无法执行。
Project2.rar (237.9 KB, 下载次数: 33)
作者: zhangmdk    时间: 2012-12-11 22:49
protosssonny 发表于 2012-12-11 18:23
事件过于繁忙,于是公共事件就不执行了。
看这个范例,故意造成事件页繁忙,导致公共事件1的脚本无法执行。 ...

事件繁忙的意思是指事件页数较多?产生过多的并行判断了?




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