====== 配置 - 高级选项 ====== **如何设置不同种类的动作?** 这很容易!只需复制您的价格、奖励和知识线并修改路径: 将您要使用的点击类型的名称添加到路径的末尾。 示例: * 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 点。