消息通知

网站的迁移工作已完成

旧版网站的文章已迁移完毕,至此网站的迁移工作完美完成,你现在可以将收藏的链接改为新版网站了,网址 clashpost.com.

现阶段打开网站的部分链接仍然会报内容不存在,这是因为新版网站的内容组织方式有变,部分文章被拆分,还有一些新内容需要写,这些都做完后这个问题会自然解决。

关于砍掉按大本分类功能的通知

由于按大本等级分类是稳本算法,已严重脱离玩家的实际需求,因此我们决定砍掉按大本等级分类功能,用更实用的功能代替,相关功能计划于 2024/09 完成。

月卡给了 2500…

月卡给了 2500 万,我的资源会被抢很多吗?论打资源时的掠夺比例

网站创始人
2024-06-29 修订:修改计算掠夺量使用的例子,替换个别图片。
2024-04-02 修订:添加 16 本的数据。
2022-11-10 修订:修复几处表述错误。

注意:

每当月卡奖励快发出来的时候,不少小伙伴都很担心自己的资源被抢。如果你刚拿到 2500 万资源,被打一次是不是很肉疼?答案是不会的,你被打的资源有一个上限。

想知道这个上限怎么算吗?不妨听我讲。

一、掠夺比例和掠夺上限

首先,你被抢的资源分为资源采集器、部落城堡、仓库(这里把大本营算作仓库)三部分,接下来我分条说明每一部分的掠夺比例。

1.1 资源采集器

资源采集器包括 金矿圣水收集器暗黑重油钻井 这三种。

金矿和圣水收集器的掠夺比例是 50%,暗黑重油钻井是 75%,上不封顶

战斗期间采集器不会生产资源,因此采集器的可掠夺量从战斗一开始就确定好了。

例如:

  • 你的某个采集器中存有 20 万圣水,那么被打一次最多失去 20万 * 50% = 10万 圣水。
  • 你的某个采集器有 3000 黑油,那么被打一次最多失去 3000 * 75% = 2250 黑油。

1.2 部落城堡

部落城堡 的掠夺比例是 3%,上不封顶。

例如:你的宝库有 300 万金币,那么被打一次最多失去 300万 * 3% = 9万 金币。

1.3 仓库

1.3.1 哪些建筑算仓库

我们将 大本营储金罐圣水瓶暗黑重油罐 这四种建筑视为仓库。

没想到吧!大本营也能算作资源类建筑,其实不少玩家都没注意到大本营里也存有资源。我见过有个玩家问黑油罐明明只能装 33 万,但是我为什么能存 35 万黑油。这个问题很简单,因为你的大本营里能存两万。另外,哥布林会把大本营算作资源建筑而优先攻击,并且拥有双倍伤害加成。对于 12 级及以后的大本营,触发武器之后它既是防御建筑,又是资源类建筑。

这里再告诉你一个非常基础的概念,刚玩的有可能不太清楚,所有仓库存储的资源量之和就等于村庄界面右上角显示的资源量,在本文中我们将其简称为“储量”。

资源储量

仓库的掠夺机制就比较复杂了,这个掠夺比例根据你的大本营等级而异,同时这也是本文的重点。

下面先给出几个表,供熟悉这一块机制的玩家查阅,如果你不懂表格每一项数据所代表的意思,那就继续往下看。

1.3.2 金币和圣水掠夺表

大本等级最大储量掠夺比例掠夺上限达到掠夺上限时
村庄的资源储量
1250020%5002500
2850020%17008500
310 万20%2 万10 万
450 万20%10 万50 万
5100 万20%20 万100 万
6200 万20%20 万100 万
7400 万18%25 万138.8889 万
8600 万16%30 万187.5 万
9800 万14%35 万250 万
10850 万12%40 万333.3333 万
111000 万10%45 万450 万
121400 万10%50 万500 万
131800 万10%55 万550 万
142000 万10%60 万600 万
152200 万10%65 万650 万
162300 万10%70 万700 万

注意(看不懂可略过):

  1. 上表所说的掠夺上限指的是 4 个储金罐加大本营的被掠夺上限。
  2. 上表所说的资源储量指的是游戏主界面右上角的金币或圣水值。
  3. 根据游戏文件,1 到 6 本理论上可以被抢 20 万金币或圣水,但对于 1 到 4 本来说,就算满库都不可能被抢这么多,所以 1 - 4 本的实际掠夺上限就是最大储量的 20%.

1.3.3 暗黑重油掠夺表

大本等级最大储量掠夺比例掠夺上限达到掠夺上限时
村庄的资源储量
1 - 60\\\
72 万6%1 20020 000
88 万6%2 00033 333
919 万5%2 50050 000
1020 万4%3 00075 000
1120 万4%3 50087 500
1224 万4%4 000100 000
1330 万4%4 500112 500
1435 万4%5 000125 000
1537 万4%5 500137 500
1638 万4%6 000150 000

注意(看不懂可略过):

  1. 根据游戏文件,1 到 6 本的黑油掠夺比例为 6%,掠夺上限为 2000,但 1 - 6 本根本不能存储黑油,所以这一组数据没什么卵用。
  2. 根据游戏文件,7 本的黑油掠夺比例为 6%,掠夺上限为 2000,但对于 7 本来说,就算满库都不可能被抢这么多,所以 7 本的实际掠夺上限就是最大储量的 6%.

1.4 掠夺上限的解释

我们就拿刚才这个图为例。

资源储量

假设图中的这个玩家是 14 本,那么我们可以得到以下信息:

  1. 此玩家金币和圣水的掠夺比例为 10%
  2. 金币和圣水的掠夺上限为 60 万
  3. 暗黑重油的掠夺比例为 4%
  4. 暗黑重油的掠夺上限为 5000

首先此玩家金币储量 4 693 149,掠夺比例 10%,两者相乘是 469 314(这个游戏通常会向下取整),因为 469 314 < 600 000,所以没达到上限,他可以被抢 469 314 金币。

圣水储量 7 724 096,乘以 10% 之后是 772 409,但是他真的能被抢这么多资源吗?别忘了上限。因为 772 409 > 600 000 的上限,所以他最多被抢 60 万圣水。

黑油储量 160 832,乘以 4% 之后是 6433,大于 5000 的上限,所以它可以被抢 5000 黑油。

综上,如果只算仓库,他可以被抢 463 314 金币、600 000 圣水、5 000 黑油。

现在你应该能理解掠夺上限是个什么玩意了,它本质上就是一个封顶机制

二、仓库掠夺量的简化算法

2.1 什么是简化算法

刚才那种计算掠夺量的方式其实就是“简化算法”,总结一下就两个步骤:

  1. 用资源总储量乘以掠夺比例,结果记为 X;
  2. 如果 X 小于掠夺上限,则最终可被掠夺的资源即为 X,否则可被掠夺的资源为掠夺上限。

2.2 简化算法的简单应用

2.2.1 城堡里面的资源到底要不要取出来

在你初步了解掠夺机制之后,就可以解答这个问题了。

已知 16 本金币和圣水的掠夺上限是 70 万,掠夺比例 10%,达到掠夺上限时仓库的资源储量为 70万 / 10% = 700万。因此对于 16 本来说,如果你仓库内的金币或圣水储量大于 700 万,那么可以把城堡里的资源取出来。反正都达到上限了,取出来之后还是被抢 70 万,但是城堡不会被抢了。如果你资源比较少,那就可以不取出来,因为城堡的掠夺比例只有 3%,但是仓库有 10%.

其他大本等级照猫画虎就行,这里就不详细说了。

2.2.2 现在再回答一遍回答标题中的问题

月卡给了 2500 万,我的资源会被抢很多吗?

担心这种问题的人一般都比较活跃,这些玩家采集器里是没资源的,如果你是 16 本,那么只能被抢 70 万左右,就算城堡满了也就 90 万左右,完全不用担心资源被抢光。当然如果你连续几天资源都是满的,那采集器就不空了,这时候你会变成大鱼。所以说你不需要担心被抢很多,但月卡的资源还是尽快用掉吧。

2.2.3 用简化算法计算理论最大鱼

现在我们需要设想这种极端情况:某玩家是最高本(16 本),在 10 级以上部落(想当超级大肥鱼还得加高级部落),他的采集器、仓库升到了最高级并且全部装满了。部落城堡的宝库容量只跟大本有关,所以不需要升级,装满即可。

我们计算一下:

先算金币和圣水:

  • 16 本有 7 个金矿和圣水收集器,最高 16 级,每个采集器储量 38.5 万,乘以采集器的掠夺比例 50%,那就是每个采集器 19.25 万,7 个采集器就是 134.75 万。
  • 在 10 级以上部落,16 本的城堡储量为 780 万金币和圣水,掠夺比例 3%,可以被抢 23.4 万。
  • 仓库总储量 2300 万,掠夺比例 10%,两者相乘得 230 万,这个值超过了 70 万的上限,所以取 70 万。
  • 把前三步的结果相加,结果是 228.15 万。

现在算黑油:

  • 16 本有 3 个暗黑重油钻井,最高 10 级,每个钻井储量 4200,掠夺比例 75%,那就是每个钻井可被掠夺 3150,3 个钻井总共可被掠夺 9450.
  • 在 10 级以上部落,14 本的城堡储量为 3.9 万黑油,掠夺比例 3%,可以被抢 1170 黑油.
  • 仓库总储量 38 万,掠夺比例 4%,两者相乘得 1.52 万,这个值超过了 6000 的上限,所以取 6000.
  • 把前三步的结果相加,结果是 16 620.

所以按照简化算法,每个人单局最多被抢 228.15 万金币和圣水、16 620 黑油。

2.3 简化算法的局限性

在实际战斗中,玩家被可掠夺的资源偶尔会超过表格中的上限,这就是简化算法的局限性了。

在实际应用中,简化算法其实已经够用,如果你不想看一些非常烧脑的东西,你就可以关闭这个页面了。如果你对精确算法感兴趣,可以继续往下看。

现在我们先提出两个问题:

  1. 精确算法是什么样的?
  2. 简化算法的误差具体是多大?

三、仓库之间的资源分配

为什么要讲这个呢?因为仓库之间的资源分配机制是精确计算掠夺量的基础。

3.1 资源分配的基本机制

金币大致上会在所有仓库之间平均分配。对于金币来说,3 到 7 本有 3 个仓库,8 本有 4 个,9 本开始有 5 个。当金币数量较大时,则容量较小的仓库先装满,容量较大的仓库之间平均分配。

圣水同金币。

黑油会以大约 4:1 的比例在黑油罐和大本营之间分配。在黑油数量比较大时,大本营装满,黑油罐装剩下的黑油。

3.2 金币和圣水的详细分配机制

金币和圣水的分配机制相同,下面以金币为例,你可以用同样的方式计算圣水分配。

假设某个拥有 5 个仓库的玩家(为简单起见,假设所有仓库都已充分升级)持有 876 266 金币。如果平均分配,那么 876 266 ÷ 5 = 175 253 余 1,也就是说每个仓库应该有 175 253 金币,剩下的一个金币随便放进哪个仓库中。

然而实际情况并非如此。实际上有 4 个仓库各有 175 254 金币,剩下一个仓库只有 175 250 金币。这种情况其实是很普遍的,你进游戏看看自己的仓库常常就会发现这种不均匀的分配。同时,这种不均匀的分配方式也是刚才的“简化算法”产生误差的罪魁祸首。

那么这些金币具体是怎么分配的呢?假设仓库中有 X 个金币,则算法如下:

  1. 如果 X 大于玩家的最大储量,则将 X 设为最大储量。这样一来,如果玩家买了资源礼包爆仓了,或者月卡刚发 2500 万资源,那么游戏会按照满库计算掠夺比例。
  2. 将 X 除以玩家的仓库数量并将结果称为 Y,将 Y 与仓库的容量作比较。
    • 注意:这里要暂时把 1 级储金罐的容量视为 1000,而不是 1500.
  3. 如果 Y 大于至少一个仓库的容量,则填满这个库,然后放到一边不管它。再用 X 减去这个库的容量并返回第二步,别忘了把仓库数量减一。
    • 注意:1 级储金罐只能从 X 中带走 1000 金币,而不是 1500 金币。
  4. 如果 Y 小于所有剩余仓库的容量,则对 Y 向上取整(如果 Y 不是整数则向上舍入到整数,如 100.2 向上取整后是 101),其结果称为 Z.
  5. 给每个仓库填充 Z 金币。如果填充的数量超过了 X,则随机选择一个仓库取出一部分金币,直到所有仓库的金币数量加起来等于 X. 如果选择的这个仓库都取完了还是不够(只有在金币非常少的时候才会出现这种情况),那么再选择一个仓库重复取金币操作。必要时该操作可多次执行。
  6. 如果玩家拥有 1 级储金罐,则最后 500 容量只有在其他仓库都被填满时才会被填充。如果玩家有多个 1 级储金罐,则剩下的金币在这几个 1 级储金罐之间平均分配,类似于步骤 5.

费了九牛二虎之力终于把这个讲清楚了,现在我们来看几个例子:

例一:典型的 13 本场景(5 个仓库)

一名 13 本玩家正好有 1200 万金币,并且他的所有仓库都升满了,不用考虑低等级仓库的问题。

现在我们开始按照上面的程序走一遍,1200 万除以 5 是 240 万,大于大本营的容量(200万)。因此,我们给大本营填充 200 万金币后把它放在一边,现在我们剩下 1000 万金币可以给剩余的 4 个仓库分配。

现在 1000 万除以 4 是 250 万,小于所有储金罐的容量(400万)。根据第五步的做法,我们现在给每个储金罐分配 250 万金币。由于这个例子中没有出现小数,也就是说没有进行第四步的取整操作,所以分配后的金币数量之和等于所有仓库的总储量,也就不需要进行第五步中的“取金币”操作了。所以最后的分配结果是大本营有 200 万金币,每个储金罐都有 250 万金币。

如果我们要给这位玩家额外添加 1 金币,则前三步不变,第四步出现小数了(10 000 001 / 4 = 2 500 000.25),所以我们把 2 500 000.25 向上取整为 2 500 001,并给每个储金罐都填充这么多金币。但是这样的话最后就多出来了三个金币,现在我们选择一个储金罐把这三个金币取出来,这个储金罐就只剩下 2 499 998 金币。现在我们得到了分配结果:大本营有 200 万,三个储金罐各 2 500 001 金币,剩下的那个储金罐有 2 499 998 金币。

例二:8 本初期场景(4 个仓库)

有一名玩家刚刚升级到 8 本不久,并且建了一个 1 级的储金罐没有升级,而他的其他储金罐都已经是 11 级。现在他有 300 万金币。

现在按照程序走,300 万除以 4 等于 75 万,远远超过了 1 级储金罐的容量,所以我们给它填充 1000 金币之后把它放在一边。现在我们有 299.9 万金币分配给 3 个仓库。

8 级大本营只有 75 万容量,所以它也被装满放在一边,剩下 224.9 万金币给最后两个仓库平均分配。

最终的分配结果是:1 级储金罐 1000 金币,大本营 75 万金币,两个 11 级储金罐各 112.45 万金币。

例三:金币非常少的场景

某个 13 本玩家(有 5 个仓库)刚刚升级了一个建筑,他的金币储量被清空,然后他从采集器中捡起了 6 个金币。

根据第五步的算法,每个仓库应该先装 2 金币,然后给其中一个仓库扣除 4 金币。但是一个仓库不够扣,所以我们再逮着另一个仓库扣除 2 金币。

最终的结果是有三个仓库各有 2 金币,剩下两个完全空了。

如果该玩家又多了一个金币(总共 7 个),分配过程类似,最终的结果是其中三个仓库各有 2 金币,一个仓库有 1 金币,剩下那个仓库完全空了。

3.3 黑油的详细分配机制

黑油只在暗黑重油罐和大本营这两者之间分配,比金币和圣水要简单很多。

在黑油数量比较少的时候,黑油会以 4:1 的比例在黑油罐和大本营之间分配。随着黑油数量的增加,如果大本营里堆满了黑油,那么剩下的黑油会全部进入暗黑重油罐。

在大部分情况下,你可以用以下算法确定黑油在黑油罐和大本营之间的分配方式。假设玩家有 X 滴黑油,则算法如下:

  • 如果 X 大于玩家的最大储量,则将 X 设为最大储量。
  • 将 X 除以 5,然后将结果向下舍入,结果为 Y。
  • 如果大本营能容纳这个多黑油,那么就给大本营填入 Y 黑油,剩下的全部存到黑油罐里。如果放不下,那么就把大本营填满,剩下的存到黑油罐。

但是,这个规则有两个例外:

  • 7 级大本营可以存储 2500 滴黑油,但是它会“自我封顶”,在大多数时候只能容纳 2000 滴黑油。前 1 万滴黑油会按照刚才说的算法正常填充,剩下的黑油按照如下方式填充:
    • 如果玩家的黑油罐是 1 级(容量 10 000),则先按照上方所说的常规规则分配,当大本营容纳 2000 黑油之后,黑油罐已经存了 1 万黑油,也就是说黑油罐已经满了,而大本营还有 500 的容量。如果此时还有黑油需要存储,那就全部放进大本营。
    • 如果玩家的黑油罐是 2 级(容量 17 500),则先按照上方所说的常规规则分配,当大本营容纳 2000 黑油之后,黑油罐已经存了 1 万黑油,此时黑油罐还有 7500 的容量,大本营还有 500 的容量。如果此时还有黑油需要存储,那就全部放进黑油罐,直到黑油罐存储的黑油达到 17 000. 当黑油罐的储量达到 17 000 时,黑油罐和大本营各有 500 容量没用掉,此时如果还有黑油需要存储,则在大本营和黑油罐之间平分。
  • 我们刚才说了,2 级黑油罐(容量 17 500)在存储 17 000 黑油之后是在大本营和黑油罐之间平均分配的,这个分配机制有点奇怪,而且就算是玩家升到 8 本,这种特殊的分配机制仍然存在。
    • 如果某个 8 本玩家一直留着 2 级黑油罐不升级,那么他大本营可以存储 5000 黑油,黑油罐可以存储 17 500 黑油,总容量 22 500. 我们先按照上方所说的常规规则分配,当大本营容纳 4250 黑油之后,黑油罐已经存了 21 250 黑油,此时大本营还有 750 的容量,黑油罐还有 500 的容量。如果此时还有黑油需要存储,那就在大本营和黑油罐之间按照 3:2 的比例分配。
    • 如果这个玩家升了 9 本,但黑油罐仍然是 2 级,则分配方式和 8 本一样。但是 9 本的大本营容量比 8 本高,所以当黑油罐满了之后,大本营还有 5000 的容量可供存储,此时多余的黑油会全部存入大本营。

四、仓库掠夺量的精确算法

仓库的掠夺量是每个仓库分开计算的,并且需要使用两种算法比较得出。

算法 A(固定百分比):

  1. 计算出每个仓库存储的储量 X.
  2. 用 X 乘以对应大本等级的掠夺比例,结果向下取整后记为 Y.
  3. 重复上述步骤,计算其他仓库,记录结果备用。

算法 B(根据当前仓库的储量与所有仓库资源总量的比例计算):

  1. 计算出每个仓库存储的储量 X.
  2. 用 X 除以所有仓库的储量之和,结果记为 Y.
  3. 将 Y 乘以这种资源的掠夺上限,四舍五入后得到最终结果。
  4. 对于金币和圣水来说,四舍五入到万位即可。如果结果小于 10 000(资源少的时候可能会出现),舍入仍然有,但精度更高:
    • 如果结果介于 1000 和 10000 之间,则四舍五入到千位。
    • 如果结果介于 100 和 1000 之间,则四舍五入到百位。
    • 如果结果小于 100,则四舍五入到个位。
  5. 对于黑油来说,Y 需要四舍五入到百位。
  6. 重复上述步骤,计算其他仓库,记录结果备用。

由于算法的性质,结果可能会出现舍入差异。因此,通过这种算法计算出的各仓库掠夺数量之和可能不等于理论上的掠夺上限,最终可被掠夺的金币和圣水可能会比掠夺上限多或者少 20 000,或者被掠夺的黑油比实际多 100.

敲黑板,划重点,实际值是可以超过掠夺上限的!后面我们会举例说明。

结合两种算法:

计算完成之后,每个仓库可被掠夺的资源数都取两者中的较小值

当仓库的资源数量与和掠夺上限所需的资源相差较大时,采用哪个值是显而易见的,因为在这种情况下,两种算法的结果会有很大差异。但是,当两个结果接近时,一些仓库会采用算法 A 的结果,另一些仓库会采用算法 B 的结果。

现在我们举几个例子:

例一:典型场景

某个 13 本玩家把储金罐都升满了,他现在正好存有 1500 万金币。根据第五大点的分配规则不难得出,他的每个储金罐都有 325 万金币,大本营有 200 万金币。

为了确定每个金币仓库的可掠夺量,我们使用两种算法分别计算:

  • 算法 A:每个仓库 325万 * 10% = 32.5万 金币。
  • 算法 B:325万 / 1500万 ≈ 0.2167. 将其乘以 55 万的掠夺上限,得到 119 166,四舍五入后结果为 12 万。

算法 B 的结果要比算法 A 的结果小得多,所以取算法 B 为最终结果,即每个储金罐被掠夺 12 万金币。

将上述程序同样应用在大本营的掠夺计算中,可以得到大本营能被掠夺 7 万金币。所以我们总共可以掠夺 4 * 12 + 7 = 55 万金币。

例二:舍入不一致的场景

某个 13 本玩家把圣水瓶都升满了,假设他存有 1200 万圣水(每个圣水瓶 250 万,大本营 200 万)。

使用算法 B 计算(算法 A 的结果比这个数字大得多,因此可以忽略),我们可以得到每个圣水瓶将提供 11 万圣水,大本营提供 9 万圣水,共 53 万——比理论上的掠夺上限少 2 万。

如果玩家存储了 1250 万圣水(每个圣水瓶 262.5 万,大本营 200 万)。应用算法后,我们可以得出每个圣水瓶可以提供 12 万圣水,大本营仍然提供 9 万圣水,总共 57 万——比掠夺上限多 2 万。

例三:8 本初期玩家

这个例子给出了一种需要使用两种算法的场景。

假如某玩家刚刚从满 7 本升到 8 本,并建造了一个 1 级的储金罐。现在他有 1 876 300 金币。那么我们不难得出,1 级储金罐存有 1000 金币,其他两个储金罐以及大本营各有 625 100 金币。

根据算法 A,1000 * 16% = 160 金币,而由于算法 B 有一套舍入规则,所以结果是 200 金币。由于算法 A 的结果低于算法 B 的结果,因此 1 级储金罐可以被掠夺 160 金币。

其他三个仓库各有 625 100 金币,根据算法 A,625 100 * 16% = 100 016 金币,这个结果比算法 B 大一点点,算法 B 的结果是 10 万(625 100 / 1 876 300 * 300 000 ≈ 99 946.7,四舍五入为 10 万)。因此,这三个仓库每一个都能被掠夺 10 万金币。

例四:仓库之间不均匀的资源分配造成的影响

资源均匀分配和不均匀分配有多大差别呢?不均匀分配有什么影响?这个例子正好可以说明。

某个 13 本玩家把仓库升满了,现在他有 12 222 222 金币。根据资源分配规则,我们可以得到:大本营存有 200 万,其中三个储金罐各 2 555 556 金币,剩下一个储金罐有 2 555 554 金币。

现在使用算法 B 计算可被掠夺的资源量(算法 A 的结果远大于算法 B,可以忽略),我们可以得到:大本营可以被抢 9 万,三个存有 2 555 556 金币的仓库各提供 12 万金币,而存有 2 555 554 的那个仓库只能提供 11 万金币,合计 56 万。

假设资源平均分配到各个仓库中(两个储金罐 2 555 556 金币,另外两个储金罐 2 555 555 金币),那么资源少的那两个储金罐可以提供 11 万金币,资源多的那两个可以提供 12 万,再加上大本营的 9 万,共 55 万。

再极端一点,假设资源储量不是离散的,每个储金罐都有 2 555 555.5 金币。在这种情况下,每个储金罐都将提供 11 万金币,再加上大本营的 9 万,合计为 53 万金币。

实际上,您会发现最终的结果是 56 万,所以平均分配的假设错误。

例五:黑油掠夺计算

现在我们换一换思路,看一下黑油的计算方法。我们想象这么一个场景:一个 10 本存有 13 万黑油(其中两万在大本营,剩下的都在黑油罐)。

现在大本营存有黑油总量的 15.38%,将其乘以 3000 的上限得到 461.5,四舍五入后为 500. 同样,黑油罐中存有 84.62% 的资源,将其乘以 3000 的上限得到 2538.5,四舍五入后为 2500. 所以说 10 本的大本营可以被掠夺 500 黑油,黑油罐可以被掠夺 2500 黑油。

黑油也可能会出现舍入差异,但因为黑油的仓库只有两个,所以这种情况要比金币和圣水少得多。假如某个 11 本存有 20 万黑油,大本营正好有 10%,黑油罐正好有 90%,把这两个数字分别乘以 3500 的上限得到 350 和 3150,这两个数字均四舍五入后得到 400 和 3200 黑油,总计 3600 黑油(比理论上限还要多 100)。

五、用精确算法计算理论最大鱼

如何创造舍入差异,使得实际掠夺量高于理论值呢?

由于每个仓库的可掠夺资源都是 10 000 的整数倍,假设存在以下组合:

  1. 罐子 17 万,大本 4 万,总计 4 * 17 + 4 = 72 万
  2. 罐子 16 万,大本 8 万,总计 4 * 16 + 8 = 72 万
  3. 罐子 15 万,大本 12 万,总计 4 * 15 + 12 = 72 万
  4. 罐子 14 万,大本 16 万,总计 4 * 14 + 16 = 72 万
  5. ……

现在我们假设一名 16 本玩家把金币仓库都升满了,并且装得满满当当。这里我们还是以金币为例,圣水和金币的算法相同。

我们不难得出,他的每个储金罐都有 525 万金币,大本营有 200 万,总储量 2300 万。

我们看一下能不能构造出以上几种组合来。

组合 1:根据上方的精确算法,单个罐子装满时最大可被掠夺 525万 / 2300万 * 70万 ≈ 15.98 万金币,无法四舍五入到 17 万,所以组合 1 不符合条件,舍去。

组合 2:储金罐的可掠夺资源要在 155 000(含)到 165 000(不含)之间才能四舍五入到 16 万,大本的可掠夺资源要在 75 000(含)到 85 000(不含)之间才能四舍五入到 8 万。

设资源储量为 x,则当 x 满足以下条件时,组合 2 成立:

{155000700000x20000004x<165000750007000002000000x<85000

注意 x 的取值范围为 2300 万(16 本最大资源储量)以下的正整数。

解不等式方程组得

17500000x18666666

组合 3:储金罐的可掠夺资源要在 145 000(含)到 155 000(不含)之间才能四舍五入到 15 万,大本的可掠夺资源要在 115 000(含)到 125 000(不含)之间才能四舍五入到 12 万。

根据这两个条件,我们可以得到另一个不等式方程组:

{145000700000x20000004x<1550001150007000002000000x<125000

解不等式方程组得

11666667x12173913

组合 4:当金币的储量小于或等于 1000 万时,大本和储金罐都没有装满,大本存储的资源比例达到最大值 20%,此时大本最多可被掠夺 20% * 70万 = 14 万金币。当金币储量超过 1000 万时,大本存储的资源比例会减少,可被掠夺的资源反而会小于 14 万,更不能无法四舍五入到 16 万了。因此组合 4 不符合条件,舍去。

因此,当玩家的金币或圣水储量介于 11 666 667 到 12 173 913 之间,或介于 17 500 000 到 18 666 666 之间时,仓库可被掠夺的资源达到 72 万。此时如果采集器和城堡也全部装满,就能达到实际上的掠夺上限。

采集器和城堡的上限在文章开头已经算过了,黑油的算法和金币圣水类似,这里不再列公式计算,以下直接给出计算结果。

分类金币和圣水黑油
采集器1 347 5009 450
部落城堡234 0001 170
仓库700 0006 000
舍入差异20 000100
合计2 301 50016 720

① 由于游戏内部的计算精度差异,实际值可能和上述的计算值有些许差异。金币和圣水的舍入差异不止有 20 000 这一种情况。在 16 本中舍入差异非常普遍。
② 要出现这种舍入差异,防守方必须正好有 16 万黑油。除非防守方的黑油罐是 5 级,并且黑油爆仓,否则出现这种情况的可能性几乎为零。与金币和圣水不同的是,黑油的舍入差异只有 100 这一种情况。

从上表我们可以得知,理论上的最大鱼是 230.15 万金币、230.15 万圣水、16 720 黑油。

简化算法的误差最多为 20 000 金币/圣水、100 黑油,而平常打鱼时掠夺的资源都在几十万、一百多万的量级,所以这点误差问题不大。

16 本版本的理论最大鱼(黑油除外)

六、降本惩罚

你以为这就结束了吗?那真的是太天真了,还有个叫“降本惩罚”的东西。

什么是降本惩罚呢?就是打鱼时进攻大本等级比你低的玩家时,你可以拿到的资源会变少。

注意:

  • 降本惩罚只适用于联机模式打鱼,不适用于 部落战联赛夜世界战斗都城突袭 等场景。
  • 部落城堡内的资源没有降本惩罚。
  • 在游戏内,降本惩罚是最后计算的,因此不需要分库计算,直接使用前面精确算法得到的最终结果即可。

作为一个老玩家我稍微得瑟一下,老版本 COC 会在游戏内告诉你降本惩罚这个机制的存在。在游戏 UI 更新(2023 年 12 月)前,你升级大本营的时候可以看到这个提示。虽然说 6 升 7 才开始有提示,但这个降本惩罚是包括 7 本以下的。

升级大本营提示

游戏 UI 更新后,虽然游戏文件里还有这句话的文本,但我在游戏内找不到这句话了。所以这个旧版的游戏截图虽然模糊,但为了得瑟这么一下,这图我得继续用。

降本惩罚的机制如下表:

大本等级对比可以拿到的资源
攻守双方大本等级相同或防守方大本等级更高100%
进攻方比防守方大本高 1 级80%
进攻方比防守方大本高 2 级50%
进攻方比防守方大本高 3 级25%
进攻方比防守方大本高 4 级及以上5%

从这张表中我们可以看到,如果进攻方比防守方大本高 4 级,那么他只能抢 5% 的资源,这也就是你冲杯偶尔搜到一个低本的时候资源特别少的原因。

现在我们假设 17 本存在,进攻方一个是 17 本,防守方是刚才说到的那条达到掠夺上限的超级大肥鱼。

这时候进攻方可以拿到多少资源?我们计算一下。

先算金币和圣水:

  • 16 本金币和圣水采集器最多被抢 134.75 万,17 本打 16 本触发降本惩罚,乘以 80% 之后是 107.8 万。
  • 在 10 级以上部落,16 本的城堡最多被抢 23.4 万,因为城堡的资源宝库没有降本惩罚,所以不乘 80%,还是 23.4 万。
  • 几个仓库加起来最多被抢 72 万,乘以 80% 之后是 57.6 万。这里直接去拿总数去乘,不需要分仓库计算。
  • 把前三步的结果相加,结果是 203.2 万。

现在算黑油:

  • 16 本钻井最多被抢 9 450,17 本打 16 本触发降本惩罚,乘以 80% 之后是 7 560.
  • 在 10 级以上部落,15 本的城堡最多被抢 1 170,没有降本惩罚。
  • 仓库最多被抢 6 000,乘以 80% 之后是 4 800.
  • 把前三步的结果相加,结果是 13 530.

所以如果有个 17 本推平了这条超级大肥鱼,他可以拿到 203.2 万金币和圣水、13 530 黑油。

掠夺机制的讲解到这里就结束了,如果你能看到这里,那你对 COC 的掠夺机制就已经相当熟悉了。如果你刚才有哪个地方没看懂,现在可以返回去再看一下,这样能让你对文章有更深入的理解。

ℹ️

本页没有目录

网络连接慢