Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Dropdown Menu Lists Editor
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Extensions
View previous topic :: View next topic  
Author Message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Sat May 21, 2016 5:12 pm    Post subject: Dropdown Menu Lists Editor Reply with quote

This is a GUI for creating Lua scripts that can batch add dropdown menu lists to cheat entries based on the search string you give it.
Scripts created can be used by others even if they do not have this extension installed.

It searches for the string in the "Description" of all cheat entries and sets the lists and options accordingly if there's a match. It is possible to have multiple search strings for a single list.
Optionally, you can add a search string for parent entry, useful if you have similarly named entries but for different cheats i.e. "Slot XXX" under "Items" and "Weapons".
Code:
Search String Format:
Description Search String(:Parent Description Search String)
...
..
.

Wildcard Format:
*:Parent Description Search String

Dropdown lists, search strings and options are all stored in the cheat table's Lua script.
To add dropdown lists to cheat entries, you can either click execute from within the GUI, or execute from the cheat table's Lua script form.
Please remember to save before executing.
Required functions and commands needed are added to the Lua script when the GUI is closed.
The variables for the prefixes are located in the DDLEditor.cfg file in the autorun folder. If it isn't created yet, launch the extension once.
Code:
DDLEditor.Prefix = myDropDownList
DDLEditor.NamesPrefix = myDropDownListName
DDLEditor.OptionsPrefix = myDropDownListOptions

You can change them to anything you prefer, but make sure they are not the same or empty, else I cannot predict what errors the script will give.

Example of a cheat table made using this extension: Megadimension Neptunia VII

Screenshots:
https://www.dropbox.com/sh/0qksfkzl7cnmhv6/AADQ5aQ80m5K3a208nff4kT1a

To install:
1. Download from link below
https://www.dropbox.com/s/a58kw3601ujcvip/DDLEditor.7z
2. Extract to CEDirectory\autorun folder

Quote:
Update 1:
- Allowed for optional parent description search string
- Empty search lists and options(all unchecked) are no longer added to Lua script.
- addDropMenuList function and commands are no longer added to Lua script if they are not used.
- Fixed a couple bugs

Update 2:
- Centers form to CE's main window on open.

Update 3:
- Reverted form sizing and position behavior to default (poDefault).

Update 4:
- Fixed: Error checking for names with spaces. Spaces now replaced with underscores.
- Fixed: Form no longer deletes other code at the end of script on close.
- Fixed: Generated script should now be fully standalone. Tables can be used by others without having this extension installed.
- New: Configuration file for prefixes and output flag. State of output flag can now be saved and loaded everytime CE is launched.
- New: Prompt confirmation if changes made are not saved yet.

Update 5:
- Added: Rename button.
- Added: Prefixes configuration button.

Update 6:
- Fixed: Confirm save prompt saving data to wrong dropdown list.

Update 7:
- Major update to localize all functions to avoid conflicts between extensions due to similar names, especially commonly used library functions.

Update 8:
- Added wildcard function for searching for all children of a parent entry.
(*:Parent Description Search String)


Credits and Thanks to:
mgr.inz.Player


P.S. I originally wanted to make this compatible with all the scripts posted in the 'Dropdown Menu Lists' thread here but the syntax and parameters for each script were quite different.

_________________


Last edited by predprey on Sun May 19, 2019 9:35 am; edited 21 times in total
Back to top
View user's profile Send private message
mausi125
Advanced Cheater
Reputation: 1

Joined: 05 Jun 2014
Posts: 86

PostPosted: Sat Jun 04, 2016 1:09 pm    Post subject: Reply with quote

It work for create Trainer ?

PS: i don't know how to use it Embarassed
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Sun Jun 05, 2016 12:42 am    Post subject: This post has 1 review(s) Reply with quote

1. Click add, give a name.
2. Select the droplist you want to edit.
3. Fill in the large box the droplist like how you would in CE's droplist option.
4. Select the checkbox options you want.
5. Output log shows the cheat table records that the dropdown lists are added to.
6. Fill in a search string for the name of the cheat table records that you want to add the list to.
e.g Slot 1 to Slot 255, you can fill in just "Slot"
If their parent entry is something like "Items Hack" and you only want to add to entries under this, you fill in "Slot:Items"
You can add more search strings on new lines.
7. Once done, click save.
8. Now click execute to add the droplists to all denoted entries. Or you can click done and execute from CE's Cheat Table Lua Script window.
If you want to keep the size of your cheat table down, save your cheat table before adding the droplists. Each time you open the table, execute the lua script created. This plugin adds the necessary functions when you close its window.
Back to top
View user's profile Send private message
mausi125
Advanced Cheater
Reputation: 1

Joined: 05 Jun 2014
Posts: 86

PostPosted: Sun Jun 05, 2016 2:29 am    Post subject: Reply with quote

Edit, thanks ( work )

My dropdown list work ( in a generated trainer ? )
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Sun Jun 05, 2016 11:19 am    Post subject: Reply with quote

I'm not sure, if you can make your generated CE trainer to run the Lua script automatically then it would work. But I'm not sure if there's an option for that, maybe someone more experienced in using CE's trainer maker can chime in here?
Back to top
View user's profile Send private message
dharthoorn
Advanced Cheater
Reputation: 1

Joined: 27 Nov 2008
Posts: 84

PostPosted: Tue Dec 05, 2017 3:53 am    Post subject: Reply with quote

This script has preserved my sanity. This will never ever leave my autorun dir again.

Thanks predprey!

_________________
"If you could reason with religious people there would be no religious people" - House Md. (My Personal Life Coach)
Back to top
View user's profile Send private message
Plok
How do I cheat?
Reputation: 0

Joined: 24 Jun 2018
Posts: 3

PostPosted: Sun Jun 24, 2018 7:19 am    Post subject: Reply with quote

Is it possible to add a wildcard to this so that you can affect every child of a parent? E.g: *:Item Quantities
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Thu Jul 12, 2018 9:00 pm    Post subject: Reply with quote

Plok wrote:
Is it possible to add a wildcard to this so that you can affect every child of a parent? E.g: *:Item Quantities

Update 8:
- Added wildcard function for searching for all children of a parent entry.
(*:Parent Description Search String)
Back to top
View user's profile Send private message
Drivium
Advanced Cheater
Reputation: 0

Joined: 16 Apr 2013
Posts: 97

PostPosted: Tue May 14, 2019 8:22 am    Post subject: Reply with quote

predprey wrote:
Plok wrote:
Is it possible to add a wildcard to this so that you can affect every child of a parent? E.g: *:Item Quantities

Update 8:
- Added wildcard function for searching for all children of a parent entry.
(*:Parent Description Search String)


tl;dr

Is it possible to make the ddl script search within the Value to assign a ddl as opposed to just the description?

----------------------
For example, the string value in Zelda Breath of the Wild (equip slots) contains certain keywords that I could use this for. These get mixed up on each reload, so as of now my only option has been to assign all possible items to all slots. You can't assign an item to a slot that hasn't been populated by the game. @ with no text behind it means it's unavailable.

So, since populated strings tell you which type of equip it is (Weapon,Armor,Item,etc.) - even down to the type of weapon (sword,bow,etc) it would be cool if the ddl script to take this into account. This would also require the ddl to follow the item when it gets shuffled around and since the script requires you to click execute, I'm guessing its a one and done thing, but maybe not?

thanks!

Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Sun May 19, 2019 9:48 am    Post subject: Reply with quote

Drivium wrote:
predprey wrote:
Plok wrote:
Is it possible to add a wildcard to this so that you can affect every child of a parent? E.g: *:Item Quantities

Update 8:
- Added wildcard function for searching for all children of a parent entry.
(*:Parent Description Search String)


tl;dr

Is it possible to make the ddl script search within the Value to assign a ddl as opposed to just the description?

----------------------
For example, the string value in Zelda Breath of the Wild (equip slots) contains certain keywords that I could use this for. These get mixed up on each reload, so as of now my only option has been to assign all possible items to all slots. You can't assign an item to a slot that hasn't been populated by the game. @ with no text behind it means it's unavailable.

So, since populated strings tell you which type of equip it is (Weapon,Armor,Item,etc.) - even down to the type of weapon (sword,bow,etc) it would be cool if the ddl script to take this into account. This would also require the ddl to follow the item when it gets shuffled around and since the script requires you to click execute, I'm guessing its a one and done thing, but maybe not?

thanks!



hmm... what you suggested seems like an edge case. instead of adding such a feature into the extension, personally i would automate the adding of equip slot entries using Lua.

you could use readString() in CE's Lua engine and loop through the entire address range and add an equip slot entry into the addresslist only for the populated slots and also named it specifically based on the string read in. this way you can reduce the size of the table and also have the slots named specifically so DDLEditor can target dropdown lists specifically.

but as you said, if the slots get shuffled around even while playing the game e.g. rearranging the inventory, then you would need to add a timer to repeatedly update the table based on changes. it would probably cause more lag and overhead, especially since CEMU is CPU heavy. or you would have to delete all the equip slot entries and reexecute your script to update manually.
Back to top
View user's profile Send private message
Arexodius
Newbie cheater
Reputation: 0

Joined: 20 May 2018
Posts: 12

PostPosted: Tue May 26, 2020 1:49 pm    Post subject: Fantastic idea! Reply with quote

Thank you very much for creating this script! It's a real time saver!

I have a problem though. I'm getting over-inclusion of entries from a single query. I would like to be able to exclude by being more specific with the query, rather than including more and more.
Is there a way of using literal search strings with partial wildcards?
Also, it would be very nice to be able to specify the parent of a parent.

For example:
Type:Item *:Items

I would very much like the search terms to be literally interpreted so the script doesn't include entries of similar naming but only entries with the exact phrasing. In the example, I put a wildcard symbol where I would use numbers in the table, and I'm using two levels of parent-child structuring, like this:

Items
--Item 1
----Type
----Amount
----etc
--Item 2
--Item 3
--....

But I also have a different parent-child structure for special items, like this:

Special Items
--Special Item 1
----Type
----Amount
----etc
--Special Item 2
--Special Item 3
--....

The two kinds of items should use different drop down menus and it simply doesn't make sense to name them differently just to avoid the unwanted inclusion. Is there a way to solve this other than re-naming my descriptions to something that can't be accidentally included?

Thank you!
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Tue May 26, 2020 3:21 pm    Post subject: Re: Fantastic idea! Reply with quote

Arexodius wrote:
Thank you very much for creating this script! It's a real time saver!

I have a problem though. I'm getting over-inclusion of entries from a single query. I would like to be able to exclude by being more specific with the query, rather than including more and more.
Is there a way of using literal search strings with partial wildcards?
Also, it would be very nice to be able to specify the parent of a parent.

For example:
Type:Item *:Items

I would very much like the search terms to be literally interpreted so the script doesn't include entries of similar naming but only entries with the exact phrasing. In the example, I put a wildcard symbol where I would use numbers in the table, and I'm using two levels of parent-child structuring, like this:

Items
--Item 1
----Type
----Amount
----etc
--Item 2
--Item 3
--....

But I also have a different parent-child structure for special items, like this:

Special Items
--Special Item 1
----Type
----Amount
----etc
--Special Item 2
--Special Item 3
--....

The two kinds of items should use different drop down menus and it simply doesn't make sense to name them differently just to avoid the unwanted inclusion. Is there a way to solve this other than re-naming my descriptions to something that can't be accidentally included?

Thank you!


I personally just named them differently the last time I created item lists i.e. Normal Items/Special Items. Or I would lump both into a super group just called Items > Normal/Special > Type,Amount,etc, that way I would avoid over inclusion.

Alternatively, if you really want to keep your format, you could do the addDropMenuList() for Items first so it adds the normal items list to all the item slots including Items and Special Items, then do the addDropMenuList () for Special Items so it overwrites the Special Items ones with the correct one.

As for searching parent of a parent, don't think its required for your case. IIRC you could just do Type:Item as the parent search is also a "contains" match and not a "complete match".
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Thu May 28, 2020 4:07 pm    Post subject: Reply with quote

Just to add for existing and futute users, I wrote this extension before CE had the linked dropdown list feature. So for a while now there is actually an alternative way of making these lists which is to put the dropdown list in one memrec and link it to the others. You can use the Batch Set Dropdown List extension in my CEnhancer thread to set DDLs for the linked memrecs easily. The amount of space savings would depend on how many memrecs (i.e. the size of all the linked DDL placeholder tags) you have vs the length of the library code this extension drops into the table.
Back to top
View user's profile Send private message
Arexodius
Newbie cheater
Reputation: 0

Joined: 20 May 2018
Posts: 12

PostPosted: Tue Dec 01, 2020 9:03 am    Post subject: Reply with quote

Hiya!

This plugin doesn't seem to work with CE 7.2
Will there be an update you think?
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 24

Joined: 08 Oct 2015
Posts: 486

PostPosted: Tue Dec 01, 2020 12:03 pm    Post subject: Reply with quote

Arexodius wrote:
Hiya!

This plugin doesn't seem to work with CE 7.2
Will there be an update you think?


I'm guessing its some error about trying to concatenate some nil value after launching the 2nd time? I just uploaded a new version to fix that, seems like it was a bug all along but went undetected because previous CE versions were more forgiving in the syntax for the Lua Strings class.

Download the new version and try again.

If this doesn't fix your problem, please provide more specific details on the error you encounter. Very Happy
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Extensions All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites