储存详细职业的文件在`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.攻速}"
```
- 通用配置(使用px之前先看这里)
- 1分钟搭建数据库
- 1分钟搭建Redis环境教程
- 常见问题与报错
- [技能驱动]PxSkilldrive
- 介绍
- config配置
- 所有指令
- 单个技能完整配置
- MythisMobs技能配置
- 自带的技能系统[1.1.4+]
- 打开技能组
- PlaceHolderAPI变量
- 更新日志
- [商会]PxMerchant
- 介绍
- 配置文件
- 更新日志
- [帮派]PxGangs
- 介绍
- 用前必看
- 指令一览
- 职位/权限
- 帮派数据/建筑
- PlaceHolderAPI变量
- 兼容插件
- 更新日志
- [商店]PxShop
- 介绍
- 完整商店配置
- 货币/商品
- 更新日志
- [在线/成就奖励]PxLoginRewards
- 介绍
- 安装使用
- 完整配置
- 要求/奖励
- 更新日志
- [属性]PxRpg
- 介绍
- 安装使用
- 模块文件夹
- 指令
- 属性
- 属性是什么
- 如何创建属性
- 属性组
- 如何利用属性打出伤害(已过时)
- 词条
- 介绍
- 随机词条组列表[4.4.2+]
- 职业
- config[已过时]
- 创建一个职业[已过时]
- 职业[4.3.0+]
- config[4.3.0+]
- 怪物
- 天生属性[4.5.4+]
- 装备
- 装备配置文件
- 让装备获得属性
- 装备变量[已过时]
- 装备类型
- 手持武器[4.5.3+]
- 切换装备[4.5.3+]
- 物品显示模板(lore内容)
- 装备模板的使用
- 物品
- 普通物品
- 消耗品
- 回血道具[旧版]
- 代码回血/回蓝(4.3.0+)
- code代码执行(4.3.0+)
- 介绍
- 例子
- Buff相关
- 传送相关
- 执行3种指令
- 洗炼道具
- 强化类
- 强化道具
- 强化保护券
- 强化券
- 强化转移道具
- 解绑道具
- 宝石相关
- 打孔道具
- 摘除宝石
- 绑定系统
- 绑定类型
- 战斗系统
- 战斗公式变量(已弃用)
- 配置战斗公式[4.3.0+]
- 攻击类型列表
- 自定义伤害类型
- 伤害机制
- 伤害显示
- 掉落
- 掉落类型(已弃用)
- 配置怪物掉落包
- 掉落包[4.3.0+]
- Buff
- 介绍
- buff支持的词条
- 给予buff的方法
- 显示相关
- 萌芽显示
- 龙核相关
- 套装
- 介绍
- 技能[4.5.1+]
- 介绍
- 配置技能
- 技能词条介绍
- 钩子模块[4.5.1+]
- 介绍
- 监听器API
- [自身]Monitor.yml
- [装备容器]Equip Container.yml
- [鉴定]Appraisal.yml
- [绑定]Bind.yml
- [怪物]Mob.yml
- [Buff]Buff.yml
- [分解]Decompose.yml
- [战斗]Fight.yml
- [职业]Occupation.yml
- [玩家]Player Data.yml
- Mythicmobs
- 兼容mm技能(不推荐)
- 如何让MM打出伤害
- MM技能Buff(4.1.1新增)
- MM技能触发Pr伤害(4.2.1+)
- SkillAPI(4.3.0)
- 同步SkillAPI职业
- 战斗公式变量(已弃用)
- 个人变量(已弃用)
- 覆盖技能伤害
- Buff(4.1.1新增)
- 给Mob添加Buff(4.1.1新增)
- 治疗/回蓝组件(4.3.0+)
- PlaceholderAPI变量
- 统计(4.1.0更新)
- [附属]装备经验和升级
- 使用教程
- [附属]物品拓展功能
- 介绍
- [ExtendGui]窗口环境的所有方法
- [ExtendData]拓展数据所有方法
- 类方法
- [工具类]QuickTools
- [拓展数据]ExtendData
- [拓展属性]Attr
- [拓展技能]SkillLv
- 物品生成时添加
- 属性拓展
- 技能拓展[1.0.1+]
- 大量例子
- [福利]提交活动
- 作者发布
- 简单强化
- 界面锁定
- 延迟强化
- 菜单例子
- 吞噬物品永久保存
- 安笙
- 作者介绍
- 词条强化[暂无法使用 等待更新]
- 酒桶
- 作者介绍
- 更新日志
- [附属]萌芽装备容器
- 介绍
- 例子
- 常用工具类
- [数据容器]UMap
- [属性对象]Att
- [对象BUFF]BuffContainer
- [技能对象]USKill
- 接入PxRpg插件(开发者)
- 注册模块入口
- 接入属性
- 模块配置读取
- 接入物品
- 道具生成
- 道具数据获取
- 设置数据并渲染
- 自定义道具组件
- 具有生成参数的组件
- 集成模块介绍
- 更新日志
- 视频预览
- 4.3.0+新版公式教程
- 简介(内含旧版公式转换器)
- 教程(战斗公式篇)(必先学)
- 传递参数和类型的常用方法(重要)
- 单例属性教程(含战斗力变量教程)
- 道具消耗品(含属性加成)
- 装备/宝石/怪物的属性词条
- Buff新版词条(内含属性加成)
- Drop掉落物配置(内含属性掉落加成)
- [副本]PxInstance-Pro
- 介绍
- 世界规则
- 指令详解
- 副本规则(rule)
- 触发器(trigger)
- 触发器参数详解
- 条件(condition)
- 事件(event)
- 副本流程详解
- 根据难度初始化怪物
- 判定通关条件,发放通关奖励
- 副本倒计时/超时处理
- 动态创建倒计时
- 结算奖励
- 副本自带变量
- PlaceholderAPI变量
- 更新日志
- [副本]PxInstace(不再更新)
- 介绍
- 安装使用
- 配置教程
- PlaceholderAPI变量
- 流程配置
- [队伍]PxTeam-Pro
- 介绍
- HUD设置教程
- 变量大全
- 配置文件
- config.yml
- 开发者
- 调用API
- 更新日志
- [任务]BookQuest
- 介绍
- 完整任务配置
- 4种状态显示[4.2.1+]
- 要求/奖励
- 更新日志
- [对话]PxDialogue
- 介绍
- 完整的对话配置
- 一个住酒店的例子
- 更新日志
- [采集]PxCollect
- 介绍
- 作物配置
- 区域生成
- 种植配置
- 条件/事件
- 更新日志
- [技能快捷键]PxQuickSkill
- 介绍
- [仓库]PxWarehouse
- 介绍
- 更新日志
- [拍卖行]PxAuction
- 介绍
- [队伍]PxTeam(不再更新)
- 介绍
- [锻造]PxForging
- 介绍
- 材料/产物
- 完整的锻造配置
- 更新日志
- [邮箱]PxEmail
- 介绍
- PlaceHolderAPI变量
- 编辑邮件模板
- 编辑玩家群
- 编辑系统类型
- 编辑定时邮件
- 权限
- 更新日志
- [MM管理]PxMMSpawner
- 介绍
- 更新日志
- [前置]PxTools(通用部分)
- 介绍
- 掉落物显示[1.12.2+]
- 函数[弃用]
- abs
- ceil
- decimals
- floor
- format
- gradual
- if
- max
- min
- pow
- prd
- random
- randomint
- randomweight
- repeat
- round
- sum
- time
- 要求/奖励(1.9.0+)
- 时间要求(1.9.1+)
- 条件/事件
- 指令
- 事件组
- PlaceholderAPI变量
- 更新日志
- 一些通用的工具类
- 介绍[必看]
- [经济]Vault
- [点券]PlayerPoints
- PxTools相关
- [玩家变量]VarAPI
- [玩家标签]TagAPI
- [玩家计数器]CountAPI
- [时间相关]Date
- [数学函数]Math
- [变量API]PlaceholderAPI
- [自定义冷却]CooldownUtil
- [数字千分化]NumFormat
- [萌芽API]GermAPI
- 消息转发[1.12.3+]