Lua Анти-подмена L/i в никах

Стэнфорд

Потрачен
Автор темы
1,058
540
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Версия SA-MP
  1. 0.3.7 (R1)
Очень часто игроки выдают себя за других людей при помощи L и i (маленькая L и большая i одинаково выглядят). При активации данного скрипта в никах людей в зоне стрима, а так же в сообщениях от игроков, во всех никах буквы L и i будут заменены на русские (с учетом регистра).

Активация:
/notl
Зависимости: Samp.lua

Ниже прикреплено
2 версии. В первой по умолчанию стоит замена букв на русские(при входе игры скрипт автоматически включен). Во второй версии, по умолчанию скрипт отключен. Скачивайте ту, что вам удобнее. Для установки перекиньте нужную версию в папку moonloader
 

Вложения

  • NotL_v1.lua
    3.6 KB · Просмотры: 22
  • NotL_v2.lua
    3.6 KB · Просмотры: 28

Azller Lollison

я узбек
Друг
1,342
2,266
а нельзя при коннекте игрока подменять его ник и при сообщениях, а не делать ебучий цикл на проверку всех игроков в стриме и эмулировать установку ника?

В самом джоине пришедшем при коннекте игрока перезаписываешь ник и не ебешь мозг
 

[w0te]

Потрачен
773
488
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
интересненько, если написать в чат I тоже поменяется на i?
 
  • Нравится
Реакции: shitcodes

Стэнфорд

Потрачен
Автор темы
1,058
540
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
интересненько, если написать в чат I тоже поменяется на i?
Немного не понял
 
  • Нравится
Реакции: [w0te]

Fott

Простреленный
3,431
2,268
интересненько, если написать в чат I тоже поменяется на i?
нет
 
  • Нравится
Реакции: Стэнфорд и [w0te]

Dark.

Известный
1,748
769
Ещё можно шрифт другой установить для чата, ну или собейт с кастомными неймтэгами 🌚
 
  • Нравится
Реакции: Стэнфорд

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Всефорумный модератор
2,634
2,482
Lua:
local sampev = require 'samp.events'

local playersNames = {}
local specialCharacters = {
    ['l'] = 'л',
    ['L'] = 'Л',
    ['i'] = 'и',
    ['I'] = 'И'
}
local enabled = true

function main()
    while not isSampAvailable() do wait(50) end
    sampRegisterChatCommand("notl", function()
        enabled = not enabled
        sampAddChatMessage('[NotL]:{d1d1d1} '..(enabled and 'Включен' or 'Выключен')..'{ff4d4d}!', 0xff4d4d)
    end)
    wait(-1)
end

function replaceCharacters(name)
    local origName = name
    for a, b in pairs(specialCharacters) do
        name = name:gsub(a, b)
    end
    return name ~= origName, name
end

function sampev.onPlayerJoin(id, color, isNpc, name)
    local res, newName = replaceCharacters(name)
    if res then
        playersNames[id] = {name, newName}
        return {id, color, isNpc, newName}
    end
end

function sampev.onSetPlayerName(id, name, success)
    local res, newName = replaceCharacters(name)
    if res then
        playersNames[id] = {name, newName}
        return {id, newName, success}
    end
end

function sampev.onPlayerQuit(id, reason)
    playersNames[id] = nil
end

function sampev.onServerMessage(color, text)
    if enabled then
        local newText = text
        for a, b in pairs(playersNames) do
            newText = newText:gsub(b[1], b[2])
        end
        if newText ~= text then
            return {color, newText}
        end
    end
end

function sampev.onChatMessage(id, text)
    if enabled then
        local newText = text
        for a, b in pairs(playersNames) do
            newText = newText:gsub(b[1], b[2])
        end
        if newText ~= text then
            return {color, newText}
        end
    end
end
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,768
11,210
зачем менять на русские, если проще было бы менять I на i и l на L?