Project1
标题: 关于Interpreter和erase的问题,求解 [打印本页]
作者: hys111111 时间: 2012-7-14 12:28
标题: 关于Interpreter和erase的问题,求解
本帖最后由 hys111111 于 2012-7-14 17:07 编辑
如何让事件erase之后,强制执行(只能执行一次)触发条件为2号开关的事件页的内容?
我尝试写了一次,发现事件不消失。就是执行Interpreter。
帮我解决一下啊……
那一部分脚本是这样子的- alias hys_tail_erase erase
- def erase
- new_page = nil
- # 无法暂时消失的情况下
- unless @erased
- # 从编号大的事件页按顺序调查
- for page in @event.pages.reverse
- # 可以参考事件条件 c
- c = page.condition
- # 确认开关条件 1
- if c.switch1_valid
- if c.switch1_id == 2
- next
- end
- end
- # 确认开关条件 2
- if c.switch2_valid
- if c.switch2_id == 2
- next
- end
- end
- # 设置本地变量 new_page
- new_page = page
- # 跳出循环
- break
- end
- end
- # 与上次同一事件页的情况下
- if new_page == @page
- # 过程结束
- return
- end
- # @page 设置为现在的事件页
- @page = new_page
- # 清除启动中标志
- clear_starting
- # 没有满足条件的页面的时候
- if @page == nil
- # 设置各实例变量
- @tile_id = 0
- @character_name = ""
- @character_hue = 0
- @move_type = 0
- @through = true
- @trigger = nil
- @list = nil
- @interpreter = nil
- # 过程结束
- return
- end
- # 设置各实例变量
- @tile_id = @page.graphic.tile_id
- @character_name = @page.graphic.character_name
- @character_hue = @page.graphic.character_hue
- if @original_direction != @page.graphic.direction
- @direction = @page.graphic.direction
- @original_direction = @direction
- @prelock_direction = 0
- end
- if @original_pattern != @page.graphic.pattern
- @pattern = @page.graphic.pattern
- @original_pattern = @pattern
- end
- @opacity = @page.graphic.opacity
- @blend_type = @page.graphic.blend_type
- @move_type = @page.move_type
- @move_speed = @page.move_speed
- @move_frequency = @page.move_frequency
- @move_route = @page.move_route
- @move_route_index = 0
- @move_route_forcing = false
- @walk_anime = @page.walk_anime
- @step_anime = @page.step_anime
- @direction_fix = @page.direction_fix
- @through = @page.through
- @always_on_top = @page.always_on_top
- @trigger = @page.trigger
- @list = @page.list
- @interpreter = nil
- # 目标是 [并行处理] 的情况下
- @interpreter = Interpreter.new
- start
- hys_tail_erase
- end
复制代码