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

Project1

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

[已经解决] 关于技能开关和被动技能状态

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
275 小时
注册时间
2010-8-19
帖子
68
跳转到指定楼层
1
发表于 2015-9-16 18:25:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 dorx2010 于 2015-9-19 22:26 编辑

大大们,,我用了@Silentever 的"技能开关[选择性限制/COST/层积等级]"和 @taroxd 的"被动技能状态",,
关闭了技能,但动技能的效果还在T^T 有空能帮我看看吗??
Silentever的技能开关: https://rpg.blue/forum.php?mo ... D368%26typeid%3D368
taroxd 的被动技能状态: http://taroxd.github.io/rgss/%E8 ... 8%83%BD%E7%8A%B6%E6 %80%81.html



上传了付件供大大下载

Project3.rar

1.43 MB, 下载次数: 87

大大下

Lv1.梦旅人

梦石
0
星屑
80
在线时间
132 小时
注册时间
2014-5-7
帖子
148
2
发表于 2015-9-16 21:02:32 | 只看该作者
本帖最后由 Silentever 于 2015-9-16 22:12 编辑

  1. class Game_Actor < Game_Battler
  2.   def passive_objects
  3.     skills.reject {|skill| skill_sealed?(skill.id)} + states
  4.   end
  5. end
复制代码





2个脚本都会用到特性,问题应该是这里引起了内部循环。
想得到的办法只有脱离特性处理,或想办法把特性无效化。

姑且准备了个改写内容,应该能解决问题。
但下面这个代码会让数据库其他技能禁用的特性无效,觉得无妨的话。

RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   attr_accessor :sealed_skills
  3.   #--------------------------------------------------------------------------
  4.   def_before(:initialize) { |actor_id| @sealed_skills = [] }
  5.   #--------------------------------------------------------------------------
  6.   def skill_sealed?(skill_id)
  7.     @sealed_skills.include?(skill_id); end
  8.   #--------------------------------------------------------------------------
  9.   def skill_activate(skill)
  10.     return unless skill_sealed?(skill.id)
  11.     @sealed_skills.delete(skill.id); end
  12.   #--------------------------------------------------------------------------
  13.   def skill_deactivate(skill)
  14.     return if skill_sealed?(skill.id)
  15.     @sealed_skills.push(skill.id); end
  16. end

点评

大大,,应该是我改错了地方,,求教改哪T.T  发表于 2015-9-18 18:01
忘了 sealed 也用到特性了 orz  发表于 2015-9-17 07:00
Script " 技能开关"line935  发表于 2015-9-16 22:56
Script " 技能开关"SyntaxError occurred.unexpected key_expecting $end  发表于 2015-9-16 22:54

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 辛苦了

查看全部评分

「私が来た!  私が見た!  ならば次わ買つだけのこと!」
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
发表于 2015-9-16 21:03:25 | 只看该作者
把我的脚本中 passive_objects 的定义改成下面的(未测试):
RUBY 代码复制
  1. @skills.reject { |id| skill_sealed?(id) }.map { |id| $data_skills[id] } + states

点评

不行,大大,, SystemStackErro occurred. stack too deep. 就是大大改的地方出问题了  发表于 2015-9-16 22:36
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
275 小时
注册时间
2010-8-19
帖子
68
4
 楼主| 发表于 2015-9-17 11:36:43 | 只看该作者
Silentever 发表于 2015-9-16 21:02

还是不行啊大大{:2_270:},,就算不用taroxd 的被动技能状态也发生问题>< Scrip"技能开关"line932:NoMethodError occurred.undefined method'active_cost'for#<RPG::skill:0x26cf62c>
还有大大,,我把"启用COST限制"和"启用层积数值化开关"都设为false
辛苦了大大................

点评

大大,,能放脚本上来吗??可能是我改错....不会跟其他脚本冲突,,因为只有你和taroxd 的被动技能状态脚本  发表于 2015-9-18 16:27
我测试的时候没有任何问题啊……会不会跟其他脚本冲突了?  发表于 2015-9-17 21:33
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
132 小时
注册时间
2014-5-7
帖子
148
5
发表于 2015-9-18 23:38:22 | 只看该作者
其他都是没修改的原脚本。顺便也到我的主题重新复制一下代码吧,昨天抓了几个bug。

点评

辛苦了大大,我已按照你说的做,能运行但没效果。例:+30攻(被动)关后效果还在。 大大如果没空跟我说,我结束这贴,,早知这么麻烦大大的话,开悬赏....  发表于 2015-9-19 11:13

评分

参与人数 1星屑 +20 收起 理由
dorx2010 + 20

查看全部评分

「私が来た!  私が見た!  ならば次わ買つだけのこと!」
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
132 小时
注册时间
2014-5-7
帖子
148
6
发表于 2015-9-19 20:40:37 | 只看该作者
本帖最后由 Silentever 于 2015-9-19 20:20 编辑

作为一个异界的大闲者表示,这没什么……还有出现会用我的脚本的人也挺高兴的(嗯

不过根据我的测试,被关闭的技能确实失效了(包括属性值提升),用的就是上面那样(原脚本+补丁)。
是不是我的技能开关有旧BUG留下没更新?
把现在有的删了再复制插进去试试,另外建议把我的脚本放在补丁以上,其他脚本的最下面。还是不行再传个工程吧。




……你忘了把原作者修改的内容加进去啦,重新覆盖下补丁应该就没问题了
RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   attr_accessor :sealed_skills
  3.   #--------------------------------------------------------------------------
  4.   def_before(:initialize) { |actor_id| @sealed_skills = [] }
  5.   #--------------------------------------------------------------------------
  6.   def skill_sealed?(skill_id)
  7.     @sealed_skills.include?(skill_id); end
  8.   #--------------------------------------------------------------------------
  9.   def skill_activate(skill)
  10.     return unless skill_sealed?(skill.id)
  11.     @sealed_skills.delete(skill.id); end
  12.   #--------------------------------------------------------------------------
  13.   def skill_deactivate(skill)
  14.     return if skill_sealed?(skill.id)
  15.     @sealed_skills.push(skill.id); end
  16.   #--------------------------------------------------------------------------
  17.   def passive_objects # 就是这部分
  18.     @skills.reject { |id| skill_sealed?(id) }.map { |id| $data_skills[id] } + states
  19.   end
  20. end

点评

去大学上课,迟了上线。原来忘记了一个补丁0.0万分感谢大大的帮忙><  发表于 2015-9-20 18:50
这跟运气实在是没什么关系……  发表于 2015-9-20 03:21
看见大大的回复,,很感动T^T 可惜还是不行,我近日运气很差..大大,我更新了附件,请大大下载,帮我看看  发表于 2015-9-19 22:30

评分

参与人数 1星屑 +40 收起 理由
dorx2010 + 40 万分感谢

查看全部评分

「私が来た!  私が見た!  ならば次わ買つだけのこと!」
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 11:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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