赞 | 1 |
VIP | 3 |
好人卡 | 0 |
积分 | 6 |
经验 | 16632 |
最后登录 | 2024-5-27 |
在线时间 | 463 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 634
- 在线时间
- 463 小时
- 注册时间
- 2009-9-29
- 帖子
- 67
|
本帖最后由 plmo43 于 2017-10-2 03:15 编辑
很想知道最后一句“出于某些原因”的原因,因为不清楚你的目的,不太好解决问题。公共事件是在Scene_map的update中刷新运行,如果是Scene_map外的脚本中调用公共事件的话,没办法去直接把脚本拆分开来去运行。
如果单纯的是不想在事件页中放入大段的代码的话,我有一个很笨很扭曲的办法:
Game_Map中def update_interprete,将“return unless setup_starting_event”这句改成如下代码:
if setup_starting_event == false
if $command_after_event != nil
$command_after_event.each do |command| eval(command) end
$command_after_event = nil
end
return
end
然后在代码调用公共事件时,把要在事件后运行的代码以字符串的形式放在数组 $command_after_event 里。
比如:
$command_after_event = [
"msgbox('我是大猛攻!')",
"p '我才是大猛攻!'"
]
$game_temp.reserve_common_event(1)
本质其实就是把要在事件后运行的代码存入一个变量,在事件结束后用eval方法运行这些代码,然后清空变量而已,除了是在事件页内看不到外,跟在事件内写脚本没什么实质区别,不知道能不能帮上忙。
|
|