MasterGH Опубликовано 11 марта, 2017 Поделиться Опубликовано 11 марта, 2017 Скрытый текст ClassSettings = {} ClassSettings.__index = ClassSettings function ClassSettings:New(_fileName, _maskFile) local obj = {} obj.stringList = createStringlist() obj.fileName = _fileName obj.maskFile = _maskFile obj.directoryPath = getCheatEngineDir()..'autorun' obj.filePath = obj.directoryPath..'\\'..obj.fileName -- Есть ли такой ключ function obj:HasKey(keyString) local stringCount = self.stringList.Count for i=0,stringCount-1 do local items = self:Split(self.stringList[i]) if(keyString == items[1]) then return true end end end -- Получить значение ключа function obj:Get(keyString) local stringCount = self.stringList.Count for i=0,stringCount-1 do local items = self:Split(self.stringList[i]) if(keyString == items[1]) then return items[2] end end end -- Записать ключ function obj:Set(keyString, stringOrDigitalValue) -- Искать номер строки local stringCount = self.stringList.Count for i=0,stringCount-1 do local items = self:Split(self.stringList[i]) if(keyString == items[1]) then items[2] = stringOrDigitalValue self.stringList.remove(self.stringList[i]) break end end self.stringList.add (keyString..' '..stringOrDigitalValue) end -- Возвращает числовой вариант function obj:GetDigital(keyString) return tonumber(obj:Get(keyString)) end -- Сохранить все ключи function obj:Save() self.stringList.saveToFile(obj.filePath) end function obj:FileExist(directoryPath, pathToFile, mask) local paths = getFileList(directoryPath, mask, false) for i=1,#paths do if(paths[i] == pathToFile) then return true end end return false end function obj:Split(argString) local resultTable = {} for i in string.gmatch(argString, "%S+") do table.insert(resultTable, i) end return resultTable end -- Загрузка ключей в память if(obj:FileExist(obj.directoryPath, obj.filePath, obj.maskFile)) then obj.stringList.loadFromFile(obj.filePath) end setmetatable(obj, self) return obj end Использование. Код выше вставляем в редактор Lua кода, а ниже пишем -- Инициализация (файл ищем в папке "autorun") classSettings = ClassSettings:New('userdata.txt', '*.txt') -- Пример сохранения параметров "Ключ - Значение" classSettings:Set('Name', 'MasterGH') classSettings:Set('Name2','Xipho') classSettings:Set('Color', 0xFFFFFF) -- Сохраняется так classSettings:Save() -- Пример загрузки print(classSettings:Get('Name')) print(classSettings:Get('Name2')) print(classSettings:Get('Color')) И запускаем. Данные в файле после сохранения Name MasterGH Name2 Xipho Color 16777215 Сохранение по паре "Ключ — Значение", где Ключ должен быть уникальным. Для трейнеров на CE скрипт надо переписать, чтобы путь был не в папке autoruns, а по пути, который выберите. Это может быть директория трейнера или временная папка Windows. ------------- Это пригодится для сохранения таких параметров как цвет, шрифт, чекбоксы, слайдеры, положение и размер элементов. Например, положение формы или другие настройки Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения