Нажали checkbox — заполнились данные по базовому адресу
Отжали checkbox — удалились данные
[ENABLE]
{$lua}
baseAddress = 0x40000000
function FillValues(baseAddress, userValue)
stringData =
[[
Голод 20
Болезнь -10
Депрессия -40
Усталость 8
Ранения -28
Скрытность 6c
Изготовление 84
Исследования 54
Собирательство 3c
Охота b4
Рыбалка e4
Сбор cc
Готовка 9c
Сила 114
Ловкость fc
Телосложение 144
Борьба 12c
Интелект 1a4
Речь 174
Медицина 18c
Знания 15c
]]
-- Захват данных включая знак
for name, value in stringData:gmatch('(%S+).-(%S?%x+)') do
local stringPointer = ''
local indexMinus = value:find('-')
if indexMinus then
stringPointer = string.format('[%08X - %s]', baseAddress, value:sub(indexMinus + 1))
else
stringPointer = string.format('[%08X + %s]', baseAddress, value)
end
-- Добавить дочерний memrec
-- memrec это ссылка на memrec, в котором написан этот скрипт
local newMemRect = getAddressList().createMemoryRecord()
newMemRect.Description = name
newMemRect.Address = stringPointer
newMemRect.Type = vtDword
newMemRect.appendToEntry(memrec)
end
end
\-- Запись userValue по baseAddress
FillValues(baseAddress, userValue)
[DISABLE]
{$lua}
for i = 0, memrec.Count-1 do
memrec[0].destroy()
end
Если проще руками забить и поставить опцию раскрытия, то можно и без скрипта.