Project1

标题: 如何修改这个定义:n力量=n/2攻击 [打印本页]

作者: new1984    时间: 2008-4-22 06:25
标题: 如何修改这个定义:n力量=n/2攻击
默认的+力量是加什么的? 没有加攻击?


另外 关于计时器的脚本是哪段,看了录象忘了。。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: havealook    时间: 2008-4-22 06:30
默认战斗计算式:
RPGXP 默认的战斗系统,采用以下的计算式。
攻击方角色表示为 A,被攻击方角色以 B 表示。
第一命中率判定
普通攻击
第一命中率 = A 当前状态下的命中率 %
技能攻击
攻击力 F 为 1 以上(物理攻击)
第一命中率 = 技能的命中率 × A 当前状态下的命中率 % ÷ 100
攻击力 F 为 0(物理攻击以外)
第一命中率 = 技能的命中率
使用物品
第一命中率 = 物品的命中率
•        A 在正常状态下的命中率为 100。
必杀机率判定
普通攻击
必杀率 = 4 × A 的灵巧 ÷ B 的速度
技能攻击
必杀率 = 0
使用物品
必杀率 = 0
•        必杀率即奋力一击(通常会使敌方常受到较大的损伤)发生的机率,如果必杀率为 4 则表示每 4 个回合就出现一次奋力一击。
伤害计算
普通攻击
威力 = A 的攻击力 - (B 的物理防御 ÷ 2)
放大率 = 20 + A 的力量
分散度 = 15
•        威力的最小值:0
技能攻击
技能的威力值为正数
威力        =        技能的威力
        +        (A 的攻击力 × 技能的攻击力 F ÷ 100)
        -        (B 的物理防御 × 技能的物理防御 F ÷ 200)
        -        (B 的魔法防御 × 技能的魔法防御 F ÷ 200)
•        威力的最小值:0
技能的威力值为负数
威力 = 技能的威力
放大率        =        20
        +        (A 的力量 × 技能的力量 F ÷ 100)
        +        (A 的灵巧 × 技能的灵巧 F ÷ 100)
        +        (A 的速度 × 技能的速度 F ÷ 100)
        +        (A 的魔力 × 技能的魔力 F ÷ 100)
分散度 = 技能的分散度
使用物品
HP 回复量为负数
威力        =        - HP 回复量
        -        (B 的物理防御 × 物品的物理防御 F ÷ 20)
        -        (B 的魔法防御 × 物品的魔法防御 F ÷ 20)
•        威力的最小值:0
HP 回复量为正数
威力 = - HP 回复量
放大率 = 20
分散度 = 物品的分散度
伤害 = 威力 × 放大率 ÷ 20 × 属性修正 × 必杀修正 × 防御修正 ( ± 分散度 %)
•        属性修正:有攻击属性时,在 B 的属性有效度中选择最弱的进行修正,修正值如下。
A:200%,B:150%,C:100%,D:50%,E:0%,F:-100%
另外,攻击属性符合 B 防具的防御属性的,伤害减半,修正值为 1/2。
有多个相同防御属性的,减半效果要叠加。
•        必杀修正:伤害值为正数,奋力一击发动时修正值为 2。
•        防御修正:伤害值为正数,B 防御时修正值为 1/2。
第二命中率判定
伤害值为正数
B 为正常状态
回避力 = 8 × B 的速度 ÷ A 的灵巧 + B 的回避修正
普通攻击
第二命中率 = 100 - 回避力
技能攻击
第二命中率 = 100 -(回避力 × 技能的回避 F ÷ 100)
使用物品
第二命中率 = 100
B 附加有「不能回避攻击」状态
第二命中率 = 100
伤害值为负数(回复)
第二命中率 = 100
逃跑成功率
逃跑成功率 =50 × 角色的速度平均值 ÷ 敌人的速度平均值
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 水迭澜    时间: 2008-4-22 06:32
攻击算式在Game_Battler3里改
计时器的是Time类,帮助文档里有……
作者: havealook    时间: 2008-4-22 06:33
Sprite_Timer是计时器的脚本

LZ如果还有新的问题请重新发帖问,请不要总编辑新的问题
作者: link006007    时间: 2008-4-22 06:41
class Game_Actor < Game_Battler
  def base_atk
    weapon = $data_weapons[@weapon_id]
    return (weapon != nil ? weapon.atk : 0) + (str>>1)
  end
end
这个就是 攻击力 = 力量/2 + 武器攻击力
修改力量 在这个类中重写 def str函数就好了  return base_atk>>1
作者: new1984    时间: 2008-4-22 06:50
谢谢, 辛苦了;下次注意




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