Lua Arizona New-Style-Inventory

elyrin

Известный
Автор темы
245
148
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R2
  3. 0.3.7-R3
  4. 0.3.7-R4
  5. 0.3.7-R5
  6. Любая
  7. Другая
Спустя много времени не пригляделся мне CEF-инвентарь на Аризоне, потому что я не люблю градиенты в дизайнах
И я решил сделать статичную настройку нового чёрного инвентаря, на который будет намного приятнее смотреть

Если так говорить, то по сути это замена стилю старого чёрного инвентаря на TextDraw, который перенесён под CEF-инвентарь

Как выглядит инвентарь со скриптом:

Снимок экрана 2026-04-19 153428.png


Без:
Снимок экрана 2026-04-19 153630.png


Активация: /nsi

Если будут баги, вопросы или предложения по улучшению - писать в тему
 

Вложения

  • New-Style-Inventory.lua
    2.9 KB · Просмотры: 146
Последнее редактирование:

pewpewpewpew

Известный
Модератор
671
200
срочно применяй перекрас ещё и к вкладке "Охранники"
 
  • Нравится
Реакции: elyrin

elyrin

Известный
Автор темы
245
148
Обновил скрипт. Изменения:

Добавил однотонную покраску для вкладки "Охранники"
 

Вложения

  • New-Style-Inventory.lua
    3.6 KB · Просмотры: 53

Deps

Известный
310
241
Lua:
function main()
    ...
    while true do wait(0)
        if state then
            evalanon([[
                ...

💀
 

tygodym

Известный
87
17
бембембем:
addEventHandler('onSendPacket', function(id, bs, priority, reliability, orderingChannel)
    if id == 220 then
        local id = raknetBitStreamReadInt8(bs)
        local packettype = raknetBitStreamReadInt8(bs)
        local strlen = raknetBitStreamReadInt16(bs)
        local text = raknetBitStreamReadString(bs, strlen)
        if packettype ~= 0 and packettype ~= 1 and #text > 2 then
            if text:find('onActiveViewChanged|Inventory') then
                if state then
                    evalanon([[
                        const inventory_main = document.querySelector(".inventory-main");
                        const inventory_buttons = document.querySelectorAll(".inventory-button");
                        const inventory_header = document.querySelectorAll(".inventory-window__header");

                        const character_tab_navigation_item = document.querySelectorAll(".character__tab-navigation-item");
                        const character_main_menu_buttons = document.querySelector(".character-main__loadout-buttons");
                        const character_main_loadout = document.querySelector(".character-main__loadout");

                        inventory_main.style.background = "#131516";
                        inventory_header.forEach(el => {
                            el.style.background = "#131516";
                        });
                        inventory_buttons.forEach(el => {
                            el.style.background = "#202020";
                            el.style.color = "#F8F4FF";
                        });

                        character_main_menu_buttons.style.background = "#131516";
                        character_main_loadout.style.background = "#131516";
                        character_tab_navigation_item.forEach(el => {
                            el.style.background = "#131516";
                        });
                    ]])
                end
            end
        end
    end
end)
Зачем запускать так evalanon, если можно просто по пакетам
 

elyrin

Известный
Автор темы
245
148
бембембем:
addEventHandler('onSendPacket', function(id, bs, priority, reliability, orderingChannel)
    if id == 220 then
        local id = raknetBitStreamReadInt8(bs)
        local packettype = raknetBitStreamReadInt8(bs)
        local strlen = raknetBitStreamReadInt16(bs)
        local text = raknetBitStreamReadString(bs, strlen)
        if packettype ~= 0 and packettype ~= 1 and #text > 2 then
            if text:find('onActiveViewChanged|Inventory') then
                if state then
                    evalanon([[
                        const inventory_main = document.querySelector(".inventory-main");
                        const inventory_buttons = document.querySelectorAll(".inventory-button");
                        const inventory_header = document.querySelectorAll(".inventory-window__header");

                        const character_tab_navigation_item = document.querySelectorAll(".character__tab-navigation-item");
                        const character_main_menu_buttons = document.querySelector(".character-main__loadout-buttons");
                        const character_main_loadout = document.querySelector(".character-main__loadout");

                        inventory_main.style.background = "#131516";
                        inventory_header.forEach(el => {
                            el.style.background = "#131516";
                        });
                        inventory_buttons.forEach(el => {
                            el.style.background = "#202020";
                            el.style.color = "#F8F4FF";
                        });

                        character_main_menu_buttons.style.background = "#131516";
                        character_main_loadout.style.background = "#131516";
                        character_tab_navigation_item.forEach(el => {
                            el.style.background = "#131516";
                        });
                    ]])
                end
            end
        end
    end
end)
Зачем запускать так evalanon, если можно просто по пакетам
Ну кстати, да, чуть-чуть не подумал об этом
 

elyrin

Известный
Автор темы
245
148
Вещи которые появляются в инвентаре сами обновляются или надо вручную перебирать?
не понял твоего вопроса
просто скрипт заменяющий стили инвентаря, с предметами он никак не взаимодействует
 
  • Нравится
Реакции: Alexandr7777

Alexandr7777

Известный
12
1
не понял твоего вопроса
просто скрипт заменяющий стили инвентаря, с предметами он никак не взаимодействует
Бро я не на тот скрипт подумал, сорри, есть просто скрипт которые собирает сам за тебя тайники и всякую такую лабуду, и вот если ты не застал этот момент, предметы добавляются, но не видно их пока не передвинешь что-то в каждом слоте, только тогда они появляются