Почему не нажимает кнопку в RakSamp Lite?

solution

Участник
Автор темы
47
10
Версия MoonLoader
Другое
Не могу понять, почему автоматически не нажимает кнопку Y, хотя текст вроде тоже не ловится, по !key тож анлак не работает ватафак
пытаюсь парсить по тексту
исходный: [02:40:42] [02:40:42:244] rippo Boba_Doodo[287] предложил Вам вступить в godlikez.
за помощь накину монету)
Lua:
local sampev = require("samp.events")

function sendKey(id)
    key = id
    updateSync()
end

function onRunCommand(cmd)
    if cmd:find("^!key %d+$") then
        sendKey(tonumber(cmd:match("%d+")))
        return false
    end
end

function sampev.onSendPlayerSync(data)
    if key then
        data.keysData = key
        key = nil
    end
end

// все что выше это дефолт с темы раклайта

function onPrintLog(str)
        if str:find("(.*) %w+_%w+%[%d+%] предложил Вам вступить") then
        print("+")
        sendKey(tonumber(65536))
    end
end
 
Решение
Используй Special Key
Lua:
local events = require('samp.events')

local specialKey = nil

local SPECIAL_KEYS = {
    Y = 1,
    N = 2,
    H = 3
}

function pressSpecialKey(key)
    if not SPECIAL_KEYS[key] then return false end
    specialKey = SPECIAL_KEYS[key]
    updateSync()
end

function events.onSendPlayerSync(data)
    if specialKey then
        data.specialKey = specialKey
        specialKey = nil
    end
end

--[[
usage:

pressSpecialKey('Y')
pressSpecialKey('N')
pressSpecialKey('H')
]]

Notepad++

Известный
278
154
Используй Special Key
Lua:
local events = require('samp.events')

local specialKey = nil

local SPECIAL_KEYS = {
    Y = 1,
    N = 2,
    H = 3
}

function pressSpecialKey(key)
    if not SPECIAL_KEYS[key] then return false end
    specialKey = SPECIAL_KEYS[key]
    updateSync()
end

function events.onSendPlayerSync(data)
    if specialKey then
        data.specialKey = specialKey
        specialKey = nil
    end
end

--[[
usage:

pressSpecialKey('Y')
pressSpecialKey('N')
pressSpecialKey('H')
]]
 
  • Нравится
Реакции: solution