查看: 2725|回复: 2

[已经解决] 技能升级脚本公式问题

[复制链接]
梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2015-10-5 23:39:12 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 KB.Driver 于 2015-10-5 23:40 编辑

原脚本链接:https://rpg.blue/forum.php?mod=viewthread&tid=373928
工程: 求教工程.zip (1.61 MB, 下载次数: 84)


[fold=问题]
QQ图片20151005233337.jpg QQ图片20151005233341.jpg QQ图片20151005233344.jpg
[/fold]

问题如图片所示,工程中是这样的:
公式脚本:
QQ截图20151005233757.jpg
QQ截图20151005233514.jpg
         
技能及备注:
QQ截图20151005233713.jpg

原作者的工程中,很多技能没有写“<mp_type x>”,在升级过程中MP都会随着变化。
但是我的工程中不管写没写都不行……
所以来请教了。
用头画头像,用脚写脚本

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2015-10-6 10:23:40 | 显示全部楼层
本帖最后由 百里_飞柳 于 2015-10-6 10:35 编辑

[pre lang="ruby"]def mp_type
    @note =~ /\<(?:mp_type) (\d+)\>/ ? $1.to_i : 111
  end[/pre]
之所以很多技能没有写也有mp变化,就是因为这一句未匹配到时默认是返回111类型的mp增长式。

你的工程我看了一下,问题似乎就是当技能从第一级升到第二级时,mp消耗改变,之后升级却不再改变。
然后我又浏览了一遍脚本,发现没有出现逻辑问题……所以,我就实在不知道哪里有问题了。

我又试了下,发现问题所在了。
[pre lang="ruby"]
  def skill_level(skill_id)
    return 0 if skill_id == 0
    lock = $data_skills[skill_id].lock_level
    return lock if lock != 0
    lnk = $data_skills[skill_id].link_skill
    return skill_level(lnk) if lnk != 0
    return 0 unless @skills.include?(skill_id)
    return 0 if skill_basic_level(skill_id) == 0
    [skill_basic_level(skill_id) + skill_plus_level(skill_id) ,\
    $data_skills[skill_id].max_level].min
  end[/pre]
这一段脚本里,我试着p了$data_skills[skill_id].max_level,发现值一直是1,可能这个就是问题所在。

然后我惊讶地发现明明是你自己蠢了!
备注栏里面除了写<max_learn 3>还需要写<max_level 3> !
这样问题就解决了~

点评

嗯……发现了……我以为<max_learn 3>就是最多学到3级,只有还能用道具增加等级才需要附加<max_level x>……  发表于 2015-10-6 14:57

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2582
在线时间
363 小时
注册时间
2015-8-15
回帖
66
发表于 2015-10-6 12:20:08 | 显示全部楼层
新人来受教了,非常不错的东西,一会儿我也试试
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部