Project1

标题: 攻击力增加的是百分数值 [打印本页]

作者: NaturalBlue    时间: 2009-2-5 18:45
标题: 攻击力增加的是百分数值
装备某种武器时,攻击力增加的是固定数值,怎样能使增加值为角色本身攻击力的百分数。
最好不要发生下次读档时,这个攻击力读不出来。
谢谢!{/hx} [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: ★_茄孓    时间: 2009-2-5 18:47
什么意思?RM原来的攻击力是武器给的?是要武器给的攻击力的百分数吗?
作者: goahead    时间: 2009-2-5 19:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: NaturalBlue    时间: 2009-2-5 19:13
不好意思。原来在VX区问过,但没得到满意的答案,所以来这里问,但忘记了XP与VX的这点区别了。
现在问题改成:
装备某种武器时,攻击力增加的是固定数值,怎样能使增加值为角色本身力量的百分数。
最好不要发生下次读档时,这个攻击力读不出来。

作者: ★_茄孓    时间: 2009-2-5 19:15
VX的吗?
在定义角色的atk中
加上str%50就可以
作者: RXVincent    时间: 2009-2-5 19:22
我大概知道什么意思了,就是本来装备武器时STR就会加上武器的攻击力,现在LZ像装上武器后主角的攻击力变为str * 武器加成百分比。(某不会说话的人)
作者: NaturalBlue    时间: 2009-2-5 19:24
以下引用★_茄孓于2009-2-5 11:15:47的发言:
VX的吗?
在定义角色的atk中
加上str%50就可以

不太理解?脚本么?
是Game_Actor还是Game_Battler?
作者: IamI    时间: 2009-2-5 19:31
LZ可以给一个具体公式吗?XP里面力量和攻击力分开设置,VX取消了力量的设定,而且XP里面空手攻击力是0……请说明你需要的版本和公式计算法则
作者: NaturalBlue    时间: 2009-2-5 19:43
以下引用IamI于2009-2-5 11:31:48的发言:

LZ可以给一个具体公式吗?XP里面力量和攻击力分开设置,VX取消了力量的设定,而且XP里面空手攻击力是0……请说明你需要的版本和公式计算法则

如果是XP:武器攻击力=角色当前等级时的力量*比率
如果是VX:武器攻击力=角色当前等级时的攻击力*比率
注:比率最好可以自设。XP或VX的都可以,反正两个差不多。
作者: IamI    时间: 2009-2-5 19:57
发现XP的公式很会让人头痛……那就VX吧
class Game_actor
  #--------------------------------------------------------------------------
  # ● 获取基本攻击力
  #--------------------------------------------------------------------------
  def base_atk
    n = actor.parameters[2, @level]
    for item in equips.compact do n *= (item.atk / 100.0) end
    n = Integer(n)
    return n
  end
end
把这段脚本插入Main之前
理解了一下,公式如下:
ATK = (基础 * 武器攻击力加成% * 防具1攻击力加成% * …… * 防具4攻击力加成% + 攻击力额外加成) * 状态1加成 * 状态2加成 * ……
要说的是,设置低于100,攻击力反而下降= =《=人懒的后果
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: NaturalBlue    时间: 2009-2-6 01:17
以下引用IamI于2009-2-5 11:57:00的发言:
把这段脚本插入Main之前
理解了一下,公式如下:
[本贴由作者于 2009-2-5 11:58:19 最后编辑]

好像没什么变化……{/jy}
作者: IamI    时间: 2009-2-6 19:19
打错了一个字母= =把第一行的actor改成Actor即可
作者: NaturalBlue    时间: 2009-2-7 06:36
以下引用IamI于2009-2-6 11:19:45的发言:

打错了一个字母= =把第一行的actor改成Actor即可

关于公式还是有点不明白……
n = actor.parameters[2, @level]是角色的无装备的攻击力,
item.atk是每件装备的攻击力,item.atk / 100.0为武器攻击力加成%。(不知道说的对不对)
假设现有一个角色,他的actor.parameters[2, @level]为17,现在他什么也没装备,然后想让他装备攻击力为120的一件武器。结果在窗口中装备完后攻击力显示为20。
如果还装备其他的防具(防具攻击力为0),该角色的攻击力就变为1,MS公式不是做的各件装备的相应的能力值之和(而是一直在乘百分数,是吧?)。
期待您的回复!{/hx}


作者: IamI    时间: 2009-2-10 01:32
一直在乘百分数没错,但是论修改最近我怕是没什么时间了。LZ可自行尝试,或请他人修改
根据数值是17 * 120% = 20.4 = 20
装0的话乘上0攻击力归0,由于保底的效果仍然有1
作者: NaturalBlue    时间: 2009-2-10 08:14
以下引用IamI于2009-2-9 17:32:03的发言:

一直在乘百分数没错,但是论修改最近我怕是没什么时间了。LZ可自行尝试,或请他人修改
根据数值是17 * 120% = 20.4 = 20
装0的话乘上0攻击力归0,由于保底的效果仍然有1

已进行了完善和修改,感谢IamI的帮助!{/hx}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1