не робит скрипт lua

Tyshka

Новичок
Автор темы
2
0
Версия MoonLoader
.026-beta
QQ всем. Мунлоадер 026.5, недавно начал учиться писать скрипты, и если в Паскале,пайтоне и ахк все было достаточно просто, то перейдя на луа, с первым самым легким скриптом я возился.... 3 часа с перерывами на покушать, ( скрипт просто отправляет в чат то что он загрузился и при нажатии клавиши фразу "/anim 1"), так воот, я решил поднять планочку и перескочить к более крутому проекту в виде авто-ловли деталей(что на ахк вышло сделать за 20 минут), тут же я вожусь второй день(чистыми 6-8 часов), и большую часть этого времени не могу понять как именно сделать это, кто то пишет делать через эмулирование в игре(local game_keys = require 'game.keys',setGameKeyState(game_keys.player.FIREWEAPON, -1) и т.д.), кто то через setVirtualKeyDown(что для меня показалось более простым вариантом), подскажите как сделать чтоб оно хоть медленно хоть как работало, потому что то что есть сейчас во первых не дописанно до конца, а во вторых не работает при заезде в гараж, только когда чубзик бегает пешком(не осуждайте за код, сами попробуйте с нуля по 10 видосам с ютуба, и 20 текстам на форумах написать нормальный код)
Lua:
script_name('MaybeICanWroteOnLua?') -- название скрипta
script_author('111111') -- автор
script_description('workpls') -- описание

sampRegisterChatCommand("h?", cmd_tuning)

require "lib.moonloader"
local keys = require "vkeys"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded()
        then return
        end
        while not isSampAvailable() do wait(100) end
        sampAddChatMessage("Script: plswork.lua - Loaded", 0x7935a1)
        while true do
        wait(0)
        if KeyJustPressed(VK_H)
        then
            wait(100)
            sampAddChatMessage("123")
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)   
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right1
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right1
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true) --enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_UP, true)--up(перебежка дт.)
            wait(0)
            setVirtualKeyDown(VK_UP, false)   
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)   
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter(конец перебежки)
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)           
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)               
            end
        end
    end
end
 
Решение
QQ всем. Мунлоадер 026.5, недавно начал учиться писать скрипты, и если в Паскале,пайтоне и ахк все было достаточно просто
Тут также. Достаточно было бы посмотреть внимательно все гайды на ютубе:
И на бх:

Или раз ты знаешь ахк, так перепиши уже готовые скрипты ( которые даже переписывать не надо, там всё работает )

с первым самым легким скриптом я возился.... 3...

YarikVL

Известный
Проверенный
4,767
1,820
QQ всем. Мунлоадер 026.5, недавно начал учиться писать скрипты, и если в Паскале,пайтоне и ахк все было достаточно просто
Тут также. Достаточно было бы посмотреть внимательно все гайды на ютубе:
И на бх:

Или раз ты знаешь ахк, так перепиши уже готовые скрипты ( которые даже переписывать не надо, там всё работает )

с первым самым легким скриптом я возился.... 3 часа с перерывами на покушать
(что на ахк вышло сделать за 20 минут), тут же я вожусь второй день(чистыми 6-8 часов), и большую часть этого времени не могу понять как именно сделать это
Жалко что ты пропустил время, сколько ты кушал(

Lua:
script_name('MaybeICanWroteOnLua?') -- название скрипta
script_author('111111') -- автор
script_description('workpls') -- описание

sampRegisterChatCommand("h?", cmd_tuning)
[/QUOTE]
В гайдах ( даже в самом первом ролике от the champ guess ) рассказывается что регистрировать команду нужно в main.
И функции cmd_tuning я тут не вижу.
[QUOTE="Tyshka, post: 1399232, member: 528183"]


        sampAddChatMessage("Script: plswork.lua - Loaded", 0x7935a1)
[/QUOTE]
Лишний флуд в чат пользователю.
[QUOTE="Tyshka, post: 1399232, member: 528183"]

        
        if KeyJustPressed(VK_H)
        then
[/QUOTE]
Нельзя использовать то, что ты просто придумал:
https://wiki.blast.hk/ru/moonloader/lua/isKeyJustPressed
В твоем случае, либо с wiki копируй, либо поставь расширение для VSC:
https://www.blast.hk/threads/153353/
( надеюсь с такой кривой табуляцией ты не в блокноте пишешь )
[QUOTE="Tyshka, post: 1399232, member: 528183"]

           
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)  
[/QUOTE]
Прочитай это, чтобы понять что я скажу дальше:
https://wiki.blast.hk/ru/moonloader/lua/setVirtualKeyDown

Ты зажимаешь setVirtualKeyDown, а второй аргумент true как раз таки отвечает за это, на 0 миллисекунд, и сразу же отжимаешь ( аргумент false ).
По факту, ты нажал и тут же отпустил эту клавишу, то есть никакого нажатия не было.
[QUOTE="Tyshka, post: 1399232, member: 528183"]

            wait(0)
[/QUOTE]
Затем вообще не ждешь, и так далее
[QUOTE="Tyshka, post: 1399232, member: 528183"]

            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right1
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right1
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true) --enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_UP, true)--up(перебежка дт.)
            wait(0)
            setVirtualKeyDown(VK_UP, false)  
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)  
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter(конец перебежки)
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)          
            wait(0)
            setVirtualKeyDown(VK_RIGHT, true)--right
            wait(0)
            setVirtualKeyDown(VK_RIGHT, false)
            wait(0)
            setVirtualKeyDown(VK_RETURN, true)--enter
            wait(0)
            setVirtualKeyDown(VK_RETURN, false)              
            end
        end
    end
end
А вообще для работы с cef нужно использовать не виртуальные нажатия клавиши, а отправки пакетов.
Тут внимательно почитай тему:

А для работы с диалогами тоже используются определенные функции:


И никогда не пиши в разделе помощи просто: «Окей» или «Спасибо»
Для этого есть реакции и кнопка отметить решением.
 
  • Нравится
Реакции: MrDorlik и Tyshka

Tyshka

Новичок
Автор темы
2
0
Тут также. Достаточно было бы посмотреть внимательно все гайды на ютубе:
И на бх:

Или раз ты знаешь ахк, так перепиши уже готовые скрипты ( которые даже переписывать не надо, там всё работает )



Жалко что ты пропустил время, сколько ты кушал(


А вообще для работы с cef нужно использовать не виртуальные нажатия клавиши, а отправки пакетов.
Тут внимательно почитай тему:

А для работы с диалогами тоже используются определенные функции:


И никогда не пиши в разделе помощи просто: «Окей» или «Спасибо»
Для этого есть реакции и кнопка отметить решением.
Отвечу на пару вопросов (не знаю как отмечать конкректные но будет понятно в любом случае) :
1.кушал минут по 30 потому что еще курил и для меня нарезать колбасу уже испытание, пойти, найти нож, помыть нож, достать доску, помыть доску, найти тарелку, найти хлеб(бабушка ставит все по своему и чтоб найти те же носки у меня по 3 минуты уходит) остальное время просто пытался что то сделать по гайдам
2.на луа с ахк перешел потому что большинство сидит на луа которое взаимодействует с игрой а не компом, комп у меня по нынешним меркам довольно слабенький(i5-2400, gtx660,ddr38GB, ssd 120), и просто ахк не хватает чтоб таких переловить, да и впринципе я иногда вставал с кентами на одном и том же скрипте, но у них более мощные компы, они ловили быстрее:(
3.Вроде не особо и вопрос но тоже ответить захотелось ( надеюсь с такой кривой табуляцией ты не в блокноте пишешь ) сначала прост в блокноте пытался накидать, ваще ниче не выходило, вот это чудо написано было в нотепад++ потому что на VS памяти не хватает(раньше писал что то там, но хард на терабайт лег, ща на ссд ток сижу, фрапсы поудаляю, скачаю)
Код вышел таким корявым т.к. был слеплен из обрывков рандом кода моей фантазии и пары гайдов
А вообще спасибо большое что запарился и понаходил ссылочки, на таких как ты держится мир :)
 
Последнее редактирование: