Legends of Idleon

Ask about cheats/tables for single player games here
iBelg
Cheater
Cheater
Posts: 36
Joined: Tue Jul 28, 2020 6:42 pm
Reputation: 47

Re: Legends of Idleon

Post by iBelg »

True, it was mainly a side project to test a new tool I am trying to finish. Unpacking and repacking gets tedious fast, so made something that simply attaches to Legends of Idleon and replaces the Z.js on the fly. Allows for quick prototyping as well. ;D

User avatar
Lucifer M
Cheater
Cheater
Posts: 30
Joined: Sun May 27, 2018 12:24 pm
Reputation: 2

Re: Legends of Idleon

Post by Lucifer M »

salmon85 wrote:
Fri Jun 11, 2021 4:00 pm
Very nice on the chat commands.
Downside to chat commands, you forget the . or whatever you've used, you've just said out loud what you were trying to do.



as for b.engine.getGameAttribute("CauldronInfo")[5]
it has a length of 4 and seems to match the 4 cauldrons capacities to some extent
What do you mean by capacities?

User avatar
salmon85
Expert Cheater
Expert Cheater
Posts: 116
Joined: Wed Jun 09, 2021 8:29 am
Reputation: 26

Re: Legends of Idleon

Post by salmon85 »

It does rounding, is what I mean.



("CauldronInfo")[5][0] = Orange 44167.60975379015
("CauldronInfo")[5][1] = Green 540634447.8234663
("CauldronInfo")[5][2] = Purple 33509.125721804725
("CauldronInfo")[5][3] = Yellow 583673273.1806176

but in the cauldron window it shows
44.2K
541M
33.6K
584M



so that NaN on
("CauldronInfo")[6][1] for you is the correct one for Ln2

User avatar
salmon85
Expert Cheater
Expert Cheater
Posts: 116
Joined: Wed Jun 09, 2021 8:29 am
Reputation: 26

Re: Legends of Idleon

Post by salmon85 »

Here's a fix for you.

Managed to change my liquids all to 1

Code: Select all

A = b.engine.getGameAttribute("CauldronInfo")[6], r = 0 | s._DummyRepeatIndex, o = I._customBlock_CauldronStats("LiquidCap", s._DummyRepeatIndex, 0, 0), i = null == (i = b.engine.getGameAttribute("CauldronInfo")[6][0 | s._DummyRepeatIndex]) ? 0 : "number" == typeof i ? e.__cast(i, k) : "number" == typeof i && (0 | i) === i ? e.__cast(i, n) : "boolean" == typeof i ? e.__cast(i, l) ? 1 : 0 : "string" == typeof i ? parseFloat(i) : parseFloat(g.string(i)), u = I._customBlock_CauldronStats("LiquidHRrate", s._DummyRepeatIndex, 0, 0), m = s._GenINFO[50], A[r] = Math.max(0, Math.min(o, i + u * (null == m ? 0 : "number" == typeof m ? e.__cast(m, k) : "number" == typeof m && (0 | m) === m ? e.__cast(m, n) : "boolean" == typeof m ? e.__cast(m, l) ? 1 : 0 : "string" == typeof m ? parseFloat(m) : parseFloat(g.string(m))) / 3600))
change to

Code: Select all

A = b.engine.getGameAttribute("CauldronInfo")[6], r = 0 | s._DummyRepeatIndex, o = I._customBlock_CauldronStats("LiquidCap", s._DummyRepeatIndex, 0, 0), i = null == (i = 1) ? 0 : "number" == typeof i ? e.__cast(i, k) : "number" == typeof i && (0 | i) === i ? e.__cast(i, n) : "boolean" == typeof i ? e.__cast(i, l) ? 1 : 0 : "string" == typeof i ? parseFloat(i) : parseFloat(g.string(i)), u = I._customBlock_CauldronStats("LiquidHRrate", s._DummyRepeatIndex, 0, 0), m = s._GenINFO[50], A[r] = Math.max(0, Math.min(o, i + u * (null == m ? 0 : "number" == typeof m ? e.__cast(m, k) : "number" == typeof m && (0 | m) === m ? e.__cast(m, n) : "boolean" == typeof m ? e.__cast(m, l) ? 1 : 0 : "string" == typeof m ? parseFloat(m) : parseFloat(g.string(m))) / 3600))
or change the

Code: Select all

i = null == (i = 1)
in my edited code to whatever number you want it to be



edit:

I also changed the code back to see if it saved and wasn't cosmetic.
and indeed it saved.

The change will make it so it never increases / decreases, so once you've changed it you can always change the code back to return functionality.


edit2:

I suspect you can also change the / 3600 part, so it updates sooner as this is the time in seconds for the rate
Last edited by salmon85 on Fri Jun 11, 2021 5:07 pm, edited 1 time in total.

User avatar
Lucifer M
Cheater
Cheater
Posts: 30
Joined: Sun May 27, 2018 12:24 pm
Reputation: 2

Re: Legends of Idleon

Post by Lucifer M »

It worked flawlessly, I am grateful that you took the time and effort to find a fix. Thank you for the help. I saw the edited message and it returned it to one and fixed the functionality of the Ln2.

User avatar
salmon85
Expert Cheater
Expert Cheater
Posts: 116
Joined: Wed Jun 09, 2021 8:29 am
Reputation: 26

Re: Legends of Idleon

Post by salmon85 »

Lucifer M wrote:
Fri Jun 11, 2021 5:06 pm
Perfect, I am grateful that you took the time and effort to find a fix. Thank you for the help.
No problem, It's a learning experience for me. I want to be able to unbrick the 2 characters I trashed yesterday.
Although I don't see the point now since the new account is higher level than that account ever was.

Makes me wonder if we can work out and wipe our inventories on logging in.
That's my weekend project sorted now :D

I normally code in python so trying to wrap my thinking around all this java shit is a headache.

User avatar
Lucifer M
Cheater
Cheater
Posts: 30
Joined: Sun May 27, 2018 12:24 pm
Reputation: 2

Re: Legends of Idleon

Post by Lucifer M »

If someone happens to come across the cooldown timer for skills, can you drop it in here so I can look at editing my skills down as a Wizard.

User avatar
salmon85
Expert Cheater
Expert Cheater
Posts: 116
Joined: Wed Jun 09, 2021 8:29 am
Reputation: 26

Re: Legends of Idleon

Post by salmon85 »

Lucifer M wrote:
Fri Jun 11, 2021 10:28 pm
If someone happens to come across the cooldown timer for skills, can you drop it in here so I can look at editing my skills down as a Wizard.

search for (regex)
cooldown: \d{1,}\w{0,}\d{0,}

replace with
cooldown: 0

skill mana costs
sets all mana costs to 0

search for (regex)
manaCost: \d{1,}\w{0,}\d{0,}

replace with
manaCost: 0



If you're using vs code regex is the .* button on the find window
pressing the > on the find window, changes it into a replace window.


The above searches will replace all skills with 0 cooldown and 0 mana cost

If you want the function to look yourself it's

Code: Select all

["scripts.CustomMaps"] = ii, ii.__name__ = "scripts.CustomMaps", ii.make = function () {

kribir
Novice Cheater
Novice Cheater
Posts: 23
Joined: Thu Jun 13, 2019 9:14 pm
Reputation: 0

Re: Legends of Idleon

Post by kribir »

Has anyone found the code for the price of the stamps?

User avatar
salmon85
Expert Cheater
Expert Cheater
Posts: 116
Joined: Wed Jun 09, 2021 8:29 am
Reputation: 26

Re: Legends of Idleon

Post by salmon85 »

kribir wrote:
Fri Jun 11, 2021 11:52 pm
Has anyone found the code for the price of the stamps?
I have a feeling it's

Code: Select all

t._customBlock_StampCostss = function (s, a) {
                    var A = b.engine.getGameAttribute("DummyNumbersStatManager"),
                        r = [];
                    if (null != d.StampCostLIST ? A.setReserved("StampCostLIST", r) : A.h.StampCostLIST = r, A = b.engine.getGameAttribute("DummyNumbersStatManager"), r = b.engine.getGameAttribute("StampLevel")[0 | s][0 | a], null != d.StampCostNumber ? A.setReserved("StampCostNumber", r) : A.h.StampCostNumber = r, A = null == (A = b.engine.getGameAttribute("StampLevelMAX")[0 | s][0 | a]) ? 0 : "number" == typeof A ? e.__cast(A, k) : "number" == typeof A && (0 | A) === A ? e.__cast(A, n) : "boolean" == typeof A ? e.__cast(A, l) ? 1 : 0 : "string" == typeof A ? parseFloat(A) : parseFloat(g.string(A)), r = b.engine.getGameAttribute("DummyNumbersStatManager"), r = null != d.StampCostNumber ? r.getReserved("StampCostNumber") : r.h.StampCostNumber, .1 > Math.abs(A - (null == r ? 0 : "number" == typeof r ? e.__cast(r, k) : "number" == typeof r && (0 | r) === r ? e.__cast(r, n) : "boolean" == typeof r ? e.__cast(r, l) ? 1 : 0 : "string" == typeof r ? parseFloat(r) : parseFloat(g.string(r)))) ? A = !0 : (A = b.engine.getGameAttribute("DummyNumbersStatManager"), A = (null != d.StampCostNumber ? A.getReserved("StampCostNumber") : A.h.StampCostNumber) == b.engine.getGameAttribute("StampLevelMAX")[0 | s][0 | a]), A) {
                        A = b.engine.getGameAttribute("DummyNumbersStatManager"), (null != d.StampCostLIST ? A.getReserved("StampCostLIST") : A.h.StampCostLIST).push(t._customBlock_StampDetails(a + 1e3 * s)[5]), A = b.engine.getGameAttribute("DummyNumbersStatManager"), A = null != d.StampCostLIST ? A.getReserved("StampCostLIST") : A.h.StampCostLIST, r = null == (r = t._customBlock_StampDetails(a + 1e3 * s)[6]) ? 0 : "number" == typeof r ? e.__cast(r, k) : "number" == typeof r && (0 | r) === r ? e.__cast(r, n) : "boolean" == typeof r ? e.__cast(r, l) ? 1 : 0 : "string" == typeof r ? parseFloat(r) : parseFloat(g.string(r));
                        var i = t._customBlock_StampDetails(a + 1e3 * s)[7];
                        i = null == i ? 0 : "number" == typeof i ? e.__cast(i, k) : "number" == typeof i && (0 | i) === i ? e.__cast(i, n) : "boolean" == typeof i ? e.__cast(i, l) ? 1 : 0 : "string" == typeof i ? parseFloat(i) : parseFloat(g.string(i));
                        var o = b.engine.getGameAttribute("DummyNumbersStatManager");
                        o = null == (o = null != d.StampCostNumber ? o.getReserved("StampCostNumber") : o.h.StampCostNumber) ? 0 : "number" == typeof o ? e.__cast(o, k) : "number" == typeof o && (0 | o) === o ? e.__cast(o, n) : "boolean" == typeof o ? e.__cast(o, l) ? 1 : 0 : "string" == typeof o ? parseFloat(o) : parseFloat(g.string(o)), s = t._customBlock_StampDetails(a + 1e3 * s)[4], A.push(r * Math.pow(i, Math.pow(Math.round(o / (null == s ? 0 : "number" == typeof s ? e.__cast(s, k) : "number" == typeof s && (0 | s) === s ? e.__cast(s, n) : "boolean" == typeof s ? e.__cast(s, l) ? 1 : 0 : "string" == typeof s ? parseFloat(s) : parseFloat(g.string(s)))) - 1, .8)))

But this is pure speculation.
since it's 1am for me. I will play with it after sleep

chase123789
Cheater
Cheater
Posts: 29
Joined: Tue May 04, 2021 11:32 pm
Reputation: 1

Re: Legends of Idleon

Post by chase123789 »

iBelg wrote:
Fri Jun 11, 2021 3:49 pm


Getting items has never been easier.
how you do this :o

chase123789
Cheater
Cheater
Posts: 29
Joined: Tue May 04, 2021 11:32 pm
Reputation: 1

Re: Legends of Idleon

Post by chase123789 »

inkdrgn wrote:
Thu Jun 10, 2021 3:46 pm
some goodies for latest patch, dun remember what all I did. But there are some tweaks to the bubbles, cards, & upgrade stones. If someone wants to figure out how to make the vial upgrades cheaper would be nice, or how to boost the build rate.

[Link]
Extract your app.asar with 7zip & the asar plugin, & pop this in the "Legends of Idleon\resources\app\distBuild\static\game" folder, overwriting the z.js that is there. Tested & loads fine for me

Use at your own risk, and have fun
hey! i downloaded it and replaced the file in the destination but then i switched the file name to .js instead of .7z but when i launched i just see the forrest backround and no load, did i do something incorrect? ( this was after extracting to a folder of course and renaming folder to app.asar

kribir
Novice Cheater
Novice Cheater
Posts: 23
Joined: Thu Jun 13, 2019 9:14 pm
Reputation: 0

Re: Legends of Idleon

Post by kribir »

iBelg wrote:
Fri Jun 11, 2021 3:49 pm


Getting items has never been easier.
Wow! Very Good Job, how to access that in game?

User avatar
Creater0822
Expert Cheater
Expert Cheater
Posts: 229
Joined: Sat Nov 18, 2017 12:02 am
Reputation: 122

Re: Legends of Idleon

Post by Creater0822 »

salmon85 wrote:
Sat Jun 12, 2021 12:03 am
kribir wrote:
Fri Jun 11, 2021 11:52 pm
Has anyone found the code for the price of the stamps?
I have a feeling it's

Code: Select all

t._customBlock_StampCostss = function (s, a) {
                    var A = b.engine.getGameAttribute("DummyNumbersStatManager"),
                        r = [];
                    if (null != d.StampCostLIST ? A.setReserved("StampCostLIST", r) : A.h.StampCostLIST = r, A = b.engine.getGameAttribute("DummyNumbersStatManager"), r = b.engine.getGameAttribute("StampLevel")[0 | s][0 | a], null != d.StampCostNumber ? A.setReserved("StampCostNumber", r) : A.h.StampCostNumber = r, A = null == (A = b.engine.getGameAttribute("StampLevelMAX")[0 | s][0 | a]) ? 0 : "number" == typeof A ? e.__cast(A, k) : "number" == typeof A && (0 | A) === A ? e.__cast(A, n) : "boolean" == typeof A ? e.__cast(A, l) ? 1 : 0 : "string" == typeof A ? parseFloat(A) : parseFloat(g.string(A)), r = b.engine.getGameAttribute("DummyNumbersStatManager"), r = null != d.StampCostNumber ? r.getReserved("StampCostNumber") : r.h.StampCostNumber, .1 > Math.abs(A - (null == r ? 0 : "number" == typeof r ? e.__cast(r, k) : "number" == typeof r && (0 | r) === r ? e.__cast(r, n) : "boolean" == typeof r ? e.__cast(r, l) ? 1 : 0 : "string" == typeof r ? parseFloat(r) : parseFloat(g.string(r)))) ? A = !0 : (A = b.engine.getGameAttribute("DummyNumbersStatManager"), A = (null != d.StampCostNumber ? A.getReserved("StampCostNumber") : A.h.StampCostNumber) == b.engine.getGameAttribute("StampLevelMAX")[0 | s][0 | a]), A) {
                        A = b.engine.getGameAttribute("DummyNumbersStatManager"), (null != d.StampCostLIST ? A.getReserved("StampCostLIST") : A.h.StampCostLIST).push(t._customBlock_StampDetails(a + 1e3 * s)[5]), A = b.engine.getGameAttribute("DummyNumbersStatManager"), A = null != d.StampCostLIST ? A.getReserved("StampCostLIST") : A.h.StampCostLIST, r = null == (r = t._customBlock_StampDetails(a + 1e3 * s)[6]) ? 0 : "number" == typeof r ? e.__cast(r, k) : "number" == typeof r && (0 | r) === r ? e.__cast(r, n) : "boolean" == typeof r ? e.__cast(r, l) ? 1 : 0 : "string" == typeof r ? parseFloat(r) : parseFloat(g.string(r));
                        var i = t._customBlock_StampDetails(a + 1e3 * s)[7];
                        i = null == i ? 0 : "number" == typeof i ? e.__cast(i, k) : "number" == typeof i && (0 | i) === i ? e.__cast(i, n) : "boolean" == typeof i ? e.__cast(i, l) ? 1 : 0 : "string" == typeof i ? parseFloat(i) : parseFloat(g.string(i));
                        var o = b.engine.getGameAttribute("DummyNumbersStatManager");
                        o = null == (o = null != d.StampCostNumber ? o.getReserved("StampCostNumber") : o.h.StampCostNumber) ? 0 : "number" == typeof o ? e.__cast(o, k) : "number" == typeof o && (0 | o) === o ? e.__cast(o, n) : "boolean" == typeof o ? e.__cast(o, l) ? 1 : 0 : "string" == typeof o ? parseFloat(o) : parseFloat(g.string(o)), s = t._customBlock_StampDetails(a + 1e3 * s)[4], A.push(r * Math.pow(i, Math.pow(Math.round(o / (null == s ? 0 : "number" == typeof s ? e.__cast(s, k) : "number" == typeof s && (0 | s) === s ? e.__cast(s, n) : "boolean" == typeof s ? e.__cast(s, l) ? 1 : 0 : "string" == typeof s ? parseFloat(s) : parseFloat(g.string(s)))) - 1, .8)))

But this is pure speculation.
since it's 1am for me. I will play with it after sleep
Nice discovery! Search8ing for _customBlock_StampCostss = function indeed yields the function we're looking for.
This piece of annoying to read code basically has an if( material cost ) else obviously coins construction

To nullify the upgrade cost look for:

Code: Select all

A.push(..a lot of ugly code..)
And change both to

Code: Select all

A.push(0)
These are the final lines inside the if and else, which my VS Code's beautifier didn't really beautify for me so I had to manually add new lines between comma's before I could read it well :(

chase123789
Cheater
Cheater
Posts: 29
Joined: Tue May 04, 2021 11:32 pm
Reputation: 1

Re: Legends of Idleon

Post by chase123789 »

Creater0822 wrote:
Sat Jun 12, 2021 1:12 am
salmon85 wrote:
Sat Jun 12, 2021 12:03 am
kribir wrote:
Fri Jun 11, 2021 11:52 pm
Has anyone found the code for the price of the stamps?
I have a feeling it's

Code: Select all

t._customBlock_StampCostss = function (s, a) {
                    var A = b.engine.getGameAttribute("DummyNumbersStatManager"),
                        r = [];
                    if (null != d.StampCostLIST ? A.setReserved("StampCostLIST", r) : A.h.StampCostLIST = r, A = b.engine.getGameAttribute("DummyNumbersStatManager"), r = b.engine.getGameAttribute("StampLevel")[0 | s][0 | a], null != d.StampCostNumber ? A.setReserved("StampCostNumber", r) : A.h.StampCostNumber = r, A = null == (A = b.engine.getGameAttribute("StampLevelMAX")[0 | s][0 | a]) ? 0 : "number" == typeof A ? e.__cast(A, k) : "number" == typeof A && (0 | A) === A ? e.__cast(A, n) : "boolean" == typeof A ? e.__cast(A, l) ? 1 : 0 : "string" == typeof A ? parseFloat(A) : parseFloat(g.string(A)), r = b.engine.getGameAttribute("DummyNumbersStatManager"), r = null != d.StampCostNumber ? r.getReserved("StampCostNumber") : r.h.StampCostNumber, .1 > Math.abs(A - (null == r ? 0 : "number" == typeof r ? e.__cast(r, k) : "number" == typeof r && (0 | r) === r ? e.__cast(r, n) : "boolean" == typeof r ? e.__cast(r, l) ? 1 : 0 : "string" == typeof r ? parseFloat(r) : parseFloat(g.string(r)))) ? A = !0 : (A = b.engine.getGameAttribute("DummyNumbersStatManager"), A = (null != d.StampCostNumber ? A.getReserved("StampCostNumber") : A.h.StampCostNumber) == b.engine.getGameAttribute("StampLevelMAX")[0 | s][0 | a]), A) {
                        A = b.engine.getGameAttribute("DummyNumbersStatManager"), (null != d.StampCostLIST ? A.getReserved("StampCostLIST") : A.h.StampCostLIST).push(t._customBlock_StampDetails(a + 1e3 * s)[5]), A = b.engine.getGameAttribute("DummyNumbersStatManager"), A = null != d.StampCostLIST ? A.getReserved("StampCostLIST") : A.h.StampCostLIST, r = null == (r = t._customBlock_StampDetails(a + 1e3 * s)[6]) ? 0 : "number" == typeof r ? e.__cast(r, k) : "number" == typeof r && (0 | r) === r ? e.__cast(r, n) : "boolean" == typeof r ? e.__cast(r, l) ? 1 : 0 : "string" == typeof r ? parseFloat(r) : parseFloat(g.string(r));
                        var i = t._customBlock_StampDetails(a + 1e3 * s)[7];
                        i = null == i ? 0 : "number" == typeof i ? e.__cast(i, k) : "number" == typeof i && (0 | i) === i ? e.__cast(i, n) : "boolean" == typeof i ? e.__cast(i, l) ? 1 : 0 : "string" == typeof i ? parseFloat(i) : parseFloat(g.string(i));
                        var o = b.engine.getGameAttribute("DummyNumbersStatManager");
                        o = null == (o = null != d.StampCostNumber ? o.getReserved("StampCostNumber") : o.h.StampCostNumber) ? 0 : "number" == typeof o ? e.__cast(o, k) : "number" == typeof o && (0 | o) === o ? e.__cast(o, n) : "boolean" == typeof o ? e.__cast(o, l) ? 1 : 0 : "string" == typeof o ? parseFloat(o) : parseFloat(g.string(o)), s = t._customBlock_StampDetails(a + 1e3 * s)[4], A.push(r * Math.pow(i, Math.pow(Math.round(o / (null == s ? 0 : "number" == typeof s ? e.__cast(s, k) : "number" == typeof s && (0 | s) === s ? e.__cast(s, n) : "boolean" == typeof s ? e.__cast(s, l) ? 1 : 0 : "string" == typeof s ? parseFloat(s) : parseFloat(g.string(s)))) - 1, .8)))

But this is pure speculation.
since it's 1am for me. I will play with it after sleep
Nice discovery! Search8ing for _customBlock_StampCostss = function indeed yields the function we're looking for.
This piece of annoying to read code basically has an if( material cost ) else obviously coins construction

To nullify the upgrade cost look for:

Code: Select all

A.push(..a lot of ugly code..)
And change both to

Code: Select all

A.push(0)
These are the final lines inside the if and else, which my VS Code's beautifier didn't really beautify for me so I had to manually add new lines between comma's before I could read it well :(
Have you found code for starsigns? How to unlock more and what not?

Post Reply

Who is online

Users browsing this forum: Google [Bot], Jonnys