Lua CHAT ID

mrfoxpro

Новичок
Автор темы
4
8
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R3
Скрипт, который добавляет всем никам без id id.
Если нужны какие-то вариации (типа сравнивать еще ники без слеша и тд), отпишите.
Скрипт оптимизирован и не пересобирает всех игроков заново
1614696897213.png
 

Вложения

  • ChatID.lua
    1.9 KB · Просмотры: 1,293
Последнее редактирование:

FaNATKA gEY kLUBOV

Новичок
27
2
Как я понял, этот скрипт когда ты пишешь ник добавляет айди... Если это не так, то извиняюсь. Но если это так то зачем? Обычно ники пишут Ева Допе или как-то ещё кавыркают, ведь это проще чем писать фулл ник...
 

vortex

Известный
Проверенный
531
296
Как я понял, этот скрипт когда ты пишешь ник добавляет айди... Если это не так, то извиняюсь. Но если это так то зачем? Обычно ники пишут Ева Допе или как-то ещё кавыркают, ведь это проще чем писать фулл ник...
как пример
было: "Ryan_Dalmer сказал: Привет"
стало: "Ryan_Dalmer[250] сказал: Привет"



Он добавляет к строчке в чате айди игрока(только для тебя, визуально)
 

cooqie

Известный
1,535
427
Как я понял, этот скрипт когда ты пишешь ник добавляет айди... Если это не так, то извиняюсь. Но если это так то зачем? Обычно ники пишут Ева Допе или как-то ещё кавыркают, ведь это проще чем писать фулл ник...
рядом с ником приписывает id для удобства
 

BisQwit

Известный
456
124
А как это реализовано на аризоне? ведь ты не можешь пробить ид админа
А пишет просто что игрок не в сети
 

lontumiarn

Известный
344
58
Сделай пробел перед [ID], а то когда оно в кашу сляпано не очень)
 

CaJlaT

07.11.2024 14:55
Модератор
2,833
2,670
Скрипт, который добавляет всем никам без id id.
Если нужны какие-то вариации (типа сравнивать еще ники без слеша и тд), отпишите.
Скрипт оптимизирован и не пересобирает всех игроков заново
Посмотреть вложение 88140
Скрипт не пропускает пакет и создаёт сообщение сам, поэтому другие скрипты не видят его.
Фикс:

Lua:
script_author('foxpro')
script_name('ChatID')
local sampev = require 'lib.samp.events'
local players = {}
local enable = true
local myId = -1
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(1)
    end
    while sampGetGamestate() < 3 do
        wait(1)
    end
    players = getAllSampPlayers()
    sampRegisterChatCommand(
        'chatid',
        function()
            enable = not enable
            sampAddChatMessage(enable and 'ID ников включены' or 'ID ников выключены', -1)
        end
    )

    wait(-1)
end
function sampev.onInitGame(playerId)
    myId = playerId
end
function sampev.onServerMessage(color, text)
    if enable then
        local toChange = false
        for id, name in pairs(players) do
            if string.find(text, name) and not string.find(text, string.format('%s%%[%u%%]', name, id)) then
                text = string.gsub(text, name, string.format('%s[%d]', name, id))
                toChange = true
            end
        end
        if toChange then
            return {color, text}
        end
    end
end
function onReceiveRpc(id, bs)
    if id == 137 then
        local id = raknetBitStreamReadInt16(bs)
        raknetBitStreamIgnoreBits(bs, 40)
        local nickLen = raknetBitStreamReadInt8(bs)
        local name = raknetBitStreamReadString(bs, nickLen)
        players[id] = name
    end
    if id == 138 then
        local id = raknetBitStreamReadInt16(bs)
        players[id] = nil
    end
end
function getAllSampPlayers()
    players = {}
    for i = 0, sampGetMaxPlayerId() do
        if sampIsPlayerConnected(i) or i == myId then
            players[i] = sampGetPlayerNickname(i)
        end
    end
    return players
end
 

Вложения

  • ChatID.lua
    1.8 KB · Просмотры: 259

BARRY BRADLEY

Известный
711
176
Скрипт не пропускает пакет и создаёт сообщение сам, поэтому другие скрипты не видят его.
Фикс:

Lua:
script_author('foxpro')
script_name('ChatID')
local sampev = require 'lib.samp.events'
local players = {}
local enable = true
local myId = -1
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(1)
    end
    while sampGetGamestate() < 3 do
        wait(1)
    end
    players = getAllSampPlayers()
    sampRegisterChatCommand(
        'chatid',
        function()
            enable = not enable
            sampAddChatMessage(enable and 'ID ников включены' or 'ID ников выключены', -1)
        end
    )

    wait(-1)
end
function sampev.onInitGame(playerId)
    myId = playerId
end
function sampev.onServerMessage(color, text)
    if enable then
        local toChange = false
        for id, name in pairs(players) do
            if string.find(text, name) and not string.find(text, string.format('%s%%[%u%%]', name, id)) then
                text = string.gsub(text, name, string.format('%s[%d]', name, id))
                toChange = true
            end
        end
        if toChange then
            return {color, text}
        end
    end
end
function onReceiveRpc(id, bs)
    if id == 137 then
        local id = raknetBitStreamReadInt16(bs)
        raknetBitStreamIgnoreBits(bs, 40)
        local nickLen = raknetBitStreamReadInt8(bs)
        local name = raknetBitStreamReadString(bs, nickLen)
        players[id] = name
    end
    if id == 138 then
        local id = raknetBitStreamReadInt16(bs)
        players[id] = nil
    end
end
function getAllSampPlayers()
    players = {}
    for i = 0, sampGetMaxPlayerId() do
        if sampIsPlayerConnected(i) or i == myId then
            players[i] = sampGetPlayerNickname(i)
        end
    end
    return players
end
Проблема с никами по типу [T]ommy_[L]oli
 

sep

Известный
681
76
Скрипт, который добавляет всем никам без id id.
Если нужны какие-то вариации (типа сравнивать еще ники без слеша и тд), отпишите.
Скрипт оптимизирован и не пересобирает всех игроков заново
Посмотреть вложение 88140
проблема на адвансе теперь не работает и теперь вот так
стрый скрипт работает

di-XNMRWY.png
 

sep

Известный
681
76
Скрипт не пропускает пакет и создаёт сообщение сам, поэтому другие скрипты не видят его.
Фикс:

Lua:
script_author('foxpro')
script_name('ChatID')
local sampev = require 'lib.samp.events'
local players = {}
local enable = true
local myId = -1
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(1)
    end
    while sampGetGamestate() < 3 do
        wait(1)
    end
    players = getAllSampPlayers()
    sampRegisterChatCommand(
        'chatid',
        function()
            enable = not enable
            sampAddChatMessage(enable and 'ID ников включены' or 'ID ников выключены', -1)
        end
    )

    wait(-1)
end
function sampev.onInitGame(playerId)
    myId = playerId
end
function sampev.onServerMessage(color, text)
    if enable then
        local toChange = false
        for id, name in pairs(players) do
            if string.find(text, name) and not string.find(text, string.format('%s%%[%u%%]', name, id)) then
                text = string.gsub(text, name, string.format('%s[%d]', name, id))
                toChange = true
            end
        end
        if toChange then
            return {color, text}
        end
    end
end
function onReceiveRpc(id, bs)
    if id == 137 then
        local id = raknetBitStreamReadInt16(bs)
        raknetBitStreamIgnoreBits(bs, 40)
        local nickLen = raknetBitStreamReadInt8(bs)
        local name = raknetBitStreamReadString(bs, nickLen)
        players[id] = name
    end
    if id == 138 then
        local id = raknetBitStreamReadInt16(bs)
        players[id] = nil
    end
end
function getAllSampPlayers()
    players = {}
    for i = 0, sampGetMaxPlayerId() do
        if sampIsPlayerConnected(i) or i == myId then
            players[i] = sampGetPlayerNickname(i)
        end
    end
    return players
end
твой тоже на адвансе вотакую выдает шляпу (вчера норм было )

di-0L3TWZ.png
 
  • Ха-ха
Реакции: tinkoir