North丶Kraken
本帖最后由 North丶Kraken 于 2018-8-11 14:28 编辑
写在前面:
站内原有教程:
[PCD]全面教程+搭配变量插件制作菜单 | 站内搬运帖[内有教程]
使用 DeluxeMenus 的过程中,我经常参阅这两个教程使用,不过可能是因为版本更新了很多次的缘故
教程里关于 DeluxeMenus 插件内的一些判断语句没有效果。
比如链接 全面教程 里的每日礼包以及出售商店的判断语句 .equals("yes")
emm 教程里会重新写一下原教程里几个失效了的语句
建议和以上两个教程组合食用emmm
插件支持使用PAPI变量,所以下面这几个变量可以装一下

新版本的判断条件:
原教程里出现的.equals("yes")应该不会再使用了,在新版里改成了条件类型 string equals
这里先列出常用的判断条件

has item - 是否有物品
has permission - 是否有某个权限
has money - 身上有多少钱
string equals - 判断输出的字符串是否相同(区分大小写)
stringequalsignorecase - 判断输出的字符串是否相同(不区分大小写)
>= / > / == / < / <= - 判断数值大小
expression - 表达式

自定义头颅商店:
emmm 今天正好在做服里的自定义头颅商店,先写这个教程吧……

emmm更多内容更新中:(??_?)



2021.12 数据,可能有更多内容写在前面:站内原有教程:[PCD]全面教程+搭配变量插件制作菜单 | 站内搬运帖[内有教程]使用 DeluxeMenus 的过程中,我经常参阅这两个教程使用,不过可能是因为版本更新了很多次的缘故教程里关于 DeluxeMenus 插件内的一些判断语句没有效果。比如链接 全面教程 里的每日礼包以及出售商店的判断语句 .equals(&quot;yes&quot;)emm 教程里会重新写一下原教程里几个失效了的语句建议和以上两个教程组合食用emmm插件支持使用PAPI变量,所以下面这几个变量可以装一下玩家变量 - Player: 一些玩家的信息:名称、模式、坐标、所处世界、等等等/papi ecloud download player统计信息 - statistic:更多玩家的信息:方块挖掘数、物品使用数、酿造台使用数、杀怪数等等等等/papi ecloud download statistic经济信息 - Vault:做商店必备,可以判断玩家拥拥有多少钱/papi ecloud download vault基础插件 - Essentials:ESS大概是服务器必装的一个插件了吧,这个ESS变量主要是判断能不能领取礼包/papi ecloud download essentials安装完以上变量后使用/papi reload 重载 PlaceholderAPI 插件,使新装的变量生效
更多的变量请参阅:PlaceholderAPI | 插件百科 [中文] | PlaceholderAPI 变量列表英文原帖
新版本的判断条件:原教程里出现的.equals(&quot;yes&quot;)应该不会再使用了,在新版里改成了条件类型 string equals这里先列出常用的判断条件
has item - 是否有物品has permission - 是否有某个权限has money - 身上有多少钱string equals - 判断输出的字符串是否相同(区分大小写)stringequalsignorecase - 判断输出的字符串是否相同(不区分大小写)&gt;= / &gt; / == / &lt; / &lt;= - 判断数值大小expression - 表达式
自定义头颅商店:emmm 今天正好在做服里的自定义头颅商店,先写这个教程吧……获得这个自定义头颅
在 DeluxeMenu 里,头颅图标是:head;玩家名不过这个方法只能获取正版玩家的头颅,或者是在服务器里玩家的头颅,不能使用value值制作出来的头颅…比如这条指令give的头颅:

代码:

  1. /give @p skull 1 3 {display:{Name:"Arrow Down"},SkullOwner:{Id:"9afa272b-ca4a-4502-8073-c4be1b",Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmRhZGQ3NTVkMDg1MzczNTJiZjdhOTNlM2JiN2RkNGQ3MzMxMjFkMzlmMmZiNjcwNzNjZDQ3MWY1NjExOTRkZCJ9fX0="}]}}}
DeluxeMenus 里提供了另一个方法使用它:basehead-Value值,配置文件里 material 请写成这样:

代码:

  1. material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmRhZGQ3NTVkMDg1MzczNTJiZjdhOTNlM2JiN2RkNGQ3MzMxMjFkMzlmMmZiNjcwNzNjZDQ3MWY1NjExOTRkZCJ9fX0
basehead-后面的value值不包含 = 号与 &quot; 双引号
完整的配置文件如下:'Arrow_Down':    material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmRhZGQ3NTVkMDg1MzczNTJiZjdhOTNlM2JiN2RkNGQ3MzMxMjFkMzlmMmZiNjcwNzNjZDQ3MWY1NjExOTRkZCJ9fX0    slot: 23    display_name: '&amp;6Arrow Down'    lore:    - '&amp;bArrow Down'    - '&amp;2售价 2000 元'    - '&amp;2&amp;l单击 &amp;7| &amp;f购买帽子'    left_click_requirement:   expression: '%vault_eco_balance% &gt;= 2000'   deny_commands:   - '[message] 你身上的钱不够买它哦'    left_click_commands:    - '[console] money take %player_name% 2000'    - '[console] give %player_name% skull 1 3 {display:{Name:&quot;Freddy Fazbear&quot;},SkullOwner:{Id:&quot;ec845821-7123-465b-81a5-db71de766752&quot;,Properties:{textures:[{Value:&quot;eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWQzZjNlMTE0YzYzMWNhZGM4YTU2MDYwMjFiNGI0ZjllMTVmYTZlYzg5ZDNlZWViMWNlYzgyNWNmMjliODgzIn19fQ==&quot;}]}}}'    - '[message] &amp;2购买成功!'
商店嘛……肯定要买哇,没钱咋行,于是这里加了个 left_click_requirement [左键单击条件]条件类型是 expression [表达式] %vault_eco_balance% &gt;= 2000变量 %vault_eco_balance% [身上的金钱数] &gt;= 2000如果无法达成上面这个公式,则允许 deny_commands 里的内容
自定义头颅商店……就酱紫吧……安利个收录了自定义头颅的网站:FreshCoal Heads 单击一下头颅图标,自动将指令复制到粘贴板
emmm更多内容更新中:(??_?)


jingew233
请问如何回收一个东西呢 判断物品的代码是什么 我帖子没看懂

jingew233
就是express后面的代码

North丶Kraken
jingew233 发表于 2018-8-15 19:41
就是express后面的代码

判断是否有一个物品,原教程贴里用的是:
  1. expression: '"%player_hasitem-mat:263-amt:1-data:0%".equals("yes");'
复制代码

这段的意思是,用papi判断用户有没有1个ID是263自ID为0的物品,如果有则返回yes。然后用equals("yes")来判断返回的变量是什么。
这个equals已经没有了

North丶Kraken
jingew233 发表于 2018-8-15 19:40
请问如何回收一个东西呢 判断物品的代码是什么 我帖子没看懂

我用的方法是:

  1. left_click_requirement:
  2.     requirements:
  3.       material:
  4.         type: has item
  5.         material: DIAMOND
  6.         amount: 1
复制代码


这个是杜蕾斯自带的判断方法,type类型has item, material是物品的名字(不能用ID,必须是实体名,注意大写)amount是数量

North丶Kraken
jingew233 发表于 2018-8-15 19:40
请问如何回收一个东西呢 判断物品的代码是什么 我帖子没看懂

还有一个方法是使用type: string equals

  1. right_click_requirement:
  2.   requirements:
  3.     staff_requirement:
  4.     type: string equals
  5.     input: '%player_hasitem-mat:263-amt:1-data:0%"
  6.     output: yes
复制代码

这个的意思就是,输入papi 变量%player_hasitem-mat:263-amt:1-data:0%
然后判断输出值是否是output的值

另外,player_hasitem这个变量似乎已经没有了,你应该要用InventoryCheck

在另外,用变量判断是否有物品,我认为主要是判断有没有自定义NBT标签的物品。比如给了name和lore的。普通的物品用自带的has item就可以了

jingew233
North丶Kraken 发表于 2018-8-16 13:28
还有一个方法是使用type: string equals

这个的意思就是,输入papi 变量%player_hasitem-mat:263-amt:1- ...

感谢 非常感谢

jingew233
North丶Kraken 发表于 2018-8-16 13:28
还有一个方法是使用type: string equals

这个的意思就是,输入papi 变量%player_hasitem-mat:263-amt:1- ...

'皮革帽子':
        material: 298
        amount: 1
        slot: 18
        display_name: '&7皮革帽子'
        lore:
        - '&71个铜'
        - '&7点击购买'
        enchantments:
        - 'protection;1'
        right_click_commands:
        - '[console] give %player_name% leather_helmet 1 0 {ench:[{id:0,lvl:1}]}'
        - '[console] clear %player_name% brick 0 1'
        right_click_requirement:
            requirements:
              material:
                type: has item
                material: BRICK
                amount: 1
        deny_commands:
        - '[message] &6&l&o梦灵之都 &f&l&o> &c你没有足够的资源去购买这个物品'
        left_click_commands:
        - '[console] give %player_name% leather_helmet 1 0 {ench:[{id:0,lvl:1}]}'
        - '[console] clear %player_name% brick 0 1'
        left_click_requirement:
            requirements:
              material:
                type: has item
                material: BRICK
                amount: 1
        deny_commands:
        - '[message] &6&l&o梦灵之都 &f&l&o> &c你没有足够的资源去购买这个物品'

这是我设置的 好像还是不行 插件版本是1.10.5 请您帮忙看下谢谢

North丶Kraken
jingew233 发表于 2018-8-16 21:37
'皮革帽子':
        material: 298
        amount: 1

红砖的实体名错了,应该是CLAY_BRICK

不清楚实体名,你可以装一个Banitem
手持物品,输入/banitem remove
聊天框里会显示出手上物品的实体名

zuzhang22
North丶Kraken 发表于 2018-8-17 14:38
红砖的实体名错了,应该是CLAY_BRICK

不清楚实体名,你可以装一个Banitem

楼主认真看WIKI,其实我是精通DM的

North丶Kraken
zuzhang22 发表于 2018-8-17 20:03
楼主认真看WIKI,其实我是精通DM的

没有翻Wiki哦,我是看的配置文件里的注释emmmmmm

zuzhang22
North丶Kraken 发表于 2018-8-18 13:11
没有翻Wiki哦,我是看的配置文件里的注释emmmmmm

注释有问题

zuzhang22
North丶Kraken 发表于 2018-8-16 13:28
还有一个方法是使用type: string equals

这个的意思就是,输入papi 变量%player_hasitem-mat:263-amt:1- ...

或者
right_click_requirement:
  requirements:
    这里随便写:
    type: javascript
     expression: '"%player_hasitem-mat:263-amt:1-data:0%".equalsIgnoreCase("yes");'

jingew233
这里随便写是啥呀.

North丶Kraken
jingew233 发表于 2018-8-30 18:47
这里随便写是啥呀.

你可以理解成。。名字,代号。啥的。。不管写什么都不会对判断产生影响。。

第一页 上一页 下一页 最后一页