查看: 2366|回复: 6

[已经解决] 判断技能是否学会的问题

[复制链接]
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-12-6 22:00:55 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 chd114 于 2014-12-6 05:11 编辑

12号角色学习138号技能之后
  1. p $game_actors[12].skills.include?($data_skills[138])
复制代码
的结果为true
  1. p $data_skills[138].is_a?(RPG::Skill)
复制代码
的结果也是true

但是
  1. p $game_actors[12].skill_learn?($data_skills[138])
复制代码
的结果为false
  1. def skill_learn?(skill)
  2.     skill.is_a?(RPG::Skill) && @skills.include?(skill.id)
  3.   end
复制代码
没有修改,那么问题可以出在哪里呢···


@VIPArcher @taroxd  
@寒冷魔王  

评分

参与人数 1星屑 +1 收起 理由
寒冷魔王 + 1 = =不要问我RGSS的问题

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2014-12-6 22:23:10 | 显示全部楼层
因为你没有进行过“学习”这个过程。
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

 楼主| 发表于 2014-12-6 22:24:40 | 显示全部楼层
三途亚梦 发表于 2014-12-6 05:23
因为你没有进行过“学习”这个过程。

skill_learn判定要true必须是用事件指令的学习?还是说游戏一开始角色和职业自带的不算?

点评

那这种判定是用在一些特殊情况(比如清除角色身上所有外来学习的技能)的?  发表于 2014-12-6 22:30
是的。装备赋予的技能也不会计算为学会的技能。  发表于 2014-12-6 22:25
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-12-6 22:26:29 | 显示全部楼层
因为你的这个技能不是通过“领悟技能”学来的。所以@skills数组内并没有这个技能的id
检查Game_Actor#skills方法就会知道角色的技能实例的数组包括学会的技能@skills和添加的技能Game_BattlerBaser#added_skills两种
  1. class Game_Actor < Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # ● 获取技能实例的数组
  4.   #--------------------------------------------------------------------------
  5.   def skills
  6.     (@skills | added_skills).sort.collect {|id| $data_skills[id] }
  7.   end
  8. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

 楼主| 发表于 2014-12-6 22:29:11 | 显示全部楼层
VIPArcher 发表于 2014-12-6 05:26
因为你的这个技能不是通过“领悟技能”学来的。所以@skills数组内并没有这个技能的id
检查Game_Actor#skill ...

这个领悟技能是事件指令的领悟技能才行?可是技能升级里面有的技能有前置技能···首先要判定前置技能当前是否掌握才会继续判定前置技能的等级···
那
  1. $game_actors[12].skills.include?($data_skills[138])
复制代码
就可以了?
那
  1. $data_skills[138].is_a?(RPG::Skill)
复制代码
又是什么意思···

点评

建议楼主使用XD大大的置顶脚本,用是否拥有技能,skill?方法判断,谁用谁知到  发表于 2014-12-7 10:04
我早就跟小水说过让他看汉化版的了= =  发表于 2014-12-7 08:22
F1汉化都多久了,你硬要看日语原版的,我也没办法,c神哒哒你要么去下汉化版看,要么自学日语。我比较推荐后者。  发表于 2014-12-6 22:47
10级学会,学会的时候调用的就是"学会技能"的方法,懂了么  发表于 2014-12-6 22:45
我看不懂日文···  发表于 2014-12-6 22:41
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-12-7 07:59:52 | 显示全部楼层

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

 楼主| 发表于 2014-12-7 11:36:43 | 显示全部楼层
taroxd 发表于 2014-12-6 14:59
参考 http://taroxd.github.io/rgss/Taroxd%E5%9F%BA%E7%A1%80%E8%AE%BE%E7%BD%AE.html 脚本中 skill? 方法 ...
  1. basic_skills.include?(skill.id) || added_skills.include?(skill.id)
复制代码
里的basic和added分别是这个角色的职业里设置的技能和非职业里设置的技能?

点评

好伐···  发表于 2014-12-7 12:11
看代码,自行理解  发表于 2014-12-7 12:10
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部