【独立副本】PxInstance异步世界的副本插件,一队一副本,无抢怪,无上限创建
购买详情
预览截图
4.0.0重制版!!!!1.复制世界存档为一个副本世界
2.一队一房间,无抢怪,结束自动清除世界
3.流程控制副本,更灵活,自定义性更大
4.无限创建副本,无需先载入世界直接从硬盘载入
5.内置单人队伍(可单人进行副本,多人需要队伍插件的支持)
6.实时保存房间设置,重启后自动读取并创建房间
7.房间可设置最大副本数量
8.房间可设置满载运行(创建房间时就把所有副本世界创建好)
9.在线编辑世界
10.可随时重载副本配置(运行中的副本不受影响)
11.可随时重载房间设置(运行中的副本不受影响)
硬前置:
- PxTools
软前置:
- pxteam(支持副本的队伍插件)
- mythicmobs
config.yml配置
pxp:
# 网站 https://www.pxpmc.com/ 中的用户名/手机/邮箱
user: ""
# 网站 https://www.pxpmc.com/ 中用户购买之后的令牌码
key: ""
storage:
#储存方式
#MySql
type: mysql
#不是数据库下面则不用更改!
mysql:
url: '127.0.0.1'
#表前缀
table-prefix: 'px_'
#数据库名
table: 'px'
#数据库参数,不懂留空即可
params: ''
user: root
password: root
max-line: 1
#副本状态的翻译
state-notes:
PREPARATION: "&e准备中"
WAITING: "&a准备完毕"
STARTED: "&c已开始"
UNLOADING: "&e卸载中"
ENDED: "&e已结束"
WRONG: "&c出错"
#复制世界文件夹时,跳过的文件列表
#不懂不要改
world-skips:
- 'uid.dat'
- 'session.lock'
base:
#玩家每天默认的活力值
#指令可以无上限添加活力,但是每天刷新的时候会重置成该值
vitality: 100
#每天几点刷新活力值
#默认0 24小时制
refresh-hours: 0
#多少分刷新
#默认0 取值范围0-60
refresh-minute: 0
#玩家进入游戏时,所处的游戏模式
#以防玩家在副world-debug本内死亡时,蹦服导致模式还是观战模式
#会在玩家进入游戏,是属于观战者模式时触发
#留空(默认为空)或者查不到指定模式时,将不做任何更改
#CREATIVE = 创造模式
#SURVIVAL = 生成模式
#ADVENTURE = 冒险模式
#SPECTATOR = 观战模式
default-gamemode: 'SURVIVAL'
#流程debug
process-debug: false
#检测背包复活币时,跳过的位置
#工具栏0-8,背包9-26
skip-check-slot-list:
- 0
#安全的副本退出点
#当玩家在某些极少原因离开副本失败时
#因传送失败导致的从而传送到这个坐标
safe-location:
x: 0
y: 0
z: 0
yaw: 0
pitch: 0
world: 'world'
team:
#队伍兼容的模式
#
# Built In = 副本自带的单人副本
# PxTeam = px的队伍,默认
hook: 'Built In'
#玩家在副本中能否踢出玩家 默认 false
in-can-kick: false
#玩家距离队长多少距离之内可以才可以进入副本
distance: 20
#副本内的显示名
in-instance-world-name: '副本中: {name}'
#在这里添加世界名字,用于变量%pxinstance_world_name%
#可以汉化世界名
#副本的话会显示在副本中,并显示副本名
world-names:
world: '主世界'
plot: '地皮世界'
副本例子的配置
#副本所在的世界 world: "a" #副本名字 name: "测试副本" #同时消耗的副本列表 #每行代表一个副本ID #进入该副本时,同时增加一次列表内所有副本的进入次数 #不会检测该列表的进入次数是否满足,只作为同步更新进入次数 #例如: # - '副本1' # 表示进入该副本会增加所有进入玩家'副本1'的1次进入次数 hook: [] #规则列表 规则列表全小写 # place[:方块英文ID[:子ID]] = 禁止放置指定方块 # onlyplace:方块英文ID[:子ID] = 可放置指定方块 # 例如: 'place:stone:1' = 禁止放置花岗岩 # 例如: 'place:stone' = 禁止放置所有石头 # 例如: 'place' = 禁止放置所有方块 # break[:方块英文ID:子ID] = 无法破坏方块 # onlybreak:方块英文ID[:子ID] = 无法破坏指定方块 # pve = 副本世界内无法PVE # pvp = 副本世界内无法PVP # evp = 副本世界内无法EVP rules: - 'place' - 'onlyplace:drit:0' - 'break' - 'onlybreak:grass' #进入等级 ,原版MC的等级 # 0-10 = 0到10级(含前后) # 0 = 0级以上(含) # 10 = 10级以上(含) join-level: '0-10' #进入人数要求 # 1-2 = 1到2个人 # 1 = 一个人 join-amount: '1-5' #副本开始的位置 start: x: -23 y: 65 z: 333 pitch: 0 yaw: -180 #副本结束的位置 end: x: -23 y: 65 z: 333 pitch: 0 yaw: -180 #注意结束副本位置必须填入世界名 #请填入正确的世界,否则会产生异常 world: 'world' #每天进入的次数以及权限 #会取玩家最大进入次数的一个权限设置 permission: #自定义ID,自己看得懂就行 默认次数: #是否是每日模式,每日模式 每日0点刷新 #默认: true day: false #权限, 留空或者没有该节点,表示任何玩家都拥有该数据 permission: '' #进入需要消耗的体力,在主配置内配置玩家的体力 #默认: 0 vitality: 1 #当天可进入的次数 times: 999 #进入需要的游戏币, >=0, 0或者没有该节点,表示不需要游戏币 money: 0 #进入需要的点券, >=0, 0或者没有该节点,表示不需要点券 point: 0 #可复活的次数,-1=无限 ,默认-1 respawn: -1 #需要的物品, 留空或者没有该节点,表示不需要门票道具 needs: [] #参数1 [物品名称] 不带颜色 #参数2 [数量] 默认为1 #- "入场券 1" #随意ID,自己看得懂就行 VIP1次数: permission: 'pxinstance.vip.1' #拥有'pxinstance.vip.1'权限可以进入4次 times: 4 vitality: 5 VIP2次数: permission: 'pxinstance.vip.2' times: 999 vitality: 1 #开放时间 open-time: #第一个进入的时间,随意ID 全天开放: #开始时间 in: #填now则是当前时间 默认为now #0 - 9999 year: 'now' #1 - 12 month: 'now' #1-31 按照上面的月份来 day: 'now' #小时 24小时制 hour: '0' #分钟 0-60 min: '0' #秒钟 0-60 second: '0' #结束时间 to: hour: '23' min: '59' second: '59' #单个玩家死亡后的复活时间 (秒) #默认60 0=立即退出 -1=副本结束时退出或者手动退出 respawn-time: -1 #死亡的title提示 respawn-msg: title: '&c你已经阵亡!!! &6[&b{time}&6]' small: '&c* &e请使用 &b/pi i respawn&e复活&6(剩余次数:{player.current}/{player.max}队伍复活次数:{team.current}/{team.max})&e 或 &b/pi i quit&e 立即退出 &c*' #所有玩家死亡后,副本即将失败的复活等待时间 (秒) #必须大于0 ,默认20 all-respawn-time: 20 #所有玩家死亡的title提示 all-respawn-msg: title: '&c玩家全部阵亡!!! &6[&b{time}&6]' small: '&c* &e请使用 &b/pi i respawn&e复活&6(剩余次数:{player.current}/{player.max}队伍剩余复活次数:{team.current}/{team.max})&e 或 &b/pi i quit&e 立即退出 &c*' #队伍所有玩家可复活的次数 -1=无限 # 默认-1 team-respawn-amount: -1 #副本最大时间,超过失败 (秒) # 0 = 无限时长 或者 流程走完 max-time: 0 #剩余时间的信息,如果为空或者没有,则不提示 # {run.time} = 剩余时间, 秒 保留一位小数 toolbar-msg: '&6副本剩余时间: &c{run.time} &6秒' #lore中包含该条则表示该物品是该副本的复活币 lore-of-revived-coin: '复活币' #流程设置 #由于剩余时间使用的是toolbar 所以尽量不要使用toolbar process: #等待2秒 - 'type=wait;time=2' #给 变量 值增1 - 'type=var;op=add;name=循环次数变量;value=1' #发送信息给进入的所有玩家 - 'type=msg;msg=&b副本开始...;target=join' #测试打印变量值 - 'type=cmd;cmd=say &b测试 %player_name% [{var.循环次数变量}];target=join' #刷MM怪 , 怪ID为: a - 'type=mm;loc=-23,65,334,180,0;id=a;amount=1;level=5' #发送信息给进入的所有玩家 - 'type=msg;msg=&b怪物刷新完毕...;target=join' #永久等待玩家击杀MM怪(因为time=-1),击杀完毕后继续往下走 - 'type=mmmobcheck;id=a;less=0;time=-1;jump=不会触发的跳转' #写入一个跳转标记 - 'type=rem;rem=不会触发的跳转' #发送信息给进入的所有玩家 - 'type=msg;msg=&b5秒内走到-23,65,334位置去,不然副本失败;target=join' #5秒检测玩家是否在区域内,如果超时,则跳到"超时标记"流程 #否则继续往下走 - 'type=group;loc=-23,65,334;x=2;y=2;z=2;amount=1;time=5;jump=超时标记' #继续往下走表示副本通关 - 'type=title;time=5;title=&a[通关];small=&6[&b{time}&6] &a秒后离开副本;a=0;b=10;c=0;target=join' #手动结束,note(注释)节点为pass(或者自定义任何文本) - 'type=end;note=pass' #超时标记 - 'type=rem;rem=超时标记' #发送超时信息 - 'type=title;time=5;title=&c[失败]未到达指定地点;small=&6[&b{time}&6] &a秒后离开副本;a=0;b=10;c=0;target=join' #手动超时结束 - 'type=end;note=超时' # - 'type=rem;rem=循环标记' # - 'type=var;op=add;name=循环次数变量;value=1' # #- 'type=title;time=1;title=&7;small=&a副本 [&b{time}&a] 秒后开始...;a=0;b=10;c=0;target=join' # #- 'type=title;time=1;title=&7;small=&a等待 [&b{time}&a] 秒钟,刷第一波怪;a=0;b=10;c=0;target=join' # - 'type=mm;loc=-94.413,66,254.136,180,0;id=b;amount=1;level=1' # #- 'type=title;time=2;title=&7;small=&a怪物刷新完毕, [&b{time}&a] 秒后传送到怪物面前;a=0;b=10;c=0;target=join' # #- 'type=tp;loc=-90.413,66,254.136,180,0;target=join' # #- 'type=resetpoint;loc=-90.413,66,254.136,180,0' # - 'type=msg;msg=&b请在10秒内击败所有怪物,否则将会刷新新的怪物,&c当前循环次数: [{var.循环次数变量}];target=join' # - 'type=mmmobcheck;id=b;less=0;time=10;jump=跳过循环2' # - 'type=varcheck;op=large;name=循环次数变量;value=5;jump=跳过循环1' # - 'type=msg;msg=&c没有在规定时间内击败所有怪物,将循环刷怪直至击败所有怪物;target=join' # - 'type=jump;rem=循环标记' # - 'type=rem;rem=跳过循环1' # - 'type=msg;msg=刷新超过了5次,直接跳过了循环;target=join' # - 'type=jump;rem=跳过1' # - 'type=rem;rem=跳过循环2' # - 'type=msg;msg=击败了所有怪物,这是跳转循环后的流程;target=join' # - 'type=rem;rem=跳过1' # - 'type=title;time=1;title=&7;small=&a副本所有流程已经走完, [&b{time}&a] 秒后退出;a=0;b=10;c=0;target=join'
papi变量
%pxinstance_join_times:(副本ID)% = 副本当天进入次数 %pxinstance_join_max_times:(副本ID)% = 副本的可进入次数 %pxinstance_join_person:(副本ID)% = 副本进入需要的人数 %pxinstance_join_level:(副本ID)% = 副本进入需要的等级 %pxinstance_name:(副本ID)% = 副本名字 %pxinstance_world_name% = 玩家当前所在的世界名字,在副本内会替换成副本名称 %pxinstance_default_vitality% = 所有玩家每日重置的活力/最大活力值 %pxinstance_join_vitality:(副本ID)% = 玩家进入该副本需要的活力值 %pxinstance_vitality% = 玩家当前活力值
指令/pxinstance或者/pi
/pi i查看副本相关的指令
/pi r查看房间相关的指令
/pi w查看世界相关的指令
权限列表
permissions: pxinstance.instance.anytime: description: 无视副本开放时间 default: op pxinstance.instance.tp: description: 无视副本限制tp default: op pxinstance.vitality.add: description: 添加指定玩家的活力值 default: op pxinstance.vitality.look: description: 查看自己的活力值 default: true pxinstance.instance.respawn: description: 副本内复活指令 default: true pxinstance.instance.respawnplayer: description: 复活别人的指令 default: op pxinstance.instance.quit: description: 退出 default: true pxinstance.instance.start: description: 开始副本 default: op pxinstance.instance.end: description: 结束副本 default: op pxinstance.instance.kill: description: 杀死一个玩家 default: op pxinstance.instance.pause: description: 暂停副本 default: op pxinstance.reload: description: 重载 default: op pxinstance.room.create: description: 创建副本房间 default: op pxinstance.room.state: description: 查看房间状态 default: op pxinstance.room.immediate: description: 设置房间满载运行 default: op pxinstance.room.max: description: 设置房间最大副本数 default: op pxinstance.room.unloadall: description: 卸载所有房间 default: op pxinstance.room.unload: description: 卸载指定房间 default: op pxinstance.room.save: description: 保存房间配置 default: op pxinstance.room.saveall: description: 保存所有房间配置 default: op pxinstance.room.unloadid: description: 卸载指定房间内的子房间 default: op pxinstance.room.reload: description: 重载所有房间配置 default: op pxinstance.world.load: description: 载入副本世界 default: op pxinstance.world.saveold: description: 保存世界 default: op pxinstance.world.save: description: 保存副本世界 default: op pxinstance.world.spawnpoint: description: 设置世界重生点 default: op pxinstance.world.tp: description: 传送到指定世界 default: op pxinstance.world.unload: description: 卸载指定副本世界 default: op
版本 | 下载次数 | 更新时间 | 操作 |
---|---|---|---|
4.0.4 | 7 | 2023-06-07 | |
4.0.3 | 119 | 2021-09-06 | |
4.0.2 | 74 | 2021-08-09 | |
4.0.1 | 70 | 2021-02-25 | |
4.0.0 | 9 | 2021-02-24 | |
3.1.0 | 44 | 2020-11-22 | |
3.0.7 | 12 | 2020-10-27 | |
3.0.6 | 34 | 2020-08-26 | |
3.0.5 | 5 | 2020-08-22 | |
3.0.4 | 18 | 2020-08-02 | |
3.0.3 | 10 | 2020-07-25 | |
3.0.2 | 5 | 2020-07-23 | |
3.0.1 | 5 | 2020-07-19 | |
3.0.0 | 10 | 2020-07-17 | |
2.1.3 | 29 | 2020-03-19 | |
2.1.2 | 17 | 2019-12-22 | |
2.1.1 | 14 | 2019-08-17 | |
2.0.3 | 8 | 2019-07-03 | |
2.0.0 | 7 | 2019-06-21 |
4.0.4 - 日期:2023-06-07
添加pxteampro的支持
4.0.3 - 日期:2021-09-06
1.更新了部分东西(忘记了)
2.修复了部分东西(忘记了)
3.好像是修复单人可以无限进的问题
4.0.2 - 日期:2021-08-09
2021年8月9日 01:23:43
添加:
控制台指令: 具体看wiki副本流程
添加副本内变量 {world} 替换成当前副本世界(现主要用于采集的生成)
1.尝试修复有时副本会删除失败的问题(我这边不会出现问题,无法定位问题根源,有触发方法可以告知我)
2.修复个人死亡次数会少一次的问题
3.修改门票为包含模式,并支持lore,不带空格不带颜色
4.需要PxTools1.5.3及以上版本
5.添加MM怪物等级支持函数和公式以及副本内部变量 ,以及随机范围刷新
6.修改房间出现异常的机制,现在会自动更换一个新的ID,异常世界会被抛弃不用
7.添加副本刷新间隔节点,位于 config.yml 内 "base.interval" 默认 500 毫秒
- 'type=mm;loc=-23,65,334,180,0;id=a;amount=1;rangeX=5;rangeZ=5;level={var.循环次数变量}+{team.level}'
4.0.1 - 日期:2021-02-25
1.房间卸载指令即时保存
2.修复cat(或者其他端)卸载世界后还会占用世界区块文件的问题
3.流程jump的rem节点为rem
4.修复房间有时进不去的情况
4.0.0 - 日期:2021-02-24
1.副本开始方式改为房间模式
2.所有带判断的跳转改为,超时跳转(重要!!!旧版本流程需要改动一些)
3.添加大量房间和世界操作指令,详情输入/pi r和/pi w查看
4.将世界存放于PxInstance/world文件夹内,并由插件自动载入(无需事先载入,存放之前请设置好世界的规则)
5.房间配置由插件自动生成/也可以手动修改并重载
3.1.0 - 日期:2020-11-22
3.0.7 - 日期:2020-10-27
1.修改世界的创建机制,将跳过2个世界创建事件(基于spigot,paper端的,cat未做改动)
2.优化了一些代码
3.0.6 - 日期:2020-08-26
1.修复进入副本时,玩家没权限的问题
2.添加禁止玩家tp到进行中的副本世界(只限于copy模式)(可传送权限:"pxinstance.instance.tp",默认op拥有)
3.修复复活是旁观模式的情况
3.0.5 - 日期:2020-08-22
1.修复了个人复活时间为-1时,不生效的情况,现在能正确的使用无限复活时长
2.移除死亡原地复活的机制,未在副本内设置复活点时,将复活到副本入口
3.添加了一个流程类型 "cmd"
- 'type=cmd;cmd=say %player_name%进入了副本;runtype=op;target=join'
cmd=待执行的指令,支持papi变量
target=执行的目标,默认join
runtype=执行的类型[op=以op执行|con=控制台执行],不填写可删除默认玩家执行
3.0.4 - 日期:2020-08-02
修复mm怪物刷怪可能会导致数量错误的问题
例如刷1只怪可能会刷出N只怪
3.0.3 - 日期:2020-07-25
1.修复玩家在因为真实伤害在副本死亡后,导致复活为观战者模式的问题,现在能正确的改变玩家游戏模式
2.添加玩家进入的默认模式节点"base.default-gamemode",默认为空,没有可手动添加,以防玩家在副本内死亡时,蹦服导致模式还是观战模式,会在玩家进入游戏,属于观战者模式时触发
3.修复一些bug
base: #玩家进入游戏时,所处的游戏模式 #以防玩家在副本内死亡时,蹦服导致模式还是观战模式 #会在玩家进入游戏,是属于观战者模式时触发 #留空(默认为空)或者查不到指定模式时,将不做任何更改 #CREATIVE = 创造模式 #SURVIVAL = 生成模式 #ADVENTURE = 冒险模式 #SPECTATOR = 观战模式 default-gamemode: 'SURVIVAL'
3.0.2 - 日期:2020-07-23
1.修复世界世界变量路径问题,现在能够正确使用
2.修复删除世界时,有事会因为异步导致失败的问题(尝试修复,如有问题请继续联系作者)
3.修复副本内能踢出玩家的bug
该版本尚未稳定,不建议大量投入使用
遇到问题,请第一时间收集异常log上报给作者,给大家带来不便
3.0.1 - 日期:2020-07-19
添加一个流程类型: end
type=end;note=pass
立即结束当前副本,并设置结束标识为pass,可以更快的立即结束副本
目前的目的是为了任务bookquest而添加的
3.0.0 - 日期:2020-07-17
1.创建副本将使用异步创建,不再卡顿主线程
2.改用流程模式,可自由组合,自由性更大,API接口开放,会写附属的可以写流程
3.删除了守护模式
4.添加活力机制
5.副本流程走完即代表副本结束
6.配置内有完整注释
7.群内有目前已有的流程介绍文档
8.插件可能运行不稳定,有任何问题可以联系群主上报修复
去除了pxteam的硬前置(但副本必须要一个队伍,否则无法运行,为有队伍插件并且会写兼容的用户留空间,只需实现一个适配器注册一下即可)
去除了mm的硬前置(你可以添加怪物,也可以使用其他条件作为副本)
日后会添加更多流程和判定条件
关于改了默认数据库设置的问题
解决方案: 把config.yml的store改成storage即可
2.1.3 - 日期:2020-03-19
1.添加变量%pxinstance_world_name%替换成当前世界变量,在config可改世界名为中文名,如果在副本内则替换成当前副本名称
2.修复极少数异常情况下,生成的世界不会被正确删除的问题
3.添加副本节点 protect: true/false 是否开启方块保护,开启之后复制的世界将无法破坏方块,只在copy模式下生效
2.1.2 - 日期:2019-12-22
1.添加状态文本提示的开关,config.yml中的base.state-enable设置为false为关闭(没有该节点自己添加),默认true
2.1.1 - 日期:2019-08-17
使用该版本请使用pxtools[1.1.2]版本以上,该版本修复了有些插件会把插件plugin.yml版本改掉的问题
2.0.3 - 日期:2019-07-03
- 添加了hook参数
- 添加了pattern参数
- 更新默认例子配置,如需查看请备份现有配置然后重载插件
- 4
2.0.0 - 日期:2019-06-21
©软件著作权归作者所有。本站所有软件均来源于作者,请支持正版!
副本一直无敌蹦。4个月了还没修复!