Bot simple qui utilise les mathématiques pour choisir la mise à niveau la plus rentable.
Processus Simplifié pour Assurer votre Conformité
Le bot suit les étapes suivantes.
- Vérifie la croissance des coûts et de la production de toutes les mises à niveau possibles
- Calcule le ratio rentable de chaque mise à niveau
- Trie les éléments par rapport décroissant
- Choisit le premier élément
- Vérifie si vous pouvez acheter la mise à niveau maintenant, sinon, il attend pour collecter de l'argent
- Vérifie si vous pouvez acheter un nouveau nœud en moins de 30 secondes (vous pouvez personnaliser cette fois), si oui, il l'achète
- Répéter…
Ratio rentable = croissance de la production / coût de mise à niveau
Croissance de la production = Production après mise à niveau / production actuelle
Ce guide est basé sur mon précédent "Automation for Hacknet Nodes".
UTILISATION
Suivez les étapes suivantes.
- Exécutez le terminal
- Tapez 'nano hacknet-bot.js'
- Copiez et collez le code ci-dessous dans ce fichier
- Enregistrez le fichier (ctrl + s)
- Retour à la borne
- Tapez 'exécuter hacknet-bot.js'
/** @param {NS} ns **/ export async function main(ns) { // helpers const getMoney = () => ns.getPlayer().money ; const getProd = (niveau, bélier, cœurs) => (niveau * 1.5) * Math.pow(1.035, bélier - 1) * ((cœurs + 5) / 6); // votre multiplicateur de production const PROD_MULTIPLIER = ns.getHacknetMultipliers().production; // temps d'attente maximum pour collecter de l'argent pour le nouveau nœud (par défaut 30s) const WAITING_TIME = ns.args[0] || 30; tandis que (vrai) { ratios const = [] ; laissez hacknetProduction = 0 ; // boucle sur tous les nœuds pour (let index = 0; index < ns.hacknet.numNodes(); index++) { // obtient les statistiques actuelles du nœud const { level, ram, cores, production } = ns.hacknet.getNodeStats(index ); hacknetProduction += production ; // obtenir le coût des mises à jour const levelUpgradeCost = ns.hacknet.getLevelUpgradeCost(index); const ramUpgradeCost = ns.hacknet.getRamUpgradeCost(index); const coreUpgradeCost = ns.hacknet.getCoreUpgradeCost(index); // obtenir la prod. ratios croissance / coût const levelUpgradeRatio = ((getProd(level + 1, ram, cores) * PROD_MULTIPLIER) - production) / levelUpgradeCost ; const ramUpgradeRatio = ((getProd(level, ram * 2, cores) * PROD_MULTIPLIER) - production) / ramUpgradeCost ; const coreUpgradeRatio = ((getProd(level, ram, cores + 1) * PROD_MULTIPLIER) - production) / coreUpgradeCost ; // mises à niveau possibles du nœud actuel const currentNodeUpgrades = [ {ratio : levelUpgradeRatio, cost : levelUpgradeCost, nodeIndex : index, upgrade : "level"}, {ratio : ramUpgradeRatio, cost : ramUpgradeCost, nodeIndex : index, upgrade : "ram"} , {ratio : coreUpgradeRatio, cost : coreUpgradeCost, nodeIndex : index, upgrade : "core"} ] ; // pousse les mises à niveau du nœud actuel vers toutes les mises à niveau ratios.push(...currentNodeUpgrades); } // obtient la mise à niveau la plus rentable const { cost, nodeIndex, upgrade } = ratios.sort((a, b) => b.ratio - a.ratio)[0] ; // attendez d'avoir l'argent pour la mise à jour while (getMoney() < cost) { wait ns.sleep(1); } // exécuter le commutateur de mise à niveau (mise à niveau) { case "niveau": attendre ns.hacknet.upgradeLevel(nodeIndex); Pause; cas "ram": attendre ns.hacknet.upgradeRam(nodeIndex); Pause; case "core": attendez ns.hacknet.upgradeCore(nodeIndex); Pause; par défaut : continuer ; } // vérifie si vous pouvez acheter un nouveau nœud const PurchaseNodeCost = ns.hacknet.getPurchaseNodeCost(); const missingMoneyForNewNode = buyNodeCost - getMoney(); if (missingMoneyForNewNode > 0 && missingMoneyForNewNode < hacknetProduction * WAITING_TIME) { // si vous devez attendre le nœud d'achat moins de WAITING_TIME (en secondes) le programme attend pour collecter de l'argent tandis que (getMoney() < buyNodeCost) { wait ns.sleep(1 ); } ns.hacknet.purchaseNode(); } // veille 1ms pour éviter un plantage à cause d'une boucle infinie wait ns.sleep(1); } }
Vous pouvez personnaliser le temps d'attente du noeud d'achat (par défaut 30s) en passant un argument de script supplémentaire. Par example:
exécuter hacknet-bot.js 120
C'est tout ce que nous partageons aujourd'hui pour cela bitburner guide. Ce guide a été initialement créé et rédigé par syw1. Si nous ne parvenons pas à mettre à jour ce guide, vous pouvez trouver la dernière mise à jour en suivant ce lien.