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

Project1

 找回密码
 注册会员
搜索
查看: 208|回复: 11

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

[复制链接]

[动态]受到幻想乡阿卡林的挑战,被揍得晕头转向。 (打开TA的战斗卡片)

Lv4.逐梦者

梦石
10
星屑
1860
在线时间
1686 小时
注册时间
2013-2-14
帖子
363

开拓者

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

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

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

x
想要在战斗中某状态时,临时忘掉角色自带的技能。
在战斗结束后再恢复,请问需要怎么做?

[动态]还没有进行过任何战斗 (打开TA的战斗卡片)

Lv3.寻梦者 (版主)

梦石
0
星屑
4869
在线时间
6709 小时
注册时间
2013-11-2
帖子
1328

开拓者剧作品鉴家

发表于 2016-10-22 17:50:56 | 显示全部楼层
RUBY 代码复制打印
  1. class Window_BattleSkill < Window_SkillList
  2.  
  3. alias :bs_include? :include?
  4.   def include?(item)
  5.     return false if @actor.state?(状态ID) && [技能ID].include?(item.id)
  6.     #更改状态ID,如果技能ID有复数个,比如技能15和17,那就放[15,17]
  7.     bs_include?(item)
  8.   end  
  9.  
  10. end


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

点评

其实是这样的,我用状态做变身技能,变身后遗忘自带技能,学会变身后的技能,战斗后恢复。有很多角色,很多变身。。这样的情况。。  发表于 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
回复 支持 反对

使用道具 举报

[动态]还没有进行过任何战斗 (打开TA的战斗卡片)

Lv3.寻梦者 (版主)

梦石
0
星屑
4869
在线时间
6709 小时
注册时间
2013-11-2
帖子
1328

开拓者剧作品鉴家

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

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


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

点评

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-6-26 23:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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