SA:MP Помогите добавить команду включение/отключения скрипта.

watchh

Новичок
Автор темы
17
5
sampRegisterChatCommand("trd", function()
state = not state
sampAddChatMessage("Переключено, текущее значение - " .. tostring(state), -1)
end)


я по моему не удачно спиздил, подскажите как сделать, чтобы по команде включать/отключать действие скрипта.
 

Вложения

  • trade_2.lua
    899 байт · Просмотры: 4
Решение
попробуй так

Lua:
require 'lib.moonloader'
local ffi = require 'ffi'
local se = require 'samp.events'
state = false

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand("trd", function()
        state = not state
        sampAddChatMessage("Переключено, текущее значение - " .. (state and "вкл" or "выкл"), 0xFFFFFFFF)
    end)
end

function se.onShowDialog(id, style, title, button1, button2, text)
    if state and text:find("10 секунд") and title:find("Торговля") then ShowMessage(text:gsub("{......}", ""), "["..sampGetCurrentServerName().."] "..title:gsub("{......}", ""), 0x40) end
end

function ShowMessage(text, title, style)
    ffi.cdef [[
        int MessageBoxA(
            void* hWnd...

woodware

Потрачен
Проверенный
5,043
1,458
попробуй так

Lua:
require 'lib.moonloader'
local ffi = require 'ffi'
local se = require 'samp.events'
state = false

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand("trd", function()
        state = not state
        sampAddChatMessage("Переключено, текущее значение - " .. (state and "вкл" or "выкл"), 0xFFFFFFFF)
    end)
end

function se.onShowDialog(id, style, title, button1, button2, text)
    if state and text:find("10 секунд") and title:find("Торговля") then ShowMessage(text:gsub("{......}", ""), "["..sampGetCurrentServerName().."] "..title:gsub("{......}", ""), 0x40) end
end

function ShowMessage(text, title, style)
    ffi.cdef [[
        int MessageBoxA(
            void* hWnd,
            const char* lpText,
            const char* lpCaption,
            unsigned int uType
        );
    ]]
    local hwnd = ffi.cast('void*', readMemory(0x00C8CF88, 4, false))
    ffi.C.MessageBoxA(hwnd, text,  title, style and (style + 0x50000) or 0x50000)
end
 
  • Влюблен
Реакции: watchh

watchh

Новичок
Автор темы
17
5
if text:find("10 секунд") and title:find("Торговля") and state
1731254237406.png


?

попробуй так

Lua:
require 'lib.moonloader'
local ffi = require 'ffi'
local se = require 'samp.events'
state = false

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand("trd", function()
        state = not state
        sampAddChatMessage("Переключено, текущее значение - " .. (state and "вкл" or "выкл"), 0xFFFFFFFF)
    end)
end

function se.onShowDialog(id, style, title, button1, button2, text)
    if state and text:find("10 секунд") and title:find("Торговля") then ShowMessage(text:gsub("{......}", ""), "["..sampGetCurrentServerName().."] "..title:gsub("{......}", ""), 0x40) end
end

function ShowMessage(text, title, style)
    ffi.cdef [[
        int MessageBoxA(
            void* hWnd,
            const char* lpText,
            const char* lpCaption,
            unsigned int uType
        );
    ]]
    local hwnd = ffi.cast('void*', readMemory(0x00C8CF88, 4, false))
    ffi.C.MessageBoxA(hwnd, text,  title, style and (style + 0x50000) or 0x50000)
end

Спасибо <3