查看: 2696|回复: 2

[已经过期] 喵大请进 Case脚本捉到一只虫

[复制链接]
梦石
0
星屑
155
在线时间
478 小时
注册时间
2011-3-5
回帖
231
发表于 2015-8-2 22:11:13 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 love9880 于 2015-8-2 22:13 编辑

@喵呜喵5
原脚本贴上
点击展开/收起[pre lang="ruby"]=begin
===============================================================================
  Case By喵呜喵5
===============================================================================

【说明】

  “判断变量的值为1时执行XX事件,值为2时执行XX事件,值为3时执行XX事件...”
  像是这样的内容用默认的事件指令来写时要写好多个分支条件,看着极其不舒服
  
  这个脚本将类似case这样的Ruby语法移植到了事件中,
  使在事件中实现上面的过程变得清晰起来
  
=end
#==============================================================================
# 脚本部分
#==============================================================================
$m5script ||= {};$m5script[:M5Case20140617] = 20140807
class Game_Interpreter
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------  
  alias m5_20140617_clear clear
  def clear
    m5_20140617_clear
    @m5case = [0]
  end
  #--------------------------------------------------------------------------
  # ● 执行事件
  #--------------------------------------------------------------------------
  alias m5_20140617_execute_command execute_command
  def execute_command
    return m5_20140617_execute_command if @m5case[0] == 0
    if @m5case[0] != 0
      flag = false
      @m5case[0].times {|indent| flag = true unless @m5case[indent+1][1]}
      return m5_20140617_execute_command unless flag
      command = @list[@index]
      m5_20140617_execute_command if command.code == 108
    end
  end
  #--------------------------------------------------------------------------
  # ● case
  #--------------------------------------------------------------------------
  alias m5_20140617_command_1081 command_108
  def command_108
    m5_20140617_command_1081
    return unless @comments[0] =~ (/^\s*case\s*.*?/)
    if @comments[0] =~ (/^\s*case\s*$/)
      comment = "true"
    else
      comment = @comments[0].clone
      comment.slice!(/^\s*case\s+.*?/) rescue ""
    end
    变量 = $game_variables
    @m5case[0] += 1
    @m5case[@m5case[0]] = [eval(comment),false,false]
  end
  #--------------------------------------------------------------------------
  # ● when
  #--------------------------------------------------------------------------
  alias m5_20140617_command_1082 command_108
  def command_108
    m5_20140617_command_1082   
    return unless (@m5case[0] != 0 && @comments[0] =~ (/^\s*when\s+.*?/))   
    comment = @comments[0].clone
    comment.slice!(/^\s*when\s+.*?/) rescue ""   
    return if comment == ""
    变量 = $game_variables
    comment = eval("[#{comment}]")
    comment.each do |c|
      @m5case[@m5case[0]][1] = ( c == @m5case[@m5case[0]][0])
      if @m5case[@m5case[0]][1]
        @m5case[@m5case[0]][2] = true
        break
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● else
  #--------------------------------------------------------------------------
  alias m5_20140617_command_1084 command_108
  def command_108
    m5_20140617_command_1084
    return unless (@m5case[0] != 0 && @comments[0] =~ (/^\s*else\s*?/))
    return (@m5case[@m5case[0]][1] = false) if @m5case[@m5case[0]][2]   
    @m5case[@m5case[0]][1] = true
  end
  #--------------------------------------------------------------------------
  # ● end
  #--------------------------------------------------------------------------
  alias m5_20140617_command_1083 command_108
  def command_108
    m5_20140617_command_1083
    return unless (@m5case[0] != 0 && @comments[0] =~ (/^\s*end\s*?/))   
    @m5case[0] -= 1
  end
end[/pre]


在新建工程里也测试过,
使用  打开存档画面  进行存档时,
读档时会报错。
QQ截图20150802220824.png

精灵族の天使<

梦石
0
星屑
1712
在线时间
3039 小时
注册时间
2007-3-16
回帖
33092

开拓者贵宾

发表于 2015-8-3 00:08:36 | 显示全部楼层
于是你确认你的存档和读档的顺序是否正确了么?
另外……使用了有关存档脚本之后你必须要删除所有的存档并重开游戏。
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-8-3 00:50:38 | 显示全部楼层
近期会进行修复,另外这种问题直接在脚本下方留言就好了,没必要单独开帖

点评

已修正  发表于 2015-8-4 09:07
好的。修复后可烦请通知一下么?  发表于 2015-8-3 09:47
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部