教程
1.如何把所有菜单分开来写
- 首先,找到plugins/DeluxeMenus/config.yml
- 把某个菜单定向到某个文件
gui_menus:
zcd:
file: zcd.yml
- (上面是个例子,把zcd定向到gui_menus中的zcd.yml)
2.[close]之类的操作
即您在下表看到的[close]之类的操作
请务必结合格式与实例食用
[player]
#以玩家角度,执行一个命令 (不带/)
[console]
#以控制台角度,执行一个命令 (不带/)
[commandevent]
#执行一个快捷指令(未在plugin.yml注册的) (不带/)
[message]
#为这个玩家发送一个消息 (支持PAPI/颜色代码)
[connect]
#连接到另外一个服务器 (须填写在BC中注册的有效服务器名称)
[json]
#为玩家发送一个JSON消息 (支持PAPI/颜色代码)
[sound]
#为玩家播放一个声音
[broadcastsound]
#为此服务器内的所有玩家播放一个声音
[refresh]
#刷新菜单 (你可以理解为关闭再打开此菜单)
[takemoney]
#扣除玩家经济系统 (与Vault挂钩的) 中的余额
[openguimenu]
#打开其他菜单 (必须是DeluxeMenus中的)
[close]
#关闭此菜单
[givemoney]
#增加玩家经济系统(与Vault挂钩的)中的余额
<delay=#>
#延迟#Ticks(1s=20Ticks)后执行
<chance=#>
#执行此操作的几率为#/100
[!] 请勿少空格,否则报错
怎么样,还是不理解?下方是例子
[player] msg AzureHanChen 性感若南,在线催更
#以此玩家的角度为AzureHanChen发送私聊消息
[console] points take %player_name% 233
#以控制台角度扣除此玩家233个点券
[commandevent] sd
#假若有一个菜单的快捷指令为sd,那么打开对应菜单
[connect] BedWars#1
#假若有一个服务器在BC的config.yml中注册的名字为BedWars#1
#那么为玩家连接至此服务器
[message] &7[&e系统&7] CPS急缺人才,gkd %player_name%
#为玩家发送上面的消息
[sound] ENTITY_VILLAGER_YES
#为玩家发送ENTITY_VILLAGER_YES音效
[broadcastsound] ENTITY_VILLAGER_NO
#为此服务器内所有玩家发送ENTITY_VILLAGER_NO音效
[json] {"text":"&f点击此处 &a获取服务器帮助","color":"white","clickEvent":{"action":"suggest_command","value":"/help"}}
#为玩家发送一个JSON消息,点击后自动为玩家补全/help命令
[refresh]
#点击后刷新优先级&变量
#update_interval 只能刷新变量而不能刷新优先级(下方举例子细讲)
[close]
#点击后关闭此菜单
[takemoney] 666
#扣除玩家666个余额,(与Vault挂钩的经济系统)
[message] &7已经过去了5秒 <chance=100>
#5秒(100Ticks)后给玩家发送上面的信息
[message] &750%几率看到这个消息 <chance=50>
#50%几率给玩家发送上面的信息
[givemoney] 100
#给玩家100个余额(仅限与Vault挂钩的经济插件)
3.条件
即你在下表中看到的view_requirement/open_requirement等
open_requirement:
requirements:
<name>:
type: <type>
deny_commands:
- '[close]'
- <name>:随意,因为可以存在多个,不能重复
- <type>:判断类型
下方即类型 (必须一字不差 空格也不能少)
4.开始写菜单吧
在完成上面讲的的第一步后,输入/dm reload
然后打开plugins/DeluxeMenus/gui_menus中自动生成的zcd.yml
接下来由我来解释一下构成菜单的GUI设置
menu_title: 'String'
在这里更改菜单的标题 (文字)
允许使用PAPI变量 & 颜色代码
open_command: 'String'
在这里更改打开菜单的快捷指令 (不需要加/)
只能是英文字母或汉字
Tips:使用快捷指令打开菜单 不需要权限
拓展:
open_command:
- STRING
- STRING
你可以添加多个快捷指令
size: #
菜单的格数
只能是9的倍数,且必须在9到54之间
Tips:
下方的inventory_type只有设置为CHEST时,才有效
update_interval: #
可选,更新频率,以秒为单位
可用于刷新菜单中的变量
Tips:
某个物品只有添加update: true
参数后,才能刷新该物品
open_commands:
- '[close]'
可选,打开菜单后执行的操作
inventory_type: CHEST
可选,GUI界面的"形状"
你可以填写
CHEST (箱子) (默认)
ANVIL (铁砧)
DISPENSER (发射器)
FURNACE (熔炉)
HOPPER (漏斗)
WORKBENCH (工作台)
上方的size选项只有当你填CHEST时才有效
如果忽略此选项则默认为CHEST
items:
表示下方进入物品部分
5.开始写物品吧
items:
'<name1>':
material: <英文全大写ID>
slot: #
'<name2>':
material: <英文全大写ID>
slot: #
一个菜单肯定由不止一个物品组成
所以你可以填写多个物品
(Tips:多个物品可以占用一个位置,但需要优先级与看到的条件帮助)
- ‘<name1>’:
- 这是表示一个物品,名称不能与其他物品相同
- material: <英文全大写ID>
- 在菜单中显示的MC物品,例如
- material: DIAMOND #钻石
- 也可以显示某个玩家的头颅,例如
- material: head;%player_name% #显示玩家的头颅
- 也可以显示自定义头颅(Minecraft Heads),例如
- material: basehead-eyxxxx #显示某个自定义纹理的头颅
- slot: #
- 物品在GUI中所占的位置
- 必须在0到(size-1)中
![图片[3]-DeluxeMenus —— 老牌菜单插件|PAPI作者编写 [1.12-1.19.x]-服务端插件论坛-资源发布-像素交际](https://upload.cc/i1/2019/12/08/ZPH3mV.png)
- 转载自插件原Wiki
- 这个图也许可以帮到你
- 拓展:
- 如果你想让一个物品占用多个位置
- 您可以把slot: #换成
- slots:
- – #
- – #
- 即可以让物品占用多个位置,更加方便
- display_name: ‘String’
- 可选,玩家看到的此物品的名称
- 如果不填就是Material物品的名称
- (支持 颜色代码/PAPI变量)
- lore:
- – ‘String’
- – ‘String’
- 可选,此物品的lore
- (支持PAPI/颜色代码)
- view_requirement:
- 可选,看到的条件
- 请使用上文中提到的格式
- 并且所有要求必须全部符合
- 如果达不到,那么此物品就看不到
- priority: #
- 可选,物品在这个位置的优先级
- 下面是一个生硬的例子
menu_title: '&eMCBBS@AzureHanChen'
open_command: e
size: 9
items:
'3':
material: 'GRASS'
slot: 0
display_name: '哇,你有金币'
lore:
- '&e拥有&a500&e金币'
- '&e优先级3'
view_requirement:
requirements:
n:
type: has money
amount: 500
priority: 3
'2':
material: 'STONE'
slot: 0
display_name: '哇,你有点券'
lore:
- '&e拥有&a200&e点券'
- '&e优先级2'
view_requirement:
requirements:
2:
type: '>='
input: '%playerpoints_points%'
output: '200'
priority: 2
'1':
material: 'DIAMOND'
slot: 0
display_name: '哇,你有权限'
lore:
- '&e拥有&agroup.cps&e权限'
- '&e优先级1'
view_requirement:
requirements:
1:
type: has permission
permission: 'group.cps'
priority: 1
'cz':
material: ICE
slot: 1
display_name: '参照物'
6.实战——(不依赖礼包插件)做出礼包菜单
使用LuckPerms作为权限插件,你需要先
/papi ecloud download LuckPerms/papi ecloud download Player
##重要的事情说三遍!!!
#使用此菜单前先/lp group default permission set user.gift.normal false
#使用此菜单前先/lp group default permission set user.gift.normal false
#使用此菜单前先/lp group default permission set user.gift.normal false
#此处我使用CrazyCrates的某个抽奖箱钥匙作为奖励,
menu_title: '&f礼包菜单 &a&o(/gift)'
open_command:
- g
- libao
- gift
- present
- 礼包
- 礼包菜单
- 领取礼包
- 领礼包
size: 45
update_interval: 1
items:
1-delay:
#这是第一个物品
slot: 12
#在GUI界面的第13个位置
priority: 1
#优先级为1
view_requirement:
#看到此物品的条件
requirements:
delay:
type: has permission
#判断玩家是否有某个权限
permission: user.gift.normal
#判断玩家是否拥有user.gift.normal
#如果有,则显示该物品,没有则显示下一优先级的物品
material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDVjNmRjMmJiZjUxYzM2Y2ZjNzcxNDU4NWE2YTU2ODNlZjJiMTRkNDdkOGZmNzE0NjU0YTg5M2Y1ZGE2MjIifX19
#显示的物品ID,我这里用的是自定义头颅
display_name: '&e普通礼包 &c&o(冷却中)'
#显示的名称
update: true
#是否更新此物品名称,Lore中的变量
lore:
- ''
- '&f礼包等级 &7> &a普通'
- '&f礼包内容 &7> &e普通抽奖箱钥匙*1'
- '&f领取间隔 &7> &e3小时'
- ''
- '&f剩余时间 &7> &c%luckperms_expiry_time_user.gift.normal%'
#如果你是个细心观察/逻辑清晰的人,你肯定能想到可以用权限
#的剩余时间来作为礼包的剩余冷却时间
- ''
- '&c等待 &7| &c冷却中'
left_click_commands:
- '[message] &8[&b礼包&8] &c普通礼包 冷却中'
#为玩家发送消息
- '[sound] ENTITY_ENDERMEN_TELEPORT'
#为玩家播放音效
right_click_commands:
- '[message] &8[&b礼包&8] &c普通礼包 冷却中'
- '[sound] ENTITY_ENDERMEN_TELEPORT'
normal:
slot: 12
#在GUI界面的第13个位置
priority: 2
#优先级为1
material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDVjNmRjMmJiZjUxYzM2Y2ZjNzcxNDU4NWE2YTU2ODNlZjJiMTRkNDdkOGZmNzE0NjU0YTg5M2Y1ZGE2MjIifX19
display_name: '&e普通礼包 &a&o(点击领取)'
update: true
lore:
- ''
- '&f礼包等级 &7> &a普通'
- '&f礼包内容 &7> &e普通抽奖箱钥匙*1'
- '&f领取间隔 &7> &e3小时'
- ''
- '&a单击 &7| &e领取'
left_click_commands:
- '[close]'
- '[console] cc give v Basic 1 %player_name%'
- '[console] title %player_name% title ["",{"text":"领取成功","bold":true,"color":"green"}]'
- '[console] title %player_name% subtitle ["",{"text":"获得","bold":true,"color":"gray"},{"text":"普通抽奖箱钥匙*1","color":"yellow"}]'
- '[console] lp user %player_name% permission settemp user.gift.normal true 3h'
- '[sound] ENTITY_ARROW_SHOOT'
right_click_commands:
- '[close]'
- '[console] cc give v Basic 1 %player_name%'
- '[console] title %player_name% title ["",{"text":"领取成功","bold":true,"color":"green"}]'
- '[console] title %player_name% subtitle ["",{"text":"获得","bold":true,"color":"gray"},{"text":"普通抽奖箱钥匙*1","color":"yellow"}]'
- '[console] lp user %player_name% permission settemp user.gift.normal true 3h'
- '[sound] ENTITY_ARROW_SHOOT'
|
没有回复内容