对每一种生物类型(怪物、动物、水生、环境):如果当前类型可以刷,则进行一次刷怪循环(5 - 12)。 重要结论: 1. 水生、环境生物刷怪为每游戏刻(1/20秒)一次,动物每20s一次。 2.可刷怪区块为距离任一玩家所在区块7个区块之内的区块。(可刷怪区块不等于统计怪物数量的区块) 3.刷怪上限为刷怪单位上限 * 可刷怪区块数 / (17*17),单位上限:怪物70,动物10,环境15,水生5。 4.对每种生物类型,每个可刷怪区块单独刷怪,都会刷最多3组怪,每组所刷生物相同,每组最多刷4只。一个区块所刷怪物Y坐标相同。 5.玩家半径24米的球内、Spawn Point半径24米的球内不能刷怪。 6.同类型各种生物的刷怪概率是不同的,比如在主世界的大部分生物群系,怪物中女巫的刷怪概率最低,动物中牛的刷怪概率最低。 7.露天区域怪物刷出会相对稀少。虽然亮度小于等于7时均可刷出怪物,但亮度越低概率越大。 8.刷怪塔的刷怪区域位置的方块最高高度(即对一个(x,z)来说,存在方块的最大的y)越低,刷怪越频繁。降低刷怪塔的高度(不是说层数)这比提高挂机点高度更有效,提高挂机点高度只可以把过低的位置的怪despawn掉,怪物仍会在低处生成,会占用刷怪塔的刷怪概率;但是降低刷怪塔高度可以直接提高怪物刷在塔内的概率。 9.史莱姆在游戏中满月时生成概率最高而在月朔时不能刷出。蝙蝠在现实时间10月20日~11月5日时刷出更频繁且刷出亮度要求更低,应该是为了迎合万圣节气氛。 刷怪知识: 1.刷怪的区块及其数量。即每个玩家(非观察者)所在区块东南西北四个方向各延伸8个区块,共1717区块(不是球形区域),但是边界的区块是只计入刷怪区块个数,并不会进行刷怪的*。当多个玩家的刷怪区块重叠时,重复区块只会记录一次。 2.计算刷怪上限和已有怪物数量。实际刷怪上限为刷怪单位上限(见**附1**) * 刷怪区块数 / (17*17)。怪物数量统计的部分还没看(TODO),根据已有说法,应该是已加载区块中生物总数,具体生物类型见附1。如果已经到达刷怪上限,则退出本次刷怪循环。 3.对每一个刷怪区块进行一次区块刷怪(7 - 12)。 4.在区块中随机选取一个中心方块,先随机选X,Z,之后选Y,Y不会高于当前(X,Z)的最高值+16(即高度上没有和玩家的距离限制,不过离玩家过远的刷出后会直接despawn)。如果选中的方块是一个NormalCube(见附5),则放弃在此区块刷怪,否则进行3次刷怪(8 - 12),每次只刷一种生物。 5.每次刷怪的初始化工作:将刷怪坐标(x,y,z)初始化为中心方块,重置要刷出的生物。然后进行4次刷怪尝试(9 - 12)。 6.每次刷怪尝试的初始化工作:将现在的刷怪坐标(x,y,z)的x,z坐标随机加减0~5(4次最多加减20,事实上是可能超出当前区块的),如果当前位置半径24米的球内有玩家(非观察者)或spawn point,放弃本次刷怪尝试进行下一次。 7.如果还没有确定本次刷怪的怪物,则根据当前坐标可以刷出的怪物,随机确定一个,随机算法机。具体每种生物群系(建筑)可刷怪物及其权值见附2。 8.如果当前位置允许刷出这种怪物,且当前位置满足生物刷怪要求(见附3),则将怪物刷出。