Автор: Unterlink(X-Sky) 10.1.2010, 22:40
Название скрипта: BanLogger
Автор: http://mydc.ru/user1.html
Дата написания: 10.01.2010
Версия скрипта: 1.0
Версия API: API 2
Описание скрипта: Логирует баны ника/ip , выводит по команде в чат количество банов + последний бан, либо таблицу всех банов для ника/ip.
Прикрепленный скрипт:
BanLogger.lua ( 6.37 килобайт )
: 99
P.S.
Цитата(Nickolya)
напиши что скрипт сделан через задницу)
Версия скрипта: 1.1
Цитата(Nickolya)
Сделал профили которым доступен скрипт, работу в личке, лог банов для админов, меню. Пробуйте
Для работы можно заменить сам скипт, он подхватит старую базу банов и начнет новую для админов.
Автор: Wariner 10.1.2010, 22:58
Так блин значит сам поленился???
Автор: Wariner 10.1.2010, 23:03
Я тебе и говорил клади кусок кода и вместе бы разобрались и вместе бы написали!!! А то так и не научишься...
Автор: Unterlink(X-Sky) 10.1.2010, 23:03
не хватает у меня мозга на такие вещи.
Автор: Wariner 10.1.2010, 23:06
У нас модераторы пишущие люди)))) так что вливайся!!!
Автор: Unterlink(X-Sky) 10.1.2010, 23:07
Чувствую, с моими знаниями, отливаться придётся, наоборот..
Ладно, оффтоп разводить не будем.
Автор: Unterlink(X-Sky) 11.1.2010, 15:19
Не знаю, у меня всё отлично
Автор: TiGRpp 13.1.2010, 19:13
Цитата(Unterlink(X-Sky) @ 10.1.2010, 23:40)
Название скрипта: BanLogger
Автор: http://mydc.ru/user1.html
Версия API: API 2
Описание скрипта: Логирует баны ника/ip , выводит по команде в чат количество банов + последний бан, либо таблицу всех банов для ника/ip.
А вот подскажите где меню у скрипта? Что-то я и в коде его не нашел...
Или он как-то по другому действует?
Вроде написано "выводит по команде в чат количество банов"...
Автор: Unterlink(X-Sky) 13.1.2010, 19:28
Цитата
Вроде написано "выводит по команде в чат количество банов"...
Ну если нет меню, не значит что по команде не выводит
Если хочешь меню, добавь в конце скрипта
Код
function UserConnected(tUser)
if tProfiles[tUser.iProfile] == 1 then
Core.SendToUser(tUser,"$UserCommand 1 2 Меню администрации\\Логи банов\\Количество банов для этого юзера$<%[mynick]> !bans %[ip]||"..
"$UserCommand 1 3 Меню администрации\\Логи банов\\Количество банов для...$<%[mynick]> !bans %[line: Введите ник/IP]||"..
"$UserCommand 1 2 Меню администрации\\Логи банов\\Лог банов для этого юзера$<%[mynick]> !banlist %[ip]||"..
"$UserCommand 1 3 Меню администрации\\Логи банов\\Лог банов для...$<%[mynick]> !banlist %[line: Введите ник/IP]||")
end
end
RegConnected,OpConnected=UserConnected,UserConnected
Автор: Unterlink(X-Sky) 22.1.2010, 21:37
Новая версия скрипта )
Смотрим первый пост
Автор: Nickolya 23.5.2010, 19:06
Обрезанный донельзя скрипт:
CODE
tBanCmds = {
ban = true,
banip = true,
fullban = true,
fullbanip = true,
nickban = true,
tempban = true,
tempbanip = true,
fulltempban = true,
}
function OnStartup()
sBot = SetMan.GetString(21)
tWhomWeSee = {}
tBansLog = {}
tMasterBansLog = {}
sPath = Core.GetPtokaXPath().."scripts/"
if loadfile(sPath.."tBansLog.tbl") then
dofile(sPath.."tBansLog.tbl")
end
if loadfile(sPath.."tMasterBansLog.tbl") then
dofile(sPath.."tMasterBansLog.tbl")
end
TmrMan.AddTimer(1000, "OnTimer1")
end
function OnTimer1()
local tRemove = {}
for i, tData in ipairs(tWhomWeSee) do
local tBan = BanMan.GetBan(tData[1])
if tBan then
if tBan[1] then
tBan = tBan[#tBan]
end
local tBanTbl = {
sBy = tBan.sBy or tData[2],
iTime = tData[3],
iExpireTime = tBan.iExpireTime,
sIP = tBan.sIP,
sNick = tBan.sNick,
bIpBan = tBan.bIpBan,
bNickBan = tBan.bNickBan,
bFullIpBan = tBan.bFullIpBan,
sReason = tBan.sReason,
}
if tBanTbl.sNick then
if not tBansLog[tBanTbl.sNick] then
tBansLog[tBanTbl.sNick] = {}
end
table.insert(tBansLog[tBanTbl.sNick], tBanTbl)
end
if tBanTbl.sIP then
if not tBansLog[tBanTbl.sIP] then
tBansLog[tBanTbl.sIP] = {}
end
table.insert(tBansLog[tBanTbl.sIP], tBanTbl)
end
if not tMasterBansLog[tData[2]] then
tMasterBansLog[tData[2]] = {}
end
table.insert(tMasterBansLog[tData[2]], tBanTbl)
SaveToFile(sPath.."tBansLog.tbl", tBansLog, "tBansLog")
SaveToFile(sPath.."tMasterBansLog.tbl", tMasterBansLog, "tMasterBansLog")
table.insert(tRemove, 1, i)
elseif tData[3] + 5 > os.time() then
table.insert(tRemove, 1, i)
end
end
for _, i in ipairs(tRemove) do
table.remove(tWhomWeSee, i)
end
end
function ChatArrival(tUser, sData)
local _,_, sCmd, sWhoBanned = string.find(sData, "%b<>%s+%p(%S+)%s+(%S+).*|$")
if sCmd then
sCmd = sCmd:lower()
if sWhoBanned and tBanCmds[sCmd] then-- and not BanMan.GetBan(sWhoBanned) then
table.insert(tWhomWeSee, {sWhoBanned, tUser.sNick, os.time()})
end
end
end
ToArrival = ChatArrival
function SaveToFile(sFileWay, tTable, sTableName)
local sHandle = io.open(sFileWay,"w+")
Serialize(tTable, sTableName, sHandle)
sHandle:flush()
sHandle:close()
end
function Serialize(tTable, sTableName, sHandle, sTab)
local sTab = sTab or ""
sHandle:write(sTab..sTableName.." = {\n")
for key, value in pairs(tTable) do
local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key)
if type(value) == "table" then
Serialize(value, sKey, sHandle, sTab.."\t")
else
local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value)
sHandle:write(sTab.."\t"..sKey.." = "..sValue)
end
sHandle:write(",\n")
end
sHandle:write(sTab.."}")
end
Автор: X-Sky 8.6.2010, 17:45
Ещё вопросик. Как сделать так, чтобы засчитывало ещё и баны бота, которые он выдаёт за рекламу или за использование прокси? Или нужны эти самые скрипты? То есть антирекламу и антипрокси.
Автор: Nickolya 8.6.2010, 19:44
Очередной велосипед получится Лучше конечно скрестить скрипты, тогда возможно внесение в таблицу значений.