Lua Прочее [Arizona RP] - Crafting [2.2] - UPDATE

Shishkin

Известный
Автор темы
492
249
P.S.
Забыл добавить в версию 1.2 шрифт, можете скачать шрифт из прошлых версий
 
Последнее редактирование:

Shishkin

Известный
Автор темы
492
249
P.S.
Забыл добавить, для полноценной работы скрипта в данный момент, надо поставить настройки инвентаря по умолчанию (масштаб)
 

09349kksfs

Участник
67
7
Скрипт переводит систему текстдравов крафтинга в красивую систему imgui на проекте Arizona Role-Play
Так же система imgui имеет довольно красивые анимации
Скрипт написал на луа


Для установки скрипта необходимо скачать сам скрипт с помощью вложения
После чего перенести его в папку "MoonLoader"
А так же перенести специальный шрифт "fa-solid-900.ttf" в папку "moonloader/resource/fonts", который так же будет во вложении
Так же для скрипта необходимо скачать дополнительные библиотеки Imgui, FAwesome5.lua и SAMP.lua
Ссылка,
Ссылка, Ссылка
И так же перенести данные библиотеку в папку "MoonLoader", но не оставить там, а перенести ещё в папку "lib"

Разница между [1.0] и [2.0] -
1. Добавлен новый раздел "Настройки"
2. В этот раздел добавлена настройка цвета imgui, и настройка списка моделей
3. Добавлены новые анимации
4. Были обновлены некоторые функции в скрипте

5. Были обновлены некоторые кнопки в скрипте
6. Была добавлена реклама в скрипт


Для установки скрипта необходимо скачать сам скрипт с помощью вложения
После чего перенести его в папку "MoonLoader"
А так же перенести специальный шрифт "fa-solid-900.ttf" в папку "moonloader/resource/fonts", который так же будет во вложении
Так же для скрипта необходимо скачать дополнительные библиотеки Imgui, FAwesome5.lua и copas.lua
Ссылка,
Ссылка, Ссылка, Ссылка
И так же перенести данные библиотеку в папку "MoonLoader", но не оставить там, а перенести ещё в папку "lib"

P.S.
Большая просьба, если будут найдены любые баги в скрипте - прошу написать о них в тему!
Или в мои личные сообщения вконтакте (или телеграм)
И не забывайте, для полноценной работы скрипта, нужно сбросить настройки инвентаря, на настройки по умолчанию (масштаб)


Требования:
Imgui.lua
FAwesome5.lua
SAMP.lua
copas.lua
Команды: [/crafting]
Активация: [Автоматическая]
Автор:
Ссылка
Можешь плиз дать код анимации окна
 
  • Нравится
Реакции: Shishkin

Shishkin

Известный
Автор темы
492
249
Lua:
local imgui = require('imgui')

function main()
    sampRegisterChatCommand("animimgui", function()
        if imgui.Process then
            main_window_state.v = false
            else
            main_window_state.v = true
            anim = {0.00001, 1, os.clock(), 0.2}
            imgui.Process = true
        end
    end)
end

animimgui = 0.00001; fiksbug = true; main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()
    sw, sh = getScreenResolution()
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 600))
    imgui.Begin("imgui animation", main_window_state, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoScrollbar)
    
    if not main_window_state.v and fiksbug then -- не судите строго
        anim1 = {1, 0.00001, os.clock(), 0.2} -- p.s делаем так из-за цикла, os.clock() в нем юзать нельзя
        fiksbug = false
    end
    
    if main_window_state.v then
        animimgui = bringFloatTo(anim[1], anim[2], anim[3], anim[4])
        else
        animimgui = bringFloatTo(anim1[1], anim1[2], anim1[3], anim1[4])
        if animimgui == 0.00001 then
            fiksbug = true
            imgui.Process = false
        end
    end
    
    imgui.GetStyle().Alpha = animimgui
    imgui.End()
end

function bringFloatTo(from, to, start_time, duration) -- https://www.blast.hk/threads/13380/page-20#post-793501
    local timer = os.clock() - start_time
    if timer >= 0.00 and timer <= duration then
        local count = timer / (duration / 100)
        return from + (count * (to - from) / 100), true
    end
    return (timer > duration) and to or from, false
end

function guiCustomStyle()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    local ImVec2 = imgui.ImVec2
    style.WindowPadding                = ImVec2(4.0, 4.0)
    style.WindowRounding               = 7
    style.WindowTitleAlign             = ImVec2(0.5, 0.5)
    style.FramePadding                    = ImVec2(4.0, 2.0)
    style.ItemSpacing                  = ImVec2(8.0, 4.0)
    style.ItemInnerSpacing             = ImVec2(4.0, 4.0)
    style.ChildWindowRounding          = 7
    style.FrameRounding                = 7
    style.ScrollbarRounding            = 7
    style.GrabRounding                 = 7
    style.IndentSpacing                = 21.0
    style.ScrollbarSize                = 13.0
    style.GrabMinSize                  = 10.0
    style.ButtonTextAlign              = ImVec2(0.5, 0.5)
end       

guiCustomStyle()
 

09349kksfs

Участник
67
7
Lua:
local imgui = require('imgui')

function main()
    sampRegisterChatCommand("animimgui", function()
        if imgui.Process then
            main_window_state.v = false
            else
            main_window_state.v = true
            anim = {0.00001, 1, os.clock(), 0.2}
            imgui.Process = true
        end
    end)
end

animimgui = 0.00001; fiksbug = true; main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()
    sw, sh = getScreenResolution()
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 600))
    imgui.Begin("imgui animation", main_window_state, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoScrollbar)
   
    if not main_window_state.v and fiksbug then -- не судите строго
        anim1 = {1, 0.00001, os.clock(), 0.2} -- p.s делаем так из-за цикла, os.clock() в нем юзать нельзя
        fiksbug = false
    end
   
    if main_window_state.v then
        animimgui = bringFloatTo(anim[1], anim[2], anim[3], anim[4])
        else
        animimgui = bringFloatTo(anim1[1], anim1[2], anim1[3], anim1[4])
        if animimgui == 0.00001 then
            fiksbug = true
            imgui.Process = false
        end
    end
   
    imgui.GetStyle().Alpha = animimgui
    imgui.End()
end

function bringFloatTo(from, to, start_time, duration) -- https://www.blast.hk/threads/13380/page-20#post-793501
    local timer = os.clock() - start_time
    if timer >= 0.00 and timer <= duration then
        local count = timer / (duration / 100)
        return from + (count * (to - from) / 100), true
    end
    return (timer > duration) and to or from, false
end

function guiCustomStyle()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    local ImVec2 = imgui.ImVec2
    style.WindowPadding                = ImVec2(4.0, 4.0)
    style.WindowRounding               = 7
    style.WindowTitleAlign             = ImVec2(0.5, 0.5)
    style.FramePadding                    = ImVec2(4.0, 2.0)
    style.ItemSpacing                  = ImVec2(8.0, 4.0)
    style.ItemInnerSpacing             = ImVec2(4.0, 4.0)
    style.ChildWindowRounding          = 7
    style.FrameRounding                = 7
    style.ScrollbarRounding            = 7
    style.GrabRounding                 = 7
    style.IndentSpacing                = 21.0
    style.ScrollbarSize                = 13.0
    style.GrabMinSize                  = 10.0
    style.ButtonTextAlign              = ImVec2(0.5, 0.5)
end      

guiCustomStyle()
Спасбо)

Lua:
local imgui = require('imgui')

function main()
    sampRegisterChatCommand("animimgui", function()
        if imgui.Process then
            main_window_state.v = false
            else
            main_window_state.v = true
            anim = {0.00001, 1, os.clock(), 0.2}
            imgui.Process = true
        end
    end)
end

animimgui = 0.00001; fiksbug = true; main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()
    sw, sh = getScreenResolution()
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(500, 600))
    imgui.Begin("imgui animation", main_window_state, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoScrollbar)
   
    if not main_window_state.v and fiksbug then -- не судите строго
        anim1 = {1, 0.00001, os.clock(), 0.2} -- p.s делаем так из-за цикла, os.clock() в нем юзать нельзя
        fiksbug = false
    end
   
    if main_window_state.v then
        animimgui = bringFloatTo(anim[1], anim[2], anim[3], anim[4])
        else
        animimgui = bringFloatTo(anim1[1], anim1[2], anim1[3], anim1[4])
        if animimgui == 0.00001 then
            fiksbug = true
            imgui.Process = false
        end
    end
   
    imgui.GetStyle().Alpha = animimgui
    imgui.End()
end

function bringFloatTo(from, to, start_time, duration) -- https://www.blast.hk/threads/13380/page-20#post-793501
    local timer = os.clock() - start_time
    if timer >= 0.00 and timer <= duration then
        local count = timer / (duration / 100)
        return from + (count * (to - from) / 100), true
    end
    return (timer > duration) and to or from, false
end

function guiCustomStyle()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    local ImVec2 = imgui.ImVec2
    style.WindowPadding                = ImVec2(4.0, 4.0)
    style.WindowRounding               = 7
    style.WindowTitleAlign             = ImVec2(0.5, 0.5)
    style.FramePadding                    = ImVec2(4.0, 2.0)
    style.ItemSpacing                  = ImVec2(8.0, 4.0)
    style.ItemInnerSpacing             = ImVec2(4.0, 4.0)
    style.ChildWindowRounding          = 7
    style.FrameRounding                = 7
    style.ScrollbarRounding            = 7
    style.GrabRounding                 = 7
    style.IndentSpacing                = 21.0
    style.ScrollbarSize                = 13.0
    style.GrabMinSize                  = 10.0
    style.ButtonTextAlign              = ImVec2(0.5, 0.5)
end      

guiCustomStyle()
Я не много тупенький) что куда вписать?:(
 

Shishkin

Известный
Автор темы
492
249
Спасбо)


Я не много тупенький) что куда вписать?:(
Lua:
main_window_state.v = true
 anim = {0.00001, 1, os.clock(), 0.2}
imgui.Process = true -- когда активируем окно

main_window_state.v = false -- когда вырубаем окно
если будут ещё вопросы пиши в вк - @shishkin666 (телега так-же), легче будет
 
Последнее редактирование:

Botik228

Активный
400
65
У меня он не лестает между страницами с крафтом
Только 1/8 страниц видно
 

YarikVL

Известный
Проверенный
4,820
1,827
@Shishkin добавь возможность смотреть это меню по команде ( вне зависимости от местонахождения ). Короче чтобы на ЦР можно было смотреть какие ресурсы надо для крафта в доме ( и тогда можно сделать две вкладки: цр и подвал типо с двух мест статистика для крафта )
Ну и возможность сканирование в подвале и на цр, чтобы тебе не обновлять скрипт каждую обнову и людям не качать новый скрипт каждую обнову, получится тогда вечно актуальный скрипт)

Вот есть хэлпер для крафта: https://www.blast.hk/threads/41070/
Но он уже заброшен автором и вещи в нем не актуальные.
 

Shishkin

Известный
Автор темы
492
249
@Shishkin добавь возможность смотреть это меню по команде ( вне зависимости от местонахождения ). Короче чтобы на ЦР можно было смотреть какие ресурсы надо для крафта в доме ( и тогда можно сделать две вкладки: цр и подвал типо с двух мест статистика для крафта )
Ну и возможность сканирование в подвале и на цр, чтобы тебе не обновлять скрипт каждую обнову и людям не качать новый скрипт каждую обнову, получится тогда вечно актуальный скрипт)

Вот есть хэлпер для крафта: https://www.blast.hk/threads/41070/
Но он уже заброшен автором и вещи в нем не актуальные.
Это уже будет совершенно другой скрипт.
Данный скрипт создан исключительно для улучшения дизайна интерфейса.

Насчёт сканирования - нету смысла так-как скрипт и так уже вечен (если не брать в счет возможные будущие обновы, в которых будут добавлены новые отделы или системы)
 
Последнее редактирование:

Shishkin

Известный
Автор темы
492
249
UPDATE:
Исправил баг связанный с переключением листов.
Если вы найдете любой баг связанный с данным скриптом - напишите в тему и он будет исправлен.
p.s.
обнова скорее всего скоро будет.
 

Issaychik

Известный
194
35
Установил версию 2,1 и проблема заключается в том что нельзя листать странички, все размеры стандарт.