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

XFESpaceNinjaServer

A simple server for a small space ninja game

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

XFEstudio/XFESpaceNinjaServer

feat: no mastery rank up cooldown cheat (#1478)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1478 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

64da8c2e
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

9 个文件 +18 -1
Modified config.json.example +1 -0
@@ -30,6 +30,7 @@
30 30 "unlockArcanesEverywhere": false,
31 31 "noDailyStandingLimits": false,
32 32 "noArgonCrystalDecay": false,
33 "noMasteryRankUpCooldown": false,
33 34 "noVendorPurchaseLimits": true,
34 35 "instantResourceExtractorDrones": false,
35 36 "noDojoRoomBuildStage": false,
Modified src/controllers/api/trainingResultController.ts +7 -1
@@ -6,6 +6,7 @@ import { RequestHandler } from "express";
6 6 import { unixTimesInMs } from "@/src/constants/timeConstants";
7 7 import { IInventoryChanges } from "@/src/types/purchaseTypes";
8 8 import { createMessage } from "@/src/services/inboxService";
9 import { config } from "@/src/services/configService";
9 10
10 11 interface ITrainingResultsRequest {
11 12 numLevelsGained: number;
@@ -25,7 +26,12 @@ const trainingResultController: RequestHandler = async (req, res): Promise<void>
25 26 const inventory = await getInventory(accountId);
26 27
27 28 if (trainingResults.numLevelsGained == 1) {
28 inventory.TrainingDate = new Date(Date.now() + unixTimesInMs.hour * 23);
29 let time = Date.now();
30 if (!config.noMasteryRankUpCooldown) {
31 time += unixTimesInMs.hour * 23;
32 }
33 inventory.TrainingDate = new Date(time);
34
29 35 inventory.PlayerLevel += 1;
30 36
31 37 await createMessage(accountId, [
Modified src/services/configService.ts +1 -0
@@ -35,6 +35,7 @@ interface IConfig {
35 35 unlockArcanesEverywhere?: boolean;
36 36 noDailyStandingLimits?: boolean;
37 37 noArgonCrystalDecay?: boolean;
38 noMasteryRankUpCooldown?: boolean;
38 39 noVendorPurchaseLimits?: boolean;
39 40 instantResourceExtractorDrones?: boolean;
40 41 noDojoRoomBuildStage?: boolean;
Modified static/webui/index.html +4 -0
@@ -592,6 +592,10 @@
592 592 <input class="form-check-input" type="checkbox" id="noArgonCrystalDecay" />
593 593 <label class="form-check-label" for="noArgonCrystalDecay" data-loc="cheats_noArgonCrystalDecay"></label>
594 594 </div>
595 <div class="form-check">
596 <input class="form-check-input" type="checkbox" id="noMasteryRankUpCooldown" />
597 <label class="form-check-label" for="noMasteryRankUpCooldown" data-loc="cheats_noMasteryRankUpCooldown"></label>
598 </div>
595 599 <div class="form-check">
596 600 <input class="form-check-input" type="checkbox" id="noVendorPurchaseLimits" />
597 601 <label class="form-check-label" for="noVendorPurchaseLimits" data-loc="cheats_noVendorPurchaseLimits"></label>
Modified static/webui/translations/de.js +1 -0
@@ -132,6 +132,7 @@ dict = {
132 132 cheats_unlockArcanesEverywhere: `Arkana-Adapter überall`,
133 133 cheats_noDailyStandingLimits: `Kein tägliches Ansehenslimit`,
134 134 cheats_noArgonCrystalDecay: `Argon-Kristalle verschwinden niemals`,
135 cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
135 136 cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`,
136 137 cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
137 138 cheats_noDojoRoomBuildStage: `Kein Dojo-Raum-Bauvorgang`,
Modified static/webui/translations/en.js +1 -0
@@ -131,6 +131,7 @@ dict = {
131 131 cheats_unlockArcanesEverywhere: `Arcane Adapters Everywhere`,
132 132 cheats_noDailyStandingLimits: `No Daily Standing Limits`,
133 133 cheats_noArgonCrystalDecay: `No Argon Crystal Decay`,
134 cheats_noMasteryRankUpCooldown: `No Mastery Rank Up Cooldown`,
134 135 cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`,
135 136 cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
136 137 cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
Modified static/webui/translations/fr.js +1 -0
@@ -132,6 +132,7 @@ dict = {
132 132 cheats_unlockArcanesEverywhere: `Adaptateur d'Arcanes partout`,
133 133 cheats_noDailyStandingLimits: `Pas de limite de réputation journalière`,
134 134 cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
135 cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
135 136 cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
136 137 cheats_instantResourceExtractorDrones: `Ressources de drone d'extraction instantannées`,
137 138 cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
Modified static/webui/translations/ru.js +1 -0
@@ -132,6 +132,7 @@ dict = {
132 132 cheats_unlockArcanesEverywhere: `Адаптеры для мистификаторов везде`,
133 133 cheats_noDailyStandingLimits: `Без ежедневных ограничений репутации`,
134 134 cheats_noArgonCrystalDecay: `Без распада аргоновых кристаллов`,
135 cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
135 136 cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у вендоров`,
136 137 cheats_instantResourceExtractorDrones: `Мгновенные Экстракторы Ресурсов`,
137 138 cheats_noDojoRoomBuildStage: `Мгновенное Строительтво Комнат Додзё`,
Modified static/webui/translations/zh.js +1 -0
@@ -132,6 +132,7 @@ dict = {
132 132 cheats_unlockArcanesEverywhere: `全物品自带赋能适配器`,
133 133 cheats_noDailyStandingLimits: `无每日声望限制`,
134 134 cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
135 cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
135 136 cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
136 137 cheats_instantResourceExtractorDrones: `即时资源采集无人机`,
137 138 cheats_noDojoRoomBuildStage: `无视道场房间建造阶段`,