Prodigy-Hacking / ProdigyMathGameHacking

Prodigy Hacking: Hacking for the right reasons. | Questions? Ask on our Discord. https://discord.gg/XQDfbfq
https://prodigyhacking.com
Other
17 stars 10 forks source link

Easy Mode #1

Closed JadeGrey closed 3 years ago

JadeGrey commented 4 years ago

breaks battles

PatheticMustan commented 4 years ago
// TODO: Investigate why easy mode breaks battles
PIXI.game.prodigy.debugMisc.easyMode(1, 100); // Easy mode, 100% correct

Yeah, I know about this issue, but I'm not exactly sure why this happens. Maybe I'm missing something important? I'll definitely look into this! In the meantime, do you have any suggestions for hacks?

JadeGrey commented 4 years ago

i have a suggestion we could find out how to get past enemies w/o getting attacked and find out how to fully complete quest w/o just quest requirements

JadeGrey commented 4 years ago

i tried the PIXI.game.prodigy.debugQuests.completeQuestRequirements("") with the area in the quotes but takes a while to just complete one job and not all jobs can be completed

PatheticMustan commented 4 years ago

@bruh5000, you can complete quests with the function you just said.

Here's a list of all the possible zones:

forest
shiverchill
skywatch
lamplight
dyno
bonfire_spire
house
toyzone
shipwreck_shore
darktower
academy
archives
earthtower
tower_town

Make sure you type the zone EXACTLY as it is. It's case sensitive, and if you mis-type it, it won't work.

ArcerionDev commented 4 years ago

Well, we now have Teleport.js, so this matter is a little less pressing at this point...

ArcerionDev commented 4 years ago

I noticed, that as @bruh5000 said earlier, the PIXI.game.prodigy.debugQuests.completeQuestRequirements("") script does NOT work for all quests. We should try and look into this, and see whether different quests function in different ways...

PatheticMustan commented 4 years ago

What quests don't work?

ArcerionDev commented 4 years ago

Boss fight quests, and occasionally ones that involve picking up items. Other than that, there's no exact pattern.

On Wed, Feb 26, 2020 at 9:43 AM Mustan Pathetic notifications@github.com wrote:

What quests don't work?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/PatheticMustan/ProdigyMathGameHacking/issues/1?email_source=notifications&email_token=AOQ7MLA47OKVZHRPYH77CDTREZ5ZDA5CNFSM4KR4PSMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENAPWHI#issuecomment-591461149, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOQ7MLBSEOJOSISSDSD72D3REZ5ZDANCNFSM4KR4PSMA .

PatheticMustan commented 4 years ago

Until we find gameconstants, this will be closed.

ArcerionDev commented 4 years ago

OK

On Thu, Feb 27, 2020 at 11:55 PM Mustan Pathetic notifications@github.com wrote:

Closed #1 https://github.com/PatheticMustan/ProdigyMathGameHacking/issues/1.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/PatheticMustan/ProdigyMathGameHacking/issues/1?email_source=notifications&email_token=AOQ7MLGFK4BRHVSTURH7GNDRFCKM5A5CNFSM4KR4PSMKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOW6N4GTI#event-3080438605, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOQ7MLGJ3WXO22FGR2UX4A3RFCKM5ANCNFSM4KR4PSMA .

ArcerionDev commented 4 years ago

I may have found an alternative to easyMode... possibly PIXI.game.prodigy.player.modifiers.miss would be effective in this case? Because as I see it, whenever you get a question wrong, it sets miss to one, or a hundred, or whatever. If we were able to just set miss back to 0, then even though you get the question wrong, you never miss???

iamtheone12345 commented 4 years ago

This isn't related but you can get out of multiplayer battles using the escape hack. The battle won't count as a loss. I do it all the time to stallers.

iamtheone12345 commented 4 years ago

However, you won't get any points.

ArcerionDev commented 4 years ago

That would make sense. Thanks for figuring that out.

On Tue, Mar 10, 2020 at 11:19 PM iamtheone12345 notifications@github.com wrote:

However, you won't get any points.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/PatheticMustan/ProdigyMathGameHacking/issues/1?email_source=notifications&email_token=AOQ7MLA2RM3PXH2WO5E4LELRG37LJA5CNFSM4KR4PSMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEON7MCI#issuecomment-597423625, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOQ7MLDVFNOTOSZZCSEE6Q3RG37LJANCNFSM4KR4PSMA .

GyarGG commented 4 years ago

when i use escapeBattle in multiplayer, it marks that as a loss for me... and i still dont get points ;0

On March 11, 2020 at 6:42 AM Avn1114 notifications@github.com wrote:

That would make sense. Thanks for figuring that out.

On Tue, Mar 10, 2020 at 11:19 PM iamtheone12345 <notifications@github.com>
wrote:

> However, you won't get any points.
>
> —
> You are receiving this because you modified the open/close state.
> Reply to this email directly, view it on GitHub
> <https://github.com/PatheticMustan/ProdigyMathGameHacking/issues/1?email_source=notifications&email_token=AOQ7MLA2RM3PXH2WO5E4LELRG37LJA5CNFSM4KR4PSMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEON7MCI#issuecomment-597423625>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AOQ7MLDVFNOTOSZZCSEE6Q3RG37LJANCNFSM4KR4PSMA>
> .
>

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/PatheticMustan/ProdigyMathGameHacking/issues/1#issuecomment-597642541 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AOSEJGFWMCDAFWZYJ3BBH53RG6INVANCNFSM4KR4PSMA .
ghost commented 4 years ago

Use this, buddy: javascript:(function()%7BPIXI.game.prodigy.debugMisc.escapeBattle()%7D)()%3B

ghost commented 4 years ago

@bruh5000, you can complete quests with the function you just said.

Here's a list of all the possible zones:

forest
shiverchill
skywatch
lamplight
dyno
bonfire_spire
house
toyzone
shipwreck_shore
darktower
academy
archives
earthtower
tower_town

Make sure you type the zone EXACTLY as it is. It's case sensitive, and if you mis-type it, it won't work.

What's the toyzone?

ghost commented 4 years ago

@bruh5000, you can complete quests with the function you just said. Here's a list of all the possible zones:

forest
shiverchill
skywatch
lamplight
dyno
bonfire_spire
house
toyzone
shipwreck_shore
darktower
academy
archives
earthtower
tower_town

Make sure you type the zone EXACTLY as it is. It's case sensitive, and if you mis-type it, it won't work.

What's the toyzone? :(

ghost commented 4 years ago

@bruh5000, you can complete quests with the function you just said.

Here's a list of all the possible zones:

forest
shiverchill
skywatch
lamplight
dyno
bonfire_spire
house
toyzone
shipwreck_shore
darktower
academy
archives
earthtower
tower_town

Make sure you type the zone EXACTLY as it is. It's case sensitive, and if you mis-type it, it won't work.

"PIXI.game.prodigy" parts are required but I'm confused and angry but I know the zone names >:(

ArcerionDev commented 4 years ago

Finally, done! Run

e=await (await fetch("https://api.prodigygame.com/game-api/status")).json();CryptoJS.MD5 = () => ({ toString: () => e.data.prodigyGameFlags.debugPassword });enableDebug('',!0)
easyMode()

to enable easyMode without breaking battles!

PatheticMustan commented 4 years ago

Bookmarklet

javascript:console=0;e=await (await fetch("https://api.prodigygame.com/game-api/status")).json();CryptoJS.MD5=_=>({toString:_=>e.data.prodigyGameFlags.debugPassword });enableDebug('',!0);easyMode();
PatheticMustan commented 4 years ago

Now all we have to do is update the existing hacks

kayla-hue commented 4 years ago

Pathetic is their a code for we could level up all our pets to level 100?

PatheticMustan commented 4 years ago
let x = hack.modules[0].exports.a.instance.prodigy.player.kennel.data;
for (let i=0; i<x.length; i++) { 
    x[i].level=100;
};
ArcerionDev commented 4 years ago

Alright, we've found a possible method using hack.constants, but we need to look into it further.

ArcerionDev commented 4 years ago

We should still research this, it was possible with enableDebug awhile back, so we know it is accessible.

ArcerionDev commented 4 years ago

Stop that, will >,<

MelnCat commented 4 years ago

we could use gameConstants to enable easy mode.

kayla-hue commented 4 years ago

Question people does this still works https://github.com/Prodigy-Hacking/ProdigyMathGameHacking/blob/3247f89b059de1cafc4fda6e981ecda9a9d092ba/willsCheatMenu/src/hacks/misc.ts

kayla-hue commented 4 years ago

Is the hack patched?

ooo788 commented 4 years ago

image

ooo788 commented 4 years ago

HOW?!

PatheticMustan commented 4 years ago

@ooo788, instead of polluting our Github issue threads, you should join our official Discord server.

https://discord.gg/XQDfbfq

PatheticMustan commented 3 years ago

whatever, easymode doesn't exist anymore.

NX721 commented 3 years ago

The first issue...

PatheticMustan commented 3 years ago

indeed, I don't know if we ever finished it....

NX721 commented 3 years ago

Lmao

S0vereignity commented 3 years ago

Hey, maybe you can have a Use an older version hack to use easy mode. Maybe...

S0vereignity commented 3 years ago

but I'm guessing it would break/crash the game.

LeoBadeaux commented 3 years ago

this happening or what, it is on our TODO (#800)?

ArcerionDev commented 3 years ago

it's more difficult than it looks lmao, we're looking into it

fullpwn commented 3 years ago

I love how this is the first ticket and it's still open

ArcerionDev commented 3 years ago

it's impossibleeeeeeeeee stfuuu asodhasjdkahs

PatheticMustan commented 3 years ago

Pain

ArcerionDev commented 3 years ago

eternal pain

ghost commented 3 years ago

yep a big big big pain

hostedposted commented 3 years ago

Not sure if this helps but I found this

            }, i.prototype.handleEasyMode = function() {
                p.b.get("GameConstants.Debug.EDUCATION_ENABLED") || (this.questionOpened = !0)
            },
hostedposted commented 3 years ago

it was in this

        cb = function(t) {
            function i(i, n) {
                var e = t.call(this) || this;
                return e.questionInterface = null, e.questionOpened = !1, e.logger = null, e.lastLogTime = Date.now(), e.questionInterface = i, i.OnQuestionOpened.add(e.markQuestionOpened, e), i.OnQuestionAnswered.add(e.handleEasyMode, e), e.logger = n, e
            }
            return Object(o.__extends)(i, t), Object.defineProperty(i.prototype, "NextState", {
                get: function() {
                    return Ka.AnsweringQuestion
                },
                enumerable: !1,
                configurable: !0
            }), i.prototype.shouldTransition = function() {
                var t = Date.now();
                if (this.questionOpened || t - this.lastLogTime > 3e3) {
                    this.lastLogTime = t;
                    var i = "OpenQuestionInterfaceDecision\nTransition to " + this.NextState + "? " + (this.questionOpened ? "YES" : "NO") + "\n";
                    i += "\t - Interface is open? " + (this.questionOpened ? "YES" : "NO") + "\n", this.logger.logMessage(i)
                }
                return this.questionOpened
            }, i.prototype.markQuestionOpened = function() {
                this.questionOpened = !0
            }, i.prototype.handleEasyMode = function() {
                p.b.get("GameConstants.Debug.EDUCATION_ENABLED") || (this.questionOpened = !0)
            }, i.prototype.destroy = function() {
                this.questionInterface.OnQuestionOpened.remove(this.markQuestionOpened, this), this.questionInterface.OnQuestionAnswered.remove(this.handleEasyMode, this)
            }, i
        }(Yf),
hostedposted commented 3 years ago

I think easy mode's impossible now.

I decoded the map file for prodigy.

In prodigy's code there is a DEBUG_CODE variable that is undefined. But using the Define Plugin for webpack they could set it for dev only.

They use it for lots of things in the game. But the functions that use DEBUG_CODE don't have it in the game. So the only way we would be able to do it is build the prodigy game file with the debug code.

We can get the debug code in the game status:

import prodigy
prodigy.gameStatus()["prodigyGameFlags"]["debugPassword"]

But after decoding the source map not all files are there.

This code image in 4-21-0/src/feature/mathTower/MathTower.ts does not work because 4-21-0/src/systems/injection/EProdigyInjectionIdentifiers.ts does not exist image

If we build the gamefile with DEBUG_CODE.

This code is the code executed when a question is popped up.

    /**
     * Opens a question for the player to answer
     */
    public answerQuestion(): void {
        if (DEBUG_CODE) {
            if (!GameConstants.get('GameConstants.Debug.EDUCATION_ENABLED')) {
                const wasCorrect: boolean = Math.random() < GameConstants.get('GameConstants.Debug.AUTO_ANSWER_CORRECT_PERCENT');
                this.onQuestionAnswered.dispatch(wasCorrect, 0, null);
                if (wasCorrect) {
                    this.onQuestionAnsweredCorrectly.dispatch(0, null);
                } else {
                    this.onQuestionAnsweredIncorrectly.dispatch(0, null);
                }
                return;
            }
        }

        if (!this._isOpen) {
            this._isOpen = true;
            const input: Input = App.instance.game.input;
            const inputEnabled: boolean = input.enabled;
            input.enabled = false;
            const notifications: NotificationController = App.instance.prodigy.notifications;
            notifications.pause(this);
            notifications.clearNotifications();
            App.instance.prodigy.education.question(
                (wasCorrect: boolean, responseTime?: number, nFactor?: number, awardPrize?: boolean, awardInstantWin?: boolean, skill?: SkillDataSchema) => {
                    this._isOpen = false;
                    input.enabled = inputEnabled;
                    notifications.resume(this);
                    this.onQuestionAnswered.dispatch(wasCorrect, responseTime, skill);
                    if (wasCorrect) {
                        this.onQuestionAnsweredCorrectly.dispatch(responseTime, skill);
                    } else {
                        this.onQuestionAnsweredIncorrectly.dispatch(responseTime, skill);
                    }
                },
                undefined,
                undefined,
                undefined,
                undefined,
                false
            );
        }
    }

So if we run

_.constants.constants["GameConstants.Debug.EDUCATION_ENABLED"] = true
_.constants.constants["GameConstants.Debug.AUTO_ANSWER_CORRECT_PERCENT"] = 1

it will enable easy mode but we will need to rebuild prodigy's gamefile every update with a new debug code. We probably won't even be able to build it once.

TheFinality commented 3 years ago

hosted why arnt u on discord?