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 


CEnhancer - Improvements for CE's inbuilt functions
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine Lua Scripting -> Lua Extensions
View previous topic :: View next topic  
Author Message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Sun Jul 17, 2016 6:30 am    Post subject: CEnhancer - Improvements for CE's inbuilt functions This post has 2 review(s) Reply with quote

Improves CE's inbuilt functions. Feature requests welcome, subject to available time and interest.

1. Group Config
- Batch apply "Group Config" functions such as "Hide children when deactivated".

2. Smart Edit Address
- Improves upon in-built CE's set address function so it can set the same pointer/address for all selected memory records now.
- Prompts whether to apply pointer/address to all selected memory records when more than one is selected.
- Adds a new option "Smart increment address(es)" under "Change record", only visible when more than one memory record is selected.
- It auto increments addresses and offsets of all selected memory records based on values provided in the normal change address dialog.
- Allows for auto decrement too. Just input a negative number.
- Refer to screenshots below for clearer explanation.

3. Hexadecimal View Selection Length
- Adds a new popup menu item "Selection Length" beneath "Goto address".
- Popups a query box with the length of selected bytes. Pressing Ok copies length to clipboard.

4. Module Information
- Displays a dialog box to show module information if selected address is in one.
- Information includes module name, base address, end address, size.
- Option to copy base address and end address to scan range.
- Supports mono method names.

5. Batch Edit Hotkeys
- Works with official CE 6.5.1 & 6.6.
- May or may not work with other versions.
- Currently only has CE x64 version. Will consider x86 if user base is large enough.
- Create, edit, and delete hotkeys of all selected memory records.
- Memory records have to be selected when "Apply/Delete" is clicked.
- Primary selected memory record (memory record used to open edit form) will always be modified even if not selected.
- For editing and deletion, all selected memory records have their hotkeys at the selected list view index modified or deleted.
- Modification is applied entirely (i.e. Keys, Behavior, Value, Description).
- For editing and deletion, if a selected memory record does not have a hotkey at the selected list view index, it is left untouched.

6. Structure Dissect Filter
- Adds six new functions to the popup menu of structure dissect form:
Combine/Split overlapping elements.
Remove duplicate elements.
Filter out elements that have equal column values. (Default: Green)
Filter out elements that have different column values. (Default: Red)
Filter out elements that have equal group values. (Default: Blue)
Filter out elements that have different group values. (Default: Purple)
- Adds a new function under "Rename structure" which duplicates current structure. For use in conjunction with filters.
- Sorting without deleting is impossible since CE automatically sorts elements.
- The combine/split option is a toggle-able entry.
- It will automatically merge overlapping elements when the element bytesize increases.
- It will automatically create new elements with the same new vartype if the element bytesize decreases i.e. split up the original element.
- The combine/split functions will automatically collapse any expanded pointers so only the main structure is changed. It's more of an easy way out for me as calculating all the shifts in array while modifying expanded pointers was really tedious.
- Download here.

7. External Editor
- Adds a "Change script with external editor" option below "Change script".
- To choose which editor to use change this line below in the lua file.
Code:
local extEditor = [[C:\Program Files (x86)\Notepad++\notepad++.exe]]

- Temporary files are created in the %TEMP%/Cheat Engine/ folder while editing.
- Files are deleted when editor is closed.
- Download here.

8. Export HexView Selection
- Adds a new popup menu item "Export Selection" at the end of menu.
- Download here.

9. Batch Edit Dropdown List
- Batch apply dropdown lists and options to selected records.
- Download here.

Screenshots:
https://www.dropbox.com/sh/k4b68ivizjfsyev/AAA348pD-Vx7Rr5Lvg_TKJqia?dl=0

To install:
1. Drop .lua file in CEDirectory\autorun folder

Quote:
Update 1:
- Added multi level pointer functions.
- Separate files for individual functions so users can install only what they need.

Update 2:
- Smart Edit Pointers: Added support for double clicking address to batch edit.

Update 3:
- Smart Edit Pointers: Added prompt confirmation for whether to apply address/pointer to all selected records.

Update 4:
- Smart Edit Pointers: Prompt for double clicking treeview only popups when address section is double clicked.

Update 5:
- Smart Edit Pointers: Changed behavior of "Smart increment address(es) to start increment from first selected record.

Update 6:
- Added "Hexadecimal View Selection Length" function.

Update 7:
- Smart Edit Pointers: Support for symbols in address for "Smart increment address(es). Prompts whether to de-reference symbols.
- Smart Edit Pointers: Sets all boxes to 0 by default for "Smart increment address(es).
- Hexadecimal View Selection Length: Adds menu entry to secondary memory viewer forms.

Update 8:
- Smart Edit Pointers: Implemented bubble sort for selected records in the event that selection is not a contiguous block.

Update 9:
- Smart Edit Pointers: Renamed to "Smart Edit Address" to better reflect functionality.
- Hexadecimal View Selection Length: Now displays selection length in secondary windows correctly.
- Module Information: Merged thread.
- Batch Edit Hotkeys: Details see above.

Update 10:
- Batch Edit Hotkeys: Improved compatibility with different CE versions based on suggestion from akumakuja28.

Update 11:
- Batch Edit Hotkeys: Improved compatibility.
- Batch Edit Hotkeys: Added check for 64-Bit CE so it does not crash 32-Bit CE on launch.

Update 12:
- Batch Edit Hotkeys: Improved compatibility.

Update 13:
- Structure Dissect Filter: Details see above.

Update 14:
- Module Infomation: Added support for mono method information.

Update 15:
- Structure Dissect Filter: Fixed bug with compare iterator.
- Structure Dissect Filter: Moved position of "Duplicate structure" to after "Rename Structure".

Update 16:
- Smart Edit Address: Aesthetic tweak for "Smart increment address" to not add a "+0" if increment offset is 0.

Update 17:
- Batch Edit Hotkeys: Updated AOB for CE 6.6. Should not affect backward compatibility.
- Module Information: Updated for CE 6.6.

Update 18:
- Structure Dissect Filter: Added new toggle-able option "Combine/Split overlapping element(s)."

Update 19:
- Structure Dissect Filter: Fixed a bug with Filter Equal Columns when there is only one group.
- [All My Extensions]: Major update to localize all functions to avoid conflicts between extensions due to similar names, especially commonly used library functions.

Update 20:
- External Editor: Details see above.
- Smart Edit Address: Minor fix for double clicking address column when there is no records selected.

Update 21:
- External Editor: Added a "Change External Editor" option to "Extra" in main menu.
- External Editor: Should automatically prompt to select an external editor if it's not set, and change the lua file accordingly.
- External Editor: Fixed a few bugs. Should be working correctly now.

Update 22:
- External Editor: Fixed bug of array element and tmp file being deleted before prompt is returned.

Update 23:
- Module Information: Fixed checking for Mono injection in non Mono processes.

Update 24:
- Export HexView Selection: First release.
- HexView Selection Length: Menu entry is now disabled if nothing is selected.

Update 25:
- External Editor: Bugfix for creating "Extra" menu group. (Thanks @Merlini)

Update 26:
- External Editor: Bugfix for temporary filePath. (Thanks @mgr.inz.Player)

Update 27:
- Batch Edit Hotkeys: Added support for children records.

Update 28:
- Batch Edit Dropdown List: First Release

Update 29:
- External Editor: Added error message with line number and error type. (Thanks @Merlini)


Credits and Thanks to:
SnedS91
MasterGH
++METHOS
panraven
mgr.inz.Player
akumakuja28



Batch Edit Hotkeys [x64].lua
 Description:
Update 27:
- Batch Edit Hotkeys: Added support for children records.

Download
 Filename:  Batch Edit Hotkeys [x64].lua
 Filesize:  15.31 KB
 Downloaded:  910 Time(s)


HexView Selection Length.lua
 Description:
Update 24:
- HexView Selection Length: Menu entry is now disabled if nothing is selected.

Download
 Filename:  HexView Selection Length.lua
 Filesize:  2.05 KB
 Downloaded:  814 Time(s)


ModuleInfo.lua
 Description:
Update 23:
- Module Information: Fixed checking for Mono injection in non Mono processes.

Download
 Filename:  ModuleInfo.lua
 Filesize:  6.14 KB
 Downloaded:  887 Time(s)


Smart Edit Address.lua
 Description:
Update 20:
- Smart Edit Address: Minor fix for double clicking address column when there is no records selected.

Download
 Filename:  Smart Edit Address.lua
 Filesize:  8.74 KB
 Downloaded:  944 Time(s)


Group Config.lua
 Description:
Update 19:
- [All My Extensions]: Major update to localize all functions to avoid conflicts between extensions due to similar names, especially commonly used library functions.

Download
 Filename:  Group Config.lua
 Filesize:  2.83 KB
 Downloaded:  848 Time(s)


_________________


Last edited by predprey on Sun Jun 11, 2017 2:23 am; edited 98 times in total
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 75

Joined: 29 Oct 2010
Posts: 3660

PostPosted: Sun Jul 17, 2016 4:25 pm    Post subject: Reply with quote

Awesome! Thanks!

Any chance of getting the same functionality for batch-editing/assigning of hotkeys? That would be really great!

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

Joined: 08 Oct 2015
Posts: 366

PostPosted: Mon Jul 18, 2016 7:09 am    Post subject: Reply with quote

++METHOS wrote:
Awesome! Thanks!

Any chance of getting the same functionality for batch-editing/assigning of hotkeys? That would be really great!

Thanks!
well, it's possible to create hotkeys with the GenericHotkey class but this is not MemoryRecordHotkey so the hotkeys would not show in CE's set hotkey interface. sadly, the exposed functions for the MemoryRecordHotkey class are mostly read only so even if i could get the newly configured hotkeys, i cannot apply them to all selected records Rolling Eyes
suppose the MemoryRecordHotkey class is exposed through CE's source, it would probably have been easier to just code it into CE directly by then.

i'll see if i can piggyback onto CE's hotkey functions through asm, but the chances are near zero.
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Sun Jul 31, 2016 11:20 pm    Post subject: This post has 1 review(s) Reply with quote

++METHOS wrote:
Awesome! Thanks!

Any chance of getting the same functionality for batch-editing/assigning of hotkeys? That would be really great!

Thanks!


it's done. finally. i reckon it's gonna be a PITA to update and maintain when CE updates Rolling Eyes
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 75

Joined: 29 Oct 2010
Posts: 3660

PostPosted: Mon Aug 01, 2016 12:22 pm    Post subject: Reply with quote

Thanks. I will check this out when I have more time. I am currently using mgr.inz.Player's hotkey editor, and it's working great. I noticed that you added some more features to your plugin, so I will have to check it out, for sure.

Thanks, again.
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Tue Aug 02, 2016 8:13 pm    Post subject: Reply with quote

@akumakuja28

ok, i updated it to use symbols. can you test it out?
Back to top
View user's profile Send private message
akumakuja28
Master Cheater
Reputation: 16

Joined: 28 Jun 2015
Posts: 432

PostPosted: Thu Aug 04, 2016 1:45 pm    Post subject: Reply with quote

predprey wrote:
@akumakuja28

ok, i updated it to use symbols. can you test it out?




Its beautiful man, gave ya a rep. Damn good looking Code. Very Happy

Side Note: This forum Section needs better exposure. Its Buried in this Sub- Forum. I only say this cause of the low number of downloads on every ones contributions.

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

Joined: 08 Oct 2015
Posts: 366

PostPosted: Thu Aug 04, 2016 8:41 pm    Post subject: Reply with quote

akumakuja28 wrote:
predprey wrote:
@akumakuja28

ok, i updated it to use symbols. can you test it out?




Its beautiful man, gave ya a rep. Damn good looking Code. Very Happy

Side Note: This forum Section needs better exposure. Its Buried in this Sub- Forum. I only say this cause of the low number of downloads on every ones contributions.


thanks. if there are no problems, i reckon i do not need to implement some way to find the correct offsets to Hotkeylist: TList for compatibility's sake.

EDIT: added signature searches to find correct offsets
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Thu Aug 18, 2016 5:36 pm    Post subject: Reply with quote

6. Structure Dissect Filter
- Details see first post.

I am thinking if I should add a "Filter by Value" option, will do it if there's demand for it.



Structure Dissect Filter.lua
 Description:
Update 19:
- Structure Dissect Filter: Fixed a bug with Filter Equal Columns when there is only one group.
- [All My Extensions]: Major update to localize all functions to avoid conflicts between extensions due to similar names, especially commonly use

Download
 Filename:  Structure Dissect Filter.lua
 Filesize:  36.3 KB
 Downloaded:  797 Time(s)


_________________


Last edited by predprey on Tue Oct 18, 2016 5:38 pm; edited 5 times in total
Back to top
View user's profile Send private message
Diefool
How do I cheat?
Reputation: 0

Joined: 29 Aug 2016
Posts: 1

PostPosted: Wed Aug 31, 2016 11:06 am    Post subject: Reply with quote

predprey wrote:
6. Structure Dissect Filter
- Details see first post.

I am thinking if I should add a "Filter by Value" option, will do it if there's demand for it.


I don't have any use (this second anyway) for the other extensions, but this one right here makes you a good man in my book! Was getting so tired of manually removing duplicates.

Granted I use Reclass 2016 usually for structures, I do like to do them right in CE from time to time depending on project. This is amazing I don't know if I can even give rep but if it works, you got it.

EDIT: Any way to implement removing "Overlapping" I.E. Replacing a 2-byte type with 4-byte type the overlapping filter would remove the 2-byte value that follows this?

0x0002: (4 Byte)
0x0004: (2 Byte) <---- remove this as it's actually part of the 0x02 4byte)

I can do this manually just a possible suggestion... maybe even tie it in with duplicate removal? or its own function?)
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Wed Aug 31, 2016 11:49 am    Post subject: Reply with quote

Diefool wrote:
I don't have any use (this second anyway) for the other extensions, but this one right here makes you a good man in my book! Was getting so tired of manually removing duplicates.

Granted I use Reclass 2016 usually for structures, I do like to do them right in CE from time to time depending on project. This is amazing I don't know if I can even give rep but if it works, you got it.

EDIT: Any way to implement removing "Overlapping" I.E. Replacing a 2-byte type with 4-byte type the overlapping filter would remove the 2-byte value that follows this?

0x0002: (4 Byte)
0x0004: (2 Byte) <---- remove this as it's actually part of the 0x02 4byte)

I can do this manually just a possible suggestion... maybe even tie it in with duplicate removal? or its own function?)


interesting.....i presume that it is supposed to be an automatic function? perhaps a toggle, so that users can still choose to turn it off to have overlapping elements. i'll do it when i have time.
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Tue Oct 04, 2016 10:43 pm    Post subject: This post has 1 review(s) Reply with quote

Updated Batch Edit Hotkeys for CE 6.6.

Wanted to update the code to use reassemble() instead, but there's a part which had a different length machine code for different CE versions, resulting in having to use Lua to determine the code length ultimately. So scrapped the idea and just sticked to using Lua all the way to replace the calls with relative addressing.
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Thu Oct 06, 2016 9:44 am    Post subject: Reply with quote

Alright, finally got my lazy ass down to coding the "overlapping" function for Structure Dissect Filter. It's still a WIP as I haven't finish coding in the split functions. But the merge function should be working sufficiently well enough. Do report any bugs, I'm sure there are some sneaky ones that I left out.

UPDATE: Ok, finally finished up the whole feature albeit with a few handicaps. For more info check main posts above. Beta download in this post hereby removed.
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Sat Oct 08, 2016 1:23 pm    Post subject: This post has 1 review(s) Reply with quote

7. External Editor
- Details see first post.

Barebones extension. When I have more time I will add an open dialog to select editor on first launch, and maybe an options menu item to change it. Please do suggest other improvements and notify me of bugs. I need to catch up on my work now bye~~

EDIT: Done with adding the select editor option.



External Editor.lua
 Description:
Update 26:
- External Editor: Bugfix for temporary filePath. (Thanks @mgr.inz.Player)

Download
 Filename:  External Editor.lua
 Filesize:  5.24 KB
 Downloaded:  643 Time(s)


_________________


Last edited by predprey on Fri Oct 21, 2016 3:01 am; edited 4 times in total
Back to top
View user's profile Send private message
predprey
Master Cheater
Reputation: 15

Joined: 08 Oct 2015
Posts: 366

PostPosted: Thu Oct 20, 2016 4:11 am    Post subject: Reply with quote

8. Export HexView Selection
- Details see first post.



Export HexView Selection.lua
 Description:

Download
 Filename:  Export HexView Selection.lua
 Filesize:  1.7 KB
 Downloaded:  556 Time(s)


_________________
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 Lua Scripting -> Lua Extensions All times are GMT - 6 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
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