====== 配置 - 高级选项 ======
**如何设置不同种类的动作?**
这很容易!只需复制您的价格、奖励和知识线并修改路径:
将您要使用的点击类型的名称添加到路径的末尾。
示例:
* Reward -> Reward_right
* Message -> Message_middle
可能的点击类型:
* left
* right
* middle
* shift_left
* shift_right
配置示例
Diamonds:
MenuItem:
- type:DIAMOND
- amount:5
- name:&95 Diamonds
- 'lore1:&eClick &2left &eto buy &c%reward% &efor &c%price%&e.'
- 'lore2:&eClick &2right &eto sell &c%price_right% &efor &c%reward_right%&e.'
RewardType: ITEM
Reward:
- - type:DIAMOND
- amount:5
PriceType: MONEY
Price: 5000
Message: '&eYou bought %reward%! Money left: &c%left%'
RewardType_right: MONEY
Reward_right: 2500
PriceType_right: ITEM
Price_right:
- - type:DIAMOND
在这种情况下,玩家将通过左键单击购买钻石并通过右键单击出售钻石。
您可以使用占位符 %reward_% 和 %price_% 来显示操作的奖励和价格。
或者,您可以通过将“ExtraPermission_”添加到您的商店项目来为不同的点击类型添加独立的额外权限。例如“ExtraPermission_right:BossShop.itemshop.apple.rightclick”。
**其他可能的设置**
您可以将以下设置添加到主 config.yml、任何商店和任何商店物品:
* '' HideItemsPlayersDoNotHavePermissionsFor : true/false'' - 应该明确,效果可以用条件替换
* '' AllowUnsafeEnchantments : true/false'' - 如果启用,玩家可以在任何物品上使用每个附魔奖励
* '' CanPlayersSellItemsWithGreaterEnchants : true/false'' - 如果启用,玩家可以向允许出售物品的商店出售具有比所需更多附魔的物品。这在处理附魔不良的物品时可能会有所帮助,但也可能导致意外出售低于其价值的物品。
* '' CloseShopAfterPurchase : true/false'' - 如果启用,库存 GUI 将在成功购买后关闭
这些设置由它们的子级继承:例如,如果您在主 config.yml 中设置“CloseShopAfterPurchase:true”,则所有商店物品都将受到它的影响。现在,如果您为单个商店设置“CloseShopAfterPurchase:false”,则该商店中的每个商店物品的设置都将被禁用。
声音设置也可以继承。您可以将以下属性添加到任何商店或商店物品,以使他们和他们的子项使用新的声音:
Sound:
Shopitem:
Click: 'UI_BUTTON_CLICK:1:1'
Purchase: 'ENTITY_PLAYER_LEVELUP:1:1.8'
NoPermission: 'ENTITY_BLAZE_DEATH:1:1'
NotEnoughMoney: 'ENTITY_SHULKER_HURT:1:0.8'
以下声音属性可以添加到任何商店:
Sound:
Shop:
ChangePage: 'UI_BUTTON_CLICK:0.2:1'
ChangeShop: 'BLOCK_CHEST_OPEN:0.2:1'
Open: 'ENTITY_ELDER_GUARDIAN_CURSE:1:1.8'
Close: ''
声音的格式为“<声音名称>:<音量>:<音高>”。您可以通过将声音设置为“”来关闭声音。您可以在此处找到所有可用的声音名称。
以下可选设置可以添加到任何商店(但不是 shopitem):
InventoryRows : - 此设置允许增加库存的大小,而无需将商店物品添加到底行
**玩家输入** (略)
**配置技巧**
有几个技巧可以让设置商店更容易。例如,如果您出售物品,您通常会创建一个物品作为奖励,您会创建另一个物品作为 MenuItem,对吗?
有一种简单的方法可以避免创建两个相同的项目:您可以使用占位符 '%rewarditem_%' 和 '%priceitem_%' 以使您的 MenuItem 导入给定项目的外观.
示例 1:
GodApple:
MenuItem:
- '%rewarditem_1%'
- 'lore:&cPrice: %price%'
RewardType: ITEM
Reward:
- - type:GOLDEN_APPLE
- amount:1
- Durability:1
PriceType: MONEY
Price: 10000
Message: '&eYou bought 1 %itemname%! &eMoney left: &c%left%'
ExtraPermission: ''
在此示例中,MenuItem 使用第一个奖励项目的外观(反正只有一个)。这样神苹果只需要设置一次。
示例 2:
bow_ranger:
MenuItem:
- '%rewarditem_2%'
- lore:&cCosts %price%.
RewardType: ITEM
Reward:
- - amount:16
- type:ARROW
- - name:&2&lRanger Bow
- amount:1
- type:BOW
- enchantment:ARROW_DAMAGE#7
- enchantment:ARROW_KNOCKBACK#10
PriceType: EXP
Price: 30
Message: '&2You以 &c%price%&2 的价格购买了新武器。
ExtraPermission: ''
InventoryLocation: 14
在这种情况下,奖励包括一些箭和一把复杂的弓。因为 MenuItem 不应该看起来像箭头,而应该像弓,我们在这里使用 '%rewarditem_2%'(弓是奖励列表的第二项)。
如果您想要更多类似这样的技巧,我建议您查看 [[https://www.spigotmc.org/resources/trickyshops-bsp-makes-creating-shops-way-faster.26269/|Addon TrickyShops]]。
**一件商品的不同 RewardTypes/Pricetypes**
可以使用以下一种或多种类型:
* RewardType AND:给玩家所有定义的奖励
* PriceType AND:要求玩家支付所有定义的价格
* PriceType OR:要求玩家支付定义的价格之一
*
使用示例:
RewardType AND
DifferentRewardTypesAND:
MenuItem:
- 'lore:&aReward: %reward% #&cPrice: %price%'
- name:&9Money, Items and Exp
- amount:1
- type:TNT
RewardType: AND
Reward:
RewardType1: ITEM
Reward1:
- - amount:7
- type:TNT
RewardType2: money
Reward2: 50
RewardType3: exp
Reward3: 20
PriceType: NOTHING
Message: '&eYou received %reward%.'
ExtraPermission: ''
InventoryLocation: 0
PriceType AND
DifferentPriceTypesAND:
MenuItem:
- type:DIAMOND
- amount:5
- name:&95 Diamonds
- 'lore1:&eBuy %reward% for %price%.'
RewardType: ITEM
Reward:
- - type:DIAMOND
- amount:5
PriceType: AND
Price:
PriceType1: MONEY
Price1: 50.0
PriceType2: POINTS
Price2: 10
Message: '&eYou bought %reward%! Balances left: &c%left%'
InventoryLocation: 0
PriceType OR
DifferentPriceTypesOR:
MenuItem:
- type:DIAMOND
- amount:5
- name:&95 Diamonds
- 'lore1:&eBuy %reward% for %price%.'
RewardType: ITEM
Reward:
- - type:DIAMOND
- amount:5
PriceType: OR
Price:
PriceType1: MONEY
Price1: 50.0
PriceType2: POINTS
Price2: 10
Message: '&eYou bought %reward%! Balance left: &c%left%'
InventoryLocation: 0
当然,这些类型可以堆叠,如以下结构示例所示:
* PriceType: AND
* Price:
* PriceType1: ITEM
* Price1: diamond
* PriceType2: OR
* Price2:
* PriceType1: MONEY
* Price1: 1000
* PriceType2: POINTS
* Price2: 50
在此示例中,玩家需要支付钻石和 1000 钱或 50 点。