CELua[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

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

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

      Нажали 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

      • 1 / 1
      • Первое сообщение
        Последнее сообщение
      Powered by NodeBB | Contributors
      СeLua[RU] 2025©