теги

Статус
В этой теме нельзя размещать новые ответы.

$Mr.R1ch$

Активный
Автор темы
337
51
Версия MoonLoader
Другое
приветствую, столкнулся с проблемой с тегами. У меня есть функция rpc onSendCommand, в которой как раз прописана теги, и если в чате будет отправлено название тега, то он заменился на нужное значение, но есть одно но: теги работают, если отправлять их в ручную (в чат писать), а через команды биндера не получается (те которые регистрируются в мейне), и мне нужно исправить проблему.
Полазил в код других скриптов, и не нашел чего то нужного в отыгровках, чтобы теги работали должным образом, мб у меня что то, но как сделать проще хз.

Lua:
local sampev = require ('samp.events')

function sampev.onSendCommand(cmd)

     if cmd:find('{name}') then
        local name_tag = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(playerPed))):match("(.*)_.*")
        cmd = cmd:gsub('{name}', name_tag)
     end
    
     if cmd:find('{surname}') then
        local surname_tag = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(playerPed))):match("_(.*)")
        cmd = cmd:gsub('{surname}', surname_tag)
     end
    
     if cmd:find('{id}') then
        local result, myid_tag = sampGetPlayerIdByCharHandle(PLAYER_PED)
        cmd = cmd:gsub('{id}', myid_tag)
     end
    return {cmd}
  end

function main()
    
     while not isSampAvailable() do wait(100) end
     wait(500)
     sampRegisterChatCommand('hello', function()
        lua_thread.create(function()
           sampSendChat('Приветствую! Меня зовут - {name} {surname}')
           wait(1500)
           sampSendChat('/me вытянул из пиджака документ {name} {surname}')
        end)
     end
     while true do wait(0)
    end
  end
 
Решение
изначально я создал onSendCommand чтобы теги отправлялось и в команды, с ещё у меня есть onSendChat, а помощью которого отправлялись бы теги в обычное сообщение, но ничего не работает
Lua:
function sendFormatted(text)
    sampSendChat(text:gsub("{(.-)}", {
        test = "тестовый флаг",
        id = тут тип ид и тд
    }));
end
в коде вместо sampSendChat используй sendFormatted

chapo

tg/inst: @moujeek
Модератор
9,069
12,028
Замени на sampProcessChatInput или как-то так, sampSendChat отправляет серверу, функция выше клиенту
тогда оно будет срать всем этим текстом в рекалл. Меня больше напрягает что он думает что при отправке обычного сообщения (а не команды) будет срабатывать onSendCommand
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,956
1,309
а через команды биндера не получается
вряд ли ты будешь вручную писать {name} {surname}, так что удали onSendCommand
создай обертку для sampSendChat, куда перенеси логику тегов из удаленного обработчика и используй её
 
  • Нравится
Реакции: chapo

$Mr.R1ch$

Активный
Автор темы
337
51
Меня больше напрягает что он думает что при отправке обычного сообщения (а не команды) будет срабатывать onSendCommand
изначально я создал onSendCommand чтобы теги отправлялось и в команды, с ещё у меня есть onSendChat, а помощью которого отправлялись бы теги в обычное сообщение, но ничего не работает
 

chapo

tg/inst: @moujeek
Модератор
9,069
12,028
изначально я создал onSendCommand чтобы теги отправлялось и в команды, с ещё у меня есть onSendChat, а помощью которого отправлялись бы теги в обычное сообщение, но ничего не работает
Lua:
function sendFormatted(text)
    sampSendChat(text:gsub("{(.-)}", {
        test = "тестовый флаг",
        id = тут тип ид и тд
    }));
end
в коде вместо sampSendChat используй sendFormatted
 
Последнее редактирование модератором:
  • Нравится
Реакции: plalkeo и $Mr.R1ch$
Статус
В этой теме нельзя размещать новые ответы.