本帖最后由 Auange_M夜幕 于 2017-5-7 09:44 编辑


总章:认识BossShop

一、简语

       相信大家对BossShop或多或少有一定的认识!的确,它很强大,但是难于掌握它。这次我发表的这个教程,致力于让更多的腐竹学会如何运用BossShop,但是这些教程都是出于自己的理解与心得,并不是都是官方的教程,如果想去阅读官方的教程可以去我们PCD小组合作作品——BossShop-Wiki
      
在这个帖子,我会全面的介绍BossShop的主要功能和配置等等,还会教你们如何使用其他插件配合BossShop来制作服务器的菜单,并且会附上例子。不仅会教你们以上内容,还会适当给你们一些漂亮的排版(GUI的排版)教程和例子!
       如果在教程中有什么差错,欢迎指出!

二、初步认识BossShop

1、什么是BossShop?
         BossShop是一款强大的插件, 它可以让你创建一个GUI,在GUI上你可以自定义的配置你想要的商店,商店可以实现无限库存、权限购买、其他金币类型购买、限制购买等等,不只是商店那么简单,它能够让新手通过一个GUI就能实现服务器几乎所有的指令。
2、它能够设置什么奖励呢?
  • 物品
  • 金钱
  • 权限
  • 命令
  • 附魔
  • 点券
  • 商店
3、它可以设置玩家需哪些东西才可以执行奖励呢?
  • 免费
  • 金钱/点券/权限/经验/物品
4、在GUI菜单上,它可以怎样显示?
     
每个项目都可以设置显示它的Name(名字)、Lore(属性)、Enchantment(附魔)、Durability(耐久值)、InventoryLocation(位置)等等。

三、指令&权限

①指令
/bs | 打开主要的商店
/bs <商店名称> | 打开指定的商店
/bs open <商店名称> <玩家名称> | 为某玩家打开某商店
/bs close <玩家名称> | 关闭某玩家的商店
/bs reload | 重启插件(官方附属的插件也会重启)
/bs check | 显示已加载的物品/商店的详细信息
*bs可以替换为BossShop或shop (常用于命令冲突,如
用法:bs version [modid]

②权限
BossShop.open - 可以打开全部菜单
BossShop.open.sign - 可以通过告示牌打开菜单
BossShop.open.command - 可以通过命令打开全部菜单
BossShop.open.command.<商店名> - 用命令只能打开指定菜单
BossShop.createSign - 能够创建商店告示牌
BossShop.reload - 能够重载插件
BossShop.check - 能够使用/bs check命令

四、配置文件&语言文件

Config

Message




一章:进阶附属插件

一、认识附属插件

①简语      
     BossShop的作者开发BossShop的同时,也制作了几款适合BossShop的附属插件,这些附属插件使得BossShop更加完善,更加强大!
②官方附属插件
1、GuiShopManager
       功能:允许你设置一个物品,拿在手中可以打开菜单
2、BS-SingleUse
       功能:物品购买数量限制
3、PlayerPoints
       功能:一种强大的点券插件

还有众多的附属插件,这里只列举了几种常用的附属插件!
③其他插件可供附属
1、ChestCommands
      功能:一个类似于BossShop的其他菜单插件
      选择理由:多种菜单插件配合起来优势互补,而且ChestCommands配置简单可以配合BossShop制作其他子商店
2、Pcj
      功能:一个抽奖插件,弥补了BossShop不能制作抽奖的功能
      选择理由:Pcj配合BossShop可以制作一个抽奖菜单
3、DeluxeMenus
      功能:另外一款强大的菜单插件,可以配合BossShop
      选择理由:多种菜单插件配合起来优势互补
4、GlobalMarket
      功能:全球市场,玩家交易
      选择理由:利用BossShop使得玩家更容易进入市场进行交易

几乎很多插件都能和BossShop一起配合起来使用

二、附属插件实战

实战1:GuiShopManager

    简单的介绍:GuiShopManager(下面简称GSM)是一款可以配合BossShop的插件,它能够生成一个物品,固定在玩家的物品栏,玩家需要打开背包只需 右键 物品,就可以实现打开商店。
    如何使用它呢?
1) 下载安装这个插件
(帖子所有需要下载的东西都会在帖子下方提供)
2)配置GSM配置文件
例子:

  1. Version: 1.3.2
  2. Settings:
  3. # 是否允许玩家放置菜单
  4.   AllowPlaceItems: false
  5. # 是否允许菜单被移动
  6.   AllowMoveItems: false
  7. # 是否允许玩家丢弃菜单
  8.   AllowDropItems: true
  9. # 死亡后菜单回归
  10.   DropItemsOnDeath: true
  11. # 是否允许每次回城赠送菜单
  12.   GetItemsOnRespawn: false
  13. #
  14. #
  15. #
  16. # 下面为菜单的配置
  17. Items:
  18. # 菜单名称,可以随意更改,与/GSM items 对应
  19.   BossShopMenu:
  20.     Look:
  21. # 菜单显示的name
  22.     - name:&6[o] &4&l游戏 &r&6菜单 &6[o]
  23. # 菜单显示的lore
  24.     - lore:&a右键&7我来打开菜单
  25. # 菜单的类型,可以换为 ID:<id>
  26.     - type:WATCH
  27. # 菜单的数量
  28.     - amount:1
  29. # 玩家加入游戏是否给予此菜单
  30.     GiveOnJoin: true
  31. # 菜单的位置(1-9)
  32.     InventoryLocation: 9
  33. # 此菜单打开后的菜单为
  34.     OpenShop: menu
  35. # 第二个菜单只需按照上面的格式另外配置即可
复制代码
3)重启/bs reload






实战2:Bs-SingleUse

    简单的介绍:
         
这款插件是针对于BossShop的商品设置,它可以用来限制玩家购买这个物品的次数,或是用来制作重叠商品
    用来做什么?
         
制作 特殊的节日礼包(每人领取一次) VIP1>VIP2>VIP3逐步升级的项目
     配置文件Config:
  1. # 提示语
  2. Message: '&c你已达到了购买该物品的上限!已购买数 &6%limit%&c/&6%limit% &c总数!'
  3. # 是否隐藏无权限以及购买次数用尽的物品
  4. HideUsedItems: false  
复制代码

实战2例子⑴-特殊的节日礼包
1)节日礼包这里我用了Essentials的Kit功能
2)配置一下商店的项目
例子:
  1.   特殊的节日礼包:
  2.     RewardType: playercommand
  3.     PriceType: free
  4.     Reward:
  5.     - kit jrlb
  6.     - bs close %player%
  7.     MenuItem:
  8.     - id:388
  9.     - amount:1
  10.     - name:&a&l特殊的节日礼包
  11.     - lore:&7每人只能领取一次哦~
  12.     Message: ''
  13.     InventoryLocation: 1
  14.     ExtraPermission:
  15.     SingleUse: 1
复制代码
3)重启插件

领取好后,自动关闭了GUI,因为我添加了命令bs close %player%

每人只允许领取一次,当重新领取后,就会提示不能领取


实战2例子⑵-重叠项目之,VIP的升级
1)首先需要把附属插件里Config中 HideUsedItems: false false改为true
2)配置菜单插件
例子:
  1.   VIP 1:
  2.     RewardType: command
  3.     PriceType: free
  4.     Reward:
  5.     - 移动到权限组的指令
  6.     - bs close %player%
  7.     MenuItem:
  8.     - id:89
  9.     - amount:1
  10.     - name:&a&l普通用户&7>>>>&e&lVIP1
  11.     - lore:&7点击升级
  12.     Message: '&c&l成功升级到&e&lVIP1'
  13.     InventoryLocation: 2
  14.     ExtraPermission:
  15.     SingleUse: 1   
  16.   VIP 2:
  17.     RewardType: command
  18.     PriceType: free
  19.     Reward:
  20.     - 移动到权限组的指令
  21.     - bs close %player%
  22.     MenuItem:
  23.     - id:89
  24.     - amount:1
  25.     - name:&e&lVIP1&7>>>>&6&lVIP2
  26.     - lore:&7点击升级
  27.     Message: '&c&l成功升级到&6&lVIP2'
  28.     InventoryLocation: 2
  29.     ExtraPermission:
  30.     SingleUse: 1  
  31.   VIP 3:
  32.     RewardType: command
  33.     PriceType: free
  34.     Reward:
  35.     - 移动到权限组的指令
  36.     - bs close %player%
  37.     MenuItem:
  38.     - id:89
  39.     - amount:1
  40.     - name:&6&lVIP2&7>>>>&b&lVIP3
  41.     - lore:&7点击升级
  42.     Message: '&c&l成功升级到&b&lVIP3'
  43.     InventoryLocation: 2
  44.     ExtraPermission:
  45.     SingleUse: 1   
复制代码

注意以下要求:
             重叠项目的物品位置都一致,项目名称的格式为 项目名+优先级(+号替换为空格),图中项目名称分别为:VIP 1、VIP 2、VIP 3
             配置文件最后务必填写SingleUse: 次数

3)完成后会是这样的

点击后升级到VIP1 重新打开菜单

同个位置出现了新的项目




实战3:打开其他GUI插件-抽奖

首先抽奖插件用的是鄙人制作的Pcj
打开Pcj抽奖的指令为:pcj 1
例子:
  1.   打开抽奖:
  2.     RewardType: command
  3.     PriceType: free
  4.     Reward:
  5.     - sudo %player% pcj 1
  6.     - bs close %player%
  7.     MenuItem:
  8.     - id:54
  9.     - amount:1
  10.     - name:&a&l打开Pcj抽奖
  11.     - lore:&7打开其他GUI插件
  12.     Message: ''
  13.     InventoryLocation: 3
  14.     ExtraPermission:
复制代码
效果是这样的:

点击后就会打开我们的Pcj抽奖插件实现菜单抽奖功能

原理:
命令选项设置为 bs close %player% 和 sudo %player% <打开其他GUI的指令>
意思就是说,打开其他GUI的插件需先关闭原先的GUI后强制玩家打开(这点很重要)






二章:菜单的排版及制作

模版篇

       我个人每次开始制作一份菜单,都不会用什么编辑器软件等等来编辑,那就有人问了,你是怎么排版的?这里我有一个自己排版的小技巧!


①那需要准备什么呢?
                    2个箱子1个铁砧
      箱子的用处:模拟GUI,2个箱子最多格子为54格,和Bs菜单的格子数相同
      铁砧的用处:给物品命名,方便记忆

②开始排版!
        GUI的排版我建议用玻璃板来排版
        这里我用了若干个玻璃板排了一下主菜单界面主要的装饰品
        
        后按照这个排版在配置文件中制作,不懂格子就只要记住一行9格共6行
        装饰品的格式已经写在下面的例子了,只要制作一个项目,其他项目复制帐帖后修改位置即可
        这里我已经制作好了,并添加进了其他项目商店
        
        例子:

     当你的GUI装饰完后,即可制作新的项目。
     新的项目一般都是点击后到达子商店

商店篇

BossShop这款插件的功能,主要也是要针对商店。在这篇,我会详细讲解如何制作一个商店(出售/回收)


[回收商店]

      从上图所了解,回收商店主要是针对物品回收后,系统给予回报,制作这一种菜单,可以给服务器(特别是生存服)的玩家带来极大的便捷,当在矿洞中,玩家挖矿的背包满时候,只要打开菜单收购一下。
      这种菜单的制作,看起来复杂,其实并不难。只需先在箱子排版一下,后在配置文件编辑即可!



上面的例子:


详解:
  1.   胡萝卜:
  2.     RewardType: money
  3.     PriceType: item
  4.     Price:
  5.     - - id:391
  6.       - amount:1
  7.     Reward: 2
  8.     MenuItem:
  9.     - id:391
  10.     - amount:1
  11.     - name:&a回收&b胡萝卜&f[&62&7游戏币/个&f]
  12.     Message: '&c回收系统&d>>>&a恭喜你出售成功获得了&6%reward%&a游戏币'
  13.     InventoryLocation: 52
  14.     ExtraPermission: ''
复制代码

我们以胡萝卜为例子,RewardType为奖励的类型,这里我们就写上money,意思为奖励金币。PriceType为收费的类型,这里我们就是要回收物品,所以填上item


花费:
  1.     Price:
  2.     # 回收所需的物品
  3.     - - id:391
  4.       # 数量
  5.       - amount:1
复制代码
奖励:Reward:<游戏币数量>

MenuItem:为在菜单中显示的东西,其中的amount为数量,可以和上述的花费中的amunt一致,使得玩家在菜单中一目了然


[出售商店]

                                  即在回收商店的基础上,将奖励和花费的类型对换一下即可制作

这里我们以淬炼商店为例子


指令篇

⑴简语
      
指令在服务器中好比心脏在人的人体中,有着相当重要的位置和意义。而BossShop,可以简化这些输入命令的繁杂过程,玩家可通过一个菜单即可实现服务器的大部分日常指令!
⑵指令的类型
①玩家指令(PlayerCommand)
  >- 平常玩家使用的指令,如果服务器限制了权限,某些指令是无法使用的,玩家的指令基本函盖了服务器游玩正常的指令。
②控制台指令(Command)
  >-  也可以称为OP指令,这些指令往往无视权限的存在,而BossShop可以设置让玩家触发一些OP的指令,比如下雨等等。
⑶如何更好的运用这些指令?
①更好的运用变量%player%
      
变量%player%为BossShop的基础变量之一,它的主要功能是在于触发命令的变量(而不是在lore显示的变量%name%),擅长利用sudo %player% 命令(强制玩家使用命令)或许会让BossShop更强大。
②学会日常指令以及OP指令
       学习一些指令或许对配置BossShop有一定的帮助。
⑷实战例子
①玩家点击后回城

  1.   回城:
  2.     RewardType: playercommand
  3.     PriceType: free
  4.     Reward:
  5.     - spawn
  6.     - bs close %player%
  7.     MenuItem:
  8.     - id:54
  9.     - amount:1
  10.     - name:&a回到主城
  11.     - lore:&7左键点击回城
  12.     Message: ''
  13.     InventoryLocation: 3
  14.     ExtraPermission:
复制代码
       这里的回城,我用了playerCommand类型的回报,其实用Command也是可以的(那样回城就是秒回城)用了playerCommand,大部分都不需要用到%player%了,然后bs close %player%
        Message:" 这里可以适当的填一下,比如:&a你回到了主城。这里的Message为成功执行后发送的语句。


②玩家点击后给予玩家权限
       虽然说回报的类型有奖励权限这一功能,但是我觉得还是太难理解,不如用指令来设置吧!给予玩家的权限可以直接给他们权限(如Essentials.fly),这样和获得VIP没什么区别,或者是设置让他们进入某一权限组(通常VIP的制作都是这样)
       在这里,就主要实战给玩家Essentials.fly权限!
  1.   飞行权限:
  2.     RewardType: command
  3.     PriceType: free
  4.     Reward:
  5.     - manuaddp %player% essentials.fly
  6.     - bs close %player%
  7.     MenuItem:
  8.     - id:388
  9.     - amount:1
  10.     - name:&a点击获得飞行权限
  11.     - lore:&7左键点击
  12.     Message: '&a恭喜你获得了飞行权限,尝试/fly'
  13.     InventoryLocation: 4
  14.     ExtraPermission:
复制代码

        给予权限需要用到类型为Command,manuaddp %player% essentials.fly 为给点击的玩家送上飞行权限,这个指令也可以替换上我们的把玩家移动到某权限组的指令
[groupid=1330]PluginsCDTribe[/groupid]