feat: no mastery rank up cooldown cheat #1478
@ -30,6 +30,7 @@
 | 
				
			|||||||
  "unlockArcanesEverywhere": false,
 | 
					  "unlockArcanesEverywhere": false,
 | 
				
			||||||
  "noDailyStandingLimits": false,
 | 
					  "noDailyStandingLimits": false,
 | 
				
			||||||
  "noArgonCrystalDecay": false,
 | 
					  "noArgonCrystalDecay": false,
 | 
				
			||||||
 | 
					  "noMasteryRankUpCooldown": false,
 | 
				
			||||||
  "noVendorPurchaseLimits": true,
 | 
					  "noVendorPurchaseLimits": true,
 | 
				
			||||||
  "instantResourceExtractorDrones": false,
 | 
					  "instantResourceExtractorDrones": false,
 | 
				
			||||||
  "noDojoRoomBuildStage": false,
 | 
					  "noDojoRoomBuildStage": false,
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,7 @@ import { RequestHandler } from "express";
 | 
				
			|||||||
import { unixTimesInMs } from "@/src/constants/timeConstants";
 | 
					import { unixTimesInMs } from "@/src/constants/timeConstants";
 | 
				
			||||||
import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
					import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
				
			||||||
import { createMessage } from "@/src/services/inboxService";
 | 
					import { createMessage } from "@/src/services/inboxService";
 | 
				
			||||||
 | 
					import { config } from "@/src/services/configService";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface ITrainingResultsRequest {
 | 
					interface ITrainingResultsRequest {
 | 
				
			||||||
    numLevelsGained: number;
 | 
					    numLevelsGained: number;
 | 
				
			||||||
@ -25,7 +26,12 @@ const trainingResultController: RequestHandler = async (req, res): Promise<void>
 | 
				
			|||||||
    const inventory = await getInventory(accountId);
 | 
					    const inventory = await getInventory(accountId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (trainingResults.numLevelsGained == 1) {
 | 
					    if (trainingResults.numLevelsGained == 1) {
 | 
				
			||||||
        inventory.TrainingDate = new Date(Date.now() + unixTimesInMs.hour * 23);
 | 
					        let time = Date.now();
 | 
				
			||||||
 | 
					        if (!config.noMasteryRankUpCooldown) {
 | 
				
			||||||
 | 
					            time += unixTimesInMs.hour * 23;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        inventory.TrainingDate = new Date(time);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        inventory.PlayerLevel += 1;
 | 
					        inventory.PlayerLevel += 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        await createMessage(accountId, [
 | 
					        await createMessage(accountId, [
 | 
				
			||||||
 | 
				
			|||||||
@ -35,6 +35,7 @@ interface IConfig {
 | 
				
			|||||||
    unlockArcanesEverywhere?: boolean;
 | 
					    unlockArcanesEverywhere?: boolean;
 | 
				
			||||||
    noDailyStandingLimits?: boolean;
 | 
					    noDailyStandingLimits?: boolean;
 | 
				
			||||||
    noArgonCrystalDecay?: boolean;
 | 
					    noArgonCrystalDecay?: boolean;
 | 
				
			||||||
 | 
					    noMasteryRankUpCooldown?: boolean;
 | 
				
			||||||
    noVendorPurchaseLimits?: boolean;
 | 
					    noVendorPurchaseLimits?: boolean;
 | 
				
			||||||
    instantResourceExtractorDrones?: boolean;
 | 
					    instantResourceExtractorDrones?: boolean;
 | 
				
			||||||
    noDojoRoomBuildStage?: boolean;
 | 
					    noDojoRoomBuildStage?: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -592,6 +592,10 @@
 | 
				
			|||||||
                                        <input class="form-check-input" type="checkbox" id="noArgonCrystalDecay" />
 | 
					                                        <input class="form-check-input" type="checkbox" id="noArgonCrystalDecay" />
 | 
				
			||||||
                                        <label class="form-check-label" for="noArgonCrystalDecay" data-loc="cheats_noArgonCrystalDecay"></label>
 | 
					                                        <label class="form-check-label" for="noArgonCrystalDecay" data-loc="cheats_noArgonCrystalDecay"></label>
 | 
				
			||||||
                                    </div>
 | 
					                                    </div>
 | 
				
			||||||
 | 
					                                    <div class="form-check">
 | 
				
			||||||
 | 
					                                        <input class="form-check-input" type="checkbox" id="noMasteryRankUpCooldown" />
 | 
				
			||||||
 | 
					                                        <label class="form-check-label" for="noMasteryRankUpCooldown" data-loc="cheats_noMasteryRankUpCooldown"></label>
 | 
				
			||||||
 | 
					                                    </div>
 | 
				
			||||||
                                    <div class="form-check">
 | 
					                                    <div class="form-check">
 | 
				
			||||||
                                        <input class="form-check-input" type="checkbox" id="noVendorPurchaseLimits" />
 | 
					                                        <input class="form-check-input" type="checkbox" id="noVendorPurchaseLimits" />
 | 
				
			||||||
                                        <label class="form-check-label" for="noVendorPurchaseLimits" data-loc="cheats_noVendorPurchaseLimits"></label>
 | 
					                                        <label class="form-check-label" for="noVendorPurchaseLimits" data-loc="cheats_noVendorPurchaseLimits"></label>
 | 
				
			||||||
 | 
				
			|||||||
@ -132,6 +132,7 @@ dict = {
 | 
				
			|||||||
    cheats_unlockArcanesEverywhere: `Arkana-Adapter überall`,
 | 
					    cheats_unlockArcanesEverywhere: `Arkana-Adapter überall`,
 | 
				
			||||||
    cheats_noDailyStandingLimits: `Kein tägliches Ansehenslimit`,
 | 
					    cheats_noDailyStandingLimits: `Kein tägliches Ansehenslimit`,
 | 
				
			||||||
    cheats_noArgonCrystalDecay: `Argon-Kristalle verschwinden niemals`,
 | 
					    cheats_noArgonCrystalDecay: `Argon-Kristalle verschwinden niemals`,
 | 
				
			||||||
 | 
					    cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
 | 
				
			||||||
    cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`,
 | 
					    cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
 | 
					    cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
 | 
				
			||||||
    cheats_noDojoRoomBuildStage: `Kein Dojo-Raum-Bauvorgang`,
 | 
					    cheats_noDojoRoomBuildStage: `Kein Dojo-Raum-Bauvorgang`,
 | 
				
			||||||
 | 
				
			|||||||
@ -131,6 +131,7 @@ dict = {
 | 
				
			|||||||
    cheats_unlockArcanesEverywhere: `Arcane Adapters Everywhere`,
 | 
					    cheats_unlockArcanesEverywhere: `Arcane Adapters Everywhere`,
 | 
				
			||||||
    cheats_noDailyStandingLimits: `No Daily Standing Limits`,
 | 
					    cheats_noDailyStandingLimits: `No Daily Standing Limits`,
 | 
				
			||||||
    cheats_noArgonCrystalDecay: `No Argon Crystal Decay`,
 | 
					    cheats_noArgonCrystalDecay: `No Argon Crystal Decay`,
 | 
				
			||||||
 | 
					    cheats_noMasteryRankUpCooldown: `No Mastery Rank Up Cooldown`,
 | 
				
			||||||
    cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`,
 | 
					    cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
 | 
					    cheats_instantResourceExtractorDrones: `Instant Resource Extractor Drones`,
 | 
				
			||||||
    cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
 | 
					    cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
 | 
				
			||||||
 | 
				
			|||||||
@ -132,6 +132,7 @@ dict = {
 | 
				
			|||||||
    cheats_unlockArcanesEverywhere: `Adaptateur d'Arcanes partout`,
 | 
					    cheats_unlockArcanesEverywhere: `Adaptateur d'Arcanes partout`,
 | 
				
			||||||
    cheats_noDailyStandingLimits: `Pas de limite de réputation journalière`,
 | 
					    cheats_noDailyStandingLimits: `Pas de limite de réputation journalière`,
 | 
				
			||||||
    cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
 | 
					    cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
 | 
				
			||||||
 | 
					    cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
 | 
				
			||||||
    cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
 | 
					    cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Ressources de drone d'extraction instantannées`,
 | 
					    cheats_instantResourceExtractorDrones: `Ressources de drone d'extraction instantannées`,
 | 
				
			||||||
    cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
 | 
					    cheats_noDojoRoomBuildStage: `No Dojo Room Build Stage`,
 | 
				
			||||||
 | 
				
			|||||||
@ -132,6 +132,7 @@ dict = {
 | 
				
			|||||||
    cheats_unlockArcanesEverywhere: `Адаптеры для мистификаторов везде`,
 | 
					    cheats_unlockArcanesEverywhere: `Адаптеры для мистификаторов везде`,
 | 
				
			||||||
    cheats_noDailyStandingLimits: `Без ежедневных ограничений репутации`,
 | 
					    cheats_noDailyStandingLimits: `Без ежедневных ограничений репутации`,
 | 
				
			||||||
    cheats_noArgonCrystalDecay: `Без распада аргоновых кристаллов`,
 | 
					    cheats_noArgonCrystalDecay: `Без распада аргоновых кристаллов`,
 | 
				
			||||||
 | 
					    cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
 | 
				
			||||||
    cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у вендоров`,
 | 
					    cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у вендоров`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `Мгновенные Экстракторы Ресурсов`,
 | 
					    cheats_instantResourceExtractorDrones: `Мгновенные Экстракторы Ресурсов`,
 | 
				
			||||||
    cheats_noDojoRoomBuildStage: `Мгновенное Строительтво Комнат Додзё`,
 | 
					    cheats_noDojoRoomBuildStage: `Мгновенное Строительтво Комнат Додзё`,
 | 
				
			||||||
 | 
				
			|||||||
@ -132,6 +132,7 @@ dict = {
 | 
				
			|||||||
    cheats_unlockArcanesEverywhere: `全物品自带赋能适配器`,
 | 
					    cheats_unlockArcanesEverywhere: `全物品自带赋能适配器`,
 | 
				
			||||||
    cheats_noDailyStandingLimits: `无每日声望限制`,
 | 
					    cheats_noDailyStandingLimits: `无每日声望限制`,
 | 
				
			||||||
    cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
 | 
					    cheats_noArgonCrystalDecay: `[UNTRANSLATED] No Argon Crystal Decay`,
 | 
				
			||||||
 | 
					    cheats_noMasteryRankUpCooldown: `[UNTRANSLATED] No Mastery Rank Up Cooldown`,
 | 
				
			||||||
    cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
 | 
					    cheats_noVendorPurchaseLimits: `[UNTRANSLATED] No Vendor Purchase Limits`,
 | 
				
			||||||
    cheats_instantResourceExtractorDrones: `即时资源采集无人机`,
 | 
					    cheats_instantResourceExtractorDrones: `即时资源采集无人机`,
 | 
				
			||||||
    cheats_noDojoRoomBuildStage: `无视道场房间建造阶段`,
 | 
					    cheats_noDojoRoomBuildStage: `无视道场房间建造阶段`,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user