- 12
- 0
- Версия MoonLoader
- .026-beta
Здравствуйте, многоуважаемые читатели этого поста и эксперты помогающие мне. Я хочу чтобы Вы как более опытные оценили мой код и указали на мои ошибки, как можно было бы переделать или другие варианты реализации моей идеи.
В данный момент на данной стадии разработки я с помощью TCG сделал систему выбора темы, но к тому же добавил сохранение вашего выбора, и поэтому хотел бы узнать ваше мнение. Может где говнокод надо убрать или плохие привычки. Приму любую критику, но опять же с аргументацией :) Заранее спасибо
CODE:
script_author('SunRays && BlastHk')
-------------------------------------------------------------------------------------------------------
require 'lib.moonloader'
local keys = require 'vkeys'
local imgui = require 'imgui'
local inicfg = require 'inicfg'
local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
-------------------------------------------------------------------------------------------------------
local prefix = "{595959}| Help. | ==> {FFFFFF}";
local main_window = imgui.ImBool(false)
local secondary_window = imgui.ImBool(false)
local themes = import "RavenHelp/themes.lua"
-------------------------------------------------------------------------------------------------------
if not doesDirectoryExist("moonloader/Help") then
sampAddChatMessage(prefix .."Инициализация создания директории скрипта[Папка: moonloader].", -1)
createDirectory("moonloader/Help")
end
local mainini = inicfg.load({
config =
{
theme = 1,
style = 1
}
}, 'RavenCFG.ini')
local status = inicfg.load(mainini, 'CFG.ini')
if not doesFileExist('CFG.ini') then
inicfg.save(mainini, 'CFG.ini')
end
local savefile = 'CFG.ini'
-------------------------------------------------------------------------------------------------------
local theme = imgui.ImFloat(mainini.config.theme)
local style = imgui.ImFloat(mainini.config.style)
local checked_radio = imgui.ImInt(mainini.config.theme)
-------------------------------------------------------------------------------------------------------
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampAddChatMessage(prefix .."Инициализация скрипта {1db00c}успешна{FFFFFF}.", -1)
sampAddChatMessage(prefix .."Подсказка: Используйте F5 | //rhelp.", -1)
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
nick = sampGetPlayerNickname(id)
imgui.SwitchContext()
themes.SwitchColorTheme(mainini.config.theme)
sampRegisterChatCommand('/rhelp', function()
main_window.v = not main_window.v
imgui.Process = main_window.v
end)
while true do
wait(0)
end
end
function imgui.OnDrawFrame()
if not main_window.v and not secondary_window.v then
imgui.Process = false
end
local sw, sh = getScreenResolution()
if main_window.v then
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(600, 250), imgui.Cond.FirstUseEver)
imgui.Begin(u8'Меню', main_window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoBringToFrontOnFocus + imgui.WindowFlags.NoSavedSettings)
if not menu then menu = 1 end
imgui.BeginChild('#Menu', imgui.ImVec2(150, 215), true)
if imgui.Button(u8'Настройки',imgui.ImVec2(134, 25)) then
menu = 1
end
if imgui.Button(u8'Автор',imgui.ImVec2(134, 25)) then
menu = 2
end
imgui.EndChild()
imgui.SameLine()
imgui.BeginChild('#Desktop', imgui.ImVec2(429, 215), true)
if menu == 1 then
for i, value in ipairs(themes.colorThemes) do
if imgui.RadioButton(value, checked_radio, i) then
themes.SwitchColorTheme(i)
mainini.config.theme = checked_radio.v
inicfg.save(mainini, savefile)
end
end
end
if menu == 2 then
end
imgui.EndChild()
imgui.End()
end
if secondary_window.v then
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(600, 400), imgui.Cond.FirstUseEver)
imgui.Begin('-', secondary_window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoBringToFrontOnFocus + imgui.WindowFlags.NoSavedSettings)
imgui.End()
end
end
В данный момент на данной стадии разработки я с помощью TCG сделал систему выбора темы, но к тому же добавил сохранение вашего выбора, и поэтому хотел бы узнать ваше мнение. Может где говнокод надо убрать или плохие привычки. Приму любую критику, но опять же с аргументацией :) Заранее спасибо