Page 39 of 372

Re: Legends of Idleon

Posted: Tue Jun 29, 2021 8:21 pm
by salmon85
Creater0822 wrote:
Mon Jun 28, 2021 11:30 pm
Oh now that's odd, I've indeed tried the exact same methods, also tried to overwrite the LonelyHunter, but nothing worked at all. I did gga to confirm that I correctly had the value set to 0 as well. Presumably there's a fair bit more than these settings in play.

Just tested for shadow ban again,
my account was shadow banned again, so something else is flagging it still.

however.

This is old code from before ibelg's new console which seems to work

Code: Select all

if (command === 'unban') {
                                        options = [];
                                        for (i = 0; i < b.engine.getGameAttribute("OptionsListAccount").length; i++) {
                                            if (i == 26){
                                                options.push(0)
                                            } else {
                                                options.push(b.engine.getGameAttribute("OptionsListAccount")[i])
                                            }
                                        }
                                        b.engine.setGameAttribute("OptionsListAccount", options);
                                    }

I was logged in, same server and map as the non banned account.
ran the unban command, ran around for a bit
closed the game completely
logged back in, same map, same server and I was visible again to the non banned account.

Re: Legends of Idleon

Posted: Tue Jun 29, 2021 8:35 pm
by Creater0822
salmon85 wrote:
Tue Jun 29, 2021 8:21 pm
Creater0822 wrote:
Mon Jun 28, 2021 11:30 pm
Oh now that's odd, I've indeed tried the exact same methods, also tried to overwrite the LonelyHunter, but nothing worked at all. I did gga to confirm that I correctly had the value set to 0 as well. Presumably there's a fair bit more than these settings in play.

Just tested for shadow ban again,
my account was shadow banned again, so something else is flagging it still.

however.

This is old code from before ibelg's new console which seems to work

Code: Select all

if (command === 'unban') {
                                        options = [];
                                        for (i = 0; i < b.engine.getGameAttribute("OptionsListAccount").length; i++) {
                                            if (i == 26){
                                                options.push(0)
                                            } else {
                                                options.push(b.engine.getGameAttribute("OptionsListAccount")[i])
                                            }
                                        }
                                        b.engine.setGameAttribute("OptionsListAccount", options);
                                    }

I was logged in, same server and map as the non banned account.
ran the unban command, ran around for a bit
closed the game completely
logged back in, same map, same server and I was visible again to the non banned account.
Interesting, perhaps it could be a problem that I'm using a banned account to look whether another banned account is unbanned or not. But seeing that my banned account can perfectly see other non-banned account does make me think that it shouldn't matter too much. Man, one day I should make a legit account for this :oops:

Re: Legends of Idleon

Posted: Tue Jun 29, 2021 8:47 pm
by salmon85
check your pm. sent you a lengthy gif

the same command though wrote for the new console doesn't seem to work. I may have coded it wrong.

Code: Select all

case 'unban':
			let options = [];
            for (i = 0; i < bEngine.getGameAttribute("OptionsListAccount").length; i++) {
				if (i == 26){
					options.push(0)
				} else {
					options.push(bEngine.getGameAttribute("OptionsListAccount")[i])
				}
			}
			bEngine.setGameAttribute("OptionsListAccount", options);
			break;

Re: Legends of Idleon

Posted: Tue Jun 29, 2021 10:25 pm
by Creater0822
Changelog 30/06/21 12am:
Original post: viewtopic.php?p=198916#p198916
  • Adapted all of my commands to iBelg's new console
  • Added AttributesList.txt
    As the name suggests, this list holds all of the game attributes that we can further research with getGameAttribute()
  • Added command: monster
    Works exactly the same as the search command but instead gives the monster id(s). This function isn't too useful yet, but might have room for expansion.
  • Added command: abilitybuff
    Yes!! Finally a revolutional cheat I can call my own :D :
    [1] Sets all ability cooldowns and mana costs to 0
    [2] Sets all cast times to .1
    Same as all of this new meta, changes are reset upon closing (doesn't affect the game client source itself)
The monster command has been merged within the search command since 01/07/2021.

Re: Legends of Idleon

Posted: Tue Jun 29, 2021 11:44 pm
by SladeTama
Creater0822 wrote:
Tue Jun 29, 2021 10:25 pm
Changelog 30/06/21 12am:
Original post: viewtopic.php?p=198916#p198916
  • Adapted all of my commands to iBelg's new console
  • Added AttributesList.txt
    As the name suggests, this list holds all of the game attributes that we can further research with getGameAttribute()
  • Added command: monster
    Works exactly the same as the search command but instead gives the monster id(s). This function isn't too useful yet, but might have room for expansion.
  • Added command: abilitybuff
    Yes!! Finally a revolutional cheat I can call my own :D :
    [1] Sets all ability cooldowns and mana costs to 0
    [2] Sets all cast times to .1
    Same as all of this new meta, changes are reset upon closing (doesn't affect the game client source itself)

How safe is only using drop functions?

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 1:18 am
by Creater0822
SladeTama wrote:
Tue Jun 29, 2021 11:44 pm
How safe is only using drop functions?
Should be safe unless you're using it to drop unreleased/unobtainable items, or maybe absurd amounts that somehow gets noticed. Perhaps something like too many gems here (from now it's a matter of time as to how much we know about the shadow ban).

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 2:08 pm
by tomato
I wish there was an item filtering function.
If you acquire a duplicate of an already acquired item,
I'm just wasting my inventory space and I don't think it's very good.

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 2:14 pm
by salmon85
tomato wrote:
Wed Jun 30, 2021 2:08 pm
I wish there was an item filtering function.
If you acquire a duplicate of an already acquired item,
I'm just wasting my inventory space and I don't think it's very good.

Should be possible, we already have the ability to read from your inventory / stash but that would require you to already have the item in there.
Guessing you're meaning things like bags / recipes / skill books where they're activated only for it to say "Already Owned"

it maybe a thing.

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 2:45 pm
by tomato
I want to use Teleports Remaining endlessly, but there is no other way???

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 3:03 pm
by salmon85
tomato wrote:
Wed Jun 30, 2021 2:45 pm
I want to use Teleports Remaining endlessly, but there is no other way???
Already covered that one previously, but it is quite far back so I'll let you off.

Code: Select all

                                if (277 < h.getMouseX() && 355 > h.getMouseX() && 407 < h.getMouseY() && 446 > h.getMouseY()) n._GenINFO[20] != b.engine.getGameAttribute("CurrentMap") ? (t = b.engine.getGameAttribute("CurrenciesOwned"), t = 0 < (null == (t = null != d.WorldTeleports ? t.getReserved("WorldTeleports") : t.h.WorldTeleports) ? 0 : "number" == typeof t ? e.__cast(t, k) : "number" == typeof t && (0 | t) === t ? e.__cast(t, m) : "boolean" == typeof t ? e.__cast(t, l) ? 1 : 0 : "string" == typeof t ? parseFloat(t) : parseFloat(f.string(t))) && -1 != n._GenINFO[20]) : t = !1, t && 1 != h.isTransitioning() && (t = b.engine.gameAttributes, null != d.BlockMovement ? t.setReserved("BlockMovement", 1) : t.h.BlockMovement = 1, t = cg.get().scenes, s = b.engine.getGameAttribute("CustomLists"), s = null != d.MapName ? s.getReserved("MapName") : s.h.MapName, a = n._GenINFO[20], s = h.getIDForScene("" + f.string(s[0 | (null == a ? 0 : "number" == typeof a ? e.__cast(a, k) : "number" == typeof a && (0 | a) === a ? e.__cast(a, m) : "boolean" == typeof a ? e.__cast(a, l) ? 1 : 0 : "string" == typeof a ? parseFloat(a) : parseFloat(f.string(a)))])), t = t.h[s].getID(), null == (A = a = s = 0) && (A = 0), null == a && (a = 0), null == s && (s = 0), s = h.createFadeOut(1, s << 16 | a << 8 | A), null == (i = A = a = 0) && (i = 0), null == A && (A = 0), null == a && (a = 0), h.switchScene(t, s, h.createFadeIn(.7, a << 16 | A << 8 | i)), t = b.engine.getGameAttribute("CurrenciesOwned"), s = b.engine.getGameAttribute("CurrenciesOwned"), s = null != d.WorldTeleports ? s.getReserved("WorldTeleports") : s.h.WorldTeleports, s = Math.round((null == s ? 0 : "number" == typeof s ? e.__cast(s, k) : "number" == typeof s && (0 | s) === s ? e.__cast(s, m) : "boolean" == typeof s ? e.__cast(s, l) ? 1 : 0 : "string" == typeof s ? parseFloat(s) : parseFloat(f.string(s))) - 1), null != d.WorldTeleports ? t.setReserved("WorldTeleports", s) : t.h.WorldTeleports = s, t = b.engine.gameAttributes, null != d.MenuType ? t.setReserved("MenuType", 0) : t.h.MenuType = 0);

replace

Code: Select all

parseFloat(f.string(s))) - 1)
with

Code: Select all

parseFloat(f.string(s))) - 0)
you will still need more than 0 though to be able to use this, it will just stop it decreasing.

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 3:42 pm
by GearEditTools
tomato wrote:
Mon Jun 28, 2021 3:37 pm
tomato wrote:
Mon Jun 28, 2021 2:22 pm
Image
How can I change the Carry Cap number with Visual Studio Code???

I want to change the maximum number of items holding 10 to 100 or 10000.
Image
I'm asking because I don't know where to put it.
Even if I put a value I like in the figure in the picture, there is not much response.

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 3:58 pm
by warhuntsius
walkerofthevalley wrote:
Mon Jun 28, 2021 1:45 pm
Anyone knows how to completely remove food being consumed? (I.e. for mining, chopping, ... foods)
In the item listings, there is a 'Trigger'. Set this to -1337

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 8:07 pm
by Creater0822
I've got two information commands

First is a new version of the search command:

Code: Select all

case 'search':
				// Expanded search function e.g.
				// > search item iron
				// > search monster mush
				const s_arr = params[0];
				const searchVals = [];
				const queryX = params.slice(1) && params.slice(1).length ? params.slice(1).join(' ').toLowerCase() : undefined;
				if(queryX){
					if(s_arr == "item"){
						for(const [key, value] of Object.entries(itemDefs)){
							const valName = value.h.displayName.replace(/_/g, ' ').toLowerCase();
							if (valName.includes(queryX)) {
								searchVals.push(`${key} - ${valName}`);
							}
						}
					} else if(s_arr == "monster"){
						for (const [key, value] of Object.entries(monsterDefs)) {
							const valName = value.h["Name"].replace(/_/g, ' ').toLowerCase();
							if (valName.includes(queryX)) {
								searchVals.push(`${key} - ${valName}`);
							}
						}
					} else return "Nothing!";
					if (searchVals.length > 0) return searchVals.join('\n');
					else return `No info found for '${queryX}'`;
				}
				break;
This one behalves practically the same as iBelg's original search, but also allows you to search for monster ids:

Code: Select all

> search item iron
> search monster mush
The second is a csv id list creator:

Code: Select all

case 'list':
				// Used to create Id lists in csv style
				const l_arr = params[0];
				const foundVals = [];
				if(l_arr == "item"){
					foundVals.push("Id, ingameName");
					for(const [key, value] of Object.entries(itemDefs)){
						const valName = value.h.displayName.replace(/_/g, ' ').toLowerCase();
						foundVals.push(`${key}, ${valName}`);
					}
				} else if(l_arr == "monster"){
					foundVals.push("Id, ingameName, HP, Defence, Damage, EXP");
					for(const [key, value] of Object.entries(monsterDefs)){
						const valName = value.h["Name"].replace(/_/g, ' ').toLowerCase();
						foundVals.push(`${key}, ${valName}, ${value.h["MonsterHPTotal"]}, ${value.h["Defence"]}, ${value.h["Damages"][0]}, ${value.h["ExpGiven"]}`);
					}
				} else if(l_arr == "class"){
					foundVals.push("Id, ClassName, PromotesTo");
					const FuncList1 = CList.ClassNames();
					const FuncList2 = CList.ClassPromotionChoices();
					for(const [index, element] of FuncList1.entries())
						foundVals.push(`${index}, ${element}, [${FuncList2[index]}]`);
				} else if(l_arr == "quest"){
					foundVals.push("Id, QuestName, NPC, paramX1, paramX2");
					const FuncList1 = CList.SceneNPCquestOrder();
					const FuncList2 = CList.SceneNPCquestInfo();
					for(const [index, element] of FuncList1.entries())
						foundVals.push(`${element}, ${FuncList2[index].join(", ")}`);
				} else if(l_arr == "map"){
					foundVals.push("Id, MapName, AFK1, AFK2, Transition");
					const FuncList1 = CList.MapName();
					const FuncList2 = CList.MapDispName();
					const FuncList3 = CList.MapAFKtarget();
					const FuncList4 = CList.MapAFKtargetSide();
					const FuncList5 = CList.SceneTransitions();
					for(const [index, element] of FuncList1.entries()){
						foundVals.push(`${element}, ${FuncList2[index]}, ${FuncList3[index]}, ${FuncList4[index]}, [${FuncList5[index]}]`);
					}
				}
				else return "Nothing";
				return foundVals.join("\n"); // Concatenate all lines into one string with new lines
				break;
It can list item, monster, class, quest and map to the console like this...

Code: Select all

> list item
...so you can simply copy paste the stuff into a new textfile.
The only weakness of this command (when listing item ids) is that the cards don't have a proper displayName, but that's a minor issue as everybody would simply bulk obtain all cards at once anyway.

Star talent books

Posted: Wed Jun 30, 2021 9:04 pm
by Creater0822
Two days ago I've released a console script where I basically acquired the codes for all star talent books, and especially with the correct legal max level. Here's a snippet of all of that:

Code: Select all

// 8) All released Star Talent books
[
//"3615100",  //Bored To Death (Lvl 100)
"361650",   //Beginner Best Class (Lvl 50)
//"3617100",  //Studious Quester (Lvl 100)
"3618100",  //Quest Chungus (Lvl 100)
"3619100",  //Crystals 4 Dayys (Lvl 100)
"362050",   //Will Of The Eldest (Lvl 50)
"3621104",  //TICK TOCK (Lvl 104)
"3622100",  //STONKS! (Lvl 100)
"3623100",  //Roll Da Dice (Lvl 100)
"362450",   //Attacks on simmer (Lvl 50)
"3625120",  //Toilet Paper Postage (Lvl 120)
"362640",   //Exp Converter (Lvl 40)
"362750",   //Goblet Of Hemoglobin (Lvl 50)
"3628100",  //JUST EXP (Lvl 100)
"3629100",  //Frothy Malk (Lvl 100)
"363050",   //Convert Better Darnit (Lvl 50)
"3631100",  //PULSATION (Lvl 100)
"3632100",  //CARDIOVASCULAR! (Lvl 100)
//"3633100",  //Nothing
"363450",   //Telekinetic Storage (Lvl 50)
"3635100",  //Printer Sampling (Lvl 100)
"3639100",  //Shrine Architect (Lvl 100)
],
All star talent books share the same item id, which is "TalentBook1", where (as many already know) the book code goes into the item count parameter of the in-game drop function. For example like this to obtain Beginner Best Class lvl 50:

Code: Select all

_customBlock_DropSomething("TalentBook1", "361650", 0, 0, 2, y, 0, x, y));
Now here comes the interesting part:
This book code string 361650 consists of two parts. The underlined part belongs to the talent id, and the bold part is the amount of levels, in this case 50. So if you want to obtain Beginner Best Class lvl 100, the code is 3616100

Re: Legends of Idleon

Posted: Wed Jun 30, 2021 10:02 pm
by Creater0822
Creater0822 wrote:
Wed Jun 30, 2021 8:07 pm
I've got two information commands

First is a new version of the search command:

Code: Select all

case 'search':
				// Expanded search function e.g.
				// > search item iron
				// > search monster mush
				const s_arr = params[0];
				const searchVals = [];
				const queryX = params.slice(1) && params.slice(1).length ? params.slice(1).join(' ').toLowerCase() : undefined;
				if(queryX){
					if(s_arr == "item"){
						for(const [key, value] of Object.entries(itemDefs)){
							const valName = value.h.displayName.replace(/_/g, ' ').toLowerCase();
							if (valName.includes(queryX)) {
								searchVals.push(`${key} - ${valName}`);
							}
						}
					} else if(s_arr == "monster"){
						for (const [key, value] of Object.entries(monsterDefs)) {
							const valName = value.h["Name"].replace(/_/g, ' ').toLowerCase();
							if (valName.includes(queryX)) {
								searchVals.push(`${key} - ${valName}`);
							}
						}
					} else return "Nothing!";
					if (searchVals.length > 0) return searchVals.join('\n');
					else return `No info found for '${queryX}'`;
				}
				break;
This one behalves practically the same as iBelg's original search, but also allows you to search for monster ids:

Code: Select all

> search item iron
> search monster mush
The second is a csv id list creator:

Code: Select all

case 'list':
				// Used to create Id lists in csv style
				const l_arr = params[0];
				const foundVals = [];
				if(l_arr == "item"){
					foundVals.push("Id, ingameName");
					for(const [key, value] of Object.entries(itemDefs)){
						const valName = value.h.displayName.replace(/_/g, ' ').toLowerCase();
						foundVals.push(`${key}, ${valName}`);
					}
				} else if(l_arr == "monster"){
					foundVals.push("Id, ingameName, HP, Defence, Damage, EXP");
					for(const [key, value] of Object.entries(monsterDefs)){
						const valName = value.h["Name"].replace(/_/g, ' ').toLowerCase();
						foundVals.push(`${key}, ${valName}, ${value.h["MonsterHPTotal"]}, ${value.h["Defence"]}, ${value.h["Damages"][0]}, ${value.h["ExpGiven"]}`);
					}
				} else if(l_arr == "class"){
					foundVals.push("Id, ClassName, PromotesTo");
					const FuncList1 = CList.ClassNames();
					const FuncList2 = CList.ClassPromotionChoices();
					for(const [index, element] of FuncList1.entries())
						foundVals.push(`${index}, ${element}, [${FuncList2[index]}]`);
				} else if(l_arr == "quest"){
					foundVals.push("Id, QuestName, NPC, paramX1, paramX2");
					const FuncList1 = CList.SceneNPCquestOrder();
					const FuncList2 = CList.SceneNPCquestInfo();
					for(const [index, element] of FuncList1.entries())
						foundVals.push(`${element}, ${FuncList2[index].join(", ")}`);
				} else if(l_arr == "map"){
					foundVals.push("Id, MapName, AFK1, AFK2, Transition");
					const FuncList1 = CList.MapName();
					const FuncList2 = CList.MapDispName();
					const FuncList3 = CList.MapAFKtarget();
					const FuncList4 = CList.MapAFKtargetSide();
					const FuncList5 = CList.SceneTransitions();
					for(const [index, element] of FuncList1.entries()){
						foundVals.push(`${element}, ${FuncList2[index]}, ${FuncList3[index]}, ${FuncList4[index]}, [${FuncList5[index]}]`);
					}
				}
				else return "Nothing";
				return foundVals.join("\n"); // Concatenate all lines into one string with new lines
				break;
It can list item, monster, class, quest and map to the console like this...

Code: Select all

> list item
...so you can simply copy paste the stuff into a new textfile.
The only weakness of this command (when listing item ids) is that the cards don't have a proper displayName, but that's a minor issue as everybody would simply bulk obtain all cards at once anyway.
Oops sorry guys!!! I did share these two commands, but forgot that I defined a bunch of stuff somewhere else in my script!
Yeah without those definitions, these two commands won't run. Tonight before I head to sleep I'll share today's version that I have in the Google Drive folder.