返回提交历史
Modified
config.json.example
+1
-0
Modified
src/controllers/api/trainingResultController.ts
+7
-1
Modified
src/services/configService.ts
+1
-0
Modified
static/webui/index.html
+4
-0
Modified
static/webui/translations/de.js
+1
-0
Modified
static/webui/translations/en.js
+1
-0
Modified
static/webui/translations/fr.js
+1
-0
Modified
static/webui/translations/ru.js
+1
-0
Modified
static/webui/translations/zh.js
+1
-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
代码差异
9 个文件
+18
-1
@@ -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,
@@ -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, [
@@ -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;
@@ -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>
@@ -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`,
@@ -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`,
@@ -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`,
@@ -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: `Мгновенное Строительтво Комнат Додзё`,
@@ -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: `无视道场房间建造阶段`,