MinecraftSnowServer / Report

雪服問題回報區
https://mine.snowtec.org/wiki/doku.php/minecraft:problem
1 stars 0 forks source link

新手村新生村民交易問題 #9

Closed fntsrlike closed 7 years ago

fntsrlike commented 7 years ago

基本資訊

問題描述

  1. 多數村民沒有賣物品的交易項目 by david50407
  2. 農民只有第二層交易 by tp6g4
fntsrlike commented 7 years ago

這個問題起源於村民 NBT 標籤的 CarrerLevel 關係。

CarrerLevel 設置為 0 時,會重置該村民的職業 (Carrer),所以若要在生成村民指定職業時,就要將 CarrerLevel 設置為 1 或以上。

但是當 CarrerLevel 設置為 1 時,系統會認為你已經有第一層交易了,所以會在生成新交易時,直接從第二層開始。而若是生成時沒指定交易選項 Offers:{Recipes:[]} 時,在開啟交易選單時就會自動觸發生成下一階的交易,所以就導致初始交易選項是從第二層交易開始。

而當 CarrerLevel 大於該職業自動生成的最大交易階數時,就不會再自動生成交易,這也是為什麼許多村民交易都少了一層的關係。

目前偏向的解決辦法有二:

  1. 在生成時 CarrerLevel 設置為 1 ,並手動先設定好第一階的交易項目。(偏好做法)
  2. 生成隨機職業的村民,若不是預期職業則銷毀,直到村民為預期職業。
fntsrlike commented 7 years ago

農民

/summon villager ~ ~ ~ {CustomName:"新手村農民",Profession:0,Career:1,CareerLevel:1,Offers:{Recipes:[{rewardExp:1b,maxUses:10,uses:0,buy:{id:wheat,Count:20b},sell:{id:emerald,Count:1b}},{rewardExp:1b,maxUses:10,uses:0,buy:{id:potato,Count:17b},sell:{id:emerald,Count:1b}},{rewardExp:1b,maxUses:10,uses:0,buy:{id:carrot,Count:17b},sell:{id:emerald,Count:1b}},{rewardExp:1b,maxUses:10,uses:0,buy:{id:emerald,Count:1b},sell:{id:bread,Count:3b}}]},Invulnerable:1,PersistenceRequired:1,Team:"normal"}

漁夫

/summon villager ~ ~ ~ {CustomName:"新手村漁夫",Profession:0,Career:2,CareerLevel:1,Offers:{Recipes:[{rewardExp:1b,maxUses:10,uses:0,buy:{id:fish,Count:6b},buyB:{id:emerald,Count:1b},sell:{id:cooked_fish,Count:6b}},{rewardExp:1b,maxUses:10,uses:0,buy:{id:string,Count:17b},sell:{id:emerald,Count:1b}},{rewardExp:1b,maxUses:2147483647,uses:0,buy:{id:coal,Count:20b},sell:{id:emerald,Count:1b}}]},Invulnerable:1,PersistenceRequired:1,Team:"normal"}

牧羊人

/summon villager ~ ~ ~ {CustomName:"新手村牧羊人",Profession:0,Career:3,CareerLevel:1,Offers:{Recipes:[{rewardExp:1b,maxUses:10,uses:0,buy:{id:wool,Count:18b},sell:{id:emerald,Count:1b}},{rewardExp:0b,maxUses:3,uses:0,buy:{id:emerald,Count:1b},sell:{id:shears,Count:1b}}]},Invulnerable:1,PersistenceRequired:1,Team:"normal"}

製箭師

/summon villager ~ ~ ~ {CustomName:"新手村製箭師",Profession:0,Career:4,CareerLevel:1,Offers:{Recipes:[{rewardExp:1b,maxUses:10,uses:0,buy:{id:string,Count:17b},sell:{id:emerald,Count:1b}},{rewardExp:0b,maxUses:10,uses:0,buy:{id:emerald,Count:1b},sell:{id:arrow,Count:10b}}]},Invulnerable:1,PersistenceRequired:1,Team:"normal"}

移動速度

Attributes:[{Name:generic.movementSpeed,Base:0}]
fntsrlike commented 7 years ago

最後是生成對應職業的村民,再透過 entitydata 修正其屬性。本 issue 已經修正,故關閉。