返回提交历史
Modified
src/controllers/api/inventoryController.ts
+5
-0
Modified
src/controllers/custom/addXpController.ts
+6
-1
Modified
src/models/inventoryModels/inventoryModel.ts
+1
-0
Modified
src/services/inventoryService.ts
+4
-1
Modified
src/types/equipmentTypes.ts
+1
-1
Modified
src/types/inventoryTypes/inventoryTypes.ts
+1
-0
Modified
static/webui/index.html
+5
-1
Modified
static/webui/translations/de.js
+1
-0
Modified
static/webui/translations/en.js
+1
-0
Modified
static/webui/translations/es.js
+1
-0
Modified
static/webui/translations/fr.js
+1
-0
Modified
static/webui/translations/ru.js
+1
-0
Modified
static/webui/translations/uk.js
+1
-0
Modified
static/webui/translations/zh.js
+1
-0
XFEstudio/XFESpaceNinjaServer
feat: infiniteRevives cheat for Pre-U18 (#4126)
- Shows 1B revives and it seems the client always sticks with that number (despite reviving) while in mission. - Versions like U17.8 will show 4 revives in mission, but it goes into negative (basically also infinite). Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4126 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: Animan8000 <187183497+Veniman8000@users.noreply.github.com> Co-committed-by: Animan8000 <187183497+Veniman8000@users.noreply.github.com>
31fc8633
代码差异
14 个文件
+30
-4
@@ -399,6 +399,11 @@ export const getInventoryResponse = async (
399
399
if (inventory.infiniteRegalAya) {
400
400
inventoryResponse.PrimeTokens = 999999999;
401
401
}
402
if (inventory.infiniteRevives) {
403
for (const suit of inventoryResponse.Suits) {
404
suit.ExtraRemaining = 999999999;
405
}
406
}
402
407
if (inventory.infiniteTrades) {
403
408
inventoryResponse.TradesRemaining = 9999;
404
409
}
@@ -11,7 +11,12 @@ import type { RequestHandler } from "express";
11
11
export const addXpController: RequestHandler = async (req, res) => {
12
12
const accountId = await getAccountIdForRequest(req);
13
13
const request = req.body as IAddXpRequest;
14
const inventory = await getInventory2(accountId, "XPInfo", ...(Object.keys(request) as TEquipmentKey[]));
14
const inventory = await getInventory2(
15
accountId,
16
"XPInfo",
17
"infiniteRevives",
18
...(Object.keys(request) as TEquipmentKey[])
19
);
15
20
for (const [category, gear] of Object.entries(request)) {
16
21
for (const clientItem of gear) {
17
22
const dbItem = inventory[category as TEquipmentKey].id((clientItem.ItemId as IOid).$oid);
@@ -1594,6 +1594,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
1594
1594
infinitePlatinum: Boolean,
1595
1595
infiniteEndo: Boolean,
1596
1596
infiniteRegalAya: Boolean,
1597
infiniteRevives: Boolean,
1597
1598
infiniteTrades: Boolean,
1598
1599
infiniteGifts: Boolean,
1599
1600
infiniteHelminthMaterials: Boolean,
@@ -2271,7 +2271,7 @@ const xpEarningParts: readonly string[] = [
2271
2271
];
2272
2272
2273
2273
export const applyClientEquipmentUpdates = <K extends TEquipmentKey>(
2274
inventory: Pick<TInventoryDatabaseDocument, K | "XPInfo">,
2274
inventory: Pick<TInventoryDatabaseDocument, K | "XPInfo" | "infiniteRevives">,
2275
2275
gearArray: IEquipmentClient[],
2276
2276
categoryName: K,
2277
2277
buildLabel: string
@@ -2327,6 +2327,9 @@ export const applyClientEquipmentUpdates = <K extends TEquipmentKey>(
2327
2327
}
2328
2328
2329
2329
if (ExtraRemaining !== undefined) {
2330
if (inventory.infiniteRevives) {
2331
return;
2332
}
2330
2333
if (version_compare(buildLabel, gameToBuildVersion["10.3.3"]) >= 0) {
2331
2334
if (ExtraRemaining > 0) {
2332
2335
throw new Error(
@@ -65,7 +65,7 @@ export interface IEquipmentDatabase {
65
65
IsNew?: boolean;
66
66
AltWeaponModeId?: Types.ObjectId;
67
67
UpgradeNodes?: number;
68
ExtraRemaining?: number; // Revives remaining
68
ExtraRemaining?: number; // Revives remaining (< U18)
69
69
_id: Types.ObjectId;
70
70
}
71
71
@@ -54,6 +54,7 @@ export const accountCheatBooleans = [
54
54
"infinitePlatinum",
55
55
"infiniteEndo",
56
56
"infiniteRegalAya",
57
"infiniteRevives",
57
58
"infiniteTrades",
58
59
"infiniteGifts",
59
60
"infiniteHelminthMaterials",
@@ -986,6 +986,10 @@
986
986
<input class="form-check-input" type="checkbox" id="infiniteRegalAya" data-enabling-permission="toggleCheat.infiniteRegalAya" />
987
987
<label class="form-check-label" for="infiniteRegalAya" data-loc="cheats_infiniteRegalAya"></label>
988
988
</div>
989
<div class="form-check">
990
<input class="form-check-input" type="checkbox" id="infiniteRevives" data-enabling-permission="toggleCheat.infiniteRevives" />
991
<label class="form-check-label" for="infiniteRevives" data-loc="cheats_infiniteRevives"></label>
992
</div>
989
993
<div class="form-check">
990
994
<input class="form-check-input" type="checkbox" id="infiniteTrades" data-enabling-permission="toggleCheat.infiniteTrades" />
991
995
<label class="form-check-label" for="infiniteTrades" data-loc="cheats_infiniteTrades"></label>
@@ -1078,7 +1082,7 @@
1078
1082
<input class="form-check-input" type="checkbox" id="claimingBlueprintRefundsIngredients" data-enabling-permission="toggleCheat.claimingBlueprintRefundsIngredients" />
1079
1083
<label class="form-check-label" for="claimingBlueprintRefundsIngredients" data-loc="cheats_claimingBlueprintRefundsIngredients"></label>
1080
1084
</div>
1081
<div class="form-check">
1085
<div class="form-check">
1082
1086
<input class="form-check-input" type="checkbox" id="missionsCanGiveAllRelics" data-enabling-permission="toggleCheat.missionsCanGiveAllRelics" />
1083
1087
<label class="form-check-label" for="missionsCanGiveAllRelics" data-loc="cheats_missionsCanGiveAllRelics"></label>
1084
1088
</div>
@@ -254,6 +254,7 @@ dict = {
254
254
cheats_infinitePlatinum: `Unendlich Platinum`,
255
255
cheats_infiniteEndo: `Unendlich Endo`,
256
256
cheats_infiniteRegalAya: `Unendlich Reines Aya`,
257
cheats_infiniteRevives: `Unendlich Wiederbelebungen (vor U18)`,
257
258
cheats_infiniteTrades: `Unendlich handeln`,
258
259
cheats_infiniteGifts: `Unendlich schenken`,
259
260
cheats_infiniteHelminthMaterials: `Unendlich Helminth-Materialien`,
@@ -253,6 +253,7 @@ dict = {
253
253
cheats_infinitePlatinum: `Infinite Platinum`,
254
254
cheats_infiniteEndo: `Infinite Endo`,
255
255
cheats_infiniteRegalAya: `Infinite Regal Aya`,
256
cheats_infiniteRevives: `Infinite Revives (Pre-U18)`,
256
257
cheats_infiniteTrades: `Infinite Trades`,
257
258
cheats_infiniteGifts: `Infinite Gifts`,
258
259
cheats_infiniteHelminthMaterials: `Infinite Helminth Materials`,
@@ -254,6 +254,7 @@ dict = {
254
254
cheats_infinitePlatinum: `Platino infinito`,
255
255
cheats_infiniteEndo: `Endo infinito`,
256
256
cheats_infiniteRegalAya: `Aya Real infinita`,
257
cheats_infiniteRevives: `[UNTRANSLATED] Infinite Revives (Pre-U18)`,
257
258
cheats_infiniteTrades: `[UNTRANSLATED] Infinite Trades`,
258
259
cheats_infiniteGifts: `[UNTRANSLATED] Infinite Gifts`,
259
260
cheats_infiniteHelminthMaterials: `Materiales Helminto infinitos`,
@@ -254,6 +254,7 @@ dict = {
254
254
cheats_infinitePlatinum: `Platinum infini`,
255
255
cheats_infiniteEndo: `Endo infini`,
256
256
cheats_infiniteRegalAya: `Aya Raffiné infini`,
257
cheats_infiniteRevives: `[UNTRANSLATED] Infinite Revives (Pre-U18)`,
257
258
cheats_infiniteTrades: `Échanges infinis`,
258
259
cheats_infiniteGifts: `Cadeaux infinis`,
259
260
cheats_infiniteHelminthMaterials: `Ressources d'Helminth infinies`,
@@ -254,6 +254,7 @@ dict = {
254
254
cheats_infinitePlatinum: `Бесконечная Платина`,
255
255
cheats_infiniteEndo: `Бесконечное Эндо`,
256
256
cheats_infiniteRegalAya: `Бесконечная Королевская Айя`,
257
cheats_infiniteRevives: `[UNTRANSLATED] Infinite Revives (Pre-U18)`,
257
258
cheats_infiniteTrades: `Бесконечные обмены`,
258
259
cheats_infiniteGifts: `Бесконечные подарки`,
259
260
cheats_infiniteHelminthMaterials: `Бесконечные секреции Гельминта`,