XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

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
Animan8000 <187183497+Veniman8000@users.noreply.github.com>
提交于

代码差异

14 个文件 +30 -4
Modified src/controllers/api/inventoryController.ts +5 -0
@@ -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 }
Modified src/controllers/custom/addXpController.ts +6 -1
@@ -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);
Modified src/models/inventoryModels/inventoryModel.ts +1 -0
@@ -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,
Modified src/services/inventoryService.ts +4 -1
@@ -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(
Modified src/types/equipmentTypes.ts +1 -1
@@ -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
Modified src/types/inventoryTypes/inventoryTypes.ts +1 -0
@@ -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",
Modified static/webui/index.html +5 -1
@@ -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>
Modified static/webui/translations/de.js +1 -0
@@ -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`,
Modified static/webui/translations/en.js +1 -0
@@ -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`,
Modified static/webui/translations/es.js +1 -0
@@ -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`,
Modified static/webui/translations/fr.js +1 -0
@@ -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`,
Modified static/webui/translations/ru.js +1 -0
@@ -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: `Бесконечные секреции Гельминта`,
Modified static/webui/translations/uk.js +1 -0
Modified static/webui/translations/zh.js +1 -0