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

Project1

 找回密码
 注册会员
搜索
查看: 1368|回复: 1
打印 上一主题 下一主题

[已经解决] 关于Interpreter和erase的问题,求解

[复制链接]

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

跳转到指定楼层
1
发表于 2012-7-14 12:28:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hys111111 于 2012-7-14 17:07 编辑

如何让事件erase之后,强制执行(只能执行一次)触发条件为2号开关的事件页的内容?
我尝试写了一次,发现事件不消失。就是执行Interpreter。

帮我解决一下啊……

那一部分脚本是这样子的
  1.   alias hys_tail_erase erase
  2.   def erase
  3.     new_page = nil
  4.     # 无法暂时消失的情况下
  5.     unless @erased
  6.       # 从编号大的事件页按顺序调查
  7.       for page in @event.pages.reverse
  8.         # 可以参考事件条件 c
  9.         c = page.condition
  10.         # 确认开关条件 1
  11.         if c.switch1_valid
  12.           if c.switch1_id == 2
  13.             next
  14.           end
  15.         end
  16.         # 确认开关条件 2
  17.         if c.switch2_valid
  18.           if c.switch2_id == 2
  19.             next
  20.           end
  21.         end
  22.         # 设置本地变量 new_page
  23.         new_page = page
  24.         # 跳出循环
  25.         break
  26.       end
  27.     end
  28.     # 与上次同一事件页的情况下
  29.     if new_page == @page
  30.       # 过程结束
  31.       return
  32.     end
  33.     # @page 设置为现在的事件页
  34.     @page = new_page
  35.     # 清除启动中标志
  36.     clear_starting
  37.     # 没有满足条件的页面的时候
  38.     if @page == nil
  39.       # 设置各实例变量
  40.       @tile_id = 0
  41.       @character_name = ""
  42.       @character_hue = 0
  43.       @move_type = 0
  44.       @through = true
  45.       @trigger = nil
  46.       @list = nil
  47.       @interpreter = nil
  48.       # 过程结束
  49.       return
  50.     end
  51.     # 设置各实例变量
  52.     @tile_id = @page.graphic.tile_id
  53.     @character_name = @page.graphic.character_name
  54.     @character_hue = @page.graphic.character_hue
  55.     if @original_direction != @page.graphic.direction
  56.       @direction = @page.graphic.direction
  57.       @original_direction = @direction
  58.       @prelock_direction = 0
  59.     end
  60.     if @original_pattern != @page.graphic.pattern
  61.       @pattern = @page.graphic.pattern
  62.       @original_pattern = @pattern
  63.     end
  64.     @opacity = @page.graphic.opacity
  65.     @blend_type = @page.graphic.blend_type
  66.     @move_type = @page.move_type
  67.     @move_speed = @page.move_speed
  68.     @move_frequency = @page.move_frequency
  69.     @move_route = @page.move_route
  70.     @move_route_index = 0
  71.     @move_route_forcing = false
  72.     @walk_anime = @page.walk_anime
  73.     @step_anime = @page.step_anime
  74.     @direction_fix = @page.direction_fix
  75.     @through = @page.through
  76.     @always_on_top = @page.always_on_top
  77.     @trigger = @page.trigger
  78.     @list = @page.list
  79.     @interpreter = nil
  80.     # 目标是 [并行处理] 的情况下
  81.     @interpreter = Interpreter.new
  82.     start
  83.     hys_tail_erase
  84.   end
复制代码

点评

↓ 不知道啊……  发表于 2012-7-14 17:04
.@没用了LZ你不知道么……  发表于 2012-7-14 16:48

Lv2.观梦者

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
帖子
607

开拓者

2
发表于 2012-7-14 16:52:04 | 只看该作者
本帖最后由 ML4455739 于 2012-7-14 16:53 编辑
  1. # 确认开关条件 1
  2.         if c.switch1_valid
  3.           if c.switch1_id == 2
  4.             next
  5.           end
  6.         end
  7.         # 确认开关条件 2
  8.         if c.switch2_valid
  9.           if c.switch2_id == 2
  10.             next
  11.           end
  12.         end
复制代码
这样的话,如果执行条件里有开关2不是就会next掉么..


“发现事件不消失。就是执行Interpreter”
其实这句话没理解,是说本应该消失的事件未消失,还是执行了事件指令是吗?

点评

那个next居然是让for循环跳过下一个  发表于 2012-7-14 17:08
汗……我看明白了,我写错了  发表于 2012-7-14 17:06
我的意思是想让它先执行后消失  发表于 2012-7-14 17:05
我的意思是先执行后消失  发表于 2012-7-14 17:03
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-23 04:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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