как сделать отслеживание текста на экране и делать отправку пакета нажатия кнопки

WellMay

Известный
Автор темы
934
311
Версия MoonLoader
.026-beta
вот текст мне нужно чтобы скрипт его отслеживал на экране а далее делал то что я пропишу далее(клик и тд)
1719391437271.png
 

wojciech?

Известный
Проверенный
390
288
а какой id клавиши alt для setGameKeyState?
в libstd\game\keys.lua прописаны, для альта 21

+ можно сразу отправить пакет, чтобы не держать клавишу зажатой
Lua:
setGameKeyState(21, 255)
sampForceOnfootSync()
 

WellMay

Известный
Автор темы
934
311
в libstd\game\keys.lua прописаны, для альта 21

+ можно сразу отправить пакет, чтобы не держать клавишу зажатой
Lua:
setGameKeyState(21, 255)
sampForceOnfootSync()
бл ничерта не понимаю скрипт триггериться на этот текст
1719394093447.png
а на этот реакции 0
1719394113026.png
 

whyega52

Eblang головного мозга
Модератор
2,838
2,777
можешь попробовать что-то подобное для нажатия на alt (в игре не тестил)
Lua:
require("samp.synchronization")
local ffi = require("ffi")


function sendKey(keyId)
    local data = allocateMemory(68)
    sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), data)
    local onfoot = ffi.cast("PlayerSyncData*", data) -- Для удобства кастим в сишную структуру
    onfoot.keysData = keyId
    sampSendOnfootData(data)
    freeMemory(data)
end


sendKey(1024) -- ALT (1024)
 
Последнее редактирование:

WellMay

Известный
Автор темы
934
311
бл ничерта не понимаю скрипт триггериться на этот текст Посмотреть вложение 244609 а на этот реакции 0 Посмотреть вложение 244610
можешь попробовать что-то подобное для нажатия на alt (в игре не тестил)
Lua:
require("samp.synchronization")
local ffi = require("ffi")


function sendKey(keyId)
    local data = allocateMemory(68)
    sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), data)
    local onfoot = ffi.cast("PlayerSyncData*", data) -- Для удобства кастим в сишную структуру
    onfoot.keysData = keyId
    sampSendOnfootData(data)
end


sendKey(1024) -- ALT (1024)
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,657
2,550
можешь попробовать что-то подобное для нажатия на alt (в игре не тестил)
Lua:
require("samp.synchronization")
local ffi = require("ffi")


function sendKey(keyId)
    local data = allocateMemory(68)
    sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), data)
    local onfoot = ffi.cast("PlayerSyncData*", data) -- Для удобства кастим в сишную структуру
    onfoot.keysData = keyId
    sampSendOnfootData(data)
end


sendKey(1024) -- ALT (1024)
У тебя память течёт
freeMemory(data)
 
  • Нравится
Реакции: whyega52

imring

Ride the Lightning
Всефорумный модератор
2,366
2,556
У тебя память течёт
freeMemory(data)
хм, а если воспользоваться метаметодом __gc?
Lua:
-- https://stackoverflow.com/a/27433104
-- no need for lua 5.2+
local _setmetatable = setmetatable
function setmetatable(t, mt)
    local prox = newproxy(true)
    getmetatable(prox).__gc = function() mt.__gc(t) end
    t[prox] = true
    return _setmetatable(t, mt)
end

local alloc = nil
do
    local mt = {}
    function mt:__gc() freeMemory(self.data) end

    function alloc(size)
        local data = allocateMemory(size)
        return setmetatable({data = data}, mt)
    end
end
проще просто написать freeMemory, но мне было любопытно
 
  • Нравится
Реакции: whyega52