Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Collapse
Brand Logo

CELua[RU]

  1. Главная
  2. Статьи
  3. Приёмы
  4. Заполненение таблицы данными по базовому адресу

Заполненение таблицы данными по базовому адресу

Запланировано Прикреплена Закрыта Перенесена Приёмы
фишкиce luace memrecce aa
1 Сообщения 1 Posters 31 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • MasterGHM Не в сети
    MasterGHM Не в сети
    MasterGH Администраторы
    написал в отредактировано
    #1

    Нажали checkbox — заполнились данные по базовому адресу
    5c7004e5-5eed-48f6-8292-2ad642446fe9-изображение.png

    Отжали checkbox — удалились данные
    45a2563e-db72-4c52-9298-5fb1b29c93ee-изображение.png

    [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
    

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

    1 ответ Последний ответ
    0

Powered by NodeBB | Contributors
СeLua[RU] 2024©
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы