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

Project1

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

[已经解决] 脚本修改

[复制链接]

Lv3.寻梦者

小空格

梦石
0
星屑
2620
在线时间
553 小时
注册时间
2009-7-15
帖子
1107
跳转到指定楼层
1
发表于 2015-8-9 16:47:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

首先,在Game_Battler 1 中新建了一个hash表。
RUBY 代码复制
  1. attr_accessor :skill_prereq
  2.  
  3. def initialize
  4.   @skill_prereq = {3=>{2=>false}}
  5. end


然后,在Scene_Battle 1 中写:
RUBY 代码复制
  1. def main
  2. for actor in $game_party.actors
  3.         for restricted_skill in actor.skill_prereq.values
  4.           for skill_req in restricted_skill.keys
  5.             restricted_skill[skill_req] = false
  6.           end
  7.         end
  8.       end
  9.     # 开始自由战斗回合
  10.     start_phase1
  11. end
  12. end



接下来,在Game_Battler 3 中写:
RUBY 代码复制
  1. def skill_can_use?(skill_id)
  2.     if @skill_prereq.keys[skill_id] != nil
  3.       for skill_qua in @skill_prereq[skill_id].values
  4.         unless skill_qua;return false;end
  5.         end
  6.       end


最后,在Game_Battler 3 中继续写:
RUBY 代码复制
  1. def skill_effect(user, skill)
  2.     # 清除会心一击标志
  3.     self.critical = false
  4.     for restricted_skill in @skill_prereq.values
  5.       for skill_req in restricted_skill.keys
  6.         id skill_req = skill_id
  7.         restircted_skill[skill_req] = true
  8.       end
  9.     end


以上感谢狂人。

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

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

评分

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

查看全部评分

Lv1.梦旅人

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

开拓者

2
发表于 2015-8-10 08:36:38 | 只看该作者
本帖最后由 kuerlulu 于 2015-8-10 08:38 编辑

换个思路:
RUBY 代码复制
  1. #==============================================================================
  2. # 打开某开关时禁用某技能
  3. #   设置开关ID与技能ID的对应关系↓
  4. Meow3_CLOSESKILLWITHSWITCHOPENING = {
  5.   2 => 1, # 打开1号开关 则2号技能无法使用
  6. }
  7. Meow3_CLOSESKILLWITHSWITCHOPENING.default = 0
  8. #==============================================================================
  9. class Game_Battler
  10.   alias hy150810_skill_can_use? skill_can_use?
  11.   def skill_can_use?(skill_id)
  12.     return false if $game_switches[Meow3_CLOSESKILLWITHSWITCHOPENING[skill_id]]
  13.     hy150810_skill_can_use?(skill_id)
  14.   end
  15. end

然后特技调用公共事件-自己处理开关操作-完

评分

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

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 19:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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