text:find не ловит сообщения

Yashaaa

Известный
Автор темы
10
1
Версия MoonLoader
Другое
script:
function samp.onServerMessage(color, text)
if text:find('%A+ '..getMyNick()..'%['..getMyId()..'] ответил игроку %A+ %A+%[%d+]') then
  print('найдено')
  end
end

function getMyNick()
  local result, id = sampGetPlayerIdByCharHandle(playerPed)
  if result then
      local nick = sampGetPlayerNickname(id)
      return nick
  end
end
function getMyId()
  local result, id = sampGetPlayerIdByCharHandle(playerPed)
  if result then
      return id
  end
end
не ловит сообщение, не понимаю почему, подскажите
Администратор Имя Фамилия[ид] ответил игроку Имя Фамилия[ид]
библы подключены
 
Решение
Lua:
function samp.onServerMessage(color, text)
    if text:find('Администратор .+%[%d+%] ответил игроку .+%[%d+%]') then
        local anick, aid, nick, id = text:match('Администратор (.+)%[(%d+)%] ответил игроку (.+)%[(%d+)%]')
        if anick == getMyNick() then
            print('найдено')
        end
    end
end
--Администратор Имя Фамилия[ид] ответил игроку Имя Фамилия[ид]
если не будет работать, в следующий раз строку для regex отсылай без форматирования

wulfandr

Известный
636
260
Lua:
function samp.onServerMessage(color, text)
    if text:find('Администратор .+%[%d+%] ответил игроку .+%[%d+%]') then
        local anick, aid, nick, id = text:match('Администратор (.+)%[(%d+)%] ответил игроку (.+)%[(%d+)%]')
        if anick == getMyNick() then
            print('найдено')
        end
    end
end
--Администратор Имя Фамилия[ид] ответил игроку Имя Фамилия[ид]
если не будет работать, в следующий раз строку для regex отсылай без форматирования
 
  • Нравится
Реакции: Yashaaa

Yashaaa

Известный
Автор темы
10
1
Lua:
function samp.onServerMessage(color, text)
    if text:find('Администратор .+%[%d+%] ответил игроку .+%[%d+%]') then
        local anick, aid, nick, id = text:match('Администратор (.+)%[(%d+)%] ответил игроку (.+)%[(%d+)%]')
        if anick == getMyNick() then
            print('найдено')
        end
    end
end
--Администратор Имя Фамилия[ид] ответил игроку Имя Фамилия[ид]
если не будет работать, в следующий раз строку для regex отсылай без форматирования
Спасибо, работает
Lua:
function samp.onServerMessage(color, text)
    if text:find('Администратор .+%[%d+%] ответил игроку .+%[%d+%]') then
        local anick, aid, nick, id = text:match('Администратор (.+)%[(%d+)%] ответил игроку (.+)%[(%d+)%]')
        if anick == getMyNick() then
            print('найдено')
        end
    end
end
--Администратор Имя Фамилия[ид] ответил игроку Имя Фамилия[ид]
если не будет работать, в следующий раз строку для regex отсылай без форматирования
А можешь еще подсказать, почему сообщение удаляется после хука?
 
Последнее редактирование:

wulfandr

Известный
636
260
Спасибо, работает

А можешь еще подсказать, почему сообщение удаляется после хука?
в конец onServerMessage добавить return {color, text}


Lua:
function samp.onServerMessage(color, text)
    if text:find('Администратор .+%[%d+%] ответил игроку .+%[%d+%]') then
        local anick, aid, nick, id = text:match('Администратор (.+)%[(%d+)%] ответил игроку (.+)%[(%d+)%]')
        if anick == getMyNick() then
            print('найдено')
        end
    end
    return {color, text}
end
 
  • Нравится
Реакции: Yashaaa

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,749
4,851
в конец onServerMessage добавить return {color, text}


Lua:
function samp.onServerMessage(color, text)
    if text:find('Администратор .+%[%d+%] ответил игроку .+%[%d+%]') then
        local anick, aid, nick, id = text:match('Администратор (.+)%[(%d+)%] ответил игроку (.+)%[(%d+)%]')
        if anick == getMyNick() then
            print('найдено')
        end
    end
    return {color, text}
end
Без изменения входных параметров лучше вернуть true