Функция включения/выключения LUA скрипта.

RomanFrody

Участник
Автор темы
67
13
Версия SA-MP
  1. 0.3.7 (R1)
Отредактировал Server Time by Kalashnikov под себя, и теперь мне нужно чтобы на какую то кнопку скрипт выключался и при повторном нажатии включался, но когда поискал то я нашел код но он так и не заработал, помогите.
require "lib.moonloader"
local huy = require("samp.events")
local piska = 0


local oX = 492
local oY = 431


function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
while true do
sampTextdrawCreate(221, "Frody", oX + 103.9, oY - 13)
sampTextdrawSetLetterSizeAndColor(221, 0.3, 1.7, 0xFF4a4a4a)
sampTextdrawSetOutlineColor(221, 0.5, 0xFF000000)
sampTextdrawSetAlign(221, 1)
sampTextdrawSetStyle(221, 2)
timer = os.time() + piska
sampTextdrawCreate(222, os.date("%H:%M:%S", timer), oX + 91, oY)
sampTextdrawSetLetterSizeAndColor(222, 0.3, 1.7, 0xFF4a4a4a)
sampTextdrawSetOutlineColor(222, 0.5, 0xFF000000)
sampTextdrawSetAlign(222, 1)
sampTextdrawSetStyle(222, 2)
wait(500)
end
end
 
Решение
Lua:
local musor = require("samp.events")

local state = false
local keyAct = 90 -- клавиша в данном случае Z

local stupidTimer = 0
local updateTimer = 0
local createdTextDraw = {}

function createTextDraw(id, text, x, y, color) -- color - 0xFFHEX
    sampTextdrawCreate(id, text, x, y)
    sampTextdrawSetLetterSizeAndColor(id, 0.3, 1.7, color)
    sampTextdrawSetOutlineColor(id, 0.5, 0xFF000000)
    sampTextdrawSetAlign(id, 1)
    sampTextdrawSetStyle(id, 2)
    table.insert(createdTextDraw, id)
end

function removeTextDraw()
    for i = 1, #createdTextDraw do
        sampTextdrawDelete(createdTextDraw[i])
    end
    createdTextDraw = {}
end

function main()
    while not isSampAvailable() do wait(100) end
    while true do wait(0)...

damag

Женюсь на официантке в моем любимом баре
Проверенный
1,152
1,193
Lua:
local musor = require("samp.events")

local state = false
local keyAct = 90 -- клавиша в данном случае Z

local stupidTimer = 0
local updateTimer = 0
local createdTextDraw = {}

function createTextDraw(id, text, x, y, color) -- color - 0xFFHEX
    sampTextdrawCreate(id, text, x, y)
    sampTextdrawSetLetterSizeAndColor(id, 0.3, 1.7, color)
    sampTextdrawSetOutlineColor(id, 0.5, 0xFF000000)
    sampTextdrawSetAlign(id, 1)
    sampTextdrawSetStyle(id, 2)
    table.insert(createdTextDraw, id)
end

function removeTextDraw()
    for i = 1, #createdTextDraw do
        sampTextdrawDelete(createdTextDraw[i])
    end
    createdTextDraw = {}
end

function main()
    while not isSampAvailable() do wait(100) end
    while true do wait(0)
        if isKeyJustPressed(keyAct) then
            state = not state
            if not state then removeTextDraw() end
        end
        if state then
            if (os.time() - updateTimer >= 1) then
                currentTime = os.time() + stupidTimer
                createTextDraw(221, "SERVER_TIME:", 250, 430, 0xFFe1e1e1)
                createTextDraw(222, os.date("%H:%M:%S", timer), 335, 430, 0xFFff6347)
                updateTimer = os.time()
            end
        end
    end
end

function musor.onShowDialog(dialogId,style,title,button1,button2,text)
    if string.match(text, "Текущее время") and state 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}
        stupidTimer = tostring(os.time(datetime)) - os.time()
    end
end
 
Последнее редактирование:

RomanFrody

Участник
Автор темы
67
13
Не роботает, игра крашила, думал что если изменить в строчке local state = false на true то все будет окей, после этого в игру зашло но при нажатии на кнопку текстдравы не пропали.

Скрипт умирает при заходе в игру, уже после обновления твоего сообщения.
 

Вложения

  • Снимок экрана 2022-07-23 142108.png
    Снимок экрана 2022-07-23 142108.png
    26.9 KB · Просмотры: 19
  • moonloader.log
    5.9 KB · Просмотры: 2

damag

Женюсь на официантке в моем любимом баре
Проверенный
1,152
1,193
Lua:
local musor = require("samp.events")

local state = false
local keyAct = 90 -- клавиша в данном случае Z

local stupidTimer = 0
local updateTimer = 0
local createdTextDraw = {}

function createTextDraw(id, text, x, y, color) -- color - 0xFFHEX
    sampTextdrawCreate(id, text, x, y)
    sampTextdrawSetLetterSizeAndColor(id, 0.3, 1.7, color)
    sampTextdrawSetOutlineColor(id, 0.5, 0xFF000000)
    sampTextdrawSetAlign(id, 1)
    sampTextdrawSetStyle(id, 2)
    table.insert(createdTextDraw, id)
end

function removeTextDraw()
    for i = 1, #createdTextDraw do
        sampTextdrawDelete(createdTextDraw[i])
    end
    createdTextDraw = {}
end

function main()
    while not isSampAvailable() do wait(100) end
    while true do wait(0)
        if isKeyJustPressed(keyAct) then
            state = not state
            if not state then removeTextDraw() end
        end
        if state then
            if (os.time() - updateTimer >= 1) then
                currentTime = os.time() + stupidTimer
                createTextDraw(221, "SERVER_TIME:", 250, 430, 0xFFe1e1e1)
                createTextDraw(222, os.date("%H:%M:%S", timer), 335, 430, 0xFFff6347)
                updateTimer = os.time()
            end
        end
    end
end

function musor.onShowDialog(dialogId,style,title,button1,button2,text)
    if string.match(text, "Текущее время") and state 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}
        stupidTimer = tostring(os.time(datetime)) - os.time()
    end
end
обновил