mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-19 20:55:44 +01:00
ps and top Terminal commands now show script pid. Updated version and changelog
This commit is contained in:
parent
3a374de210
commit
e3a74f23a1
@ -6,7 +6,7 @@
|
||||
import { IMap } from "./types";
|
||||
|
||||
export let CONSTANTS: IMap<any> = {
|
||||
Version: "0.47.0",
|
||||
Version: "0.47.1",
|
||||
|
||||
/** Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience
|
||||
* and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then
|
||||
@ -230,51 +230,9 @@ export let CONSTANTS: IMap<any> = {
|
||||
|
||||
* Scripts now start/stop instantly
|
||||
* Improved performance when starting up many copies of a new NetscriptJS script (by Ornedan)
|
||||
* Improved performance when killing scripts
|
||||
* Dialog boxes can now be closed with the ESC key (by jaguilar)
|
||||
* NetscriptJS scripts should now be "re-compiled" if their dependencies change (by jaguilar)
|
||||
* write() function should now properly cause NetscriptJS scripts to "re-compile" (by jaguilar)
|
||||
|
||||
v0.47.0
|
||||
* Stock Market changes:
|
||||
** Implemented spread. Stock's now have bid and ask prices at which transactions occur
|
||||
** Large transactions will now influence a stock's price and forecast
|
||||
** This "influencing" can take effect in the middle of a transaction
|
||||
** See documentation for more details on these changes
|
||||
** Added getStockAskPrice(), getStockBidPrice() Netscript functions to the TIX API
|
||||
** Added getStockPurchaseCost(), getStockSaleGain() Netscript functions to the TIX API
|
||||
|
||||
* Re-sleeves can no longer have the NeuroFlux Governor augmentation
|
||||
** This is just a temporary patch until the mechanic gets re-worked
|
||||
|
||||
* hack(), grow(), and weaken() functions now take optional arguments for number of threads to use (by MasonD)
|
||||
* codingcontract.attempt() now takes an optional argument that allows you to configure the function to return a contract's reward
|
||||
* Adjusted RAM costs of Netscript Singularity functions (mostly increased)
|
||||
* Adjusted RAM cost of codingcontract.getNumTriesRemaining() Netscript function
|
||||
* Netscript Singularity functions no longer cost extra RAM outside of BitNode-4
|
||||
* Corporation employees no longer have an "age" stat
|
||||
* Gang Wanted level gain rate capped at 100 (per employee)
|
||||
* Script startup/kill is now processed every 3 seconds, instead of 6 seconds
|
||||
* getHackTime(), getGrowTime(), and getWeakenTime() now return Infinity if called on a Hacknet Server
|
||||
* Money/Income tracker now displays money lost from hospitalizations
|
||||
* Exported saves now have a unique filename based on current BitNode and timestamp
|
||||
* Maximum number of Hacknet Servers decreased from 25 to 20
|
||||
* Bug Fix: Corporation employees stats should no longer become negative
|
||||
* Bug Fix: Fixed sleeve.getInformation() throwing error in certain scenarios
|
||||
* Bug Fix: Coding contracts should no longer generate on the w0r1d_d43m0n server
|
||||
* Bug Fix: Duplicate Sleeves now properly have access to all Augmentations if you have a gang
|
||||
* Bug Fix: getAugmentationsFromFaction() & purchaseAugmentation() functions should now work properly if you have a gang
|
||||
* Bug Fix: Fixed issue that caused messages (.msg) to be sent when refreshing/reloading the game
|
||||
* Bug Fix: Purchasing hash upgrades for Bladeburner/Corporation when you don't actually have access to those mechanics no longer gives hashes
|
||||
* Bug Fix: run(), exec(), and spawn() Netscript functions now throw if called with 0 threads
|
||||
* Bug Fix: Faction UI should now automatically update reputation
|
||||
* Bug Fix: Fixed purchase4SMarketData()
|
||||
* Bug Fix: Netscript1.0 now works properly for multiple 'namespace' imports (import * as namespace from "script")
|
||||
* Bug Fix: Terminal 'wget' command now correctly evaluates directory paths
|
||||
* Bug Fix: wget(), write(), and scp() Netscript functions now fail if an invalid filepath is passed in
|
||||
* Bug Fix: Having Corporation warehouses at full capacity should no longer freeze game in certain conditions
|
||||
* Bug Fix: Prevented an exploit that allows you to buy multiple copies of an Augmentation by holding the 'Enter' button
|
||||
* Bug Fix: gang.getOtherGangInformation() now properly returns a deep copy
|
||||
* Bug Fix: Fixed getScriptIncome() returning an undefined value
|
||||
* Bug Fix: Fixed an issue with Hacknet Server hash rate not always updating
|
||||
`
|
||||
}
|
||||
|
@ -409,7 +409,7 @@ function processNetscript1Imports(code, workerScript) {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Find and return the next availble PID for a script
|
||||
*/
|
||||
let pidCounter = 1;
|
||||
function generateNextPid() {
|
||||
|
@ -55,6 +55,7 @@ import { Message } from "./Message/Message";
|
||||
import { showMessage } from "./Message/MessageHelpers";
|
||||
import { addWorkerScript } from "./NetscriptWorker";
|
||||
import { killWorkerScript } from "./Netscript/killWorkerScript";
|
||||
import { WorkerScriptStartStopEventEmitter } from "./Netscript/WorkerScriptStartStopEventEmitter";
|
||||
import { Player } from "./Player";
|
||||
import { hackWorldDaemon } from "./RedPill";
|
||||
import { RunningScript } from "./Script/RunningScript";
|
||||
@ -1146,8 +1147,9 @@ let Terminal = {
|
||||
}
|
||||
case "killall": {
|
||||
for (let i = s.runningScripts.length - 1; i >= 0; --i) {
|
||||
killWorkerScript(s.runningScripts[i], s.ip);
|
||||
killWorkerScript(s.runningScripts[i], s.ip, false);
|
||||
}
|
||||
WorkerScriptStartStopEventEmitter.emitEvent();
|
||||
post("Killing all running scripts. May take up to a few minutes for the scripts to die...");
|
||||
break;
|
||||
}
|
||||
@ -1250,7 +1252,7 @@ let Terminal = {
|
||||
}
|
||||
for (let i = 0; i < s.runningScripts.length; i++) {
|
||||
let rsObj = s.runningScripts[i];
|
||||
let res = rsObj.filename;
|
||||
let res = `(PID - ${rsObj.pid}) ${rsObj.filename}`;
|
||||
for (let j = 0; j < rsObj.args.length; ++j) {
|
||||
res += (" " + rsObj.args[j].toString());
|
||||
}
|
||||
@ -1432,7 +1434,23 @@ let Terminal = {
|
||||
return;
|
||||
}
|
||||
|
||||
post("Script Threads RAM Usage");
|
||||
// Headers
|
||||
const scriptWidth = 40;
|
||||
const pidWidth = 10;
|
||||
const threadsWidth = 16;
|
||||
|
||||
const scriptTxt = "Script";
|
||||
const pidTxt = "PID";
|
||||
const threadsTxt = "Threads";
|
||||
const ramTxt = "RAM Usage";
|
||||
|
||||
const spacesAfterScriptTxt = " ".repeat(scriptWidth - scriptTxt.length);
|
||||
const spacesAfterPidTxt = " ".repeat(pidWidth - pidTxt.length);
|
||||
const spacesAfterThreadsTxt = " ".repeat(threadsWidth - threadsTxt.length);
|
||||
|
||||
const headers = `${scriptTxt}${spacesAfterScriptTxt}${pidTxt}${spacesAfterPidTxt}${threadsTxt}${spacesAfterThreadsTxt}${ramTxt}`;
|
||||
|
||||
post(headers);
|
||||
|
||||
let currRunningScripts = s.runningScripts;
|
||||
// Iterate through scripts on current server
|
||||
@ -1440,19 +1458,30 @@ let Terminal = {
|
||||
let script = currRunningScripts[i];
|
||||
|
||||
// Calculate name padding
|
||||
let numSpacesScript = 32 - script.filename.length; // 26 -> width of name column
|
||||
if (numSpacesScript < 0) {numSpacesScript = 0;}
|
||||
let spacesScript = Array(numSpacesScript+1).join(" ");
|
||||
const numSpacesScript = Math.max(0, scriptWidth - script.filename.length);
|
||||
const spacesScript = " ".repeat(numSpacesScript);
|
||||
|
||||
// Calculate PID padding
|
||||
const numSpacesPid = Math.max(0, pidWidth - (script.pid + "").length);
|
||||
const spacesPid = " ".repeat(numSpacesPid);
|
||||
|
||||
// Calculate thread padding
|
||||
let numSpacesThread = 16 - (script.threads + "").length; // 16 -> width of thread column
|
||||
let spacesThread = Array(numSpacesThread+1).join(" ");
|
||||
const numSpacesThread = Math.max(0, threadsWidth - (script.threads + "").length);
|
||||
const spacesThread = " ".repeat(numSpacesThread);
|
||||
|
||||
// Calculate and transform RAM usage
|
||||
let ramUsage = numeralWrapper.format(getRamUsageFromRunningScript(script) * script.threads, '0.00') + " GB";
|
||||
const ramUsage = numeralWrapper.format(getRamUsageFromRunningScript(script) * script.threads, '0.00') + " GB";
|
||||
|
||||
var entry = [script.filename, spacesScript, script.threads, spacesThread, ramUsage];
|
||||
post(entry.join(""));
|
||||
const entry = [
|
||||
script.filename,
|
||||
spacesScript,
|
||||
script.pid,
|
||||
spacesPid,
|
||||
script.threads,
|
||||
spacesThread,
|
||||
ramUsage
|
||||
].join("");
|
||||
post(entry);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user