我的世界村民能交易几次 村民系统详解(源代码)

时间:2017-11-26 来源:88130安卓下载 作者:佚名

  不少玩家只知道可以通关村民交易,但是对村民交易的机理不太熟悉吧,我的世界村民交易怎么样刷新呢,每个村民能交易几次?今天游戏园小编就来为大家解答一下吧!希望大家能够喜欢!

  说到交易,我们知道

  一个交易只能交易7次,然后就会被关闭了

  但是在特定情况下交易又会重新开启

  如果要有稳定的绿宝石源

  必须要想办法保证交易不被关闭

  或者被关闭后又能重新开启

  首先交易后这个交易的交易次数递增

  然后注意到if里面的判断条件是重点:

  par1MerchantRecipe.hasSameIDsAs((MerchantRecipe)this.buyingList.get(this.buyingList.size() - 1))

  代码的意思很简单

  判断交易的是否是最后一个交易项目

  在接下来true的部分,村民的needsInitilization被设为true了

  也就是说,如果交易的是最后一个项目

  那么needsInitilization就被设为true

  接下来我们追踪needsInitilization

  不少玩家只知道可以通关村民交易,但是对村民交易的机理不太熟悉吧,我的世界村民交易怎么样刷新呢,每个村民能交易几次?今天游戏园小编就来为大家解答一下吧!希望大家能够喜欢!

  说到交易,我们知道

  一个交易只能交易7次,然后就会被关闭了

  但是在特定情况下交易又会重新开启

  如果要有稳定的绿宝石源

  必须要想办法保证交易不被关闭

  或者被关闭后又能重新开启

  首先交易后这个交易的交易次数递增

  然后注意到if里面的判断条件是重点:

  par1MerchantRecipe.hasSameIDsAs((MerchantRecipe)this.buyingList.get(this.buyingList.size() - 1))

  代码的意思很简单

  判断交易的是否是最后一个交易项目

  在接下来true的部分,村民的needsInitilization被设为true了

  也就是说,如果交易的是最后一个项目

  那么needsInitilization就被设为true

  接下来我们追踪needsInitilization

  在村民的updateAITick方法里面有对needsInitialization进行处理

  updateAITick其实就是每一个game tick村民会执行的东西

  也就是所谓的entity更新

  首先一开始是一个很简单的递减倒计时

  刚才的代码里,交易时把timeUnitlReset设为了40

  接下来这里,如果不在交易界面那么就递减直到0

  其实就是延时了2秒才触发

  然后就到判断needsInitilization

  如果true的话,那么就判断交易项目是否多于1个

  如果多于1个,那么就循环所有的交易项目,每个随机加2到12次可交易次数

  接下来就执行了addDefaultEquipmentAndRecipies

  然后重设needsInitilization为false

  最后设置一些参数之后

  给村民加上了regeneration的粒子效果

  也就是我们看到的,交易之后的紫色粒子效果

  接下来继续追踪到addDefaultEquipmentAndRecipies

  里面一大堆代码,其实都是生成交易项目而已

  按照村民的职业和各种交易项目的概率,生成参数指定个数的交易

  然后到了最后一步

  把这些生成的交易addToListWithCheck到现有的交易列表里面

  最后跟踪一下,addToListWithCheck其实就是把交易加到列表里

  只不过当交易已存在时,更新价钱而已

  好吧,来总结一下,核心代码的思路:

  如果交易了最后一项交易,那么就会请求执行Initialization

  交易界面关闭2秒后,执行Initialization

  Initialization中:

  如果有多于1项交易项目,给每项交易项目随机加2-12次可交易次数

  接下来随机添加一个交易项目

  如果这个交易项目已存在,那么更新价钱;如果不存在,添加

  我的世界甘蔗怎么种好 最经济效率最高甘蔗田制作教程

  我的世界高频红石检测插件下载

  我的世界高频红石大炮 比普通红石大炮威力更强大

  我的世界10种常见的高频红石制作

热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高