Перейти к содержанию
Авторизация  
Razi

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, Razi сказал:

значение в hex в editbox на языке Lua

Уже было - ТЫК

  • Плюс 1

Поделиться сообщением


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

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

Спойлер

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

Поделиться сообщением


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

local a = 1000
UDF1.CEEdit1.Tex = string.format('%X', a) -- ( X - заглавные, x - маленькие )

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×

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

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