View previous topic :: View next topic |
Author |
Message |
dharthoorn Advanced Cheater Reputation: 1
Joined: 27 Nov 2008 Posts: 84
|
Posted: Tue Dec 05, 2017 4:08 am Post subject: Dropdown list table bloat & responsiveness |
|
|
It has happened a number of occasions when I assign an item ID dropdown list of substantial size, lets say ~1000 lines to several hundred lines of item slots the resulting table bloat makes sorting and general responsiveness go down the drain.
I was wondering if a "smart" system could be implemented that would reference ONE embedded dropdown list by line instead of embedding the ENTIRE list in the HTML line by line.
This may well be beyond the scope of what is possible in current HTML format but I thought I'd ask anyway.
_________________
"If you could reason with religious people there would be no religious people" - House Md. (My Personal Life Coach) |
|
Back to top |
|
|
panraven Grandmaster Cheater Reputation: 55
Joined: 01 Oct 2008 Posts: 942
|
Posted: Tue Dec 05, 2017 5:31 am Post subject: |
|
|
May check http://forum.cheatengine.org/viewtopic.php?p=5712168
Also a handler OnActiavte can be attach to specific memory record to mimic the dropdown list function, but memory writing has to do it yourself.
It can also use a new lua function
--showSelectionList(title, caption, stringlist, allowCustomInput OPTIONAL)
--in recent version : eg. mgr.inz.Player's Recent CheatEngine builds [find the url yourself, the forum modified the link]
this ui function has the benefit to filter the 1000~ list with what user typed.
(type something in the top box to see the effect)
Code: |
sl = sl or createStringlist() --
sl.Text = [[
Peter - 123
Paul - 456
Mary - 789
]]
rl = rl or createStringlist() --
rl.Text = [[
Peter - 99999
Paul - 88888
Mary - 77777
]]
print(sl.Count,rl.Count)
local al = GetAddressList()
for i=0,al.Count-1 do
local mr = al[i]
if mr.Description:find"@[rs]l" then
mr.OnActivate = function(mr,before,current)
if mr.Description:find"@sl" then
print(showSelectionList("Select","choose",sl,true))
elseif mr.Description:find"@rl" then
print(showSelectionList("Select","choose",rl))
else -- in case @[rs]l removed
return true -- pass/ignore
end
end
end
end
-- to test make some memory record with description having '@rl' or '@sl'
|
_________________
- Retarded. |
|
Back to top |
|
|
dharthoorn Advanced Cheater Reputation: 1
Joined: 27 Nov 2008 Posts: 84
|
|
Back to top |
|
|
panraven Grandmaster Cheater Reputation: 55
Joined: 01 Oct 2008 Posts: 942
|
Posted: Wed Dec 06, 2017 12:27 am Post subject: |
|
|
Hi,
I attached a test ct, but it is in *.lua extension, remove the .lua then try it.
It may display a message of mgr.inz.Player's Recent CheatEngine builds
if your ce doesn't has the showSelectionList function.
bye~
Description: |
|
Download |
Filename: |
test_selection.CT.lua |
Filesize: |
16.81 KB |
Downloaded: |
745 Time(s) |
_________________
- Retarded. |
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Wed Dec 06, 2017 9:29 am Post subject: |
|
|
Official CE6.7 provides "Link to other Memory Record Drop Down List" feature.
(I will refer to this feature as "Link" for simplicity)
Works like this:
1) you have first/main entry (main memory record) with normal drop down list.
For example memory record, with description "First Item", have normal drop down list like this one:
Code: | 1:Crown
2:Overcoat
3:Gloves
4:Trousers |
2) you want the same drop down list for other entries (memory records), e.g. "Second Item", "Third Item",...
You can use a link. Just type in the description of that memory record inside parenthesis.
Example:
Unfortunately, official CE6.7 has few bugs related to mentioned feature:
- reopened "drop down list editor" window forgets to check if there is a link or not. So you can not rely on all information you see in this window. Also, because of this bug, if you want to remove the link or use a normal drop down list, you have to save current work to CT file, open that CT file with XML editor (CT files are Extensible Markup Language text files) and remove <DropDownListLink> node.
- extra drop down list options, from main memory record, such as "Only show the description part" and "Make the record display values like the dropdown list" don't transfer properly to other memory records (which are linked to the main memory record)
- change value window will always highlight the value you see in main memory record
You can use my "custom Cheat Engine build", it doesn't have above bugs. You can compose and release CT file with nice DropDownLists and Links to those, and CT file size should be small. Of course you will have to recommend to use my CE build or recommend compiling CE from source on GitHub.
(or wait for CE6.7.1 or CE6.8)
_________________
|
|
Back to top |
|
|
dharthoorn Advanced Cheater Reputation: 1
Joined: 27 Nov 2008 Posts: 84
|
|
Back to top |
|
|
|