我的世界村民能交易几次 村民系统详解(源代码)
不少玩家只知道可以通关村民交易,但是对村民交易的机理不太熟悉吧,我的世界村民交易怎么样刷新呢,每个村民能交易几次?今天游戏园小编就来为大家解答一下吧!希望大家能够喜欢!
说到交易,我们知道
一个交易只能交易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次可交易次数
接下来随机添加一个交易项目
如果这个交易项目已存在,那么更新价钱;如果不存在,添加
精品推荐
相关文章
更多+热门搜索
手游排行榜
- 最新排行
- 最热排行
- 评分最高
-
休闲益智 大小:63.22MBhttps://down5.qwp365.cn/app/diaoyudashi.apk
-
模拟经营 大小:80MB
-
其他游戏 大小:39.4 MB
-
休闲益智 大小:0.1M
-
其他游戏 大小:69.27MB