forked from OpenWF/SpaceNinjaServer
feat(webui): add client cheats and new account cheat "Unlock All Focus Schools" (#406)
Co-authored-by: Sainan <Sainan@users.noreply.github.com>
This commit is contained in:
parent
94f6d1b941
commit
7cfef6294b
@ -1 +1,2 @@
|
|||||||
static/webui/libs/
|
static/webui/libs/
|
||||||
|
*.html
|
||||||
|
@ -19,15 +19,18 @@ webuiRouter.use("/webui", (req, res, next) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Serve virtual routes
|
// Serve virtual routes
|
||||||
webuiRouter.get("/webui/settings", (_req, res) => {
|
|
||||||
res.sendFile(path.join(rootDir, "static/webui/index.html"));
|
|
||||||
});
|
|
||||||
webuiRouter.get("/webui/inventory", (_req, res) => {
|
webuiRouter.get("/webui/inventory", (_req, res) => {
|
||||||
res.sendFile(path.join(rootDir, "static/webui/index.html"));
|
res.sendFile(path.join(rootDir, "static/webui/index.html"));
|
||||||
});
|
});
|
||||||
webuiRouter.get("/webui/mods", (_req, res) => {
|
webuiRouter.get("/webui/mods", (_req, res) => {
|
||||||
res.sendFile(path.join(rootDir, "static/webui/index.html"));
|
res.sendFile(path.join(rootDir, "static/webui/index.html"));
|
||||||
});
|
});
|
||||||
|
webuiRouter.get("/webui/settings", (_req, res) => {
|
||||||
|
res.sendFile(path.join(rootDir, "static/webui/index.html"));
|
||||||
|
});
|
||||||
|
webuiRouter.get("/webui/cheats", (_req, res) => {
|
||||||
|
res.sendFile(path.join(rootDir, "static/webui/index.html"));
|
||||||
|
});
|
||||||
|
|
||||||
// Serve static files
|
// Serve static files
|
||||||
webuiRouter.use("/webui", express.static(path.join(rootDir, "static/webui")));
|
webuiRouter.use("/webui", express.static(path.join(rootDir, "static/webui")));
|
||||||
|
@ -1,286 +1,269 @@
|
|||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en" data-bs-theme="dark">
|
<html lang="en" data-bs-theme="dark">
|
||||||
<head>
|
<head>
|
||||||
<title>OpenWF WebUI</title>
|
<title>OpenWF WebUI</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="stylesheet" href="libs/bootstrap.min.css" />
|
<link rel="stylesheet" href="libs/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar sticky-top bg-body-tertiary">
|
<nav class="navbar sticky-top bg-body-tertiary">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
<button class="navbar-toggler d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#sidebar" aria-controls="sidebar" aria-label="Toggle sidebar">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand">OpenWF WebUI</a>
|
||||||
|
<div class="nav-item dropdown">
|
||||||
|
<button class="nav-link dropdown-toggle displayname" data-bs-toggle="dropdown" aria-expanded="false"></button>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end">
|
||||||
|
<li><a class="dropdown-item" href="/webui/" onclick="logout();">Logout</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<div class="container pt-3 pb-3" id="main-view">
|
||||||
|
<div class="offcanvas-lg offcanvas-start" tabindex="-1" id="sidebar" aria-labelledby="sidebarLabel">
|
||||||
|
<div class="offcanvas-header">
|
||||||
|
<h5 class="offcanvas-title" id="sidebarLabel">Sidebar</h5>
|
||||||
<button
|
<button
|
||||||
class="navbar-toggler d-lg-none"
|
type="button"
|
||||||
type="button"
|
class="btn-close"
|
||||||
data-bs-toggle="offcanvas"
|
data-bs-dismiss="offcanvas"
|
||||||
data-bs-target="#sidebar"
|
data-bs-target="#sidebar"
|
||||||
aria-controls="sidebar"
|
aria-label="Close"
|
||||||
aria-label="Toggle sidebar"
|
></button>
|
||||||
>
|
</div>
|
||||||
<span class="navbar-toggler-icon"></span>
|
<div class="offcanvas-body">
|
||||||
</button>
|
<div class="navbar p-0">
|
||||||
<a class="navbar-brand">OpenWF WebUI</a>
|
<ul class="navbar-nav justify-content-end">
|
||||||
<div class="nav-item dropdown">
|
<li class="nav-item">
|
||||||
<button
|
<a class="nav-link" href="/webui/inventory" data-bs-dismiss="offcanvas" data-bs-target="#sidebar">Inventory</a>
|
||||||
class="nav-link dropdown-toggle displayname"
|
</li>
|
||||||
data-bs-toggle="dropdown"
|
<li class="nav-item">
|
||||||
aria-expanded="false"
|
<a class="nav-link" href="/webui/mods" data-bs-dismiss="offcanvas" data-bs-target="#sidebar">Mods</a>
|
||||||
></button>
|
</li>
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
<li class="nav-item">
|
||||||
<li><a class="dropdown-item" href="/webui/" onclick="logout();">Logout</a></li>
|
<a class="nav-link" href="/webui/cheats" data-bs-dismiss="offcanvas" data-bs-target="#sidebar">Cheats</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</div>
|
||||||
<div class="container pt-3 pb-3" id="main-view">
|
<div class="w-100">
|
||||||
<div class="offcanvas-lg offcanvas-start" tabindex="-1" id="sidebar" aria-labelledby="sidebarLabel">
|
<div data-route="/webui/" data-title="Login | OpenWF WebUI">
|
||||||
<div class="offcanvas-header">
|
<p>Login using your OpenWF account credentials.</p>
|
||||||
<h5 class="offcanvas-title" id="sidebarLabel">Sidebar</h5>
|
<form onsubmit="doLogin();return false;">
|
||||||
<button
|
<label for="email">Email address</label>
|
||||||
type="button"
|
<input class="form-control" type="email" id="email" required />
|
||||||
class="btn-close"
|
<br />
|
||||||
data-bs-dismiss="offcanvas"
|
<label for="password">Password</label>
|
||||||
data-bs-target="#sidebar"
|
<input class="form-control" type="password" id="password" required />
|
||||||
aria-label="Close"
|
<br />
|
||||||
></button>
|
<button class="btn btn-primary" type="submit">Login</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div data-route="/webui/inventory" data-title="Inventory | OpenWF WebUI">
|
||||||
|
<p id="refresh-note" class="mb-4">
|
||||||
|
Note: Changes made here will only be reflected in-game when the game re-downloads your
|
||||||
|
inventory. Visiting the navigation should be the easiest way to trigger that.
|
||||||
|
</p>
|
||||||
|
<div class="card mb-4">
|
||||||
|
<h5 class="card-header">Add Items</h5>
|
||||||
|
<form class="card-body input-group" onsubmit="doAcquireMiscItems();return false;">
|
||||||
|
<input class="form-control" id="miscitem-count" type="number" min="1" value="1" />
|
||||||
|
<input class="form-control" id="miscitem-type" list="datalist-miscitems" />
|
||||||
|
<button class="btn btn-primary" type="submit">Add</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="offcanvas-body">
|
<div class="row">
|
||||||
<div class="navbar p-0">
|
<div class="col-lg-6">
|
||||||
<ul class="navbar-nav justify-content-end">
|
<div class="card mb-4">
|
||||||
<li class="nav-item">
|
<h5 class="card-header">Warframes</h5>
|
||||||
<a
|
<div class="card-body">
|
||||||
class="nav-link"
|
<form class="input-group mb-3" onsubmit="doAcquireWarframe();return false;">
|
||||||
href="/webui/inventory"
|
<input class="form-control" id="warframe-to-acquire" list="datalist-warframes" />
|
||||||
data-bs-dismiss="offcanvas"
|
<button class="btn btn-primary" type="submit">Add</button>
|
||||||
data-bs-target="#sidebar"
|
</form>
|
||||||
>
|
<table class="table table-hover w-100">
|
||||||
Inventory
|
<tbody id="warframe-list"></tbody>
|
||||||
</a>
|
</table>
|
||||||
</li>
|
</div>
|
||||||
<li class="nav-item">
|
</div>
|
||||||
<a
|
</div>
|
||||||
class="nav-link"
|
<div class="col-lg-6">
|
||||||
href="/webui/mods"
|
<div class="card mb-4">
|
||||||
data-bs-dismiss="offcanvas"
|
<h5 class="card-header">Weapons</h5>
|
||||||
data-bs-target="#sidebar"
|
<div class="card-body">
|
||||||
>
|
<form class="input-group mb-3" onsubmit="doAcquireWeapon();return false;">
|
||||||
Mods
|
<input class="form-control" id="weapon-to-acquire" list="datalist-weapons" />
|
||||||
</a>
|
<button class="btn btn-primary" type="submit">Add</button>
|
||||||
</li>
|
</form>
|
||||||
<li class="nav-item">
|
<table class="table table-hover w-100">
|
||||||
<a
|
<tbody id="weapon-list"></tbody>
|
||||||
class="nav-link"
|
</table>
|
||||||
href="/webui/settings"
|
</div>
|
||||||
data-bs-dismiss="offcanvas"
|
</div>
|
||||||
data-bs-target="#sidebar"
|
|
||||||
>
|
|
||||||
Settings
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-route="/webui/mods" data-title="Mods | OpenWF WebUI">
|
||||||
<div data-route="/webui/" data-title="Login | OpenWF WebUI">
|
<p id="refresh-note" class="mb-4">
|
||||||
<p>Login using your OpenWF account credentials.</p>
|
Note: Changes made here will only be reflected in-game when the game re-downloads your
|
||||||
<form onsubmit="doLogin();return false;">
|
inventory. Visiting the navigation should be the easiest way to trigger that.
|
||||||
<label for="email">Email address</label>
|
</p>
|
||||||
<input class="form-control" type="email" id="email" required />
|
<div class="row">
|
||||||
<br />
|
<div class="col-xxl-6">
|
||||||
<label for="password">Password</label>
|
<div class="card mb-4">
|
||||||
<input class="form-control" type="password" id="password" required />
|
<h5 class="card-header">Add Riven</h5>
|
||||||
<br />
|
<form class="card-body" onsubmit="doAcquireRiven();return false;">
|
||||||
<button class="btn btn-primary" type="submit">Login</button>
|
<select class="form-control mb-3" id="addriven-type">
|
||||||
</form>
|
<option value="LotusArchgunRandomModRare">LotusArchgunRandomModRare</option>
|
||||||
</div>
|
<option value="LotusModularMeleeRandomModRare">LotusModularMeleeRandomModRare</option>
|
||||||
<div data-route="/webui/inventory" data-title="Inventory | OpenWF WebUI">
|
<option value="LotusModularPistolRandomModRare">LotusModularPistolRandomModRare</option>
|
||||||
<p id="refresh-note" class="mb-4">
|
<option value="LotusPistolRandomModRare">LotusPistolRandomModRare</option>
|
||||||
Note: Changes made here will only be reflected in-game when the game re-downloads your
|
<option value="LotusRifleRandomModRare" selected>LotusRifleRandomModRare</option>
|
||||||
inventory. Visiting the navigation should be the easiest way to trigger that.
|
<option value="LotusShotgunRandomModRare">LotusShotgunRandomModRare</option>
|
||||||
</p>
|
<option value="PlayerMeleeWeaponRandomModRare">PlayerMeleeWeaponRandomModRare</option>
|
||||||
<div class="card mb-4">
|
</select>
|
||||||
<h5 class="card-header">Add Items</h5>
|
<textarea id="addriven-fingerprint" class="form-control mb-3" placeholder="Fingerprint"></textarea>
|
||||||
<form class="card-body input-group" onsubmit="doAcquireMiscItems();return false;">
|
<button class="btn btn-primary" style="margin-right: 5px" type="submit">Add</button>
|
||||||
<input class="form-control" id="miscitem-count" type="number" min="1" value="1" />
|
<a href="riven-tool/" target="_blank">Need help with the fingerprint?</a>
|
||||||
<input class="form-control" id="miscitem-type" list="datalist-miscitems" />
|
</form>
|
||||||
<button class="btn btn-primary" type="submit">Add</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<div class="card mb-4">
|
|
||||||
<h5 class="card-header">Warframes</h5>
|
|
||||||
<div class="card-body">
|
|
||||||
<form class="input-group" onsubmit="doAcquireWarframe();return false;">
|
|
||||||
<input
|
|
||||||
class="form-control"
|
|
||||||
id="warframe-to-acquire"
|
|
||||||
list="datalist-warframes"
|
|
||||||
/>
|
|
||||||
<button class="btn btn-primary" type="submit">Add</button>
|
|
||||||
</form>
|
|
||||||
<table class="table table-hover w-100">
|
|
||||||
<tbody id="warframe-list"></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6">
|
<div class="card mb-4">
|
||||||
<div class="card mb-4">
|
<h5 class="card-header">Rivens</h5>
|
||||||
<h5 class="card-header">Weapons</h5>
|
<div class="card-body">
|
||||||
<div class="card-body">
|
<table class="table table-hover w-100">
|
||||||
<form class="input-group" onsubmit="doAcquireWeapon();return false;">
|
<tbody id="riven-list"></tbody>
|
||||||
<input class="form-control" id="weapon-to-acquire" list="datalist-weapons" />
|
</table>
|
||||||
<button class="btn btn-primary" type="submit">Add</button>
|
|
||||||
</form>
|
|
||||||
<table class="table table-hover w-100">
|
|
||||||
<tbody id="weapon-list"></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-xxl-6">
|
||||||
<div data-route="/webui/mods" data-title="Mods | OpenWF WebUI">
|
<div class="card mb-4">
|
||||||
<p id="refresh-note" class="mb-4">
|
<h5 class="card-header">Mods</h5>
|
||||||
Note: Changes made here will only be reflected in-game when the game re-downloads your
|
<div class="card-body">
|
||||||
inventory. Visiting the navigation should be the easiest way to trigger that.
|
<form class="input-group mb-3" onsubmit="doAcquireMod();return false;">
|
||||||
</p>
|
<input class="form-control" id="mod-to-acquire" list="datalist-mods" />
|
||||||
<div class="row">
|
<button class="btn btn-primary" type="submit">Add</button>
|
||||||
<div class="col-xxl-6">
|
|
||||||
<div class="card mb-4">
|
|
||||||
<h5 class="card-header">Add Riven</h5>
|
|
||||||
<form class="card-body" onsubmit="doAcquireRiven();return false;">
|
|
||||||
<select class="form-control mb-3" id="addriven-type">
|
|
||||||
<option value="LotusArchgunRandomModRare">LotusArchgunRandomModRare</option>
|
|
||||||
<option value="LotusModularMeleeRandomModRare">
|
|
||||||
LotusModularMeleeRandomModRare
|
|
||||||
</option>
|
|
||||||
<option value="LotusModularPistolRandomModRare">
|
|
||||||
LotusModularPistolRandomModRare
|
|
||||||
</option>
|
|
||||||
<option value="LotusPistolRandomModRare">LotusPistolRandomModRare</option>
|
|
||||||
<option value="LotusRifleRandomModRare" selected>
|
|
||||||
LotusRifleRandomModRare
|
|
||||||
</option>
|
|
||||||
<option value="LotusShotgunRandomModRare">LotusShotgunRandomModRare</option>
|
|
||||||
<option value="PlayerMeleeWeaponRandomModRare">
|
|
||||||
PlayerMeleeWeaponRandomModRare
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
<textarea
|
|
||||||
id="addriven-fingerprint"
|
|
||||||
class="form-control mb-3"
|
|
||||||
placeholder="Fingerprint"
|
|
||||||
></textarea>
|
|
||||||
<button class="btn btn-primary" style="margin-right: 5px" type="submit">Add</button>
|
|
||||||
<a href="riven-tool/" target="_blank">Need help with the fingerprint?</a>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
<table class="table table-hover w-100">
|
||||||
<div class="card mb-4">
|
<tbody id="mods-list"></tbody>
|
||||||
<h5 class="card-header">Rivens</h5>
|
</table>
|
||||||
<div class="card-body">
|
|
||||||
<table class="table table-hover w-100">
|
|
||||||
<tbody id="riven-list"></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-xxl-6">
|
|
||||||
<div class="card mb-4">
|
|
||||||
<h5 class="card-header">Mods</h5>
|
|
||||||
<div class="card-body">
|
|
||||||
<form class="input-group" onsubmit="doAcquireMod();return false;">
|
|
||||||
<input class="form-control" id="mod-to-acquire" list="datalist-mods" />
|
|
||||||
<button class="btn btn-primary" type="submit">Add</button>
|
|
||||||
</form>
|
|
||||||
<table class="table table-hover w-100">
|
|
||||||
<tbody id="mods-list"></tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div data-route="/webui/settings" data-title="Settings | OpenWF WebUI">
|
</div>
|
||||||
<form onsubmit="doChangeSettings();return false;">
|
<div data-route="/webui/cheats, /webui/settings" data-title="Cheats | OpenWF WebUI">
|
||||||
<div class="form-check">
|
<div class="row">
|
||||||
<input class="form-check-input" type="checkbox" id="skipStoryModeChoice" />
|
<div class="col-lg-4">
|
||||||
<label class="form-check-label" for="skipStoryModeChoice">Skip Story Mode Choice</label>
|
<div class="card mb-4">
|
||||||
|
<h5 class="card-header">Server</h5>
|
||||||
|
<form class="card-body" onsubmit="doChangeSettings();return false;">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="skipStoryModeChoice" />
|
||||||
|
<label class="form-check-label" for="skipStoryModeChoice">Skip Story Mode Choice</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="skipTutorial" />
|
||||||
|
<label class="form-check-label" for="skipTutorial">Skip Tutorial</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllScans" />
|
||||||
|
<label class="form-check-label" for="unlockAllScans">Unlock All Scans</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllMissions" />
|
||||||
|
<label class="form-check-label" for="unlockAllMissions">Unlock All Missions</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllQuests" />
|
||||||
|
<label class="form-check-label" for="unlockAllQuests">Unlock All Quests</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="completeAllQuests" />
|
||||||
|
<label class="form-check-label" for="completeAllQuests">Complete All Quests</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="infiniteResources" />
|
||||||
|
<label class="form-check-label" for="infiniteResources">Infinite Credits and Platinum</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllShipFeatures" />
|
||||||
|
<label class="form-check-label" for="unlockAllShipFeatures">Unlock All Ship Features</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllShipDecorations" />
|
||||||
|
<label class="form-check-label" for="unlockAllShipDecorations">Unlock All Ship Decorations</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllFlavourItems" />
|
||||||
|
<label class="form-check-label" for="unlockAllFlavourItems">
|
||||||
|
Unlock All <abbr title="Animation Sets, Glyphs, Plattes, etc.">Flavor Items</abbr>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unlockAllSkins" />
|
||||||
|
<label class="form-check-label" for="unlockAllSkins">Unlock All Skins</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="universalPolarityEverywhere" />
|
||||||
|
<label class="form-check-label" for="universalPolarityEverywhere">
|
||||||
|
Universal Polarity Everywhere
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group mt-2">
|
||||||
|
<label class="form-label" for="spoofMasteryRank">
|
||||||
|
Spoofed Mastery Rank (-1 to disable)
|
||||||
|
</label>
|
||||||
|
<input class="form-control" id="spoofMasteryRank" type="number" min="-1" />
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-primary mt-3" type="submit">Save Settings</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check">
|
</div>
|
||||||
<input class="form-check-input" type="checkbox" id="skipTutorial" />
|
<div class="col-lg-4">
|
||||||
<label class="form-check-label" for="skipTutorial">Skip Tutorial</label>
|
<div class="card mb-4">
|
||||||
|
<h5 class="card-header">Account</h5>
|
||||||
|
<div class="card-body">
|
||||||
|
<button class="btn btn-primary" onclick="doUnlockAllFocusSchools();">Unlock All Focus Schools</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check">
|
</div>
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllScans" />
|
<div class="col-lg-4">
|
||||||
<label class="form-check-label" for="unlockAllScans">Unlock All Scans</label>
|
<div class="card mb-4">
|
||||||
|
<h5 class="card-header">Client</h5>
|
||||||
|
<div id="client-cheats-nok" class="card-body">
|
||||||
|
Client cheats are currently unavailable. This could be because your client is not running or using a DLL without an HTTP interface.
|
||||||
|
</div>
|
||||||
|
<div id="client-cheats-ok" class="card-body d-none">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="skip_mission_start_timer" />
|
||||||
|
<label class="form-check-label" for="skip_mission_start_timer">
|
||||||
|
Skip Mission Start Timer
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group mt-3">
|
||||||
|
<label class="form-label" for="fov_override">FOV Override (0 to disable)</label>
|
||||||
|
<input id="fov_override" class="form-range" type="range" min="0" value="0" max="2260000" step="10000">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check">
|
</div>
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllMissions" />
|
|
||||||
<label class="form-check-label" for="unlockAllMissions">Unlock All Missions</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllQuests" />
|
|
||||||
<label class="form-check-label" for="unlockAllQuests">Unlock All Quests</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="completeAllQuests" />
|
|
||||||
<label class="form-check-label" for="completeAllQuests">Complete All Quests</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="infiniteResources" />
|
|
||||||
<label class="form-check-label" for="infiniteResources">
|
|
||||||
Infinite Credits and Platinum
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllShipFeatures" />
|
|
||||||
<label class="form-check-label" for="unlockAllShipFeatures">Unlock All Ship Features</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllShipDecorations" />
|
|
||||||
<label class="form-check-label" for="unlockAllShipDecorations">
|
|
||||||
Unlock All Ship Decorations
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllFlavourItems" />
|
|
||||||
<label class="form-check-label" for="unlockAllFlavourItems">
|
|
||||||
Unlock All <abbr title="Animation Sets, Glyphs, Plattes, etc.">Flavor Items</abbr>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllSkins" />
|
|
||||||
<label class="form-check-label" for="unlockAllSkins">Unlock All Skins</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="checkbox" id="universalPolarityEverywhere" />
|
|
||||||
<label class="form-check-label" for="universalPolarityEverywhere">
|
|
||||||
Universal Polarity Everywhere
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-group mt-2 mb-2">
|
|
||||||
<label class="form-label" for="spoofMasteryRank">
|
|
||||||
Spoofed Mastery Rank (-1 to disable)
|
|
||||||
</label>
|
|
||||||
<input class="form-control" id="spoofMasteryRank" type="number" min="-1" />
|
|
||||||
</div>
|
|
||||||
<button class="btn btn-primary mt-3" type="submit">Save Settings</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<datalist id="datalist-warframes"></datalist>
|
</div>
|
||||||
<datalist id="datalist-weapons"></datalist>
|
<datalist id="datalist-warframes"></datalist>
|
||||||
<datalist id="datalist-miscitems"></datalist>
|
<datalist id="datalist-weapons"></datalist>
|
||||||
<datalist id="datalist-mods"></datalist>
|
<datalist id="datalist-miscitems"></datalist>
|
||||||
<script src="libs/jquery-3.6.0.min.js"></script>
|
<datalist id="datalist-mods"></datalist>
|
||||||
<script src="libs/whirlpool-js.min.js"></script>
|
<script src="libs/jquery-3.6.0.min.js"></script>
|
||||||
<script src="libs/single.js"></script>
|
<script src="libs/whirlpool-js.min.js"></script>
|
||||||
<script src="riven-tool/RivenParser.js"></script>
|
<script src="libs/single.js"></script>
|
||||||
<script src="script.js"></script>
|
<script src="riven-tool/RivenParser.js"></script>
|
||||||
<script src="libs/bootstrap.bundle.min.js"></script>
|
<script src="script.js"></script>
|
||||||
</body>
|
<script src="libs/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -701,3 +701,83 @@ function doChangeSettings() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cheats route
|
||||||
|
|
||||||
|
fetch("http://localhost:61558/ping", { mode: "no-cors" }).then(() => {
|
||||||
|
$("#client-cheats-nok").addClass("d-none");
|
||||||
|
$("#client-cheats-ok").removeClass("d-none");
|
||||||
|
|
||||||
|
fetch("http://localhost:61558/skip_mission_start_timer")
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(res => {
|
||||||
|
document.getElementById("skip_mission_start_timer").checked = res == "1";
|
||||||
|
});
|
||||||
|
document.getElementById("skip_mission_start_timer").onchange = function () {
|
||||||
|
fetch("http://localhost:61558/skip_mission_start_timer?" + this.checked);
|
||||||
|
};
|
||||||
|
|
||||||
|
fetch("http://localhost:61558/fov_override")
|
||||||
|
.then(res => res.text())
|
||||||
|
.then(res => {
|
||||||
|
document.getElementById("fov_override").value = parseFloat(res) * 10000;
|
||||||
|
});
|
||||||
|
document.getElementById("fov_override").oninput = function () {
|
||||||
|
fetch("http://localhost:61558/fov_override?" + this.value);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
function doUnlockAllFocusSchools() {
|
||||||
|
revalidateAuthz(() => {
|
||||||
|
$.get("/api/inventory.php?" + window.authz + "&xpBasedLevelCapDisabled=1").done(async data => {
|
||||||
|
const missingFocusUpgrades = {
|
||||||
|
"/Lotus/Upgrades/Focus/Attack/AttackFocusAbility": true,
|
||||||
|
"/Lotus/Upgrades/Focus/Tactic/TacticFocusAbility": true,
|
||||||
|
"/Lotus/Upgrades/Focus/Ward/WardFocusAbility": true,
|
||||||
|
"/Lotus/Upgrades/Focus/Defense/DefenseFocusAbility": true,
|
||||||
|
"/Lotus/Upgrades/Focus/Power/PowerFocusAbility": true
|
||||||
|
};
|
||||||
|
if (data.FocusUpgrades) {
|
||||||
|
for (const focusUpgrade of data.FocusUpgrades) {
|
||||||
|
if (focusUpgrade.ItemType in missingFocusUpgrades) {
|
||||||
|
delete missingFocusUpgrades[focusUpgrade.ItemType];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const upgradeType of Object.keys(missingFocusUpgrades)) {
|
||||||
|
await unlockFocusSchool(upgradeType);
|
||||||
|
}
|
||||||
|
if (Object.keys(missingFocusUpgrades).length == 0) {
|
||||||
|
alert("All focus schools are already unlocked.");
|
||||||
|
} else {
|
||||||
|
alert(
|
||||||
|
"Unlocked " +
|
||||||
|
Object.keys(missingFocusUpgrades).length +
|
||||||
|
" new focus schools! An inventory update will be needed for the changes to be reflected in-game. Visiting the navigation should be the easiest way to trigger that."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function unlockFocusSchool(upgradeType) {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
// Deselect current FocusAbility so we will be able to unlock the way for free
|
||||||
|
$.post({
|
||||||
|
url: "/api/focus.php?" + window.authz + "&op=5",
|
||||||
|
contentType: "text/plain",
|
||||||
|
data: "{}"
|
||||||
|
}).done(function () {
|
||||||
|
// Unlock the way now
|
||||||
|
$.post({
|
||||||
|
url: "/api/focus.php?" + window.authz + "&op=2",
|
||||||
|
contentType: "text/plain",
|
||||||
|
data: JSON.stringify({
|
||||||
|
FocusType: upgradeType
|
||||||
|
})
|
||||||
|
}).done(function () {
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user