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

[Cheat Engine] Как отображать значение в hex в editbox?


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

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

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

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

Спойлер

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

 

 

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

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

Не такой команды :)

tonumer

 

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

Спойлер

function DecToHex(stringValue)  return string.format('0x%08X', stringValue) end
function HexToDec(stringValue)  return tonumber(stringValue) end

function CEButton1Click(sender)
  UDF1.CEEdit1.Text = DecToHex(100)
end

function CEButton2Click(sender)
  local value =  HexToDec(UDF1.CEEdit1.Text)
  print(value)
end

 

 

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

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

 

 

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

2 часа назад, Razi сказал:

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

Я сделал сейчас так:

1. LUA

Спойлер

function CEButton1Click(sender)
text=  tonumber(UDF1.CEEdit1.Text, 16)
writeInteger('071793B0', text)
end

 

2. скрин:image.thumb.png.5fc4c4418f85af79f7a6419858396a8f.png

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

2 часа назад, Razi сказал:

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

 

Если CE 6.8, то 

Спойлер

for x = 1, 3 do
  local address = 0x009E93E0 + x * 4
  local stringValue = CEEditsnowbt[x].Text
  local intValue = tonumber(stringValue)  
  writeInteger(address, intValue)
end

 

Если CE 6.7 и ниже

Спойлер

for x = 1, 3 do
  local address = 0x009E93E0 + x * 4
  local stringValue = CEEditsnowbt[x].Text
  local intValue = tonumber(stringValue,16)  
  writeInteger(address, intValue)
end

 

 

В  "CEEditsnowbt[x].Text" должна быть строка с префиксом "0x", т.е. "0x100" например

 

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

Спойлер

Пошаговая отладка Lua скриптов.png

 

Подробнее

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

Версия 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, не захотели работать.

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

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

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

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