BossShopPro
Configuration - Advanced Options | 配置-高级选项
字数统计: 2637字
这很简单!你只用复制你的价格、奖励和介绍然后修改路径:
添加点击类型到路径的最后
Examples:
Reward(奖励) -> Reward_right(奖励_右键)
Message(消息) -> Message_middle(消息_中键)
可用点击类型:
- Left(左键)
- Right(右键)
- Middle(中键)
- shift_left(下蹲_左键)
- shift_right(下蹲_右键)
配置案例
- Diamonds:
- MenuItem:
- - type:DIAMOND
- - amount:5
- - name:&95个钻石
- - 'lore1:&e左键购买 &c%reward% - &e售价:&c%price%&e.'
- - 'lore2:&e右键出售 &c%price_right% - 收购价:&c%reward_right%&e.'
- RewardType: ITEM
- Reward:
- - - type:DIAMOND
- - amount:5
- PriceType: MONEY
- Price: 5000
- Message: '&e你购买了 %reward%! 所剩余额: &c%left%'
- #####这里是右键内容#####
- RewardType_right: MONEY
- Reward_right: 2500
- PriceType_right: ITEM
- Price_right:
- - - type:DIAMOND
- - amount:5
- Message_right: '&e你获得了 %price_right% 金钱!'
- ExtraPermission: ''
- InventoryLocation: 3
你可以使用占位符 %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: ''
下方的选项设置可以被添加到任何商店(但不是商品):
- InventoryRows: <行数> - 这个设置可以选择菜单的行数,6行为最大,1行为最小。
玩家Input(输入)
你可以强制所有玩家输入他们的文本信息或选择一个在线玩家。输入信息可以通过"%input%" 占位符来显示. 可用的应用方法:
- 玩家菜单:选择一个玩家然后执行一个特定的动作,像踢出游戏/禁言/封禁等
- 指令"完善": 当玩家点击特定的商品时,一个指令会通过玩家输入来执行
- 允许玩家命名商品然后购买 (设置"name:%input%")
- 还有更多的!
这种方法基本上可以将所有东西都变得十分整洁:例如一个派系的GUI可以让玩家用来占领地盘或加强其他玩家(使用input来输入对象玩家的名称)。
添加这一段信息就能强制玩家输入(input)一段信息:
- ForceInput: PLAYER/TEXT
- ForceInputMessage: 'any message'
在打开一个商店时,玩家可以手动的输入input,这样可以用来创建一个更加直观的系统:例如创建指令别名"/admin"会打开"AdminCommands"商店. 现在玩家可以输入"/admin Herobrine" 使用有效的input来打开商店.
你可以添加这些到任何商品上,你可以这些到任何一个商品中,使用playerinput来确保玩家在行动被执行之前输入了新的input, 或强制玩家选择一个input然后提供一个所有物品都有相同input的商店.
如果你允许玩家输入input一次然后给予使用商品的权利但不会强制重新提供新的input的话,你需要确保玩家已经输入了input。
这里是一个只需要input被输入一次的案例:
主菜单区域:
- playercommandsmenu:
- MenuItem:
- - lore:&8Commands to manage other players.
- - name:&e&lPlayer Commands
- - type:paper
- #######
- ForceInput: PLAYER
- ForceInputMessage: '&8Enter the name of a player you want to select.'
- #######
- RewardType: SHOP
- Reward: playercommandssecret
- PriceType: NOTHING
- Message: ''
- ExtraPermission: ''
- InventoryLocation: 40
玩家指令商店.
- #注: 玩家只能通过主菜单来进入商店,因为他们会被强制选择一个目标,才能来确保指令能够正常运行。
- #因为哪样不会给予玩家直接的权利来打开这个商店.
- ShopName: PlayerCommandsSecret
- DisplayName: '&6&l%input% &0&l指令'
- shop:
- reselecttarget:
- MenuItem:
- - name:&f&l选择一个玩家
- - lore:&8点击选择其他玩家.
- - amount:1
- - type:SKULL_ITEM
- - durability:3
- RewardType: SHOP
- ForceInput: PLAYER
- ForceInputMessage: '&8输入玩家的名字来选择目标.'
- Reward: PlayerCommandsSecret
- PriceType: NOTHING
- Message: ''
- ExtraPermission: ''
- InventoryLocation: 1
- gamemode:
- MenuItem:
- - name:&f&l冒险模式
- - lore:&8设置玩家 &l&6%input% &8的模式为冒险模式.
- - amount:1
- - type:TORCH
- RewardType: PLAYERCOMMAND
- Reward:
- - 'gamemode 2 %input%'
- PriceType: NOTHING
- Message: ''
- ExtraPermission: ''
- InventoryLocation: 2
- msgtest:
- MenuItem:
- - name:&f&l测试消息
- - lore:&8给玩家 &l&6%input% &8发送一条测试消息.
- - amount:1
- - type:PAPER
- RewardType: PLAYERCOMMAND
- Reward:
- - 'msg %input% 这只是一条测试'
- PriceType: NOTHING
- Message: ''
- ExtraPermission: ''
- InventoryLocation: 3
- kick:
- MenuItem:
- - name:&f&l踢出游戏
- - lore:&8将玩家 &l&6%input% &8踢出服务器.
- - amount:1
- - type:DIAMOND_SWORD
- - itemflag:all
- RewardType: PLAYERCOMMAND
- Reward:
- - 'kick %input%'
- PriceType: NOTHING
- Message: ''
- ExtraPermission: ''
- InventoryLocation: 4
配置诀窍
其实有很多可以使商店建立更容易的小窍门。比如你想出售物品的话,正常来讲你应该会创建一个物品作为奖励然后再创建一个物品作为商店图标,对吗?这里有一种简单的方式来避免两个物品重复:你可以使用占位符 '%rewarditem_<id>%' 和 '%priceitem_<id>%' 来使你的商店图标内容和奖励内容一致。
例子1:
- GodApple:
- MenuItem:
- - '%rewarditem_1%' ##重点,会显示和Reward里的物品一样的内容##
- - 'lore:&c售价: %price%' ##在这后面还能添加额外的内容##
- RewardType: ITEM
- Reward:
- - - type:GOLDEN_APPLE
- - amount:1
- - durability:1
- PriceType: MONEY
- Price: 10000
- Message: '&e你购买了%itemname%! &e余额: &c%left%'
- ExtraPermission: ''
例子2:
- bow_ranger:
- MenuItem:
- - '%rewarditem_2%'
- - lore:&c价格 %price%.
- RewardType: ITEM
- Reward:
- - - amount:16
- - type:ARROW
- - - name:&2&l射手之弓
- - amount:1
- - type:BOW
- - enchantment:ARROW_DAMAGE#7
- - enchantment:ARROW_KNOCKBACK#10
- PriceType: EXP
- Price: 30
- Message: '&2你购买了一件新武器,花费 &c%price%&2.'
- ExtraPermission: ''
- InventoryLocation: 14
如果你想要更多的骚操作,你可以使用附属插件 TrickyShops.
一个物品中不同的RewardTypes(奖励类型)/PriceTypes价格类型
可使用的类型:
- RewardType AND: 给玩家所有定义的奖励
- PriceType AND: 玩家需要支付所有定义的价格
- PriceType OR: 玩家需要选择其中一种支付方式
使用例子:
奖励类型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
- 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
Code (Text):
- DifferentPriceTypesOR:
- MenuItem:
- - type:DIAMOND
- - amount:5
- - name:&95钻石
- - 'lore1:&e购买 %reward%,售价 %price%.'
- RewardType: ITEM
- Reward:
- - - type:DIAMOND
- - amount:5
- PriceType: OR
- Price:
- PriceType1: MONEY
- Price1: 50.0
- PriceType2: POINTS
- Price2: 10
- Message: '&e你购买了%reward%! 余额: &c%left%'
- InventoryLocation: 0
- PriceType: AND
- Price:
- PriceType1: ITEM
- Price1: diamond
- PriceType2: OR
- Price2:
- PriceType1: MONEY
- Price1: 1000
- PriceType2: POINTS
- Price2: 50
所以在例子中现在玩家需要支付一个钻石和1000金币或50点数
对RewardTypes过时的使用方法
[groupid=1597]Citrus Tree Studio[/groupid]