не могу вытащить id из сообщения

sadasdasdasdasdasd

Участник
Автор темы
81
16
Версия MoonLoader
Другое
мне нужно выдать id человека из сообщения, у меня есть такой код, что не так? когда человек что то написал в чат, его id ни в консоль, ни в чат не отправляется

Lua:
local sampev = require ('samp.events')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8

function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end
end

function sampev.onServerMessage(color, text)
    if text:find("(.+)%[(%d+)%] говорит: (.+)") then
        nick, id, message = text:match("(.+)%[(%d+)%] говорит: (.+)")
        print(id)
        sampSendChat(id)
    end
end
 

Vespan

loneliness
Проверенный
2,101
1,632
или поменяй кодировку сохранение скрипта на windows 1251
 
  • Нравится
Реакции: ntdll и YarikVL

sadasdasdasdasdasd

Участник
Автор темы
81
16
или поменяй кодировку сохранение скрипта на windows 1251
кодировка у меня и так 1251, на счёт регуляций, взял с темы https://www.blast.hk/threads/175589/post-1301010
 

why ega

РП игрок
Модератор
2,539
2,229
мне нужно выдать id человека из сообщения, у меня есть такой код, что не так? когда человек что то написал в чат, его id ни в консоль, ни в чат не отправляется

Lua:
local sampev = require ('samp.events')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8

function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end
end

function sampev.onServerMessage(color, text)
    if text:find("(.+)%[(%d+)%] говорит: (.+)") then
        nick, id, message = text:match("(.+)%[(%d+)%] говорит: (.+)")
        print(id)
        sampSendChat(id)
    end
end
у меня все достает
1682761363116.png

Lua:
local PATTERN = "(.+)%[(%d+)%] говорит: (.+)"
if text:find(PATTERN) then
    local nick, id, message = text:match(PATTERN)
    print(id) 
end
 

Vespan

loneliness
Проверенный
2,101
1,632
Основная функция, вызывается единожды за запуск скрипта. В ней можно использовать задержки (wait) и бесконечные циклы, при этом не нарушая работу игры.
Lua:
function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end
    wait(-1)
end
или удали функцию main()
 

sadasdasdasdasdasd

Участник
Автор темы
81
16
у меня все достаетПосмотреть вложение 199638
Lua:
local PATTERN = "(.+)%[(%d+)%] говорит: (.+)"
if text:find(PATTERN) then
    local nick, id, message = text:match(PATTERN)
    print(id)
end
странно


Lua:
function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end
    wait(-1)
end
или удали функцию main()
я удалил мейн, не работает, так же менял на тот, что ты скинул, тоже не работает
 

YarikVL

Известный
Проверенный
4,812
1,819
странно


я удалил мейн, не работает, так же менял на тот, что ты скинул, тоже не работает
Скинь скрипт с твоими последними изменениями и ошибку скрипта ( ну или желательно moonloader.log весь прикрепить )
 

Vespan

loneliness
Проверенный
2,101
1,632
началось блять, еще один
что бы тут по 10 сообщений не срать, вот темы где у них подобная проблема как у тебя
возможно там и решение есть
 
  • Нравится
Реакции: YarikVL

sadasdasdasdasdasd

Участник
Автор темы
81
16
Скинь скрипт с твоими последними изменениями и ошибку скрипта ( ну или желательно moonloader.log весь прикрепить )
Lua:
local sampev = require ('samp.events')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8


function sampev.onServerMessage(color, text)
    if text:find("(.+)%[(%d+)%] говорит: (.+)") then
        nick, id, message = text:match("(.+)%[(%d+)%] говорит: (.+)")
        print(id)
        sampSendChat(id)
    end
end

[ML] (system) autohealmed.lua: Script terminated. (0B73A3E4)
[ML] (system) Loading script 'C:\Program Files (x86)\arizona\moonloader\autohealmed.lua'...
[ML] (system) autohealmed.lua: Loaded successfully.
 

Вложения

  • moonloader.log
    39.9 KB · Просмотры: 5

schtolz

Известный
111
66
Lua:
local sampev = require ('samp.events')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8


function sampev.onServerMessage(color, text)
    if text:find("(.+)%[(%d+)%] говорит: (.+)") then
        nick, id, message = text:match("(.+)%[(%d+)%] говорит: (.+)")
        print(id)
        sampSendChat(id)
    end
end

[ML] (system) autohealmed.lua: Script terminated. (0B73A3E4)
[ML] (system) Loading script 'C:\Program Files (x86)\arizona\moonloader\autohealmed.lua'...
[ML] (system) autohealmed.lua: Loaded successfully.
В условии пишешь %[%d+%], а в text:match оставляешь как было
 

YarikVL

Известный
Проверенный
4,812
1,819
Lua:
local sampev = require ('samp.events')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8


function sampev.onServerMessage(color, text)
    if text:find("(.+)%[(%d+)%] говорит: (.+)") then
        nick, id, message = text:match("(.+)%[(%d+)%] говорит: (.+)")
        print(id)
        sampSendChat(id)
    end
end

[ML] (system) autohealmed.lua: Script terminated. (0B73A3E4)
[ML] (system) Loading script 'C:\Program Files (x86)\arizona\moonloader\autohealmed.lua'...
[ML] (system) autohealmed.lua: Loaded successfully.
Не вижу здесь сообщений от autogealmed.lua ( кроме загрузки и выгрузки этого скрипта )
У тебя наверное вообще не находится текст, скинь из чатлога строчку как выглядит когда человек говорит в чат.
И прикрепи ещё файл autohealmed.lua
 
  • Нравится
Реакции: sadasdasdasdasdasd

why ega

РП игрок
Модератор
2,539
2,229
Скорее всего, у тебя стркока содержит HEX код, вот рабочий мега-пупер код
Lua:
local PATTERN = "(.+)%[(%d+)%] говорит: (.+)"
function sampev.onServerMessage(color, text)
    text = text:gsub("{......}", "")
    if text:find(PATTERN) then
        local nick, id, message = text:match(PATTERN)
        print(id)
    end
end
 
  • Нравится
Реакции: YarikVL

schtolz

Известный
111
66

Вложения

  • hookid.lua
    423 байт · Просмотры: 7
  • Нравится
Реакции: YarikVL