Project1

标题: 如何用脚本生成事件并运行? [打印本页]

作者: gamedev0001    时间: 2011-11-1 16:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: rainfly    时间: 2011-11-1 17:22
不知道楼主在说什么
作者: 雁行疏    时间: 2011-11-1 17:29
很好奇为什么楼主要用脚本写,不是能用事件就用事件么??
作者: iisnow    时间: 2011-11-1 17:38
这个问题我以前问过:
参考一下:
http://rpg.blue/thread-211792-1-1.html
作者: fux2    时间: 2011-11-1 18:15
随便p一个事件就知道了啊。
作者: gamedev0001    时间: 2011-11-1 19:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: darkscout3000    时间: 2011-11-1 22:36
gamedev0001 发表于 2011-11-1 06:10
请问随便P一个是什么意思?能给个演示么,新手才接触,类和函数还不太熟。

感谢4楼,实验中

那啥⋯⋯
提示的错误不是方法未定义,而是实例没有初始化⋯⋯
你把add_event放在了Scene_Title 的     $scene = Scene_Map.new 后面
但是这个时候Spriteset_Map类的实例还没有初始化⋯⋯所以你调用add_event 的时候会找不到@spriteset这个对象⋯⋯
因为那个实例是在Scene_Map的main方法里头初始化的⋯⋯

简单地说就是⋯⋯你得换个地方调用add_event方法⋯⋯
比如就放在Scene_Map里main方法里头⋯⋯在@spriteset = Spriteset_Map.new 之后
作者: 精灵使者    时间: 2011-11-1 22:55
美兽的“爱护环境,人人有责”这个里面就用了事件生成脚本……
如果需要的话再找找吧,宝典里有

作者: 后知后觉    时间: 2011-11-1 23:01
先插入下面代码
  1. $HEvent = RPG::Event.new(1, 1)
  2. $HEvent.id = 999
  3. $HEvent.pages[0].trigger = 3
  4. $HEvent.pages[0].list[0].code = 101
  5. $HEvent.pages[0].list[0].parameters[0] = "显示文章第一行"
  6. $HEvent.pages[0].list[1] = RPG::EventCommand.new(401, 0, ["第二行"])
  7. $HEvent.pages[0].list[2] = RPG::EventCommand.new(401, 0, ["第三行"])
  8. $HEvent.pages[0].list[3] = RPG::EventCommand.new(401, 0, ["第四行"])
  9. $HEvent.pages[0].list[4] = RPG::EventCommand.new
复制代码
然后找到 Game_Map 的第 74 75 76 77 这 4 行
  1.     @events = {}
  2.     for i in @map.events.keys
  3.       @events[i] = Game_Event.new(@map_id, @map.events[i])
  4.     end
复制代码
在第 74 行下面加一行变成这样
  1.     @events = {}
  2.     @map.events[$HEvent.id] = $HEvent
  3.     for i in @map.events.keys
  4.       @events[i] = Game_Event.new(@map_id, @map.events[i])
  5.     end
复制代码
搞定.一个【自动执行】【显示文章】的事件就做好了 事件 id 为 999
然后说你主楼里的脚本

ce1 = RPG::EventCommand.new(101,0,"hello")
第 3 个参数应该是个数组

evt_page.list = [ce1]
这个 list 数组的尾部少了一个空白命令(RPG::EventCommand实例)

最后在说一下 code 这个东西.
在 F1 里只能查到 命令的第一行 的 code
比如 显示文章 F1 里说 code 是 101
这个命令一次可以写 4 行.
第 1 行 code 是 101 没错.但第2 3 4 行却是 401
这些东西要么去 Interpreter 里找那些命令的定义里看.
要么就 Interpreter 2 里用 p 命令 给 p 出来
全局搜索 case @list[@index].code 可以快速定位
作者: gamedev0001    时间: 2011-11-2 12:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 亿万星辰    时间: 2011-11-2 12:39
其实在某一张地图上摆放一些事件模型会比较方便,把一些需要变动的内容修改掉即可。




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