проверка сообщение от игрока

Citrys

Участник
Автор темы
179
5
Версия MoonLoader
.026-beta
как сделать так, что бы происходила проверка в чате что пишет игрок, onServerMessage не работает для игрока, например
пишут: [Жалоба] от Antonio_Pripezdychi[228]: дайте денег.
и мне в чат писалось 1
 

wojciech?

Известный
Проверенный
349
230
ник может иметь иной формат, лучше: [A-z0-9_]+

ничего не происходит
Lua:
local ev = require("samp.events")

function ev.onServerMessage(color, text)
  if string.find(text, "%[Жалоба%] от [A-z_0-9]%[%d+%]: дайте денег") then
    sampAddChatMessage("кто-то просит денег", -1)
  end
end
 
  • Нравится
Реакции: chromiusj

Citrys

Участник
Автор темы
179
5
ник может иметь иной формат, лучше: [A-z0-9_]+


Lua:
local ev = require("samp.events")

function ev.onServerMessage(color, text)
  if string.find(text, "%[Жалоба%] от [A-z_0-9]%[%d+%]: дайте денег") then
    sampAddChatMessage("кто-то просит денег", -1)
  end
end
все равно ничего не происходит, хорошо, а если взять в пример что просто кто-то что то в чат написал, onServerMessage это никак не ищет, сколько бы я не пробовал

потому что я не думаю,что ты скинул фулл строку,скинь фулл строчку из чатлога
[Жалоба] от Лох_Позорный[228]: дайте денег. Уже 3 жалоб!!!, что что в конце "уже 3 жалоб" я добавил сам
 

Citrys

Участник
Автор темы
179
5
у тебя скрипт не выгружается в логе?
нет, все чисто, скрипт работает, он просто не ищет то-что в чате, на сервере криптона есть команда /c - это серверные сообщение, вот их onServerMessage видит и что-то пишет, а обычные сообщение из чата он не видет
 

wojciech?

Известный
Проверенный
349
230
1687463153425.png


Lua:
function ev.onServerMessage(color, text)
    if string.find(text, "%[Жалоба%] от [A-z0-9_]+%[%d+%]: дайте денег") then
      sampAddChatMessage("кто-то просит денег", -1)
    end
end
 

Citrys

Участник
Автор темы
179
5
Посмотреть вложение 205339

Lua:
function ev.onServerMessage(color, text)
    if string.find(text, "%[Жалоба%] от [A-z0-9_]+%[%d+%]: дайте денег") then
      sampAddChatMessage("кто-то просит денег", -1)
    end
end
вот теперь работает, а если мне нужно уловить еще и то что перед этой надписью, то есть серверную, вот кто то написал репорт и админам пишет [Жалоба] от Nickname[1]: дайте денен. Уже 3 жалоб!!!
а не только что что говорят
 

Julimba

Участник
108
10
WLkYC.png



Lua:
function ev.onServerMessage(color, text)
    if string.find(text, "%[Жалоба%] от [A-z0-9_]+%[%d+%]: дайте денег") then
        local nick, id = text:match('%[Жалоба%] от (%w+_%w+)%[(%d+)%]: дайте денег')
        sampAddChatMessage(nick.. ' [' ..id.. '] просит денег', -1)
    end
end
Если правильно понял, то вот