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

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

MyDC.ru _ Запросы скриптов для PtokaX _ Ищю скрипт + Вопрос

Автор: CraZy 14.4.2010, 8:08

Доброе время суток!

Ищю скрипт что бы нельзя было банить Мастеров и Опов...

Как сделать на Птохе... что бы не зарегистрированные пользователи выдели айпи других пользователей?

Заранее спасибо!

Автор: Артём 14.4.2010, 8:13

http://mydc.ru/topic568.html?hl=%C0%ED%F2%E8%E1%E0%ED+%EE%EF%EE%E2
а на счёт незарегистрированные чтобы видели IP ... думаю только скриптом ( возможно ошибаюсь ) big_smile.gif

Код
function ChatArrival(tUser,sData)
  if not sData:match"^%b<> [!+/].+" then
    local sMsg = sData:match"%b<>(.*)|$"
    Core.SendToAll("["..tUser.sIP.."]  <"..tUser.sNick.."> "..sMsg)
    return true
  end
end

Автор: CraZy 14.4.2010, 9:03

спасибо за антибан ну за срипкт ниже надо подобное ну не потходит мне бы стандарт вариант какойнебуть возможно?

Автор: Nickolya 14.4.2010, 12:49

В птоке по-моему нет того что ты хочешь, анреги лишены прав и настроить это нельзя. Скриптом можно, но будет тормозить хаб при большом онлайне. Если хочешь, попробуй:

Код
function OnStartup()
    TmrMan.AddTimer(1000, "SendData")
    tToSend = {}
end

function UserConnected(tUser)
    if tUser.iProfile == -1 then
        local tUsers = {"$UserIP "}
        for _, tOnlineUser in ipairs(Core.GetOnlineUsers()) do
            table.insert(tUsers, tOnlineUser.sNick)
            table.insert(tUsers, " ")
            table.insert(tUsers, tOnlineUser.sIP)
            table.insert(tUsers, "$$")
        end
        if tUsers[2] then
            Core.SendToUser(tUser, table.concat(tUsers))
        end
    end
    tToSend[tUser.sNick] = true
end
OpConnected,RegConnected = UserConnected,UserConnected

function SendData()
    for sNick in pairs(tToSend) do
        local tUser = Core.GetUser(sNick, true) or false
        if not tUser then
            tToSend[sNick] = nil
        elseif tUser.bConnected then
            Core.SendToAll("$UserIP "..tUser.sNick.." "..tUser.sIP.."$$")
            tToSend[sNick] = nil
        end
    end
    collectgarbage("collect")
end

Автор: CraZy 18.4.2010, 16:06

Почему тормозить будит? и при каком имено онлайне примерно тормозить будит?
P.s: я как понял и за хеширования тормозить будит?

Автор: Nickolya 20.4.2010, 0:04

Хеширования тут нет, лишь проход по всей таблице пользователей каждый раз при входе юзера, что вполне затратно. Ты попробуй сначала, а потом спрашивай...