Перейти к содержанию

Делаем компактное окно Cheat Engine


MasterGH

Рекомендуемые сообщения

Я провел эксперимент и вот что получилось.
Некоторые компоненты главной формы могут мешать, когда у нас уже есть готовая таблица. Поэтому хорошо бы иметь возможность как скрывать так и показывать то, что порой мозолит глаза.

post-3-1329885123,35_thumb.png

post-3-1329885133,15_thumb.png

Чтобы это сделать добавьте Lua-код при запуске программы:

Спойлер

 

function StateCompactCEWindow(state)
	controlMainForm = getMainForm()
	separator = wincontrol_getControl(controlMainForm,0)
	Panel1 = wincontrol_getControl(controlMainForm,1)
	Panel4 = wincontrol_getControl(controlMainForm,2)
	Panel5 = wincontrol_getControl(controlMainForm,3)
	control_setVisible(separator, state)
	control_setVisible(Panel4, state)
	control_setVisible(Panel5, state)
end

function CompactCEWindow()
	menuItem_setCaption(newItem1, 'CompactView')
	menuItem_onClick(newItem1, UnCompactCEWindow)
	StateCompactCEWindow(true)
	end
	
function UnCompactCEWindow()
	menuItem_setCaption(newItem1, 'FullView')
	menuItem_onClick(newItem1, CompactCEWindow)
	StateCompactCEWindow(false)
end
------------
controlMainForm = getMainForm()

formMenu = form_getMenu(controlMainForm)
menuItem = menu_getItems(formMenu)
newItem1 = createMenuItem(menuItem)
menuItem_add(menuItem, newItem1) 

UnCompactCEWindow()

 

Ссылка на комментарий
Поделиться на другие сайты

  • 3 года спустя...

Если кто не понял как сделать, то закиньте файл (плагинчик для СЕ) в папку autorun.  (Путь к папке  C:\Program Files\Cheat Engine 6.4\autorun) 

Только вначале разархивируйте. (Оказалось что я не могу загружать файлы на форум подобного типа  :( , поэтому пришлось сделать архив.) 

8430978.jpg

CompactviewCEbyMasterGH.rar

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

Ведь пользователю не нужна форма CE для поиска значений.

Да, особенно когда ищем "неизвестное значение" и в конце отсеиваем, замораживая значения.

Ссылка на комментарий
Поделиться на другие сайты

Поставил себе, и первое что сделал, поменял в коде true и false местами, чтобы Cheat Engine запускался так как обычно, а FullView было как дополнительное удобство.

А намного сложнее будет еще в окно FullView, в левую часть экрана вставить окошко, в котором найденные адреса при сканировании? Тогда бы окно FullView было полезно не только при готовых таблицах, но и после отсеивания, когда нашли 1000 адресов в окне сканирования, то при FullView можно увидеть не 15 адресов в этом окне а >30. Это увеличит наш обзор в этом окне. Правда при этом еще может понадобится кнопка с стрелкой, которая добавляет выбранные адреса в лист адресов.

Изменено пользователем Razi
Ссылка на комментарий
Поделиться на другие сайты

А намного сложнее будет еще в окно FullView, в левую часть экрана вставить окошко, в котором найденные адреса при сканировании?

 

Я думаю, это не сложно. Но мне кажется это не даст ощутимой пользы даже с расширением обзора.

 

Другое дело если создать компонент, который позволяет объединять в группы найденные адреса по определенным правилам

 

1) одинаковые значения

2) близко стоящие адреса

3) адреса, к которым обращается одна и та же инструкция

4) адреса, к которым не обращается ни одна инструкция игры в данный момент

5) адреса, к которым одинаковое количество раз происходило обращение кода игры

ну и т.п.

 

 Т.е. помимо обычной информации "адрес-значение-тип" выводить, сортировать и группировать по другим правилам и другим данным. Возможно даже что-то рисовать чтобы видеть общую картину. Наши глаза распознают отличие мгновенно, когда мы видим всю картину, а в ней что-то разным цветом. Например, участки (области привязанные к адресам) рисовать разным цветом, но для определенной руппы, когда к адресам этой группы обращаются инструкции игры синхронно. Таким образом можно выявлять группы разным цветом.

Ссылка на комментарий
Поделиться на другие сайты

Просто у меня часто бывало, что есть пару тысяч адресов в окне сканирования, и для меня, даже расширение окна по высоте даст ощутимую пользу.

Ссылка на комментарий
Поделиться на другие сайты

  • 6 лет спустя...
В 22.01.2016 в 13:05, Garik66 сказал:

то закиньте файл (плагинчик для СЕ) в папку autorun

Спасибо Игорь. Раньше я пользовался таким скриптом луа.

Спойлер
[ENABLE]
luacall(
  function cycleFullCompact(sender,force); 
    local state = not(compactmenuitem.Caption == 'Компактный режим');
    if force~=nil then
      state = not force
    end;
    compactmenuitem.Caption = state and 'Компактный режим' or 'Выход из компактного режима'; 
    getMainForm().Splitter1.Visible = state; 
    getMainForm().Panel4.Visible = state; 
    getMainForm().Panel5.Visible = state; 
  end; 
  function addCompactMenu(); 
    if compactmenualreadyexists then 
      return 
    end; 
    local parent = getMainForm().Menu.Items; 
    compactmenuitem = createMenuItem(parent); 
    parent.add(compactmenuitem); 
    compactmenuitem.Caption = 'Компактный режим'; 
    compactmenuitem.OnClick = cycleFullCompact; 
    compactmenualreadyexists = 'yes'; 
  end; 
  addCompactMenu(); 
  cycleFullCompact(nil,true)
)
[DISABLE]

luacall(cycleFullCompact(nil,false))

Его надо было активировать в таблице, добавляет не удобство и необходимость удаления скрипта перед генерациеей трейнера.

теперь мне больше не нужен это скрипт, такак функция уже на панели се есть. надо толко файл куда надо закинуть.

Изменено пользователем Xipho
Исправление кода. В следующий раз публикуй код в нормальном виде, пожалуйста.
Ссылка на комментарий
Поделиться на другие сайты

Я пользую скрипт со всем известного форума.

Спойлер
controlMainForm = getMainForm()
AddressList = getAddressList()

if getCEVersion == nil or getCEVersion() < 6.4 then
  messageDialog('It is recommended to use at least Cheat Engine 6.7! (Your Version: '..getCEVersion()..')', mtError, mbOK)
end


function cycleFullCompact(sender,force)
  local state = not(compactmenuitem.Caption == 'Compact View Mode')
  if force~=nil then state = not force end
  compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'
  getMainForm().Splitter1.Visible = state
  getMainForm().Panel4.Visible    = state
  getMainForm().Panel5.Visible    = state
end



function addCompactMenu()
  if compactmenualreadyexists then return end
  local parent = getMainForm().Menu.Items
  compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem)
  compactmenuitem.Caption = 'Compact View Mode'
  compactmenuitem.OnClick = cycleFullCompact
  compactmenualreadyexists = 'yes'
end
addCompactMenu()
cycleFullCompact(nil, true)
controlMainForm = getMainForm()

 

 

Ссылка на комментарий
Поделиться на другие сайты

С CheatEngine форума. 

 

Самая интересная конструкция в скрипте

compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'

Здесь-то Caption-то — строка. Ну, а вот Lua такой язык программирования, что позволяет булевые значения и строки вместе писать, и возвращать строки.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.