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

Project1

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

[已经解决] 普通能力加成问题(问题已解决)

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1346
在线时间
806 小时
注册时间
2013-8-3
帖子
455
跳转到指定楼层
1
发表于 2017-10-22 22:48:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 小小西 于 2017-10-23 19:48 编辑

系统正常加成如下:
基础物理攻击100

附加状态A:物理攻击100*200%
物理攻击200
附加状态B:物理攻击100*200%
物理攻击400
附加状态C:
物理攻击100*200%
物理攻击800


我想要这样的效果:
物理攻击100
附加状态A:物理攻击100*200%
物理攻击200
附加状态B:物理攻击100*200%
物理攻击300
附加状态C:物理攻击100*200%
物理攻击400


所有状态效果以基础能力加成。








【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2017-10-22 23:05:17 | 只看该作者
本帖最后由 cinderelmini 于 2017-10-24 12:08 编辑

唔……也许可以把计算时,能力值加成比率求积的地方改成求和,
不知道下边这个处理姿势是不是正确,姑且想到了这个做法。
代码改了一下,现在可以使用特性里的*50%表示减少50%,用120%表示增加20%,两种都有的时候会变成-0.5+0.2=-0.3,
(很纠结的处理方式,现在这个办法是真的特蠢,暂时就先这么着吧
  1. class Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 计算特性值的总和(指定数据ID)
  4.   #--------------------------------------------------------------------------
  5.   def features_sum_other(code, id)
  6.     value = 1.0
  7.     features_with_id(code, id).each do |ft|
  8.       ft_v = ft.value
  9.       ft_v *= -1 if ft_v < 1.0
  10.       ft_v -= 1.0 if ft_v >= 1.0
  11.       value += ft_v
  12.     end
  13.     return value
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 获取普通能力的变化率
  17.   #--------------------------------------------------------------------------
  18.   def param_rate_other(param_id)
  19.     features_sum_other(FEATURE_PARAM, param_id)
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取普通能力
  23.   #--------------------------------------------------------------------------
  24.   def param(param_id)
  25.     value = param_base(param_id) + param_plus(param_id)
  26.     rate = param_rate_other(param_id)
  27.     value *= rate
  28.     value *= param_buff_rate(param_id)
  29.     [[value, param_max(param_id)].min, param_min(param_id)].max.to_i
  30.   end
  31. end
复制代码

点评

可以了,完美解决{:4_110:}  发表于 2017-10-24 19:28
再改了一下代码,现在这样是能想到的最好的办法了,比率基础值1.0,设置100%以上时会在基础值上叠加,设置100%以下会在基础值上消减,默认100%  发表于 2017-10-24 12:10
但是~~我原本想要的效果没有了。  发表于 2017-10-24 00:04
代码更新了一下,应该可以满足需求了……大概……  发表于 2017-10-23 23:04
有点小问题,以前普通能力+5%需要填写增加105%,现在增加5%只需要填写5%了,普通能力不能为负数,我想减少5%做不到了。  发表于 2017-10-23 21:14
回复 支持 2 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 16:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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