Lua Lenivec для Advance Role Play

phonkzxc

Новичок
Автор темы
4
3
Снова здравствуй Blast.hk

Держите обычный биндер для Advance Role Play

Установка: закинуть Lenivec by phonkzxc.lua в папку moonloader

Открыть инвентарь: END
Открыть/Закрыть авто: RSHIFT (правый шифт)
Посмотреть время: DELETE
МиниФастБай: PGDN (юзать в магазине 24/7)

Код открыт, поэтому можете менять скрипт под себя.
 

Вложения

  • Lenivec by phonkzxc.lua
    1,015 байт · Просмотры: 52

Vintik

Мечтатель
Проверенный
1,456
908
За 1 минуту такое можно настроить на самом простом биндере, от того же Кваса. Зачем тогда твой скрипт?
 
  • Нравится
  • Грустно
Реакции: EclipsedFlow и RAYDON

Smeruxa

Известный
1,295
680
Фаст апдейт кода
Lua:
require "lib.moonloader"
local buttons = {[35] = "i", [0xA1] = "lock 1", [46] = "c 60", [34] = "buy"}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(2000) end
    while true do wait(0)
        for k,v in pairs(buttons) do
            if isKeyJustPressed(k) then
                sampSendChat("/"..v)
            end
        end
    end
end
Итог: 14 строк~36 строк
 
  • Нравится
  • Bug
Реакции: SomaGnoma, PanSeek и sep

Vintik

Мечтатель
Проверенный
1,456
908
Фаст апдейт кода
Lua:
require "lib.moonloader"
local buttons = {[35] = "i", [0xA1] = "lock 1", [46] = "c 60", [34] = "buy"}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(2000) end
    while true do wait(0)
        for k,v in pairs(buttons) do
            if isKeyJustPressed(k) then
                sampSendChat("/"..v)
            end
        end
    end
end
Итог: 14 строк~36 строк
Lua:
-- зачем lib.moonloader?
local buttons = {[35] = '/i', [161] = '/lock 1', [46] = '/c 60', [34] = '/buy'} -- одна цифра была в HEX, а остальные нет. зачем?

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        for k, v in pairs(buttons) do
            if isKeyJustPressed(k) then
                sampSendChat(v) -- смысл конкатенации? оптимизации в этом нету)
            end
        end
    end
end
 

phonkzxc

Новичок
Автор темы
4
3
Lua:
-- зачем lib.moonloader?
local buttons = {[35] = '/i', [161] = '/lock 1', [46] = '/c 60', [34] = '/buy'} -- одна цифра была в HEX, а остальные нет. зачем?

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        for k, v in pairs(buttons) do
            if isKeyJustPressed(k) then
                sampSendChat(v) -- смысл конкатенации? оптимизации в этом нету)
            end
        end
    end
end
Да я только начал заниматься этим, что вы так налетели на меня(
 
  • Грустно
Реакции: Vintik

Vintik

Мечтатель
Проверенный
1,456
908
Да я только начал заниматься этим, что вы так налетели на меня(
Это я ему ответил, а не тебе. Ты, если ты недавно начал этим заниматься, молодец. Неплохо сделано. Не идеально, конечно, потому что лучше обрабатывать нажатие на клавиши в addEventHandler, но и не плохо.
 

phonkzxc

Новичок
Автор темы
4
3
Это я ему ответил, а не тебе. Ты, если ты недавно начал этим заниматься, молодец. Неплохо сделано. Не идеально, конечно, потому что лучше обрабатывать нажатие на клавиши в addEventHandler, но и не плохо.
Аа, понял. Не заметил просто. Мне так понравилось этим заниматься, что я часами смотрел доступные уроки на ютубе, но не все еще пересмотрел. Так хочется научиться делать красиво и надежно. Начал с самого простого так сказать, с биндеров всяких, вх на объекты. Спасибо, что поддерживаешь)
 

Smeruxa

Известный
1,295
680
Lua:
-- зачем lib.moonloader?
local buttons = {[35] = '/i', [161] = '/lock 1', [46] = '/c 60', [34] = '/buy'} -- одна цифра была в HEX, а остальные нет. зачем?

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        for k, v in pairs(buttons) do
            if isKeyJustPressed(k) then
                sampSendChat(v) -- смысл конкатенации? оптимизации в этом нету)
            end
        end
    end
end
lib.moonloader хранит в себе горячие клавиши, в самом начале хотел с ними работать но потом подошел к ИД, оптимизация в строках

-- одна цифра была в HEX, а остальные нет. зачем?
0xA1 - rshift, не нашел в обычном ид.

sampSendChat(v) -- смысл конкатенации? оптимизации в этом нету)
Есть, но очень маленькая, НО ЕСТЬ, когда ты используешь один раз / - это занимает меньше места, проверь сам если не веришь
 
  • Bug
Реакции: Vintik

Vintik

Мечтатель
Проверенный
1,456
908
lib.moonloader хранит в себе горячие клавиши, в самом начале хотел с ними работать но потом подошел к ИД, оптимизация в строках
"В самом начале хотел" – это не отговорка. Если уж речь зашла про оптимизацию, то тогда выкладывай оптимизированный код, а не прикрывайся тем, что ты на ходу решил изменить метод написания. Зависимость скрипта от лишней библиотеки (в данном случае lib.moonloader) – полная противоположность оптимизации.
0xA1 - rshift, не нашел в обычном ид.
Что значит не нашёл!? Просто для приятности чтения кода лучше использовать одну систему счисления. Зачем искать, если можно просто перевести число из одной системы в другой? Если ты не умеешь этого делать – калькулятор Windows в помощь, а вообще лучше выучить что это и как его едят.
1618260277218.png

Есть, но очень маленькая, НО ЕСТЬ, когда ты используешь один раз / - это занимает меньше места, проверь сам если не веришь
Верю. У тебя слеш сохранён один раз в памяти, и, так как это символ, занимает 1 байт. У меня он добавлен в 4 строки, следовательно всего занимает 4 байта (каждый по 1 байту).
Итого разница аж в целых 3 байта. Кто не понимает, о каких числах идёт речь, то покажу наглядно:
1618260687515.png

256,1 мегабайт (256100000 байт) оперативной памяти занято игрой GTA SA (причём я только вошёл на сервер, поэтому мусором память забиться не успела).
Наши 3 байта, которых мы экономим, составят от этого числа 0.00000117141742 %, серьезная оптимизация (нет).
Про конкатенацию внятно, доступно и понятно изложено в этой статье с реальными числами. Да, эти несчастные миллисекунды не существенны, но если скрипт сделать побольше – то цифра будет вполне приличная, что не скажешь про наш процент.
 
  • Нравится
  • Bug
Реакции: PanSeek и Smeruxa

Smeruxa

Известный
1,295
680
"В самом начале хотел" – это не отговорка. Если уж речь зашла про оптимизацию, то тогда выкладывай оптимизированный код, а не прикрывайся тем, что ты на ходу решил изменить метод написания. Зависимость скрипта от лишней библиотеки (в данном случае lib.moonloader) – полная противоположность оптимизации.

Что значит не нашёл!? Просто для приятности чтения кода лучше использовать одну систему счисления. Зачем искать, если можно просто перевести число из одной системы в другой? Если ты не умеешь этого делать – калькулятор Windows в помощь, а вообще лучше выучить что это и как его едят.
Посмотреть вложение 92987

Верю. У тебя слеш сохранён один раз в памяти, и, так как это символ, занимает 1 байт. У меня он добавлен в 4 строки, следовательно всего занимает 4 байта (каждый по 1 байту).
Итого разница аж в целых 3 байта. Кто не понимает, о каких числах идёт речь, то покажу наглядно:
Посмотреть вложение 92991
256,1 мегабайт (256100000 байт) оперативной памяти занято игрой GTA SA (причём я только вошёл на сервер, поэтому мусором память забиться не успела).
Наши 3 байта, которых мы экономим, составят от этого числа 0.00000117141742 %, серьезная оптимизация (нет).
Про конкатенацию внятно, доступно и понятно изложено в этой статье с реальными числами. Да, эти несчастные миллисекунды не существенны, но если скрипт сделать побольше – то цифра будет вполне приличная, что не скажешь про наш процент.
Молодец
 

phonkzxc

Новичок
Автор темы
4
3
А почему не на L, у меня например на правый шифт аирбрейк стоит
Говорю же, код открыт, можешь поменять под себя. А то, что у тебя на шифт стоит аирбрейк, это уже не мои проблемы. У меня допустим нет читов, и клавиша всегда свободна.
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,745
Фаст апдейт кода
Lua:
require "lib.moonloader"
local buttons = {[35] = "i", [0xA1] = "lock 1", [46] = "c 60", [34] = "buy"}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(2000) end
    while true do wait(0)
        for k,v in pairs(buttons) do
            if isKeyJustPressed(k) then
                sampSendChat("/"..v)
            end
        end
    end
end
Итог: 14 строк~36 строк
Полностью поддерживаю @Vintik.
Lua:
local wm = require 'windows.message'
local arr = {[0x23] = "/i", [0xA1] = "/lock 1", [0x2E] = "/c 60", [0x22] = "/buy"}

function main()
    repeat wait(0) until isSampAvailable()
    addEventHandler("onWindowMessage", function (msg, wparam, lparam)
        if (msg == wm.WM_KEYUP or msg == wm.WM_SYSKEYUP) and not isSampfuncsConsoleActive() and not sampIsChatInputActive() and not sampIsDialogActive() and not isPauseMenuActive() then
            for k, v in pairs(arr) do
                if wparam == k then
                    sampSendChat(v)
                end
            end
        end
    end)
    wait(-1)
end
Не всегда лучше код, если строк меньше.
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,745
Ты не прав, меньше строк - лучше результат
Лучше отлавливать нажатые клавиши Windows, нежели ставить поток и в нем проверять нажатые клавиши.
Чушь не неси. Возможно ты имел ввиду вес файла, то да, различаться может.
 
  • Нравится
Реакции: James Saula