按F1里边帮助挺全的
公式:
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 × 角色的速度平均值 ÷ 敌人的速度平均值
现在讲修改伤害计算公式。
=========================
按这个,进入脚本编辑器
按蓝色部分,右方显示代码。
找到49---51行,有如下文字:
# 计算基本伤害
atk = [attacker.atk - self.pdef / 2, 0].max
self.damage = atk * (20 + attacker.str) / 20
这里规定了普通攻击算法
比较重要的是,#表示注释,在#后的同一排的文字不执行
如果改成下面这样:
# 计算基本伤害
atk = [attacker.str - self.dex / 4, 0].max
self.damage = atk #* attacker.str / 40
那么,算法就变成了
力量-灵巧/4
而伤害等于攻击,因为 #* attacker.str / 40 有#符号,后面被注释了。
接下来是代码:
atk 攻击力
def 防御力
str 力量
dex 灵巧
mdef 魔法防御
agi 速度
int 魔力
attacker 攻击者
damage 伤害
要注意,基础的格式不能变,只能改代码
那么,就按格式改自己喜欢的伤害公式吧~~~~~~~`
不过呢,如此一来,就要更改爆击和回避公式,这个以后说....
==================================================
作业:
请找到相同脚本的134---141行,有如下文字:
# 计算倍率
rate = 20
rate += (user.str * skill.str_f / 100)
rate += (user.dex * skill.dex_f / 100)
rate += (user.agi * skill.agi_f / 100)
rate += (user.int * skill.int_f / 100)
# 计算基本伤害
self.damage = power * rate / 20
这里规定了法术伤害,请用相同的方法改一改吧~~~
提示:把前5行rate的后4个rate给注释掉,改最后的伤害公式就可以了
自带“帮助”中就有的。