自訂村民商店

強烈建議用Mcedit filter -> 教學
某些狀況下會需要用指令產生村民商店(比方說解除某任務才生成村民)
例子:
先生個村民
/summon Villager ~ ~ ~ {Profession:1}
Profession 為村民種類,遊戲預設的村民會依種類不同而有不同的交易物品 
但我們是自訂商店,所以這邊只有改變外觀的效果
例子:
鑽石換鐵鞋 
/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1}}]}}
分段後:
{
    Offers:{
        Recipes:[
            {   
                maxUses:2,
                buy:{
                    id:minecraft:diamond,
                    Count:1
                },
                sell:{
                    id:minecraft:iron_sword,
                    Count:1
                }
            }
        ]
    } 
}
自訂商店以Offers起頭,這是特定寫法,一定要寫 
Recipes:為自訂交易的內容,注意到冒號後是[],代表他可以存多筆交易,彼此用逗號分隔 
像這樣Recipes:[{交易1},{交易2}] 
maxUses:代表交易可用次數,上面例子中是2,代表此交易只能使用兩次 
buy:就是你要付給村民的物品,後面接物品TAG 
sell:村民賣你的物品,後面一樣接物品TAG

更多例子:
兩個物品換一個物品
木頭+鐵錠換鐵劍
/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:10,buy:{id:minecraft:planks,Count:1},buyB:{id:minecraft:iron_ingot,Count:1},sell:{id:minecraft:iron_sword,Count:1}}]}}
多一個參數BuyB,就是要付的第二個物品
自訂多筆交易
鑽石換鐵劍,3個可可豆換紙
/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1}},{maxUses:2,buy:{id:minecraft:dye,Damage:3,Count:3},sell:{id:minecraft:paper,Count:1}}]}} 
賣自定義物品
/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1,tag:{display:{Name:”救世劍”,Lore:[“威力強大的劍”]},ench:[{id:16,lvl:10}]}}}]}}
自訂的物品參數放在tag裡
更複雜的?例如賣自定義書本?
用Mcedit filter -> 教學

延伸
無敵村民
/summon Villager ~ ~1 ~ {Invulnerable:1,Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1}}]}}  
Inventory為生物是否會受傷的開關,設成1村民就無敵了 

*創造模式下還是打的到,做圖的時候別誤會他無效喔XD
村民別亂跑
/summon Villager ~ ~1 ~ {Attributes:[{Name:generic.movementSpeed,base:0}],Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:planks,Count:1},sell:{id:minecraft:iron_sword,Count:1}}]}}
加入Attributes:[{Name:generic.movementSpeed,base:0}]修改村民基本跑速為0 
關於生物屬性會在自定義怪物詳細介紹,此篇以如何建立自訂村民商店為主。
自訂村民商店名稱-武器商人
/summon Villager ~ ~1 ~ {CustomName:”武器商人”,Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:planks,Count:1},sell:{id:minecraft:iron_sword,Count:1}}]}}
CustomName:設定生物名稱
純加姓名不解釋
避免村民升級增加交易
/summon Villager ~2 ~ ~ {Career:1,CareerLevel:100,Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1}}]}}
村民升級會擅自加交易選項,可能會讓玩家拿到設定外的道具,加入Career和CareerLevel設定可避免此問題。

*這兩個參數的定義不太重要,記得即可。
*只能保證不會增加新的交易,但村民還是會升級。
關閉交易經驗值
/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:2,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1},rewardExp:false},{maxUses:2,buy:{id:minecraft:dye,Damage:3,Count:3},sell:{id:minecraft:paper,Count:1}}]}} 

rewardExp為交易是否會取得經驗值的開關,輸入true為有,false為無,可針對每筆交易個別設定。


合併以上:
無敵不亂跑有名字又賣很多東西的村民
/summon Villager ~ ~1 ~ {CustomName:”自訂商人完全體”,Invulnerable:1,Attributes:[{Name:generic.movementSpeed,base:0}],
Career:1,CareerLevel:100,Offers:{Recipes:[{maxUses:10,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1}},{maxUses:10,buy:{id:minecraft:planks,Count:1},buyB:{id:minecraft:iron_ingot,Count:2},sell:{id:minecraft:iron_sword,Count:1}},{maxUses:10,buy:{id:minecraft:diamond,Count:1},sell:{id:minecraft:iron_sword,Count:1,tag:{display:{Name:”救世劍”,Lore:[“威力強大的劍”]},ench:[{id:16,lvl:10}]}}}]}}
覺得很麻煩?
就說用Mcedit filter -> 教學

留言

熱門文章