配置 - 高级选项
如何设置不同种类的动作?
这很容易!只需复制您的价格、奖励和知识线并修改路径:
将您要使用的点击类型的名称添加到路径的末尾。 示例:
- 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_<clicktype>% 和 %price_<clicktype>% 来显示操作的奖励和价格。
或者,您可以通过将“ExtraPermission_<clicktype>”添加到您的商店项目来为不同的点击类型添加独立的额外权限。例如“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 : <amount of rows> - 此设置允许增加库存的大小,而无需将商店物品添加到底行
玩家输入 (略)
配置技巧
有几个技巧可以让设置商店更容易。例如,如果您出售物品,您通常会创建一个物品作为奖励,您会创建另一个物品作为 MenuItem,对吗?
有一种简单的方法可以避免创建两个相同的项目:您可以使用占位符 '%rewarditem_<id>%' 和 '%priceitem_<id>%' 以使您的 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%'(弓是奖励列表的第二项)。
如果您想要更多类似这样的技巧,我建议您查看 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 点。