[TOC]
</br></br></br></br>
# 通用变量
> 仅用于支持公式表达式的地方
> 支持玩家的PlaceholderAPI变量
> 支持玩家个人属性变量,如: `{att.掉落概率}`QAQ
|变量|作用|
|---|---|
|{level} |怪物等级 |
|{mob.level} |怪物等级 |
|{mob.id} |怪物ID,原版怪物就是类型,如:pig |
</br></br>
# 通用参数
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|asy-init |异步初始化掉落 | true |true |
|asy-make |异步执行掉落结果 | true |true |
|prob |掉落概率(true/false)(也支持纯小数0~1) | true(纯小数不支持表达式) |1 |
</br></br>
# 物品类
## 物品类掉落通用参数
> 下面所有类型都支持的参数
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|amount |掉落数量 | true |1 |
|cache |如果其内容不会变动可设置true,如材料道具,可设置成true以提高生成效率 | true |装备: false </br> 宝石:false </br> 道具: true |
|protect |是否启用最高伤害的归属保护 | true |true |
|protect-time |保护时长(毫秒),未启用保护时失效,如果值<=0则调用系统默认保护时长 | true |0 |
</br></br></br></br>
## Equip(装备)
> 格式: `type=equip`
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|id |装备的id | true |必填 |
|level |[生成参数] 物品等级 | true | 0 |
|quality |[生成参数] 物品品质 | true | 默认品质 |
|bind |[生成参数] 绑定类型 | true | 默认绑定类型 |
|appraisal |[生成参数] (仅支持装备) 已鉴定 | true | true |
|hole |[生成参数] (仅支持装备) 孔数 | true | 0 |
|streng |[生成参数] (仅支持装备) 强化等级 | true | 0 |
</br></br>
### 例子
```
# 绑定类型是已绑定
- 'type=equip;id=新手武器;bind=已绑定'
# 绑定类型是已绑定并且孔数为3
- 'type=equip;id=新手武器;bind=已绑定;hole=3'
# 绑定类型是已绑定并且孔数为3,强化等级为15
# 但是需要玩家'攻击力'属性的总值>=100才能掉落
- 'type=equip;id=新手武器;bind=已绑定;hole=3;streng=15;prob=if({att.攻击力},>=,100{true,false})'
```
</br></br>
### 随机装备品质例子
> 需使用[`RandomWeight函数`](../../%E5%85%AC%E7%94%A8%E5%86%85%E5%AE%B9/%E5%87%BD%E6%95%B0/randomweight.md)搭配[`RandomInt函数`](../../%E5%85%AC%E7%94%A8%E5%86%85%E5%AE%B9/%E5%87%BD%E6%95%B0/randomint.md)
```
# 掉落一个随机品质的武器
- 'type=equip;id=新手武器;quality=randomWeight(randomInt(1,100){30,30,30,10:破损,稀有,精品,神话})'
# 解译:
# 30%概率随机到 '破损'
# 30%概率随机到 '稀有'
# 30%概率随机到 '精品'
# 10%概率随机到 '神话'
# 一共100%概率
```
</br></br>
## Item(道具)
> 格式: `type=item`
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|id |道具的id | true |必填 |
|level |[生成参数] 物品等级 | true | 0 |
|quality |[生成参数] 物品品质 | true | 默认品质 |
|bind |[生成参数] 绑定类型 | true | 默认绑定类型 |
</br></br>
### 例子
```
# 掉落 1 个已绑定的材料
- 'type=item;id=材料;bind=已绑定'
# 随机掉落 1到5个 已绑定的材料
- 'type=item;id=材料;bind=已绑定;amount=RandomInt(1,5)'
# 50%概率随机掉落 1到5个 已绑定的材料
- 'type=item;id=材料;bind=已绑定;amount=RandomInt(1,5);prob=0.5'
```
</br></br>
## Gem(宝石)
> 格式: `type=gem`
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|id |道具的id | true |必填 |
|level |[生成参数] 物品等级 | true | 0 |
|quality |[生成参数] 物品品质 | true | 默认品质 |
|bind |[生成参数] 绑定类型 | true | 默认绑定类型 |
</br></br>
### 例子
```
# 掉落 1 个 1级的 '攻击宝石'
- 'type=gem;id=攻击宝石;level=1'
# 随机掉落 1到5个 已绑定的材料
- 'type=item;id=材料;bind=已绑定;amount=RandomInt(1,5)'
# 50%概率随机掉落 1到5个 已绑定的材料
- 'type=item;id=材料;bind=已绑定;amount=RandomInt(1,5);prob=0.5'
```
</br></br>
# 数值类
</br></br>
## 通用参数
> 所有数值类通用参数
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|amount |掉落数量 | true |必填 |
</br></br>
## 可分享的数值类
### 通用参数
*****
> 所有可分享类通用参数
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|share |是否开启分享,不开启将归属于伤害最高的玩家 | true | false |
|flat |是否开启平摊,会根据攻击者造成的伤害进行计算 | true | false |
|flat-threshold |平摊的阈值,玩家对该怪物造成的伤害超过百分之多少即可加入平摊 | true | 0 |
</br></br>
### PxRpgExp(职业经验)
> 格式: `type=pxrpgexp`
</br></br>
#### 例子
```
# 掉落50经验
- 'type=pxrpgexp;amount=50'
# 掉落 10到50 的经验
- 'type=pxrpgexp;amount=50'
# 50%概率掉落 10到50 的经验
- 'type=pxrpgexp;amount=RandomInt(10,50);prob=0.5'
# 玩家等级-怪物等级 大于 10的时候,就不给掉落经验了
# 否则掉落 10到50 的经验
- 'type=pxrpgexp;amount=RandomInt(10,50);prob=if(%player_level%-{level},>,10{false,true})'
```
</br></br>
### Point(点券)
*****
> 需要`PlayerPoints`的支持
> 格式: `type=point`
</br></br>
#### 例子
```
# 掉落50点券
- 'type=point;amount=50'
# 掉落 10到50 的点券
- 'type=point;amount=50'
# 50%概率掉落 10到50 的点券
- 'type=point;amount=RandomInt(10,50);prob=0.5'
# 玩家等级-怪物等级 大于 10的时候,就不给掉落点券了
# 否则掉落 10到50 的点券
- 'type=point;amount=RandomInt(10,50);prob=if(%player_level%-{level},>,10{false,true})'
```
</br></br>
### Money(游戏币)
*****
> 需要`Vault`的支持,并且任意一款实现了它的插件,如 `CraftConomy3` `iConomy6`等
> 格式: `type=money`
</br></br>
#### 例子
```
# 掉落50游戏币
- 'type=money;amount=50'
# 掉落 10到50 的游戏币
- 'type=money;amount=50'
# 50%概率掉落 10到50 的游戏币
- 'type=money;amount=RandomInt(10,50);prob=0.5'
# 玩家等级-怪物等级 大于 10的时候,就不给掉落游戏币了
# 否则掉落 10到50 的游戏币
- 'type=money;amount=RandomInt(10,50);prob=if(%player_level%-{level},>,10{false,true})'
```
</br></br>
# Cmd(指令)
> 格式: `type=cmd`
|参数|作用|支持公式表达式|默认(有默认值的都是可选)|
|---|---|---|---|
|cmd |指令</br>支持以下三种</br>`con:` 控制台指令</br>`op:` 玩家以OP形式执行</br>`无任何前缀` 玩家执行 | true |必填 |
</br></br>
## 例子
```
#玩家以OP执行
- 'type=cmd;cmd=op:say 掉落物OP指令'
#50%概率执行控制台指令
- 'type=cmd;cmd=con:say 控制台指令由%player_name%掉落;prob=0.5'
#玩家执行
- 'type=cmd;cmd=say 有权限才会显示这条'
```
</br></br>
# 掉落概率的详细玩法
</br></br>
## 自定义概率
```
# 游戏币为例,这两种方法的作用是相同的,都是30%概率掉落
- 'type=money;amount=10;prob=0.3'
- 'type=money;amount=10;prob=if(random(0,1),<=,0.3{true,false})'
```
</br></br>
## 掉落概率加成的属性
先在`PxRpg\Modules\Attribute\Attribute`创建一个`掉落概率.yml`的属性文件
这里的`掉落概率`是随意取名的,这里只是用作教程
```
# 制作一个10%掉落的项目时,下面这种方法是固定10%的掉率,不会增加掉落概率
- 'type=gem;id=攻击宝石;level=1;prob=0.1'
# 但是如果要使用玩家属性变量时/函数/表达式时,就不能这样写了
- 'type=gem;id=攻击宝石;level=1;prob=0.1+{att.掉落概率.s}' #这是错的,无法识别概率
# 应该这样写
- 'type=gem;id=攻击宝石;level=1;prob=if(random(0,1),<=,0.1+{att.掉落概率.s}{true,false})' #这是对的
```
- 通用配置(使用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+]
