【流言终结者】【直播】源码解密!用源码解开冤魂不散的流言!
上回提要:
附魔跟附魔文字无关之证明,源码版
2013-02-12 02:12
http://tieba.baidu.com/p/2159811761
------咲夜真心碉堡了
附魔跟附魔文字无关之证明,源码版
2013-02-12 02:12
http://tieba.baidu.com/p/2159811761
------咲夜真心碉堡了
甘蔗(道具状态)的源代码的一部分
世界判断可不可以放的源代码的一部分
方块判断可不可以放的源代码的一部分
甘蔗(方块)判断可不可以放的源代码的一部分(此段代码把普通方块的方法覆盖了)
------咲夜真心碉堡了
世界判断可不可以放的源代码的一部分
方块判断可不可以放的源代码的一部分
甘蔗(方块)判断可不可以放的源代码的一部分(此段代码把普通方块的方法覆盖了)
------咲夜真心碉堡了
判断可不可以活植物的源代码的一部分
由从可见:在种下去的一刻,沙子和泥土没有任何分别。
接下来看看甘蔗的生长过程。
------咲夜真心碉堡了
由从可见:在种下去的一刻,沙子和泥土没有任何分别。
接下来看看甘蔗的生长过程。
------咲夜真心碉堡了
甘蔗的随机更新代码的一部分
这里说明一下
首先,随机更新是植物生长的关键。如果MC每秒都检查一次所有方块能不能长的话,那太耗资源了,然后就是,你的小麦田一次就长一整片,全都同一高度...也太不自然了吧?
所以MC的机制是,每1/20秒都会进行一次「tick」,会做以下的东西:
1.所有玩家睡著了,就天亮
2.判断刷怪笼能否刷怪(距上次发动的时间、有没有玩家在附近等等)
3.正常刷怪
4.更新红石状态
5.挑选最多1000个座标,并一一进行更新
6.等等等等
所以,这1000个坐标就像是一个老师随便点学生答问题一样,使植物的生长变得随机。
至於这个15的作用是..
如果没有这个15的话甘蔗的生长将会比现在快16倍...有点像是,老师把一个学生的名字点一次他就升一个级。那可不行!所以加入一个15,使学生被点到16次才升一级。
------咲夜真心碉堡了
这里说明一下
首先,随机更新是植物生长的关键。如果MC每秒都检查一次所有方块能不能长的话,那太耗资源了,然后就是,你的小麦田一次就长一整片,全都同一高度...也太不自然了吧?
所以MC的机制是,每1/20秒都会进行一次「tick」,会做以下的东西:
1.所有玩家睡著了,就天亮
2.判断刷怪笼能否刷怪(距上次发动的时间、有没有玩家在附近等等)
3.正常刷怪
4.更新红石状态
5.挑选最多1000个座标,并一一进行更新
6.等等等等
所以,这1000个坐标就像是一个老师随便点学生答问题一样,使植物的生长变得随机。
至於这个15的作用是..
如果没有这个15的话甘蔗的生长将会比现在快16倍...有点像是,老师把一个学生的名字点一次他就升一个级。那可不行!所以加入一个15,使学生被点到16次才升一级。
------咲夜真心碉堡了
关於15的补充,这个15也确保了甘蔗已存在一段时间才会往上长。
例如,这个甘蔗上面的空气已经数到13了,再来三次点名就会长了。这时候我在上面放了石头然后拿开,就会令那个13变成0。0嘛,就是重新再来喽。
总结以上各点:
1.甘蔗被种下时会检查有没有水和沙子或泥土(或草地)。但只关系到能否种下去,与生长速度没关。)
2.甘蔗生长的时候乾脆不检查有没有沙子或泥土!
------咲夜真心碉堡了
例如,这个甘蔗上面的空气已经数到13了,再来三次点名就会长了。这时候我在上面放了石头然后拿开,就会令那个13变成0。0嘛,就是重新再来喽。
总结以上各点:
1.甘蔗被种下时会检查有没有水和沙子或泥土(或草地)。但只关系到能否种下去,与生长速度没关。)
2.甘蔗生长的时候乾脆不检查有没有沙子或泥土!
------咲夜真心碉堡了
呼吁:请提供更多流言!LZ对流言一般都置之不理,长久以来都忘了!
流言#002:树苗旁边放水会加速生长
(其实我已经要在Q群里找主意了..真的忘得一乾二净了..)
------咲夜真心碉堡了
流言#002:树苗旁边放水会加速生长
(其实我已经要在Q群里找主意了..真的忘得一乾二净了..)
------咲夜真心碉堡了
这里的「第4个位」的解释:
如果你有在服务器开过商店的话,你会发现树苗的ID有个冒号,那就是附加的资料。
这资料可以用来表示工具的伤害值(所以也会被叫作伤害值),木板的种类,楼梯的种类等等。
所以像甘蔗一样只是+1是不行的,会把树苗的种类换了!解决方法就是用更高的位值。第1和2个位是用於表示树苗的种类,而第4个位,就用於判断这树苗有没有被点名过一次。
也许你会问:「水呢?」嗯,的确没水。树苗旁有没有放水对树苗的生长没有任何影响。
------咲夜真心碉堡了
蘑菇(方块)的源代码的一部分
同一段代码,后面部分
单凭这点资讯,还不能确定跟菌丝有没有关系,因为「判断可以停留」的代码说不定跟菌丝有关。
------咲夜真心碉堡了
同一段代码,后面部分
单凭这点资讯,还不能确定跟菌丝有没有关系,因为「判断可以停留」的代码说不定跟菌丝有关。
------咲夜真心碉堡了
判断可以停留的代码:
菌丝出现了!这里的意思是,如果亮度低於13的话蘑菇才会繁殖,除了在菌丝上,不管亮度了
所以,蘑菇在菌丝上的话就算是白天也能繁殖。
总结:蘑菇在菌丝上,13亮度的限制会被无视,所以如果在白天的烈日下种磨菇的话,是的,会比较快,因为不在菌丝上的话直接就被连根拔起了。
(其实我不知道这时应该说证实还是终结就是了)
------咲夜真心碉堡了
菌丝出现了!这里的意思是,如果亮度低於13的话蘑菇才会繁殖,除了在菌丝上,不管亮度了
所以,蘑菇在菌丝上的话就算是白天也能繁殖。
总结:蘑菇在菌丝上,13亮度的限制会被无视,所以如果在白天的烈日下种磨菇的话,是的,会比较快,因为不在菌丝上的话直接就被连根拔起了。
(其实我不知道这时应该说证实还是终结就是了)
------咲夜真心碉堡了
玩家的源码中的一部分:
找到食物状态的源码:
看下去,吃东西时执行的代码:
再看下去,找到更新时会执行的代码:
同一段,后面部分:
------咲夜真心碉堡了
找到食物状态的源码:
看下去,吃东西时执行的代码:
再看下去,找到更新时会执行的代码:
同一段,后面部分:
------咲夜真心碉堡了
我们来看看64L都是神马
(其实只是忘了打解释)
首两张图都只是用来指出食物到哪里了(不是胃!)
第三张指出,吃东西的时候,会同时补充食物水平及饱和度!
等等...在这里停下来好像有点奇怪,这样根本没有涨到姿势...
所以,进一步解释MC在食物处理的机制
第四张是更新,
如果疲惫度大於4的话就把饱和度减1、饱和度是0以下的话就把食物水平减1
然后把疲惫度重设
也就是说,减去半个之前会先检查饱和度,饱和度可以代替食物水平的下降
第五张也是更新,
如果没有80的话就把计时器加1,到80就加血或扣血
而每1/20秒都会有一个tick..
这里可以看出,回血或扣血是每4秒1点(半个)
------咲夜真心碉堡了
(其实只是忘了打解释)
首两张图都只是用来指出食物到哪里了(不是胃!)
第三张指出,吃东西的时候,会同时补充食物水平及饱和度!
等等...在这里停下来好像有点奇怪,这样根本没有涨到姿势...
所以,进一步解释MC在食物处理的机制
第四张是更新,
如果疲惫度大於4的话就把饱和度减1、饱和度是0以下的话就把食物水平减1
然后把疲惫度重设
也就是说,减去半个之前会先检查饱和度,饱和度可以代替食物水平的下降
第五张也是更新,
如果没有80的话就把计时器加1,到80就加血或扣血
而每1/20秒都会有一个tick..
这里可以看出,回血或扣血是每4秒1点(半个)
------咲夜真心碉堡了
20L的一部分
甘蔗生长的代码的一部分
从流言#001,我们可以知道甘蔗生长时最多只会长到三格,但也有可靠消息来源说,自然有4格高的甘蔗...这到底是真的还是假的?
------咲夜真心碉堡了
甘蔗生长的代码的一部分
从流言#001,我们可以知道甘蔗生长时最多只会长到三格,但也有可靠消息来源说,自然有4格高的甘蔗...这到底是真的还是假的?
------咲夜真心碉堡了
值得注意的是,这里的2~4每个数字出现的机率不是平均的33%
以下进行一段运算,看不懂的可以跳过去
var10 = 2+ par2Random.nextInt(par2Random.nextInt(3) + 1);
var10 = 2+ par2Random.nextInt(<33.3%>0/<33.3%>1/<33.3%>2 + 1);
var10 = 2+ par2Random.nextInt(<33.3%>1/<33.3%>2/<33.3%>3);
var10 = 2+ <61.1%>0/<27.8%>1/<11.1%>2;
var10 = <61.1%>2/<27.8%>3/<11.1%>4;
生成2格高的甘蔗的机率是六成,3格高的是三成,4格高的是一成
什么?你说你看的甘蔗大都是3格高的?那就是2格的甘蔗自己长高的啦!
总结:生成世界的时候每次生成甘蔗时有11.1%的机率会生出4格高的甘蔗,但算不算自然生长嘛....既然是生成出来的,也算是生出来的吧!
------咲夜真心碉堡了