- 19
- 2
- Версия SA-MP
-
- Любая
Всем привет, хочу написать бота пилота и мне нужен скрипт, который допустим будет делать маршрут ЛВ-ЛС. Прикол в том,что после завершения маршрута скрипт, который записывает маршрут пишет в чат команду /bye, а затем мой нижеприведенный скрипт должен реагировать на команду /bye и нажать enter, затем space. Можете подсказать,что не так с кодом?
Код:
local samp = require 'lib.samp.events'
local ffi = require 'ffi'
ffi.cdef("bool SetCursorPos(int X, int Y);")
function samp.onServerMessage(color--[[Цвет]], text--[[Текст]]) -- Этот хук ловит сообщения в чате
lua_thread.create(function() -- создаем поток
if string.match(text, "Сотрудник Бюро %{......%}выдал Вам чемодан с документацией на рейс %[%{......%}'Лас Вентурас' %{......%}-> %{......%}'Лос Сантос']%") then
wait(0) -- отвечает за ожидание в размере секунды
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false) ------------СКРИПТ ВРУБИЛСЯ -----------------
wait(10)
ffi.C.SetCursorPos(1079, 525) -- ВНИЗ ПРОКРУТ
setVirtualKeyDown(0x01, true)
wait(50)
setVirtualKeyDown(0x01, false)
wait(50)
ffi.C.SetCursorPos(868, 547) -- КНОПКА РЕЙС
setVirtualKeyDown(0x01, true)
wait(50)
setVirtualKeyDown(0x01, false)
wait(50)
ffi.C.SetCursorPos(877, 673) -- КНОПКА СТАРТ
setVirtualKeyDown(0x01, true)
wait(50)
setVirtualKeyDown(0x01, false)
wait(50)
setVirtualKeyDown(0x50, true) ---------------- СКРИПТ ВЫРУБИЛСЯ --------------------
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
if string.match(text, "Пассажиры в самолете") then
wait(100) ------------------------------------- ОТСЮДА ----------------------------------------------
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(50) ------------------------------------ ДО СЮДА -----------------------------------------------------------
ffi.C.SetCursorPos(1080, 534) ------ ПРОКРУТ ВНИЗ --------------
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
ffi.C.SetCursorPos(869, 533) -------- КНОПКА РЕЙС ---------------
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
ffi.C.SetCursorPos(877, 673) --------------- КНОПКА СТАРТ -------------------------
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(300)
function samp.onSendCommand(command)
lua_thread.create(function() -- создаем поток
if command:find("/bye") then
setVirtualKeyDown(13, true) --- ВЫЛЕЗАЕМ С САМОЛЕТА ДЛЯ АКТИВАЦИИ СКЕЙТА
wait(200)
setVirtualKeyDown(13, false) --- ВЫЛЕЗЛИ
wait(3000)
setVirtualKeyDown(32, true) ---- АКТИВИРУЕМ СКЕЙТ
wait(300)
setVirtualKeyDown(32, false) --- АКТИВИРОВАЛИ СКЕЙТ
wait(0) ------------------------------------- ОТСЮДА ----------------------------------------------
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(50) ----------------------------------- ДО СЮДА -----------------------------------
ffi.C.SetCursorPos(869, 541)
wait(10)
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
ffi.C.SetCursorPos(1078, 549)
wait(10)
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
ffi.C.SetCursorPos(877, 673)
wait(10)
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
wait(0) ------------------------------------- ОТСЮДА ----------------------------------------------
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(50) ----------------------------------- ДО СЮДА -----------------------------------
if command:find ("/bye") then
setVirtualKeyDown(13, true)
wait(200)
setVirtualKeyDown(13, false)
wait(2000) ---------- ВЫЛЕЗЛИ СО СКЕЙТА
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(50) ----------------------------------- ДО СЮДА -----------------------------------
ffi.C.SetCursorPos(1078, 518)
wait(10)
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
ffi.C.SetCursorPos(869, 537)
wait(10)
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
ffi.C.SetCursorPos(877, 673)
wait(10)
setVirtualKeyDown(0x01, true)
wait(10)
setVirtualKeyDown(0x01, false)
wait(10)
wait(0) ------------------------------------- ОТСЮДА ----------------------------------------------
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(10)
setVirtualKeyDown(0x50, true)
wait(10)
setVirtualKeyDown(0x50, false)
wait(50) ----------------------------------- ДО СЮДА -----------------------------------
end
end
end)
end
end
end
end) -- закрываем поток
end