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

Razi

Пользователи+
  • Постов

    248
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Сообщения, опубликованные Razi

  1. 14 минут назад, gmz сказал:

    если в игре вкл ASLR - нет

    Трейнер сделан для эмулятора ePSXe, на win XP базовый адрес ePSXe.exe всегда 0x400000 и адреса в эмуляторе статические, не меняются при перезапуске ePSXe

  2. 3 часа назад, Xipho сказал:

    Но вообще, от ХР я настоятельно рекомендую отказаться.

    Почему? Все программы и игры, которые у меня есть заточены под Win XP, а на Win 7 , хоть и можно запускать exe в режиме совместимости с XP, но могут начаться танцы с бубнами.

  3. Меняется ли базовый адрес exe файла на 64 bit ОС, если запускать exe файл в режиме совместимости 32 bit? Прочитал, что: 

    base address для .exe файла 0x400000 для 32-bit  или 0x140000000 для 64-bit.

    Для DLL, base address 0x10000000 для 32-bit или 0x180000000 для 64-bit.

    Сделал трейнер с базовым адресом 0x400000 и не знаю сможет ли он считывать правильные значения на 64 bit ОС, при запуске exe файла игры в 32 bit.

  4. Добрый день. Можно поставить на windows xp (32 bit) виртуальную машину с windows 7 (64 bit)? Процессор: amd athlon II x2 260, гуглил, говорят должен поддерживать 64 bit OC. Материнская плата: поддерживает Windows 7, но 8 или win 10 не поддерживает. Можно ли на виртуальную машину поставить windows 10 (32 bit) с такими характеристиками?

  5. White Wind, Версия: 1.07, трейнер Final Fantasy 7 для PSX PAL Английской версии игры [SCES_00867],] [SCES_10867],] [SCES_20867]. Меню на английском языке.

    Трейнер работает с эмулятором ePSXe, exe-файл эмулятора должен называться: ePSXe.exe или ePSXe ENG.exe.

     

    Требования:
    Трейнер тестировался с ePSXe 1.7.0 на Windows XP, неизвестно или будет работать на Windows 7 или 10.
    White Wind v1.0 (light) - light версия, требует установленную версию Cheat Engine 6.5 или выше. Обычная версия не требует установки Cheat Engine.

     

    Описание: Трейнер содержит множество чит-кодов. Чтобы посмотреть данные FF7 и протестировать игру.
    Сделайте резервную копию сохранения, потому что трейнер не был достаточно протестирован.

     

    Как пользоваться:
    Запустите эмулятор ePSXe, затем запустите трейнер.
    Чтобы изменить данные, нажмите на значение в текстовом поле и измените значение с помощью кнопок клавиатуры, затем нажмите кнопку «Ввод» (Enter).
    Чтобы обновить значения, щелкните по пустому месту за пределами GroupBoxes или нажмите кнопку «Refresh». (GroupBoxes это серый ободок вокруг нескольких элементов управления.)

     

    Вкладки, которые обновляют данные автоматически каждую 1 секунду:
    Stats, Materia 1, Materia 2, Other, In-B Enemy, In-B Status, Coord.

     

    hidden options (скрытые опции):
       на вкладке «Materia Inv» нажмите Ctrl + H
       на вкладке «Limits» нажмите Ctrl + J
       на вкладке «Cheats» нажмите Ctrl + K

     

       на вкладке "Materia 1" или "Materia 2"
       нажмите Ctrl + V, чтобы скрыть comboboxes (комбинированные списки)

       нажмите Ctrl + G, чтобы скрыть кнопки Refresh

     

    Подробное описание:
    Не все данные могут быть изменены. Некоторые значения предназначены только для чтения.
    Чтобы узнать, что делает чит-код, просто наведите указатель мыши на флажок (чекбокс) или другой элемент и подождите 1 секунду, после чего появится объяснение.

     

    Вкладка "Limits" :
    Чтобы изменить Enemy Skills в материи: поместите E.Skill материю в инвентарь в слот 1, затем щелкните по пустому месту за пределами GroupBoxes или нажмите кнопку «Refresh» и измените Enemy Skills в материи.

     

    Вкладка "Cheats" :
    Кнопки "Remove All Materia" и "Remove All Items" удаляют все материи или все вещи из инвентаря.

     

    Вкладка "In-B Enemy" (In-Battle Enemy):
    Значения от AP и ниже предназначены только для чтения.

     

    Вкладка "In-B Status" (In-Battle Status):
    Чтобы отключить Cait Sith's Limit Evil flag: кликните по флажку (чекбоксу) «Evil flag enabled» после остановки первого барабана. Флажок (чекбокс) должен быть снят, чтобы отключить Evil flag.

     

    Вкладка "Coord" (Координаты):
    Чтобы отследить местонахождение Ultimate weapon: Когда Ultimate weapon летает где-то на карте мира, установите флажок на «track the location of the Ultimate weapon». Где на карте мира: «H» - «Highwind» или «Cloud», а «X» - Ultimate weapon.
    Также щелкните правой кнопкой мыши на GroupBox «Field Coord», появятся те же опции, что и в пунктах меню. Смотрите скриншот с вкладкой Coord.

     

    Скриншоты 1:
     

    Спойлер

     

    2S47m.jpg

     

    2S47n.jpg

     

    2S47p.jpg

     

    2S47q.jpg

     

    2S47r.jpg

     

    2S47s.jpg

     

    2S47t.jpg

     

    2S47u.jpg

     

    2S47v.jpg

     



    Скриншоты 2:

    Спойлер

     

    2S4bT.jpg

     

    2S4bU.jpg

     

    2S4bV.jpg

     

    2S4bW.jpg

     

    2S4bX.jpg

     

    2S4bY.jpg

     

    2S4bZ.jpg

     


     

    Скачать: White Wind v1.07.rar


    Дайте мне знать, если трейнер может работать на windows 7, 8 или 10.

     

    Спасибо всем, кто помог создать этот трейнер: ReWanet, MasterGH, Dark Byte, FreeER, mgr.inz.Player и другие.

    • Плюс 2
  6. Добрый день. Возможно ли попробовать взломать Diablo 2: Lord of Destruction версия 1.13c, чтоб не терять заряды с финишными атаками? У Assassin'ки есть умения, как заряжающие удары (Charge-up skills) и финишные удары (Finishing moves), после финишных ударов она теряет заряды, Если не будет терять заряды, тогда можно будет сделать charge-up удар 3 раза, затем вы можете выполнять 3-зарядную финишную атаку пока заряды не исчезнут. Diablo 2: Lord of Destruction версия 1.13c, игра отображает 1.13.  

    Эти умения не играбельные, потому что вам нужно сделать 3 щелчка правой кнопкой мыши, затем 1 щелчок левой кнопкой мыши и сделать это надо тысячи раз. Играть с этими навыками очень напрягает. С другими персонажами в сто раз проще.

  7. 15 часов назад, MasterGH сказал:

    Вообще не очень понятно, зачем открывать файл как процесс,  подсчитав его размер.

     

    Это редактор магазина игры: Shop Editor. Достаем спец. прогой файл из диска Playstation 1. Открываем нашей программой, редактируем все что нам нужно и сохраняем. Размер файла подсчитывается, потому что у Региона Pal и региона NTSC файлы идентичны, но имеют разный размер и соответственно значения находятся по разным смещениям.

    Как процесс открывается, потому что на форуме CE нашел только одну тему как открыть файл. Нужно открыть файл и помнить все сделанные изменения, до записи значений в файл. И потом только один раз нажать на Apply Changes. Такая программа есть для NTSC и PC версий игры. Сделал такую же программу для Pal версии и заодно для NTSC и PC версий игры. 

    Скриншоты:

    Спойлер

    2Upun.jpg

     

    2Upup.jpg

     

    2Upuq.jpg

     

     

    MasterGH : Да и еще раз хотел сказать спасибо, за помощь в создании трейнера в прошлом.

    Скриншоты:

    Спойлер

    2S47m.jpg

     

    2S47n.jpg

     

    2S47p.jpg

     

    2S47q.jpg

     

    2S47r.jpg

     

    2S47s.jpg

     

    2S47t.jpg

     

    2S47u.jpg

     

    2S4bT.jpg

     

    2S4bU.jpg

     

    2S4bV.jpg

     

    2S4bW.jpg

     

    2S4bY.jpg

     

    • Понравилось 1
  8. 1 час назад, MasterGH сказал:
    
    local utf8Path = utf8ToAnsi(pathRU)

     

    Открывает файл, но не считывает значения с смещений. Значения равны nil.

     

    1 час назад, MasterGH сказал:

    в текстовым файле (справочнике CE Lua) есть классы для работы с файлами на чтение и запись.

    Там есть readRegionFromFile, writeRegionToFile

     

     

  9. 3 часа назад, MasterGH сказал:

    А ты пробовал преобразовать путь в UTF8?  У CE есть такая функция преобразования

     

    Эта функция ansiToUtf8(string) ? Куда ее надо вставить?

    Спойлер
    
    function fsize(fl)
     fl, err = io.open(fl, "r")
     if fl then
     local current = fl:seek()
     local size = fl:seek("end")
     fl:seek("set", current)
     fl:close()
     size = round(size, 2)
     stringsize = string.format(size)
     end
     return stringsize
    end
    
    function openFile(fs)
    load_dialog = createOpenDialog(self)
    load_dialog.InitalDir = os.getenv('%USERPROFILE%')
    load_dialog.execute()
    local path = load_dialog.FileName
    --path = ansiToUtf8(path)
     fileSize = fsize(path)
     fileSize = tonumber(fileSize)
      if fileSize == fs then
      openFileAsProcess(path, r)
      end
    end

     

     

  10. Добрый день. Можно CE научить понимать русские буквы в имени файла или в пути? Например: сделана программа, которая открывает файлы для редактирования, но если в названии файла есть русские буквы или в пути к файлу, тогда СЕ при попытке открыть этот файл говорит, что такого файла нет. Можно с помощью языка Луа это исправить?

  11. С помощью элемента listview можно делать запись в адрес? Считывание в listview получилось сделать, а с записью не получается. Была создана форма в конструкторе CE, на которую был помещен listview. Listview создавался с двумя столбцами и с свойством viewstyle: vsReport. Например считывание в listview происходит следующим образом:

    Спойлер
    
    local items = UDF1.CEListView1.Items
    items.Clear()
    
    local valuetable = {[0x00] = 'MP Plus'
    ,[0x01] = 'HP Plus'
    ,[0x02] = 'Speed Plus'
    ,[0x03] = 'Magic Plus'
    ,[0xFF] = 'NONE'
    }
    
    for x = 1, 30 do
    local offset = x*4-4
    local valueS = readBytes(0x009E8D4C+offset)
    local item = items.Add()
    item.Caption = valuetable[valueS]
    item.SubItems.text = bAnd(0xFFFFFF, readInteger(0x009E8D4D+offset))
    end

     

     

    Но, нельзя даже выбрать второй столбик в listview, скорее всего потому что это SubItem. Не помешал бы небольшой туториал по тому как пользоваться этим lisview, особенно как через него делать запись в адрес с разных ячеек. Например, как делать запись с ячейки в втором столбце, в пятом ряду? В этой ячейке какое-то число и нам нужно его изменить через listview и записать измененное число в адрес.

  12. Как создать функцию, что бы оптимизировать код? Нужно написать следующий код 20 раз.

    Для примера:

    Спойлер
    
    endata_DextLuck = {} 
    for x = 1, 12 do 
      endata_DextLuck[x] = UDF1["CEEdit"..x+532] 
    end 
    
    --write 1 byte 
    for x = 0, 11 do 
      local offset = 104*(x // 2) + (x % 2) 
      local current_endata_DextLuck = endata_DextLuck[x+1] 
    
      endata_DextLuck[x+1].OnKeyPress = function(sender, key) 
          timer.Enabled = false 
          local a = tonumber(sender.Text) 
          if (a~=nil) and isKeyPressed(VK_RETURN) then 
            writeBytes(0x00A445C8+offset, current_endata_DextLuck.Text) 
            timer.Enabled = true 
          end 
          return key 
        end 
    end

     

    и другой такой же код

     

    Спойлер
    
    endata_AttMatt = {} 
    for x = 1, 14 do 
      endata_AttMatt[x] = UDF1["CEEdit"..x+512] 
    end 
    
    --write 1 byte 
    for x = 0, 13 do 
      local offset = 68*(x // 2) + (x % 2) 
      local current_endata_AttMatt = endata_AttMatt[x+1] 
    
      endata_AttMatt[x+1].OnKeyPress = function(sender, key) 
          timer.Enabled = false 
          local a = tonumber(sender.Text) 
          if (a~=nil) and isKeyPressed(VK_RETURN) then 
            writeBytes(0x00A44D30+offset, current_endata_AttMatt.Text) 
            timer.Enabled = true 
          end 
          return key 
        end 
    end

     

     

    Только два параметра изменяются, адрес (0x00A445C8 => 0x00A44D30) и имя таблицы (endata_DextLuck => endata_AttMatt).

    Что нужно сделать, что бы избежать написание кода 20 раз? Может нужно создать функцию с передаваемыми параметрами?

    Например вот так:

    Спойлер
    
    --создаем таблицу
    cacheTable_CEEdits = {}
    for x = 1, 135 do
      cacheTable_CEEdits[x] = UDF1['CEEdit'..x]
    end
    
    --создаем функцию с параметрами
    function write1byte(tablename, address, x) -- или  local function write1byte(tablename, address, x)
    
      local current = tablename[x]
    
      tablename[x].OnKeyPress = function(sender, key)
          timer.Enabled = false
          local a = tonumber(sender.Text)
          if (a~=nil) and isKeyPressed(VK_RETURN) then
            writeBytes(address + offset, current.Text)
            timer.Enabled = true
          end
          return key
        end
    end
    
    --вызов функции
    for x = 1, 135 do
      local offset = 0x84*((x-1) // 15) + (((x-1) % 15) + 1)
      write1byte(cacheTable_CEEdits, 0x009E8624, x)
    end

     

     

    Но функция записи не работает. Где ошибка?

     

    Уже работает функция записи. Ответ на собственный вопрос:

    Спойлер
    
    local function write1byte(tablename, address)
    
      local current = tablename
    
      tablename.OnKeyPress = function(sender, key)
          timer.Enabled = false
          local a = tonumber(sender.Text)
          if (a~=nil) and isKeyPressed(VK_RETURN) then
            writeBytes(address, current.Text)
            timer.Enabled = true
          end
          return key
        end
    end
    
    
    for x = 1, 135 do
      local offset = 0x84*((x-1) // 15) + (((x-1) % 15) + 1)
      write1byte(cacheTable_CEEdits[x], 0x009E8624+offset)
    end

     

     

  13. Версия CE 6.5. Получилось некоторое время назад, как раз именно так, как предлагаете:

    Спойлер
    
    for x = 1, 3 do
      local currentCEEditsnowbt = CEEditsnowbt[x]
      CEEditsnowbt[x].OnKeyPress = function(sender, key)
          timer.Enabled = false
          local a = tonumber(sender.Text)
          if (a~=nil) and isKeyPressed(VK_RETURN) then
          
            local tohex=tonumber(currentCEEditsnowbt.Text,16) --в hex
            writeInteger(0x009E93E0+x*4, tohex)
            
            timer.Enabled = true
          end
          return key
        end
    end

     

     

    А вот другие методы, чтения/записи в hex, не захотели работать.

  14. 26 минут назад, MasterGH сказал:

    В CE 6.8 не работает вариант tonumber("0x9999",16). Работает tonumber("0x9999")

     

    а запись тогда как делать в адрес в hex формате?

    Следующий метод не работает как надо:

    Спойлер
    
    for x = 1, 3 do
      local currentCEEditsnowbt = CEEditsnowbt[x]
            writeInteger(0x009E93E0+x*4, string.format('0x%08X', currentCEEditsnowbt.Text))
    end

     

     

  15. считывать получилось одним методом

    Спойлер
    
    for x = 1, 3 do
        CEEditsnowbt[x].Text = string.format('0%X',readInteger(0x009E93E0+x*4))
      end

     

    другим методом не получилось

    Спойлер
    
        for x = 1, 3 do
          CEEditsnowbt[x].Text = tonumer(readInteger(0x009E93E0+x*4),16)
        end

     

     

    как исправить ошибку?

  16. Как отображать значение в hex в editbox на языке Lua? Например считываем 4-х байтное значение в editbox. Нужно чтоб это значение отображалось в hex. И также нужно записывать из editbox в hex формате. То есть для записи в адрес, нужно вводить в editbox'е значение в hex формате.

  17. Dark Byte на форуме подсказал:

    считывать количество: (работает)

    quantity=(wordvalue >> 9) & 0x7f

    записывать количество: ( не работает)

    wordvalue=(wordvalue & 0x1ff) | (quantity << 9)

     

    считывать index: (работает)

    index=wordvalue & 0x1ff

    записывать index: ( не работает)

    wordvalue=(wordvalue & 0xfe00) | index

     

    Считывание количества и индекса работает, а запись количества и индекса не работает.

    считывать индекс можно с кодом:

    Спойлер
    
    cacheTable_CEEditsiteminv = {}
    for a = 1, 20 do
      cacheTable_CEEditsiteminv[a] = UDF1["CEComboBox"..a+183]
    end
    
    for x = 1, 20 do 
        local offset = x*2-2 
        cacheTable_CEEditsiteminv[x].ItemIndex = (bAnd(0xFFFF, readInteger(0x009E8ACC+offset))) & 0x1ff 
        if bAnd(0xFFFF, readInteger(0x009E8ACC+offset)) == 0xFFFF then 
        cacheTable_CEEditsiteminv[x].ItemIndex = 0x140 
        end 
    end 

     

    считывать количество можно с кодом:

    Спойлер
    
    cacheTable_CEEditsqtyinv = {}
    for a = 1, 20 do
      cacheTable_CEEditsqtyinv[a] = UDF1["CEEdit"..a+299]
    end
    
    for x = 1, 20 do 
        local offset = x*2-2 
        cacheTable_CEEditsqtyinv[x].Text = (bAnd(0xFFFF, readInteger(0x009E8ACC+offset)) >> 9) & 0x7f 
    end

     

     

  18. Как считывать/записывать значения на 7/9 бит на языке Lua? Нужно считывать/записывать значение на 9 bit с помощью CEComboBox. Нужно считывать/записывать значение на 7 bit с Edit box.

    В игре, каждая вещь (item) в списке вещей (item list) хранится в виде  значения word (2 байта) с количеством, выраженным как 7-битное значение, объединенное с индексом вещи (item's index), выраженное как 9-битное значение между диапазоном 0-320. В двоичном виде: QQQQQQQXXXXXXXXX Где X - индекс, а Q - количество.

    Например: 55 Potion, 55 - это количество, Potion - это индекс вещи (item's index).

  19. Пробовал на версии 6.7, такой же результат, ест столько же памяти.

     

    6 часов назад, MasterGH сказал:

    Есть еще вариант написать модуль dll на Лазаре с таблицей. Работать с модулем через Cheat Engine

    На Лазаре можно делать вот такие красивые таблички. Форму в модуль сохранить и работать с функциями модуля.

    Ну если не смогу на CE Lua сделать адекватный трейнер, тогда можно будет смотреть на другие варианты. Таблички или editbox неважно. Главное чтоб трейнер работал, а как он будет выглядеть, не главное. Это 1-ый трейнер, который пытаюсь сделать.

     

    6 часов назад, MasterGH сказал:

    Чистить кеш памяти. Я писал об этом в блоге.

    Делал это, помогает. Но что будет через 3-5 часов работы трейнера, не проверял, проверялось только час, не больше. А трейнер нужно чтоб работал по 10-15 часов. Если прохождение игры занимает 70-180 часов. И нужно чтоб трейнер был включен все это время, хотя бы часов 100-150.

     

    6 часов назад, MasterGH сказал:

    Избегать постоянной записи в edit, если этого не требуется.

    А вот это надо попробовать.

  20. 2 часа назад, Garik66 сказал:

    Не замечал, чтобы в СЕ кушапась память при чтении/записи.

    Приведи полностью свой код, уверен на 90 %, что ты используешь  OpenProcess в функции таймера.

     

    Выложу весь трейнер. В трейнере на форму брошен таймер, может лучше в коде создавать таймер? Скорей всего может ошибка где-то, потому что CE начинает зависать немного, при работе трейнера.

    Спойлер

     

  21. В визуальном плане в конструкторе форм получается все довольно неплохо. Выглядит нормально. Думал будет намного хуже.

    Есть вопрос по поводу трейнера. В конструкторе форм, кинул на форму таймер (срабатывает раз в 1 секунду) и написан код на считывание в 135 editbox, код ниже.

    Спойлер
    
    UDF1.CETimer1.Enabled = true
    
    local addr = 0x009E8624
    function CETimer1Timer(sender)
      for x = 1, 135 do
       if x < 16 then
        UDF1["CEEdit"..x].Text = readBytes(addr+x)
        elseif x < 15*2+1 then
        local addr = addr + 0x84
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15))
        elseif x < 15*3+1 then
        local addr = addr + 0x84*2
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15*2))
        elseif x < 15*4+1 then
        local addr = addr + 0x84*3
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15*3))
        elseif x < 15*5+1 then
        local addr = addr + 0x84*4
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15*4))
        elseif x < 15*6+1 then
        local addr = addr + 0x84*5
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15*5))
        elseif x < 15*7+1 then
        local addr = addr + 0x84*6
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15*6))
        elseif x < 15*8+1 then
        local addr = addr + 0x84*7
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15*7))
        else
        local addr = addr + 0x84*8
        UDF1["CEEdit"..x].Text = readBytes(addr+(x-15*8))
      end
    end
    end

     

     

    Но есть одна проблема. Через час после включения трейнер жрет 700 мб памяти и загружает процессор до 50%. (И с каждой секундой поглощение памяти увеличивается на 3 мб). Может можно что-то сделать, как-то оптимизировать код? Код написан в версии CE 6.5, может в версии 6.7 такого уже нет? В общем посоветуйте, что можно сделать? Если конечно можно.

  22. 2 часа назад, MasterGH сказал:

    много уроков есть по рисованию на Дальфи и  Лазаре. Тогда на CE Lua можно понять какие функции вызывать

    Это слишком долго, нужно быстрее это сделать.

    Тогда можно и в Visual Studio попробовать такой трейнер сделать, хотя не знаю или на C# такое получится сделать. В принципе, написали с одним человеком программу (Код писал он, шаблоны и примеры он показал как делать, и всю рутинную работу делал я). Эта программа как раз считывает такие же данные, как нужны в трейнере, но она считывает с файла, а не из памяти.

    Спойлер

    2v85K.jpg

     

    2v85G.jpg

     

    Разобрался с тем как переключать цвет панели которые находятся в вкладках PageControl в Cheat engine. Надо использовать версию Cheat engine 6.7. Или в более старых версиях ReWanet  говорит: Надо просто форму обновить и цвет сменится.

  23. Цвет вкладок менять можно: добавив в середину вкладки панель, изменив ее цвет, и нажав ctrl+C и ctrl+V. Но менять цвет панели уже нельзя будет. И самое главное лейблы помещаемые на эту панель станут невидимыми.

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

    21 час назад, MasterGH сказал:

    Пожалуй, это сделать не просто. Скорее всего, через ассемблерные инструкции в процессе самого CE и создание потока, чтобы выполнить их. Можно дизассемблировать этот пример с Дельфи7 и посмотреть как API вызывается в отладочном коде и попытаться сделать тоже самое ассемблерными вставками.

     

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

     

     

    В 14.02.2018 в 14:31, MasterGH сказал:

    Если Cheat Engine не важен, можно быстрее сделать такие таблицы в готовой среде разработки.

    Такие штуки можно сначала на Дельфи7 (или бесплатном Lazarus) сделать, потом на CE Lua переходить.

    А если на Дельфи понравится, то на нем можно делать трейнеры. Между прочим там есть готовые компоненты таблицы.

    21 час назад, MasterGH сказал:

    есть последний вариант, о котором я писал — рисовать свою таблицу через "Canvas Class", Brush, Pen, Font, line, lineTo, rect, fillRect, textOut... Все как в стандартном рисовании на Дельфи, или Лазаре. Можно будет сделать практически любую таблицу.

    сначала на Дельфи7 (или бесплатном Lazarus) сделать, потом на CE Lua переходить.

     

    Имеется в виду, что таблица делается в Дельфи7 (или Lazarus) , а после ее можно перенести в конструктор Cheat Engine и работать с этой таблицей? Или делать все на Дельфи7 или Lazarus?

     

    Скорей всего придется работать с PageControl так как есть, с белым фоном на весь трейнер. Пока что простого способа не видно, чтоб изменить цвет фона вкладок.

  24. 34 минуты назад, kiwipapayamongoose сказал:

    можно изменять цвет CE панели при активации той или иной вкладки.

    Общей панели? Или панель(и)  которая(ые) находится внутри  вкладок? если мы их туда предварительно положим конечно. Но, если положить панель внутри вкладки, тогда их цвет должен меняться, но не хочет.

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

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

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