多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
储存详细职业的文件在`PxRpg\Modules\Occupation\Occupation` ``` # 显示名 display: 新手 # 加入权限 # pxrpg.occupation.join.* 或者 pxrpg.occupation.join.该权限 permissions: 新手 # 加入此职业的最大等级 # 0 = 无上限 join-max-level: 0 # 加入该职业之后,是否使用父职业的等级和继承其剩余经验 keep-level: true # 职业战斗伤害类型开关 # 如果职业未开启指定伤害类型,不会触发伤害 damage-types: mob: damage: 伤害: true projectile: arrow: 伤害: true snowball: 伤害: true egg: 伤害: true skillapi: {} mmskill: {} player: damage: 伤害: true projectile: arrow: 伤害: true snowball: 伤害: true egg: 伤害: true skillapi: {} mmskill: {} formula: # 战斗公式配置 # 支持数据继承 fight: mob: skillapi: {} mmskill: {} damage: 伤害: # 伤害机制(优先级 1) 优先级低 = 先计算 # 所有机制可使用的变量: # {last.伤害类型.机制ID.hit} (注意配置顺序)= 计算过的 伤害类型 下的 机制ID 的命中结果,会替换成返回true或者false # {last.伤害类型.机制ID.value} (注意配置顺序)= 计算过的 伤害类型 下的 机制ID 的伤害结果 # {last.伤害类型.total.damage} (注意配置顺序)= 计算过的 伤害类型 下的总伤害 # {total.damage} = 到此处时,所有机制的伤害 # {this.total.damage} = 当前伤害类型下的所有伤害值 damage: # 伤害机制 命中公式 可直接用小于1的小数代替概率值 # 可用所有函数以及特有 变量: # {a.属性ID.v_min} = 抖S 固定最小值 # {a.属性ID.v_max} = 抖S 固定最大值 # {a.属性ID.v} = 抖S 固定随机值 = v_min ~ v_max # {a.属性ID.s_min} = 抖S 百分最小值 # {a.属性ID.s_max} = 抖S 百分最大值 # {a.属性ID.s} = 抖S 百分随机值 = (s_min ~ s_max) # {a.属性ID.min} = 抖S 固定最小值 = v_min * (1+s_min) # {a.属性ID.max} = 抖S 固定最打值 = v_max * (1+s_max) # {a.属性ID} = 抖S 总值 = v * (1+s) # 抖M把上面的 a 改成 v 就行了,例如: {v.属性ID} # 如果兼容了SkillAPI还可以使用sk的变量(具体查看wiki) hit: '0.6' #value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) value: '{a.攻击}' # 暴击机制(优先级 2),并且强依赖伤害机制(伤害机制未执行成功或者MISS,不会处理暴击机制) # 并且优先级低的机制可使用变量: # {this.机制ID.hit} (注意机制优先级和依赖关系)= 计算过的 伤害类型 下的 机制ID 的命中结果,会替换成返回true或者false # {this.机制ID.value} (注意机制优先级和依赖关系)= 计算过的 伤害类型 下的 机制ID 的伤害结果 crit: # 暴击机制 暴击命中公式 hit: '0.60' # 暴击机制 暴击伤害公式 value: '{this.damage.value}' # 吸血机制(优先级 3),并且强依赖伤害机制(伤害机制未执行成功或者MISS,不会处理吸血机制) # 吸血的伤害结果不会计入伤害变量({total.damage} | {this.total.damage} | {last.伤害类型.total.damage})内 vampire: # 吸血机制 触发吸血公式 hit: '0.5' # 吸血机制 吸血值公式 value: '100' # 吸蓝机制(优先级 3),并且强依赖伤害机制(伤害机制未执行成功或者MISS,吸蓝机制) # 吸蓝的伤害结果不会计入伤害变量({total.damage} | {this.total.damage} | {last.伤害类型.total.damage})内 mana: # 吸蓝机制 触发吸蓝公式 hit: '0.5' # 吸蓝机制 吸蓝值公式 value: 'math.max(1+(1+math.max(1,0)),0)' projectile: arrow: 伤害: damage: hit: '0.75' value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) crit: hit: '0.5' value: '{this.damage.value}*{a.爆伤.s}' vampire: hit: '0.5' value: '{this.total.damage}*{ snowball: 伤害: damage: hit: '0.75' value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) crit: hit: '0.5' value: '{this.damage.value}*{a.爆伤.s}' vampire: hit: '0.5' value: '{this.total.damage}*{a.吸血.s}' egg: 伤害: damage: hit: '0.75' value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) crit: hit: '0.5' value: '{this.damage.value}*{a.爆伤.s}' vampire: hit: '0.5' value: '{this.total.damage}*{a.吸血.s}' player: skillapi: {} mmskill: {} damage: 伤害: # 伤害机制(优先级 1) 优先级低 = 先计算 # 所有机制可使用的变量: # {last.伤害类型.机制ID.hit} (注意配置顺序)= 计算过的 伤害类型 下的 机制ID 的命中结果,会替换成返回true或者false # {last.伤害类型.机制ID.value} (注意配置顺序)= 计算过的 伤害类型 下的 机制ID 的伤害结果 # {last.伤害类型.total.damage} (注意配置顺序)= 计算过的 伤害类型 下的总伤害 # {total.damage} = 到此处时,所有机制的伤害 # {this.total.damage} = 当前伤害类型下的所有伤害值 damage: # 伤害机制 命中公式 可直接用小于1的小数代替概率值 # 可用所有函数以及特有 变量: # {a.属性ID.v_min} = 抖S 固定最小值 # {a.属性ID.v_max} = 抖S 固定最大值 # {a.属性ID.v} = 抖S 固定随机值 = v_min ~ v_max # {a.属性ID.s_min} = 抖S 百分最小值 # {a.属性ID.s_max} = 抖S 百分最大值 # {a.属性ID.s} = 抖S 百分随机值 = (s_min ~ s_max) # {a.属性ID.min} = 抖S 固定最小值 = v_min * (1+s_min) # {a.属性ID.max} = 抖S 固定最打值 = v_max * (1+s_max) # {a.属性ID} = 抖S 总值 = v * (1+s) # 抖M把上面的 a 改成 v 就行了,例如: {v.属性ID} # 如果兼容了SkillAPI还可以使用sk的变量(具体查看wiki) hit: '0.75' # 伤害机制 伤害公式 同上 value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) # 暴击机制(优先级 2),并且强依赖伤害机制(伤害机制未执行成功或者MISS,不会处理暴击机制) # 并且优先级低的机制可使用变量: # {this.机制ID.hit} (注意机制优先级和依赖关系)= 计算过的 伤害类型 下的 机制ID 的命中结果,会替换成返回true或者false # {this.机制ID.value} (注意机制优先级和依赖关系)= 计算过的 伤害类型 下的 机制ID 的伤害结果 crit: # 暴击机制 暴击命中公式 hit: '0.5' # 暴击机制 暴击伤害公式 value: '{this.damage.value}*{a.爆伤.s}' # 吸血机制(优先级 3),并且强依赖伤害机制(伤害机制未执行成功或者MISS,不会处理吸血机制) # 吸血的伤害结果不会计入伤害变量({total.damage} | {this.total.damage} | {last.伤害类型.total.damage})内 vampire: # 吸血机制 触发吸血公式 hit: '0.5' # 吸血机制 吸血值公式 value: '{this.total.damage}*{a.吸血.s}' projectile: arrow: 伤害: damage: hit: '0.75' value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) crit: hit: '0.5' value: '{this.damage.value}*{a.爆伤.s}' vampire: hit: '0.5' value: '{this.total.damage}*{a.吸血.s}' snowball: 伤害: damage: hit: '0.75' value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) crit: hit: '0.5' value: '{this.damage.value}*{a.爆伤.s}' vampire: hit: '0.5' value: '{this.total.damage}*{a.吸血.s}' egg: 伤害: damage: hit: '0.75' value: Math.max(0.1*{a.攻击},({a.攻击}-{v.防御})*1.2) crit: hit: '0.5' value: '{this.damage.value}*{a.爆伤.s}' vampire: hit: '0.5' value: '{this.total.damage}*{a.吸血.s}' # 该职业的最大等级 max-level: 10 # 加入此职业的最小等级 join-min-level: 0 basic-attribute: 吸血: value: '0' sign: '0' 附加伤害: value: '0' sign: '0.2' 闪避: value: '{level}*1+5' sign: '0' 攻速: value: '0' sign: '1' 暴击: value: '0' sign: '0' 移速: value: '0' sign: '1' 攻击: value: '{level}*4+20' sign: '0' 注释_可创建N个自定义文件: value: '0' sign: '0' 魔法恢复: value: '{level}+60' sign: '0' 生命恢复: value: '{level}+60' sign: '0' 爆伤: value: '0' sign: '1.5' 生命: value: '{level}*30+50' sign: '0' 魔法: value: '{level}*3+10' sign: '0' 点券加成: value: '0' sign: '0' 金币加成: value: '0' sign: '0' 注释_一个文件等于一个属性: value: '0' sign: '0' 命中: value: '{level}*5+50' sign: '0' 防御: value: '{level}*2+10' sign: '0' 经验加成: value: '0' sign: '0' skillapi: # 职业是否同步到SkillAPI内 # 需严格按照wiki设置,否则可能会导致无效 syn: false syn: exp: true level: true level-up: # 默认所有等级都会触发的指令列表 default: [] '3': - op:say haha auto-level: 1 #自动升级之前的等级,如果为-1则全等级自动升级 #能否升级(会先判定经验是否足够,是否非满级),java代码,返回boolean (4.3.0+) can-uplevel: true #升级后的java代码,无返回值 参数: UMap data (内含玩家数据) (4.3.0+) level-up-code: '' ``` 如果你需要每个职业的生命公式不相同可以在formula节点下加入single节点,例子如下 ``` formula: single: health: "{att.最大生命}" mana: "{att.最大法力}" speed: "{att.速度}" exp: "{level}*400+{level}*{level}*3+400" recovery_health: "{att.生命回复}" recovery_mana: "{att.法力恢复}" attack_speed: "{att.攻速}" ```