sampRegisterChatCommand вне main

Manuel Leon

Известный
Автор темы
266
170
Версия MoonLoader
.026-beta
Хочу сделать регистрацию команды через Imgui. Возможно ли это сделать без сохранения в файл и перезагрузки скрипта. А сразу, нажал кнопку - зарегистрировалась команда?
 
Решение
что бы не ебаться с регистрацией/удалением команд проще хукать отправку команды, например:
без SAMP.lua:
Lua:
local cmd = imgui.new.char[128]('mycmd')

function onSendRpc(id, bs)
    if id == 50 then
        local cmd_len = raknetBitStreamReadInt32(bs)
        local cmd_text = raknetBitStreamReadString(bs, cmd_len)
        if cmd_text:match('/'..ffi.string(cmd)) then
            -- code
            return false
        end
    end
end
с SAMP.lua
Lua:
local sampev = require 'lib.samp.events'
local cmd = imgui.new.char[128]('mycmd')

function sampev.onSendCommand(text)
    if text:match('/'..ffi.string(cmd)) then
        -- code
        return false
    end
end

YarikVL

Известный
Проверенный
4,738
1,816
Хочу сделать регистрацию команды через Imgui. Возможно ли это сделать без сохранения в файл и перезагрузки скрипта. А сразу, нажал кнопку - зарегистрировалась команда?
Гуглить не пробовал? И использовать в имгуи функцию как в main ( вот что нашёл: https://www.blast.hk/threads/92869/ )
 

Manuel Leon

Известный
Автор темы
266
170
Гуглить не пробовал? И использовать в имгуи функцию как в main ( вот что нашёл: https://www.blast.hk/threads/92869/ )
наверное гуглил. раз здесь написал

Гуглить не пробовал? И использовать в имгуи функцию как в main ( вот что нашёл: https://www.blast.hk/threads/92869/ )
ну я добавил регистрацию, неизвестная команда
 
  • Нравится
Реакции: YarikVL

chapo

tg/inst: @moujeek
Всефорумный модератор
9,097
12,126
что бы не ебаться с регистрацией/удалением команд проще хукать отправку команды, например:
без SAMP.lua:
Lua:
local cmd = imgui.new.char[128]('mycmd')

function onSendRpc(id, bs)
    if id == 50 then
        local cmd_len = raknetBitStreamReadInt32(bs)
        local cmd_text = raknetBitStreamReadString(bs, cmd_len)
        if cmd_text:match('/'..ffi.string(cmd)) then
            -- code
            return false
        end
    end
end
с SAMP.lua
Lua:
local sampev = require 'lib.samp.events'
local cmd = imgui.new.char[128]('mycmd')

function sampev.onSendCommand(text)
    if text:match('/'..ffi.string(cmd)) then
        -- code
        return false
    end
end