查看: 2320|回复: 3

[已经解决] 请问如何让属性达到一定值后会有特殊属性提升?

[复制链接]
梦石
0
星屑
50
在线时间
38 小时
注册时间
2014-10-28
回帖
76
发表于 2015-7-1 11:16:52 | 显示全部楼层 |阅读模式

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

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

×
请问如何让属性达到一定值后会有特殊属性提升?
比如:角色A的幸运值达到50后,提升暴击率2%,物理闪避率2%?

…あたしは天

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

开拓者贵宾

发表于 2015-7-1 11:20:42 | 显示全部楼层
大概就是这样,未测试

[pre lang="ruby"]class Game_BattlerBase
  alias_method :cri_20150701, :cri
  def cri
    cri_20150701 + (luk >= 50 ? 0.02 : 0)
  end

  alias_method :eva_20150701, :eva
  def eva
    eva_20150701 + (luk >= 50 ? 0.02 : 0)
  end
end[/pre]

点评

谢谢,今天测试已经可以正常运行了。可能昨天战斗测试的时候脚本数据还没有保存才会发生这种情况。  发表于 2015-7-2 09:41

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
38 小时
注册时间
2014-10-28
回帖
76
 楼主| 发表于 2015-7-1 11:27:51 | 显示全部楼层
本帖最后由 猩红之月 于 2015-7-1 20:01 编辑
taroxd 发表于 2015-7-1 11:20
大概就是这样,未测试

class Game_BattlerBase


请问这段脚本是这样使用吗?这样使用既不会暴击,也不会额外闪避,幸运调到100了。@taroxd
360截图20150701112909671.jpg

点评

是这样使用的,我这里测试并没有问题  发表于 2015-7-1 20:28
幸运到50了吗?  发表于 2015-7-1 11:51
回复

使用道具 举报

梦石
0
星屑
50
在线时间
38 小时
注册时间
2014-10-28
回帖
76
 楼主| 发表于 2015-7-2 10:16:49 | 显示全部楼层
本帖最后由 猩红之月 于 2015-7-2 12:04 编辑

@taroxd 麻烦请你帮我看看这段脚本有没有错。[pre lang="ruby"]#-------------------------------------------------------------------------------
#
#                           普通属性带动特殊属性提升
#
#-------------------------------------------------------------------------------
#
#  mhp    生命上限         mmp    精神上限
#  atk    物理攻击         def    物理防御        
#  mat    魔法攻击         mdf    魔法防御      
#  agi    敏 捷 值         luk    幸 运 值
#  hit    成功几率         eva    物理闪避几率          cri    必杀几率      
#  cev    闪避必杀几率     mev    魔法闪避几率
#  mrf    反射魔法几率     cnt    物理反击几率
#  hrg    生命再生速度     mrg    精神再生速度      trg    潜力再生速度
#  tgr    受到攻击几率     grd    防御效果比率
#  rec    恢复效果比率     pha    药理知识
#  mcr    精神消费率       tcr    潜力消耗率
#  pdr    物理伤害加成     mdr    魔法伤害加成
#  fdr    地形伤害加成     exr    经验获得加成
#
#-------------------------------------------------------------------------------
#范例:
#class Game_BattlerBase
#  alias_method :cri_20150701, :cri
#  def cri
#    cri_20150701 + (luk >= 50 ? 0.2 : 0)
#  end
#
#  alias_method :eva_20150701, :eva
#  def eva
#    eva_20150701 + (luk >= 50 ? 0.2 : 0)
#  end
#end
#
#-------------------------------------------------------------------------------

class Game_BattlerBase
  #基本属性提升
  alias_method :hrg, :hrg #生命恢复
  def hrg
    hrg + (mhp >= 150 ? 0.01 : 0)
    hrg + (mhp >= 250 ? 0.03 : 0)
    hrg + (mhp >= 350 ? 0.05 : 0)
  end
  
  alias_method :mrg, :mrg #精神恢复
  def mrg
    mrg + (mmp >= 100 ? 0.01 : 0)
    mrg + (mmp >= 200 ? 0.03 : 0)
    mrg + (mmp >= 300 ? 0.05 : 0)
  end
  
  alias_method :pdr, :pdr #物理伤害加成
  def pdr
    pdr + (atk >= 50 ? 0.05 : 0)
    pdr + (atk >= 90 ? 0.1 : 0)
    pdr + (atk >= 130 ? 0.15 : 0)
    pdr + (atk >= 170 ? 0.2 : 0)
  end
  
  alias_method :mdr, :mdr #魔法输出加成
  def mdr
    mdr + (mtk >= 50 ? 0.05 : 0)
    mdr + (mtk >= 90 ? 0.1 : 0)
    mdr + (mtk >= 130 ? 0.15 : 0)
    mdr + (mtk >= 170 ? 0.2 : 0)
  end
  
  alias_method :eva, :eva #物理闪避(速度)
  def eva
    eva + (agi >= 50 ? 0.05 : 0)
    eva + (agi >= 90 ? 0.1 : 0)
    eva + (agi >= 130 ? 0.15 : 0)
    eva + (agi >= 170 ? 0.2 : 0)
  end
  
  alias_method :mev, :mev #魔法闪避(速度)
  def mev
    mev + (agi >= 50 ? 0.05 : 0)
    mev + (agi >= 90 ? 0.1 : 0)
    mev + (agi >= 130 ? 0.15 : 0)
    mev + (agi >= 170 ? 0.2 : 0)
  end
  
  alias_method :trg, :trg #潜力激发(速度)
  def trg
    trg + (agi >= 130 ? 0.05 : 0)
    trg + (agi >= 170 ? 0.1 : 0)
  end
  
  alias_method :cri, :cri #必杀
  def cri
    cri + (luk >= 50 ? 0.05 : 0)
    cri + (luk >= 90 ? 0.10 : 0)
    cri + (luk >= 130 ? 0.15 : 0)
    cri + (luk >= 170 ? 0.2 : 0)
  end
  
  alias_method :eva, :eva #物理闪避(幸运)
  def eva
    eva + (luk >= 50 ? 0.05 : 0)
    eva + (luk >= 90 ? 0.1 : 0)
  end
  
  alias_method :mev, :mev #魔法闪避(幸运)
  def mev
    mev + (luk >= 50 ? 0.05 : 0)
    mev + (luk >= 90 ? 0.1 : 0)
  end
  
  alias_method :hit, :hit #命中
  def hit
    hit + (luk >= 50 ? 0.05 : 0)
    hit + (luk >= 90 ? 0.1 : 0)
    hit + (luk >= 130 ? 0.15 : 0)
    hit + (luk >= 170 ? 0.2 : 0)
  end
  #特殊加成
  alias_method :cri, :cri #必杀机率(生命)
  def cri
    cri + (hp <= 20 ? 0.2 : 0)
    cri + (hp <= 10 ? 0.5 : 0)
    cri + (hp <= 5 ? 1 : 0)
  end
  
  alias_method :hrg, :hrg #生命急救(生命)
  def hrg
    hrg + (hp <= 25 ? 0.1 : 0)
    hrg + (hp <= 10 ? 0.2 : 0)
    hrg + (hp <= 5 ? 0.3 : 0)
  end
  
  alias_method :mcr, :mcr #精神消耗
  def mcr
    mcr + (mmp >= 100 ? 0.90 : 0)
    mcr + (mmp >= 200 ? 0.80 : 0)
    mcr + (mmp >= 300 ? 0.70 : 0)
  end
  
  alias_method :tcr, :tcr #潜力消耗
  def mcr
    tcr + (tp >= 50 ? 0.90 : 0)
    tcr + (tp >= 70 ? 0.80 : 0)
    tcr + (tp >= 100 ? 0.70 : 0)
  end
end[/pre]

点评

我代码里写上日期并不是卖萌用的  发表于 2015-7-2 14:03
不要用和原来的方法名相同的别名  发表于 2015-7-2 13:59
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部