ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[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})' #这是对的 ```