游戏之家 > 游戏库 > 我的世界

我的世界附魔指令大全

我的世界附魔指令代码是// 返回一个区间为[0,n-1)的随机整数function randomInt(n);// 返回一个区间为[0,1)的一个随机实数function randomFloat();// 利用三角随机分布,生成一个区间为[1,1+(附魔能力/2))的随机数enchantability_2 = enchantability / 2;int rand_enchantability = 1 + randomInt(enchantability_2 / 2 + 1) + randomInt(enchantability_2 / 2 + 1)。

我的世界附魔指令大全

详细答案:

附魔基础

当把一件可附魔的物品放上附魔台时,可用的附魔等级将会依据以下公式随机生成。附魔等级由附近书架的数量(最多15个)及附魔等级在附魔列表中所在的行数决定。

以下是可用附魔等级的计算步骤:

可用附魔等级基数(base) = (1..8 + (b/2) + 0..b)

其中b 是附近书架的数量(≤15),“x..y”表示在[x,y]闭区间内产生一个随机数。产生基数后,游戏会根据附魔等级所在的行数,进行第二步计算:

第一行等级 = max (base / 3, 1)

第二行等级 = (base × 2) / 3 + 1

第三行等级 = max (base, b × 2)

每一行等级计算时会使用新的附魔等级基数,即一次计算过程会生成3次base

在正式版 1.3 前,可用附魔等级基数计算公式为 base = (1..5 + (b/2) + 0..b) ,并乘以“行列因数”(第一行为1⁄3,第二行为2⁄3,第三行为1)得到。最小的附魔等级与附魔台周围有效书架数目的一半相同。

在正式版 1.1 前,上式的“(b/2)”项曾是“0..(b/2)”,这使得附魔等级随机性变大,刷出高等级附魔选项会耗费大量时间。同时,可用附魔等级的最低级固定在1,不会受书架数目的影响。

我的世界附魔指令大全

魔咒是如何选择出来的

“魔咒等级”是某一魔咒所需的经验级别(在按钮上的绿色数字)。

“魔咒威力”是某一特定魔咒的力量。例如,“锋利IV”有4点威力。

魔咒的挑选

首先游戏会把两个调节值加入到被选的附魔等级中。每个调节值会被限制在一定的范围内,数字接近范围中央的会比靠近两端的更常见。

第一调节值是基于附魔对象的“附魔能力”,这取决于该物品的材料和类型(见下表)。游戏会在0至附魔能力的一半(实际上,游戏会先将附魔能力除以4,四舍五入为整数后再乘以2)之间随机挑选一个数字,然后将这个数字和1加到附魔等级里。此时,弓的附魔能力是1。然后,这个随机数会经过正态分布处理,使得最终结果靠近附魔能力一半的几率远大于靠近极端值的几率。

我的世界附魔指令大全

我的世界附魔指令大全

接着,Minecraft会在0.85和1.15之间挑选一个值,并再次经过正态分布处理。修改后的附魔等级会乘以这个值(因此它可以增加或减少最多15%),然后四舍五入至整数,得到最终的等级调节值。

伪代码

// 返回一个区间为[0,n-1)的随机整数

function randomInt(n);

// 返回一个区间为[0,1)的一个随机实数

function randomFloat();

// 利用三角随机分布,生成一个区间为[1,1+(附魔能力/2))的随机数

enchantability_2 = enchantability / 2;

int rand_enchantability = 1 + randomInt(enchantability_2 / 2 + 1) + randomInt(enchantability_2 / 2 + 1);

// 选择附魔能级

int k = chosen_enchantment_level + rand_enchantability;

// 0.85至1.15之间的附魔奖励

float rand_bonus_percent = (randomFloat() + randomFloat() - 1) * 0.15 + 1;

// 最终计算得到等级

int final_level = (int)(k * (1 + rand_bonus_percent) + 0.5);