【代码分析】牧场/农场相关(版本1.66)
做自动牧场前的最后准备工作。由于没啥兴趣独自做详尽代码分析了,所以从今以后楼主简述结论。
化肥规律:24小时判定一次。每次判定时
可以腐烂的食物(材质属性编号为35,生的),或者以下物品。
43 木片
45 垃圾
51 骨
52 骸
220 死鱼
221 草
222 动物的骨
301 一大束花
330 树墩
575 粪便
转换1个为化肥。
果树规律为24小时增加一个果实,上限为10个。
结论:将果树建在化肥池正上方,可以实现连续转换。
农场牧场更新规律(缺少判断条件,未必正确):
每24小时可刷新一次。1.66后农场刷新次数翻倍,牧场刷新次数翻4倍。
农场每次刷新时:
每个格子的庄稼进入下一个生长状态。或者枯萎。
作物状态为:
0 种子
1 发芽
2 成熟
3 枯萎
6 催熟(用了化肥)
除催熟状态下,其他状态都有可能枯萎。
牧场更新规律:
每次刷新时,首先计算是否生成子代。子代的生成概率和以下因素有关:
1 亲代的种族繁殖力
2 牧场现有牲畜总数
亲代繁殖力越小,牲畜总数越大,生成概率越小。
但是再小的生成概率,也有可能繁殖1个子代(但该种情况无法繁殖出第二个子代)
子代一般与亲代属于同类怪物,但是一些特殊情况下子代会直接劣化为低级怪物。
然后计算牲**成物。(亲代子代都参与计算)
每个牲畜有两个变量来控制畜牧能力(可以通过刷毛查看大致值)
其中一个是击杀时相关,比如皮毛生成率,肉质提升,肉生成率等。
另一个是蛋奶产量相关。对于这个参数:
4-6代表不适合产蛋,7-9代表适合产蛋。
1-3代表不适合产奶,10-12代表适合产奶。
计算蛋奶产量时,会综合参考所有牲畜的该值之和。(如果是适合就该值+,不适合就-该值)
判定生成时,每个牲畜都有一次判定机会。
生成物会在牧场围栏里随机找一格,如果格子上已经有物品,那么判定不生成。
如果牲畜总数每超过10的倍数,那么都有1/4的概率判定不生成。
生成物判定分为5类,进入每类判定的概率相同,但是决定是否实际生成的概率却各不一样。(即有可能进入判定但是并不生成)
1 如果进入产蛋的分支,那么1/60概率生蛋,如果该牲畜是鸡,那么额外1/20概率生蛋。
另外当rnd(所有牲畜产蛋遗传值总和)>rnd(80)时,额外生成一个蛋。
2 如果进入产奶的分支,那么1/60概率产奶,如果该牲畜种族是羊,那么额外1/20概率产奶。
另外当rnd(所有牲畜产奶遗传值总和)>rnd(50)时,额外产一次奶。
3 如果进入产粪便的分支,那么1/80概率生成粪便。
4 如果进入产垃圾的分支,那么1/80概率生成遗骸或垃圾。
5 其余情况则什么都不生成。
综上,如果是产肉类牧场,那么牧场只有亲代没有子代时,产肉概率最大化。
如果是产蛋/奶类牧场,那么牧场畜牧总数最好不要超过10的整数倍,否则会有大的惩罚判定。
同时要密切关注子代的畜牧能力遗传因子。有劣化的基因直接干掉等着生成新的。
还有就是及时取出生成物(哪怕是粪便和垃圾),因为已有生成物越多,新生成的概率就越小。
最后想要提高牧场产出效率,记得选取优秀基因的子代置换为亲代,大概3轮就可以达到理论最佳基因。
附子代基因遗传规律。
初始怪物牧场能力遗传值一般为0.这个值每相邻三个为一类。从1-12共四类。
对于同类分为三档(以下由ABC来表示,比如7-9为适合产肉,那么9为A档,效果最好,7为C档,效果一般)
如果亲代遗传值>=B档,那么子代有1/5概率为A档,
如果亲代遗传值>=C档,那么子代有1/5概率为B档,
如果亲代遗传值>=C档,那么子代有1/5概率为C档,
每条独立判定,同时发生的话后面的判定结果覆盖前面的。如果三条都没发生,那么子代遗传值为0。
不同类别的遗传值不会遗传给子代,即不可能出现亲代适合产肉但是子代反而不适合。
另外当亲代遗传值为0时,将有1/5概率突变为各种类别的C档。
综上,理论上而言大约经过三代的努力,就可以从0遗传值的初始怪物更换为双A档的亲代怪物。
做自动牧场前的最后准备工作。由于没啥兴趣独自做详尽代码分析了,所以从今以后楼主简述结论。
化肥规律:24小时判定一次。每次判定时
可以腐烂的食物(材质属性编号为35,生的),或者以下物品。
43 木片
45 垃圾
51 骨
52 骸
220 死鱼
221 草
222 动物的骨
301 一大束花
330 树墩
575 粪便
转换1个为化肥。
果树规律为24小时增加一个果实,上限为10个。
结论:将果树建在化肥池正上方,可以实现连续转换。
农场牧场更新规律(缺少判断条件,未必正确):
每24小时可刷新一次。1.66后农场刷新次数翻倍,牧场刷新次数翻4倍。
农场每次刷新时:
每个格子的庄稼进入下一个生长状态。或者枯萎。
作物状态为:
0 种子
1 发芽
2 成熟
3 枯萎
6 催熟(用了化肥)
除催熟状态下,其他状态都有可能枯萎。
牧场更新规律:
每次刷新时,首先计算是否生成子代。子代的生成概率和以下因素有关:
1 亲代的种族繁殖力
2 牧场现有牲畜总数
亲代繁殖力越小,牲畜总数越大,生成概率越小。
但是再小的生成概率,也有可能繁殖1个子代(但该种情况无法繁殖出第二个子代)
子代一般与亲代属于同类怪物,但是一些特殊情况下子代会直接劣化为低级怪物。
然后计算牲**成物。(亲代子代都参与计算)
每个牲畜有两个变量来控制畜牧能力(可以通过刷毛查看大致值)
其中一个是击杀时相关,比如皮毛生成率,肉质提升,肉生成率等。
另一个是蛋奶产量相关。对于这个参数:
4-6代表不适合产蛋,7-9代表适合产蛋。
1-3代表不适合产奶,10-12代表适合产奶。
计算蛋奶产量时,会综合参考所有牲畜的该值之和。(如果是适合就该值+,不适合就-该值)
判定生成时,每个牲畜都有一次判定机会。
生成物会在牧场围栏里随机找一格,如果格子上已经有物品,那么判定不生成。
如果牲畜总数每超过10的倍数,那么都有1/4的概率判定不生成。
生成物判定分为5类,进入每类判定的概率相同,但是决定是否实际生成的概率却各不一样。(即有可能进入判定但是并不生成)
1 如果进入产蛋的分支,那么1/60概率生蛋,如果该牲畜是鸡,那么额外1/20概率生蛋。
另外当rnd(所有牲畜产蛋遗传值总和)>rnd(80)时,额外生成一个蛋。
2 如果进入产奶的分支,那么1/60概率产奶,如果该牲畜种族是羊,那么额外1/20概率产奶。
另外当rnd(所有牲畜产奶遗传值总和)>rnd(50)时,额外产一次奶。
3 如果进入产粪便的分支,那么1/80概率生成粪便。
4 如果进入产垃圾的分支,那么1/80概率生成遗骸或垃圾。
5 其余情况则什么都不生成。
综上,如果是产肉类牧场,那么牧场只有亲代没有子代时,产肉概率最大化。
如果是产蛋/奶类牧场,那么牧场畜牧总数最好不要超过10的整数倍,否则会有大的惩罚判定。
同时要密切关注子代的畜牧能力遗传因子。有劣化的基因直接干掉等着生成新的。
还有就是及时取出生成物(哪怕是粪便和垃圾),因为已有生成物越多,新生成的概率就越小。
最后想要提高牧场产出效率,记得选取优秀基因的子代置换为亲代,大概3轮就可以达到理论最佳基因。
附子代基因遗传规律。
初始怪物牧场能力遗传值一般为0.这个值每相邻三个为一类。从1-12共四类。
对于同类分为三档(以下由ABC来表示,比如7-9为适合产肉,那么9为A档,效果最好,7为C档,效果一般)
如果亲代遗传值>=B档,那么子代有1/5概率为A档,
如果亲代遗传值>=C档,那么子代有1/5概率为B档,
如果亲代遗传值>=C档,那么子代有1/5概率为C档,
每条独立判定,同时发生的话后面的判定结果覆盖前面的。如果三条都没发生,那么子代遗传值为0。
不同类别的遗传值不会遗传给子代,即不可能出现亲代适合产肉但是子代反而不适合。
另外当亲代遗传值为0时,将有1/5概率突变为各种类别的C档。
综上,理论上而言大约经过三代的努力,就可以从0遗传值的初始怪物更换为双A档的亲代怪物。