今天看贴吧有不少人在争论流传的必出星级钓鱼点是否确实是因为地点才出星级鱼的问题。
所以晚上翻了下代码,先上结论,等下有空的话再更新推论截图和计算公式。
结论:一般情况下,出不出星级鱼和地点无关,而是与浮标位置离最近非水格子的距离有关(当然还有其他因素影响)。
但是星级钓鱼点也有一定的道理,因为在那些地点挥杆一般就是会把浮标挥到较好的位置。
不想看代码的可以直接拉到最下面看公式和Tips.
首先在游戏代码里找到与鱼评星级直接有关的决定性语句,就是上图选中的那行
fishQuality不难看出就是鱼的质量等级,当fishSize<0.33就是无星,在0.33~0.66内就是银星,高于0.66就是金星。
注意这里的fishSize跟this.fishSize是不同的,是传进来的参数。
那么继续trace看看在哪里生成了这个BobberBar对象。
在这个函数最后一行可以看到new了个BobberBar对象,而传进去的fishSize的值跟上面划线的部分有关,中间算法先略过不提。
追到最上面可以看到clearWaterDistance这个变量是由distanceToLand这个方法的返回值决定的,于是查看这个方法。
这个方法里面涉及到的是对于浮标附近区域的tile的property进行判定。
一开始检查的范围是以浮标为中心3x3的矩形,然后是5x5……一直到11x11.
如果检查的区域内有属于不是水的(并且在地图内的)tile的话,即跳出。
返回的值:
3x3对应0
5x5对应1
...
11*11对应4
13*13对应5
至此,一般情况下决定鱼的等级的所有参数均已得知,可以直接写出式子。
但我还是尝试找了下是否有由地点来影响评级的片段,最后没有找到,只发现由地点影响的鱼是那些限制某区域钓的鱼王,比如说:
================================================================
最后附上鱼类评级式子和尺寸的大小式子:
鱼类评级式子:设X=max(0,min(1.0,(浮标离岸距离/5.0*[(1+(min(10,钓鱼等级)/2)~6)内取随机数/5.0]*(1.0+(-10~10)
内取随机数/100))));
大。
X为[0-0.33)无星,[0.33,0.66)银星,0.66以上金星。
例子:浮标11x11内均是水(以浮标为中心,半宽为5),即浮标离岸距离=4.且钓鱼等级=10的且随机数均取中间值的情况下
X=max(0,min(1.0,(4/5.0*6.0/5.0)*(1.0+0/100)))=0.96.大于0.66所以是金星。
尺寸大小式子:(该种鱼最小尺寸+(最大尺寸-最小尺寸)*X)向上取整。
所以是否是星级鱼由钓鱼技能等级浮标位置随机值来共同决定。
在过程中发现的一些其他东西:
1.部分鱼对钓鱼等级有需求
2.waterDepth一般情况下就是clearWaterDistance/distanceToLand
4.clearWaterDistance影响宝藏种类。
点此进入3DM《星露谷物语》游戏论坛专区
CopyRight2003-2018违法和不良信息举报(021-54473036)AllRightReserved