rxzyx / prodigy-hack

One of the best Prodigy hacks.
MIT License
266 stars 621 forks source link

Pet bug, instead of the 2 pets u chose, you only get one, fix immediatley! #146

Open FishyBalls opened 9 months ago

FishyBalls commented 9 months ago

As soon as you use the unlock pets, that script contains a bug that will need to be fixed because when you are battling you can't win because it is 2 against three. RXZYX please make this script work properley, Thanks, fishy

FishyBalls commented 9 months ago

I think that you have made us the pet instead of us being the normal player, this is just a guess but i think i'm right so please change this.

FishyBalls commented 9 months ago

image

Gisthepro123 commented 9 months ago

Yes i've had the same issue after using the script

RandomWyrm commented 7 months ago

I've done some testing, the first time you unlock pets, only one can be used. Use the script again and you can use 2 pets, but only if one is in the new style and one is in the old (smooth and pixelated). After that, if you use the script again, only one, use it again, one pixelated one smooth.

RandomWyrm commented 7 months ago

Wait, how do you use a mythical epic

superdave98008 commented 7 months ago

Here is what I observed, in deminifying the code and poking around. Note that we are fully paid subscribers already.

  1. Setting each pet in the JSON array to have a distinct 'caughtTime' partly helps.
  2. Even after the above, if you try to unlock too many pets, it will start to glitch on you in various ways. With a binary search I determined the magic number, at least for my kid's account, to be about 155 pets unlocked for it to behave normally (two pets accompany you into battle).

Here is a code snippet of the change to unlockPets() that worked for me. Not shown is a change made to the unlockPets method signature to add an nPets param, and some prompt code at the entry point near the bottom where unlockPets is called from.

               now=new Date().getTime();
                pet_maker_json = JSON.parse(_0x3ff738[_0x515d0c(-0x106, -0x133, -0x17c, -0x1b0, -0x11b)](_0x5757ee));

                if (nPets>0) {
                    // alert('Unlocking ' + nPets + ' pets.  You will need to log in again.');
                    pet_maker_json=pet_maker_json.slice(0,nPets);
                }
                else if (nPets==0) {
                    // alert('Clearing all pets.  You will need to log in again.');
                    pet_maker_json=[];
                }
                // else {
                //     alert('Unlocking all pets.  You will need to log in again.');
                // }

                for (let i = 0; i < pet_maker_json.length; i++) {
                 // set each pet to have a distinct catchDate
                  pet_maker_json[i]["catchDate"]=now++;
                }

                // alert(JSON.stringify(pet_maker_json));

                (pet_maker = JSON.stringify(pet_maker_json)),
                    (pet_maker2 = _0x3ff738[_0x515d0c(-0x184, -0x98, -0x168, -0xe8, -0xeb)](_0x5757ee, ![])),
alex39n commented 7 months ago

Can you give a more detail explanation on how to fix it

hudsonb508 commented 6 months ago

I still only have one pet superdave how am I supposed to use your code