查看: 2855|回复: 1

[已经解决] 脚本修改

[复制链接]

小空格

梦石
0
星屑
2655
在线时间
555 小时
注册时间
2009-7-15
回帖
1023
发表于 2015-8-9 16:47:19 | 显示全部楼层 |阅读模式

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

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

×
我想实现一个“每场战斗中,只有使用了技能一才能使用技能二,使用了技能二才能使用技能三,战斗结束重置”功能的脚本。
无关内容脚本部分省略。

首先,在Game_Battler 1 中新建了一个hash表。
[pre lang="ruby"]
attr_accessor :skill_prereq

def initialize
  @skill_prereq = {3=>{2=>false}}
end[/pre]

然后,在Scene_Battle 1 中写:
[pre lang="ruby"]def main
for actor in $game_party.actors
        for restricted_skill in actor.skill_prereq.values
          for skill_req in restricted_skill.keys
            restricted_skill[skill_req] = false
          end
        end
      end
    # 开始自由战斗回合
    start_phase1
end
end[/pre]


接下来,在Game_Battler 3 中写:
[pre lang="ruby"]def skill_can_use?(skill_id)
    if @skill_prereq.keys[skill_id] != nil
      for skill_qua in @skill_prereq[skill_id].values
        unless skill_qua;return false;end
        end
      end        [/pre]

最后,在Game_Battler 3 中继续写:
[pre lang="ruby"] def skill_effect(user, skill)
    # 清除会心一击标志
    self.critical = false
    for restricted_skill in @skill_prereq.values
      for skill_req in restricted_skill.keys
        id skill_req = skill_id
        restircted_skill[skill_req] = true
      end
    end[/pre]

以上感谢狂人。

最后,战斗测试的时候发现,这一切
并没有什么卵用。
特技一和特技二依然可以同时使用。

是插入的地方错了呢?
还是什么地方写错了呢?
还是什么地方少写了呢?

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
回帖
1643

开拓者

发表于 2015-8-10 08:36:38 | 显示全部楼层
本帖最后由 kuerlulu 于 2015-8-10 08:38 编辑

换个思路:
[pre lang="ruby"]#==============================================================================
# 打开某开关时禁用某技能
#   设置开关ID与技能ID的对应关系↓
Meow3_CLOSESKILLWITHSWITCHOPENING = {
  2 => 1, # 打开1号开关 则2号技能无法使用
}
Meow3_CLOSESKILLWITHSWITCHOPENING.default = 0
#==============================================================================
class Game_Battler
  alias hy150810_skill_can_use? skill_can_use?
  def skill_can_use?(skill_id)
    return false if $game_switches[Meow3_CLOSESKILLWITHSWITCHOPENING[skill_id]]
    hy150810_skill_can_use?(skill_id)
  end
end
[/pre]
然后特技调用公共事件-自己处理开关操作-完

评分

参与人数 2星屑 +30 梦石 +1 收起 理由
RyanBern + 1 认可答案
№独孤剑→ + 30 认可答案

查看全部评分


  -fk: -azogi:
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部