|
DungeonsXL插件确实是一个较复杂插件,根据官方Wiki的海量内容,我和鹦鹉特意为大家翻译Wiki 注意:目前的是根据原文而翻译的,并没有测试 欢迎来到维基 如果你还没使用本插件,你要仔细阅读维基 如果你发现错误BUG问题请反馈到:点击进入 但是,反馈之前要确保你发现的错误BUG问题没有在[常见问题]已有相同问题才能反馈 上面的目录是可以点击的 |
|
插件原贴:https://www.spigotmc.org/resources/dungeonsxl.9488/ 本站转载:http://www.mcbbs.net/thread-773988-1-1.html 官方维基:https://github.com/DRE2N/DungeonsXL/wiki
|
|
DungeonsXL是一个复杂的插件,为了学会使用这类插件,你需要一步步去尝试,使用你想用的功能,感受一下这些功能 首先,你可能需要看[插件信息-兼容性-支持]的附加插件(比如MythicMobs)。尽管DungeonsXL是一个独立插件,但是没有配合其它插件的话,效果不会更佳。 如果你使用的服务端版本是1.7.X或1.8.X,最好需要阅读[版本功能](未译),避免高版本专用的功能用到了低版本里。因为高版本的功能在低版本是不能使用
|
|
|
|
命令前缀是 /dxl 下面是后面的 如 /dxl break
|
|
权限节点 | 描述 | 默认 |
dxl.[命令] 如 /dxl play 的权限是 dxl.play | 允许执行命令 | OP |
dxl.ignoretimelimit | 无视加入要求时间 | OP |
dxl.ignorerequirements | 无视加入要求条件 | OP |
dxl.sign | 允许创建所有木牌标志 | OP |
dxl.sign.[木牌标志名称 | 允许创建指定木牌标志 | OP |
dxl.bypass | 允许在副本使用被禁用的物品 | OP |
dxl.cmdedit | 允许在副本中使用命令 | OP |
|
|
|
|
|
官方已有几种语言文件,点击此处(含中文) |
|
如果你在用旧版DungeonsXL,请注意旧版有些功能特征是无法使用。另外,DungeonsXL是为了Spigot API服务器而打造的,与纯Bukkit API相比,Spigot API的有些特征在Bukkit API是没有的,故某些功能与Spigot兼容,而不与CraftBukkit兼容
DungeonsXL使用Caliburn API从配置中得到物品。但是,在1.8.8版本是无效的。这些版本使用内置的、功能较弱的util,语法略有不同。 类脚本示例
|
|
|
游戏规则 |
为了有效地使用DungeonsXL插件,其中最重要的一点就是你需要搞明白 游戏规则优先级系统,“游戏规则”定义了你的DXL副本的框架条件
|
游戏类型 |
游戏类型通常在准备标志中就定义好了,它们包含一些游戏规则并覆盖所有输入的配置,它的实现主要取决于副本构建器和插件
|
请注意: 这是一份 <b>示例文件</b>. 你可不要指望着把它CV(复制)下来就能直接使用
副本名字由文件名决定(当然, 不包含 .yml 文件后缀名). 副本名称必须是独一无二的, 并且不能与地图名字相同
如果你打算创建一个单关卡副本, 就不要管此页面了. 副本配置文件仅在你需要把多个关卡连接起来时才有必要写
- # DungeonsXL的一个副本配置文件
- # (保存在 DungeonsXL/scripts/dungeons/ 文件夹中, 名为 %副本名%.yml)
- # 玩家进入的副本第一关.
- # 至少要有大厅, 准备, 开始和关卡标志的存在.
- startFloor: MyDungeon_floor_01
- # 玩家进入的副本最后一关.
- # 至少要有开始和结束标志的存在.
- endFloor: MyDungeon_floor_12
- # 此副本包含的所有关卡的列表.
- floors:
- - MyDungeon_floor_02
- - MyDungeon_floor_03
- - MyDungeon_floor_04
- - MyDungeon_floor_05
- - MyDungeon_floor_06
- - MyDungeon_floor_07
- - MyDungeon_floor_08
- - MyDungeon_floor_09
- - MyDungeon_floor_10
- - MyDungeon_floor_11
- # 在玩家被传送到最后一关之前, 应该先从列表里面随机选出多少关卡?
- floorCount: 7
- # 如果为true, 在玩家完成此关卡后将会把此楼层从列表中删除
- # 这样就不会重复玩同一关卡了.
- removeWhenPlayed: false
- # 以下值将会覆写主配置文件中的默认值和关卡配置文件中的值.
- overrideValues:
- # 所有关卡配置文件中可选的游戏规则配置选项, 比如:
- keepInventoryOnEnter: true
- # 以下值将会覆写主配置文件中的默认值, 但是可以被关卡配置文件覆写.
- defaultValues:
- # 所有关卡配置文件中可选的游戏规则配置选项, 比如:
- keepInventoryOnEnter: true
请注意: 这是一份 示例文件. 你可不要指望着把它CV下来就能直接使用
一些提示:
- 为了保持结构的清晰明了, 最好是创建一个新的配置文件然后添加你所需要的游戏规则值. 我是认真的, 请不要只是复制/粘贴这里的示例内容. 这是玩转DungeonsXL的一大禁忌
- 如果你还在因为在地图文件夹中找不到config.yml文件而感到困惑: 这是因为地图不一定需要一份专门的配置文件. 插件依然可以从"副本配置文件"中获取游戏规则值: 副本配置文件用来配置很多关卡都重复的游戏规则值非常方便, 或者也可以从"主配置文件"中获取游戏规则值:主配置文件适合用来配置一些游戏目标非常简单的副本
- (如果你不是在配置一个拥有多个关卡的副本, 请忽略这条) 关卡配置文件中配置的游戏规则值相对来说优先级较高. 副本配置文件中的默认值将会被覆写, 但是副本配置文件中的"覆写值"又将会覆写关卡配置文件中的值
- # DungeonsXL的一个关卡配置文件
- # (保存在 DungeonsXL/map/%地图名% 文件夹中, 名为 config.yml)
- ##########################
- # 地 图 特 殊 设 置 #
- ##########################
- # 决定地图环境类型, 尽管这可能不是地图保存时设定的地图类型.
- # 可以被设置为 THE_END, NETHER 或 NORMAL.
- # 如果省略此设置 (或者根本就没有关卡配置文件), 将会使用 NORMAL 值.
- worldEnvironment: THE_END
- # 你可以强制设定一个游戏类型, 这将会覆写准备标志上设定的值.
- forcedGameType: DEFAULT
- # 可以编辑副本的玩家 (/dxl invite)
- # 你可以往这里写玩家用户名, 也可以写 UUID.
- invitedPlayers:
- - sataniel
- ##################
- # 游 戏 规 则 #
- ##################
- # 是否禁用大厅. 这仅适用于必须单人解决且没有可供选择的类的副本.
- isLobbyDisabled: false
- # 玩家离开游戏后多久会被踢出副本(以秒为单位).
- # -1 = 永不 / 0 = 立即
- timeUntilKickOfflinePlayer: 10000
- # 在一场游戏开始后间隔多久玩家才能再次游玩此副本(以小时为单位).
- # 这可以防止玩家在开始一场游戏后退出再来玩一遍,
- # 不管该玩家是被踢出, 还是顺利游戏结束, 都需要等待这个时间后再次游玩.
- timeToNextPlayAfterStart: 6
- # 这只会阻止玩家在正常结束游戏后马上尝试再次游玩.
- # 如果玩家主动离开了游戏或者被踢出游戏, 玩家总是可以立即再次开始游玩.
- timeToNextPlayAfterFinish: 12
- # 玩家可以再次从此副本获取战利品的冷却时间(以小时为单位).
- timeToNextLoot: 12
- # 当有足够的怪物被杀死时, 间隔多久才开始下一波的怪物攻势.
- timeToNextWave: 10
- # 完成此地牢的时间要求(以秒为单位).
- # 如果时间到了还未结束游戏, 玩家就会被踢出副本.
- timeToFinish: 240
- # 游戏模式, 如果不填则为 SURVIVAL
- gameMode: ADVENTURE
- # PvP
- playerVersusPlayer: true
- # (同一队伍的)队友伤害
- friendlyFire: false
- # 这些是在副本游戏中玩家还可以使用的命令列表.
- # DXL 命令, 比如 /dxl leave 默认可用.
- gameCommandWhitelist:
- - version
- - f list
- - f show
- - ch global
- # 请确认你编辑好了这一部分!
- # 下面列表中至少得完成其中一个副本 ("any" 值代表任何副本之一).
- # 如果你不需要这一配置选项, 就让它为空值吧.
- mustFinishOne:
- - any
- # 下面列表中必须完成期中全部副本. 如果你不需要这一配置选项, 就让它为空值吧.
- mustFinishAll:
- - jumpinjackflash
- - highwaytohell
- - wontgetfooledagain
- # 判定上方副本列表全部完成的有效时间(以小时为单位).
- timeLastPlayed: 336
- # 一个要求列表
- # 请注意: 如果玩家拥有 dxl.ignorerequirements 权限节点, 他可以忽略所有要求.
- requirements:
- feeMoney: 7.5
- feeLevel: 2
- # 如果队伍内玩家不足或过多, 那么他们将无法使用准备标志.
- groupSize:
- minimum: 1
- maximum: 2
- # 玩家必须拥有以下权限节点才可进入副本:
- permission:
- - my.custom.node
- - yet.another.node
- # 无法带入副本中的物品
- forbiddenItems:
- - IRON_SWORD
- - MY_CUSTOM_ITEM
- # 必须带入副本中的物品
- keyItems:
- - GOLD_INGOT
- - MY_CUSTOM_ITEM
- # 玩家可以使用他自己携带的物品玩副本吗? 或者你想要强制他们使用指定的类中的物品?
- keepInventoryOnEnter: false
- # 如果玩家死亡了会失去他们的所有物品吗 (不要和 "onEscape" 弄混淆了!)?
- keepInventoryOnDeath: false
- # 当玩家完成副本目标结束游戏后是否保留他们的背包? (设置为 false 将会清空背包)
- keepInventoryOnFinish: false
- # 当玩家未完成副本目标结束游戏后是否保留他们的背包? (设置为 false 将会清空背包)
- keepInventoryOnEscape: false
- # 玩家是否可以放置/破坏游戏地图中的方块.
- breakBlocks: false
- # 玩家是否可以破坏他们自己放置的方块.
- breakPlacedBlocks: true
- # 一个代表着可破坏方块的白名单列表.
- # 让使用此配置选项时, breakBlocks 也应该被设置为 "true".
- breakWhitelist:
- # 一个方块ID并且伴有可用于破坏此方块的工具
- SPONGE: ["IRON_PICKAXE", "STICK"]
- # 这代表可以使用任何工具破坏泥土方块
- DIRT: []
- # 无法受到伤害的实体列表.
- # 如果省略此配置选项并且 breakBlocks 设置为 false, 默认情况下会保护盔甲架, 画和物品展示框.
- # 如果省略此配置选项并且 breakBlocks 设置为 true, 默认情况下不会保护任何实体.
- damageProtectedEntities:
- - SLIME
- - PAINTING
- # 一个实体列表
- # 如果省略此配置选项并且 breakBlocks 设置为 false, 默认情况下会保护盔甲架, 画和物品展示框.
- # 如果省略此配置选项并且 breakBlocks 设置为 true, 默认情况下不会保护任何实体.
- interactionProtectedEntities:
- - ARMOR_STAND
- placeBlocks: true
- # 一个代表着可放置方块的白名单列表.
- # 让使用此配置选项时, placeBlocks 也应该被设置为 "true".
- placeWhitelist:
- - SPONGE
- # 玩家进入副本时最初拥有的生命数量. (俗称有几条命)
- initialLives: 3
- # 另外, 你也可以设置队伍的生命数量.
- initialGroupLives: 5
- # 也可以使用 /dxl msg 指令创建信息
- message:
- '1': Welcome to this dungeon!
- '2': Another message
- # 你不可以破坏或丢弃的物品
- secureObjects:
- - 69
- # 玩家游戏期间会获得的临时权限节点.
- # 玩家离开游戏后, 就会删除这些权限节点.
- # 需要 Vault 和一个权限插件, 比如 PermissionsEx.
- gamePermissions:
- - dxl.reload
- - another.node
- # 使用此配置选项来替换默认的准备/新关卡提示信息.
- # 这与覆写值系统完全兼容.
- # 如果在主配置文件中禁用 Title, 此配置选项就无效.
- title:
- title: "&4Title"
- subtitle: "&6Subtitle"
- actionBar: "&aA C T I O N B A R"
- chat: "&bCentered chat message"
- # 此 Title 显示的时间 (以秒为单位)?
- # 没有这三个选项 Title 也可以正常显示.
- fadeIn: 1.0
- show: 3.0
- fadeOut: 1.0
- # 副本中的天气是否为雨天.
- # true = 永雨
- # false = 永晴
- # 省略此选项 = 和原生 Minecraft 一样的随机天气
- rain: true
- # 与上一个配置选项原理相同, 但是这个配置选项决定的是雷暴天气
- thunder: true
- # 游戏时间刻 (用于应对原生的 /time 命令)
- time: 20000
如何将传送门和副本连接起来?
传送门不与副本相连接. 使用组队功能 和/或 游戏标志来选定一个副本.
我该如何做才能让玩家在击杀x个怪物后传送到下一关?
添加一个mobs标签或者进度触发器在你的关卡标志上在牌子编辑模式中, 最后一行可以设置触发器
P [波数] 或者 M [需要击杀的怪物名字].
我该如何为每个副本设置队伍数量和大小?
使用队伍标志
你为什么不来一个视频教程?
想要展示所有特性的话, 就需要花费非常多的时间制作这个视频. 除此之外, 正在进行的功能改动同时也会使这个视频刚出来就过时了
战利品的工作原理是什么?
在编辑模式下任何物品都可以放入箱子中如果您希望将该物品添加到战利品库存中, 只需要在它旁边放一个 [chest] 标志(1方块范围内)
我该如何创建一个多关卡副本?
创建这样的副本只需要创建一个简单的副本配置然后你就可以用 /dxl play [副本] 或者带有 + 属性的组队标志
我该如何让玩家用他自己的装备来打副本?
在关卡配置文件中有许多对应的配置选项. 可以试试 keepInventoryOnEnter 游戏规则
救命! 这里根本没有 config.yml 在我的副本地图文件夹!
你需要自己创建配置文件, 因为关卡配置文件并不是必要的请注意:
你在关卡配置文件中配置的游戏规则值同时也可以从其他来源获取到(同样的游戏规则值): 如果你创建了一个拥有多地图, 多关卡的副本, 你可能有一些对所有地图来说都相同的游戏规则值
在这种情况下, 把该游戏规则值配置在副本配置文件中的 defaultValues 或者 overrideValues 部分明显更方便
即使不需要配置多关卡, 默认值或者来自主配置文件/游戏类型的游戏规则值对于小型项目来说也足够了
因此, 那只是一个你可能会需要的文件, 如果这是必须的, 无论是因为你已经创建了它, 或者是为了指定那些在没有权限节点的情况下也能编辑地图的玩家, 那根本不重要
(译注: 我搞不懂作者最后这句话的意思= =, 看起来就像在发牢骚. 如果你有更好的翻译, 请告诉我.)
(原文: Therefore, there's just a file if it is needed either because you've created it or to store the players that are allowed to edit the map without the permission node.)
我滴神啊, 整个插件都充满了各种报错!
DungeonsXL仍处于开发阶段, 由你自己决定是否在对生产环境可能有风险的情况下使用它我们永远感谢每一个Bug报告
请确保你正在使用受支持的服务端版本, 同时使用DXL最新版, 并且不要使用 /reload 来重启服务器
我创建了一个传送门 / 队伍标志 / 游戏标志 / ... - 现在我该如何删除它?
输入 /dxl break 指令然后破坏你想删除的东西然后会自动在保存的数据中删除有关该项的内容
我的脚本根本不工作 :(
在寻求帮助前, 先检查一下是否有语法错误. 一个Yaml检查工具, 比如 yamllint.com 就可以帮到你
我在副本加载时遇到了 "Could not pass event ChunkLoadEvent to HolographicDisplays" 的报错
如果你使用了性能优化插件, 就有可能出现这样的问题这不属于DungeonsXL的bug并且也没有方法修复此问题, 因为加载世界和异步添加实体的任务通常不由原生Minecraft服务器来完成
这个问题除了会发出堆栈跟踪之外, 没有其他已知的警告与实际问题, 所以你可以放心地忽略它
我在副本中打不了怪!
这有99%的可能是因为原生Minecraft的出生点保护特性解决方法:
在 server.properties 中把 spawn-protection 设置为 0
|
|
[groupid=1511]Server CT[/groupid]