Поиск времени на экране и обновление тайма

F L I P S T A R

Участник
Автор темы
62
1
Версия MoonLoader
Другое
Приветствую.
Появился вопрос и нужна небольшая помощь в изменении функции луа скрипта. Многим известен луа скрипт Server TIme by Kalashnikov, так вот, в этом скрипте время на экране обновляется на более точное, если позвонить в 060 на таком проекте как Аrizona RP, ибо там находится строчка в диалоге с точным временем и присваивается новое значение таймеру. Могли бы вы помочь мне изменить эту функцию(функция калашникова) и присвоить новое значение в результате нахождения строки на экране со временем и датой(скриншот приложил снизу) с помощью этой функции(CODE 1):
CODE 1:
function sampev.onDisplayGameText(style, time, text)
  if string.match(text, "2022") then
-- код
 end
end
P.S. Есть идея находить эту строку на экране при помощи года 2022, ибо он почти не меняется, так как кроме переменных цифр ничего нет, текста по типу "Текущее время" тоже.

Отрывок кода из луа скрипты калашникова:
CODE by Kalasnikov:
local p = 0

function samp.onShowDialog(dialogId,style,title,button1,button2,text)
    if string.match(text, "Текущее время") then
        chislo, mesyac, god = string.match(text, "Сегодняшняя дата:     {2EA42E}(%d+):(%d+):(%d+)")
        chas, minuti, sekundi = string.match(text, "Текущее время:     {345690}(%d+):(%d+):(%d+)")
        datetime = {year = god,month = mesyac,day = chislo,hour = chas,min = minuti,sec = sekundi}
        p = tostring(os.time(datetime)) - os.time()
    end
end

Был бы благодарен за помощь.

Скриншот:
1660853314600.png
 
  • Нравится
Реакции: Vintik

F L I P S T A R

Участник
Автор темы
62
1
Lua:
local sampev = require 'lib.samp.events'

function sampev.onDisplayGameText(style, time, text)
    if text:match('~b~(.+)~n~~y~(.+)') then
        local time, date = text:match('~b~(.+)~n~~y~(.+)')
    end
end
Не работает. Ошибку в консоли не показывает, просто не выполняет действие, возможно и не видит сам Game Text, ибо пробовал протестировать, вывести print в консоль, если выполнено условие text:match, но ничего не происходит.

Lua:
local sampev = require 'lib.samp.events'

function sampev.onDisplayGameText(style, time, text)
    if text:match('~b~(.+)~n~~y~(.+)') then
        local time, date = text:match('~b~(.+)~n~~y~(.+)')
    end
end
Есть идеи по исправлению ошибки?
 
Последнее редактирование:

F L I P S T A R

Участник
Автор темы
62
1
Lua:
local sampev = require 'lib.samp.events'

function sampev.onDisplayGameText(style, time, text)
    if text:match('~b~(.+)~n~~y~(.+)') then
        local time, date = text:match('~b~(.+)~n~~y~(.+)')
    end
end
Вставил этот отрывок кода, но вылезает ошибка. Что в этом скрипте надо изменить, чтобы он работал?
Lua:
require "lib.moonloader"
local sampev = require("samp.events")

local vr = 0

local oX = 280
local oY = 430

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    while true do
        timer = os.time() + vr
        sampTextdrawCreate(222, os.date("%H:%M:%S", timer), oX, oY)
        sampTextdrawSetLetterSizeAndColor(222, 0.5, 2.2, 0xFF4EC9706)
        sampTextdrawSetOutlineColor(222, 0.5, 0xFF000000)
        sampTextdrawSetAlign(222, 1)
        sampTextdrawSetStyle(222, 2)
        wait(500)
    end
end

function sampev.onDisplayGameText(style, time, text)
if text:match('~b~(.+)~n~') then
        local time = text:match('~b~(.+)~n~')
        vr = tostring(os.time(time)) - os.time()
    end
end

Выдало эти ошибки:
(error) Server_Time_by_Kalashnikov.lua:26: bad argument #1 to 'time' (table expected, got string)
stack traceback:
[C]: in function 'time'
(error) Server_Time_by_Kalashnikov.lua: Script died due to an error. (1485A70C)
 
Последнее редактирование: