script_name("Members Ex Console")
script_author("You")
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local events = require 'samp.events'
local tMembers = {}
local bPairs = false
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("mbs", function()
tMembers = {}
bPairs = true
sampSendChat("/members")
print("Запрос /members отправлен, ожидаем список...")
end)
while true do wait(0) end
end
function events.onServerMessage(_, message)
if not bPairs then return end
-- Ловим строки с ID и ником, игнорируем остальное
local id, nick = message:match("ID:%s*(%d+)%s*|.-|%s*([%w_]+)%s*:")
if id and nick then
-- Проверяем, нет ли уже такого игрока
local exists = false
for _, v in ipairs(tMembers) do
if v.id == id then
exists = true
break
end
end
if not exists then
table.insert(tMembers, {id=id, nick=nick})
print(("Найден игрок: %s [%s]"):format(nick, id))
end
end
-- Ловим конец списка
if message:find("Всего:%s*%d+ человек") then
bPairs = false
print(("Всего игроков в мемберсе: %d"):format(#tMembers))
print("Все игроки:")
for _, v in ipairs(tMembers) do
print(("%s [%s]"):format(v.nick, v.id))
end
end
return false
end