查看: 2463|回复: 11

[已经解决] 怎么暂时遗忘掉角色自带的技能

[复制链接]
梦石
10
星屑
5748
在线时间
1849 小时
注册时间
2013-2-14
回帖
327

开拓者

发表于 2016-10-22 17:19:07 | 显示全部楼层 |阅读模式

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

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

×
想要在战斗中某状态时,临时忘掉角色自带的技能。
在战斗结束后再恢复,请问需要怎么做?
梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2016-10-22 17:50:56 | 显示全部楼层
[pre lang="ruby"]
class Window_BattleSkill < Window_SkillList
  
alias :bs_include? :include?
  def include?(item)
    return false if @actor.state?(状态ID) && [技能ID].include?(item.id)
    #更改状态ID,如果技能ID有复数个,比如技能15和17,那就放[15,17]
    bs_include?(item)
  end  
  
end
[/pre]

我不知道你有没有使用其他影响界面的脚本,所以我基于默认脚本和字面上的要求来写。
这段脚本的原理是,如果角色中了某状态,特定技能将不会出现在战斗技能栏里。(隐蔽了,可以视为忘却)
但是如果状态恢复了,隐蔽将会解除。所以如果要持续整场战斗,请把状态设置成永不过期,并于战斗结束后自动解除。

点评

其实是这样的,我用状态做变身技能,变身后遗忘自带技能,学会变身后的技能,战斗后恢复。有很多角色,很多变身。。这样的情况。。  发表于 2016-10-22 18:25
如果有重复的状况(比如一个角色的自带是别人的领悟),我再视情况添加判定。  发表于 2016-10-22 18:20
我的意思是,假设你知道角色A自带的技能是10号,角色B自带的技能是12号,那么你就放[10,12]。自带技能是啥只有你自己最清楚。  发表于 2016-10-22 18:19
可是这样的话,角色领悟的其他技能也会隐藏掉了。。  发表于 2016-10-22 18:17
假设没有重复的情况,把技能ID全部放进去就对了。  发表于 2016-10-22 18:11
回复

使用道具 举报

梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2016-10-22 18:34:07 | 显示全部楼层
本帖最后由 RaidenInfinity 于 2016-10-22 20:06 编辑

[pre lang="ruby"]
class Window_BattleSkill < Window_SkillList
     
     alias :bs_include? :include?
      def include?(item)
        return false if hide_skill_by_state?(item)
        ,如果技能ID有复数个,比如技能15和17,那就放[15,17]
        bs_include?(item)
      end  
     
          def hide_skill_by_state?(item)
                return false if !@actor.state?(状态ID) #更改状态ID
                arr = []
                case @actor.id
                        when 1; arr = [1,2,3,4] #改动这个部分的方法请参考下面的指示
                        when 2; arr = [5,6,7,8]
                        when 3; arr = [9,10,11,12]
                        when 4; arr = [13,14,15,16]
                end
                return arr.include?(item.id)
    end
       
end
       
        #when 1 的 1 是指 角色ID, []里面的是技能ID,以逗号相隔
        #所以如果你有10个角色,要有10行,when 1 到 when 10
        #假设角色 8 要隐蔽的技能有 10号,13号,17号
        #那么就是 when 8; arr = [10,13,17]
        #以此类推
[/pre]

加了对应不同角色的判定。另外建议一次过列明要求和细节,问题才能更快解决。

点评

好的,谢谢。  发表于 2016-10-23 09:14
修改了第11行  发表于 2016-10-22 20:08
用了后,所有技能都不显示了  发表于 2016-10-22 19:33

评分

参与人数 1星屑 +250 梦石 +1 收起 理由
VIPArcher + 250 + 1 塞糖

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部