【独立副本】PxInstance异步世界的副本插件,一队一副本,无抢怪,无上限创建

异步复制世界,不卡顿 pxpmc官方售后服务群: 552110984

购买详情

单价 ¥265.00元/年
该站点不支持退款操作
购买价格 ¥265.00元/年 (会增加额外购买IP数量的时长费用)
如果不需要续费IP,请等待到期时间结束后重新购买

预览截图



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

添加世界操作异步开关,在config内的base.asynchronous: true 节点,默认false

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

3.0.0此次较大更新,旧版配置完全不适用新版

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

  1. 添加了hook参数
  2. 添加了pattern参数
  3. 更新默认例子配置,如需查看请备份现有配置然后重载插件
  4. 4

2.0.0 - 日期:2019-06-21

前置: pxtools,pxteam,mythicmobs,citizens,multiverse-core

点赞(45)

其他插件

评论列表 共有 1 条评论

syax1018 3年前 回复TA

副本一直无敌蹦。4个月了还没修复!

立即
投稿
发表
评论
返回
顶部