Замена строки с ником на ник[ид]

Enterprise

Новичок
Автор темы
18
2
Версия MoonLoader
.026-beta
Всем привет, по примерам написал такой код, мне нужно чтобы при получении строки с чата, в которой будет присутствовать ник, скрипт заменял строку на Ник[ид], а если строка уже имеет содержимое ник[ид], то замена не производилась. Заранее извиняюсь за гавнокод, помогите))
Lua:
-- msg - сообщение с чата
local main_check = 0
msg = msg:gsub('{......}', '')
if msg:match('%w+_%w+%[%d+%]') then
        main_check = 1
end
if msg:match('%w+_%w+') and tonumber(main_check) ~= 1 then
       nick_check = msg:match('(%w+_%w+)')
        for i = 0,  sampGetMaxPlayerId() do
            if sampGetPlayerNickname(i) == nick_check then
                msg = msg:gsub(nick_check, nick_check .. '[' .. i .. ']') --- замена
                return {color, msg}
            end
        end
    end
end
 

DZONE

Известный
188
200
Всем привет, по примерам написал такой код, мне нужно чтобы при получении строки с чата, в которой будет присутствовать ник, скрипт заменял строку на Ник[ид], а если строка уже имеет содержимое ник[ид], то замена не производилась. Заранее извиняюсь за гавнокод, помогите))
Lua:
-- msg - сообщение с чата
local main_check = 0
msg = msg:gsub('{......}', '')
if msg:match('%w+_%w+%[%d+%]') then
        main_check = 1
end
if msg:match('%w+_%w+') and tonumber(main_check) ~= 1 then
       nick_check = msg:match('(%w+_%w+)')
        for i = 0,  sampGetMaxPlayerId() do
            if sampGetPlayerNickname(i) == nick_check then
                msg = msg:gsub(nick_check, nick_check .. '[' .. i .. ']') --- замена
                return {color, msg}
            end
        end
    end
end
Lua:
msg = string.gsub(msg, "%w+_%w+", function(nickname)
    for i = 0, 1003 do
        if sampIsPlayerConnected(i) and sampGetPlayerNickname(i) == nickname then
            return string.format("%s[%s]", nickname, i)
        end
    end
end)
 
  • Нравится
Реакции: Enterprise