bitburner吧 关注:163贴子:545
  • 11回复贴,共1

Batch hacking 赚钱的一个实现, 大概 4PB 内存 => 240b/s

只看楼主收藏回复

算法来源:
https://bitburner.readthedocs.io/en/latest/advancedgameplay/hackingalgorithms.html?highlight=batch#batch-algorithms-hgw-hwgw-or-cycles

简单来说就是以结束时间排序, HWGW 为一个循环:
1. 保证每一个 weaken 可以消除掉上一个阶段产生的 security level 增长.
2. 保证 Grow 可以把 Hack 掉的钱完全补回去
3. 保证 4 个阶段的结束时间几乎相同, 通过延迟执行一个批次的第二个 W, G 和 H实现
4. 保证 4 个阶段严格按照 HWGW 的顺序, 实际间隔可以是 20ms 到 100 ms
这样除了 batch 结束时的那 100 多毫秒以外, 其他时间服务器的 money 和 safe level 都是稳定最佳状态. 于是在内存无穷大的情况下, 钱的速度仅仅取决于 batch 的频率乘以服务器钱数.
实现的截图:
在 4PB 的 home, 只对 b-and-a 批处理 hacking ,收入约 240 b / sec.



源码: https://github.com/MinchaoZhu/bitburner-script/tree/main/scripts/batch_hack
使用:
运行: wget "https://raw.githubusercontent.com/MinchaoZhu/bitburner-script/main/scripts/wget.ns" wget.ns
运行: run wget.ns
运行: alias BatchHack="run /scripts/batch_hack/Start.js";
最后运行 BatchHack <1|home|all>
则会为每个自己的服务器随机分配一个可以 hacking 的目标
1: 在购买的服务器上跑
home: 只在 home 上跑
all: 在 home 和购买的服务器上跑


IP属地:新加坡1楼2022-01-12 01:19回复
    当然由于 js 引擎效率不如编译型的语言, 所以如果同时执行的脚本很多的话, 就会影响批次实际的执行时间和执行的顺序. 当打乱顺序后这个算法的实际执行赚钱能力就下降了 n 个档次.
    但是实测低压笔记本在 home 上执行上面截图的, 是没有性能问题的.

    可以通过调整这三个参数来适应电脑性能:
    (20 ms 据说是 js 引擎的限制)
    defaultDelay: HWGW 结束执行时间的间隔, 越小越好, 但必须大于 20 ms, 推荐是 20-100 ms. 决定了算法的稳定性.
    hackRatio: 每次赚取最大钱数的比例, 推荐 0.5-1.0, 数值越大一个批次的内存占用越多, 可以适当调小. 决定了每批次赚的钱.
    batchDelay: 每个批次之间的执行间隔, 越小越小, 但必须大于 20 ms, 决定了批次的频率.


    IP属地:新加坡2楼2022-01-12 01:31
    收起回复
      点赞,不错


      IP属地:四川来自iPhone客户端3楼2022-01-12 08:01
      回复
        都改成.js了


        IP属地:山东6楼2022-01-13 16:27
        收起回复

          为什么只在一台机器上运行一会就会乱序了...脚本间隔时间已经弄成几秒了,是不是我电脑配置太低了
          const ret1 = ns.exec(weakenScript, runHostname, analyzeResult.W1, hostname, waitTime, i) const ret2 = ns.exec(weakenScript, runHostname, analyzeResult.W2, hostname, waitTime + delay.weak2WaitTime, i) const ret3 = ns.exec(growScript, runHostname, analyzeResult.G, hostname, waitTime + delay.growWaitTime, i) const ret4 = ns.exec(hackScript, runHostname, analyzeResult.H, hostname, waitTime + delay.hackWaitTime, i)


          IP属地:四川8楼2022-01-21 10:28
          回复
            楼主在吗,脚本里面有一个hackrand的js达成ns了,在hackone那边会一直找不到脚本文件一直卡住,后面都弄不了,还有一个问题就是自动购买服务器那个脚本命令有一点看不懂,buyserver后面的<>里面要填什么,是server--?--? 这个吗


            IP属地:福建10楼2023-02-02 20:17
            回复
              sorry 很久没玩了


              IP属地:新加坡来自iPhone客户端11楼2023-02-04 10:12
              回复