Изменение серверного сообщения onServerMessage

ReoGenT

Участник
Автор темы
90
6
Версия MoonLoader
.026-beta
Увидел как TheChampGuess в видео про SAMP.events сделал вот такой код:
Lua:
function samp.onSendChat(text)
    return {'Текст'}
end

И если писать в чат любое сообщение то оно заменяется на "Текст". И тут я подумал, что можно также изменить и в onServerMessage, но как оказалось нет.
Как это сделать?
 
Решение
нет мне такое не нужно, я хочу чтобы сообщение - {FFFFFF}Fox_Yotanhaim[12]{ffffff}: Текст заменялось на - {FFFFFF}Fox_Yotanhaim[12]{ffffff} сказал: Текст
сложно поменять на то, что тебе нужно? я же показал принцип просто, или так и будешь просить готовый код под каждую свою задачу?
Lua:
-- смею предположить, что цвет перед ником изменяется, поэтому и это учел)
local nick, id, message = text:match("%- ({.-}.+)%[(%d+)%]{.-}: (.+)")
if nick and id and message then
    return {color, string.format("- %s[%d]{ffffff} сказал: %s", nick, id, message)}
end

moreveal

Известный
Модератор
945
666
Увидел как TheChampGuess в видео про SAMP.events сделал вот такой код:
Lua:
function samp.onSendChat(text)
    return {'Текст'}
end

И если писать в чат любое сообщение то оно заменяется на "Текст". И тут я подумал, что можно также изменить и в onServerMessage, но как оказалось нет.
Как это сделать?
и в чом проблемы?
Lua:
function sampev.onServerMessage(color, text)
    return {color, "Текст"}
end
 
  • Нравится
Реакции: YarikVL

ReoGenT

Участник
Автор темы
90
6
почему нельзя то? они тебе запретили?
1655890222214.png
 

ReoGenT

Участник
Автор темы
90
6
Lua:
function sampev.onServerMessage(color, text)
    if text:find("Какой%-нибудь текст {.-}здесь$") then
        return {color, text:match("{.-}(.+)")} -- "здесь"
    end
end
if text:find("- {FFFFFF}(%w+_%w+)%[(%d+)%]{ffffff}: (.+)") then
return {color, text:match("- {FFFFFF}(%w+_%w+)%[(%d+)%]{ffffff}: (.+) 1")}
end
 

ReoGenT

Участник
Автор темы
90
6
это строка из твоего кода
какую строку из ЧАТА тебе надо заменить и на что?
- {FFFFFF}Fox_Yotanhaim[12]{ffffff}: 1 на - {FFFFFF}Fox_Yotanhaim[12]{ffffff} сказал: 1 и чтобы это было не только на мое сообщение, а на всех игроков
 

moreveal

Известный
Модератор
945
666
if text:find("- {FFFFFF}(%w+_%w+)%[(%d+)%]{ffffff}: (.+)") then
return {color, text:match("- {FFFFFF}(%w+_%w+)%[(%d+)%]{ffffff}: (.+) 1")}
end
можно и без find обойтись, так то
Lua:
local nick, id, message = text:match("%- {.-}(.+)%[(%d+)%]{.-}: (.+)")
if nick and id and message then
    return {color, "Ник: "..nick.." | ID: "..id.." | Текст: "..message}
end
 

ReoGenT

Участник
Автор темы
90
6
можно и без find обойтись, так то
Lua:
local nick, id, message = text:match("%- {.-}(.+)%[(%d+)%]{.-}: (.+)")
if nick and id and message then
    return {color, "Ник: "..nick.." | ID: "..id.." | Текст: "..message}
end
нет мне такое не нужно, я хочу чтобы сообщение - {FFFFFF}Fox_Yotanhaim[12]{ffffff}: Текст заменялось на - {FFFFFF}Fox_Yotanhaim[12]{ffffff} сказал: Текст
 

moreveal

Известный
Модератор
945
666
нет мне такое не нужно, я хочу чтобы сообщение - {FFFFFF}Fox_Yotanhaim[12]{ffffff}: Текст заменялось на - {FFFFFF}Fox_Yotanhaim[12]{ffffff} сказал: Текст
сложно поменять на то, что тебе нужно? я же показал принцип просто, или так и будешь просить готовый код под каждую свою задачу?
Lua:
-- смею предположить, что цвет перед ником изменяется, поэтому и это учел)
local nick, id, message = text:match("%- ({.-}.+)%[(%d+)%]{.-}: (.+)")
if nick and id and message then
    return {color, string.format("- %s[%d]{ffffff} сказал: %s", nick, id, message)}
end