Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Kорзина _ Бан Ботом Хаба

Автор: THE STRELOK 12.3.2009, 17:40

Помогите доделать скрипт, вообще задумка скрипта - бан от бота.

Код
sBot = SetMan.GetString(21)

tProfile = {
[0] = 1,
[1] = 1,
}

function ChatArrival(tUser,sData)
    sData = string.sub(sData,1,-2)
    local _,_,cmd = string.find(sData, "%b<>%s+(%S+)")
    if cmd == "!botban" then
        if tProfile[tUser.iProfile] == 1 then
            local _,_,sNick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
            local _,_,sReason = string.find(sData, "%b<>%s+%S+%s+%S+%s+(.*)")
            if not sNick then
                Core.SendToUser(tUser,"<"..sBot.."> Вы не ввели ник!")
                return true
            end
            sUser = Core.GetOnlineUsers()    
            for i,v in pairs(sUser) do
                if sNick == v.sNick then
                    sIP = v.sIP
                end
            end
            if not sIP then
                sIP = "не известен"
            end    
            if not sReason then
                sReason = "не указанна"
            end    
            Core.SendToNick(sNick,"<"..sBot.."> Вы были забанены потому, что: "..sReason)
            Core.SendToAll("<"..sBot.."> забанил "..sNick.." (IP: "..sIP..") потому, что: "..sReason)
                        BanMan.Ban(sNick,sReason,sBot,true)
        end
return true    
end
    if cmd == "!bottempban" then
        if tProfile[tUser.iProfile] == 1 then
            local _,_,sNick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
            local _,_,sTime = string.find(sData, "%b<>%s+%S+%s+%S+%s+(%S+)")
            local _,_,sReason = string.find(sData, "%b<>%s+%S+%s+%S+%s+%S+%s+(.*)")
            if not sNick then
                Core.SendToUser(tUser,"<"..sBot.."> Вы не ввели ник!")
                return true
            end
            if not sTime then
                Core.SendToUser(tUser,"<"..sBot.."> Вы не ввели время бана!")
                return true
            end            
            sUser = Core.GetOnlineUsers()    
            for i,v in pairs(sUser) do
                if sNick == v.sNick then
                    sIP = v.sIP
                end
            end
            if not sIP then
                sIP = "не известен"
            end    
            if not sReason then
                sReason = "не указанна"
            end    
            Core.SendToNick(sNick,"<"..sBot.."> Вы были временно забанены на следующие "..sTime.." потому, что: "..sReason)
            Core.SendToAll("<"..sBot.."> забанил "..sNick.." (IP: "..sIP..") следующие "..sTime.." потому, что: "..sReason)
                        BanMan.TempBan(sNick,sTime,sReason,sBot,true)
    end    
return true
end
end
function UserConnected(tUser)
    if tProfile[tUser.iProfile] == 1 then
        Core.SendToUser(tUser,"$UserCommand 1 3 Меню админа\\Временно забанить ботом юзера$<%[mynick]> !bottempban %[line:Введите ник] %[line:Введите время бана] %[line:Введите причину]|")
        Core.SendToUser(tUser,"$UserCommand 1 3 Меню админа\\Забанить ботом юзера$<%[mynick]> !botban %[line:Введите ник] %[line:Введите причину]|")
                Core.SendToNick(tUser,"$UserCommand 1 2 Меню админа\\Забанить ботом этого юзера$<%[mynick]> !botban %[nick] %[line:Введите причину]|")
                 Core.SendToNick(tUser,"$UserCommand 1 2 Меню админа\\Забанить временно ботом этого юзера$<%[mynick]> !bottempban %[nick] %[line:Введите время бана] %[line:Введите причину]|")
    end
end
OpConnected = UserConnected
RegConnected = UserConnected


Сообщения выводятся, а бан не происходит

Автор: Setuper 12.3.2009, 17:54

Код
BanMan.BanNick(sNick,sReason,sBot)

BanMan.TempBanNick(sNick,sTime,sReason,sBot)

Автор: THE STRELOK 12.3.2009, 17:59

Не банит :(

Автор: Setuper 12.3.2009, 18:04

Забыл время))

Поправил свой предыдущий пост.

Автор: THE STRELOK 12.3.2009, 18:07

Всё равно банить не хочет, сообщение выводится, а бана нет(

Автор: Setuper 12.3.2009, 18:17

Код
BanMan.BanNick(sNick,sReason,sBot)

BanMan.TempBanNick(sNick,tonumber(sTime) or 1,sReason,sBot)

Автор: THE STRELOK 12.3.2009, 18:22

огромное спасибо, теперь работает big_smile.gif

Автор: Setuper 12.3.2009, 19:31

Раз работает, тогда закрываю тему