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

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

MyDC.ru _ Помощь по скриптам для PtokaX _ Разрешения для профилей

Автор: AVANGARD 1.11.2009, 8:53

Собственно скрипт запрещающий множественный вход с одного IP

Код
if frmHub then
  function ValidateNickArrival(tUser)
    for _,v in pairs(frmHub:GetOnlineUsers()) do
      if v.sIP==tUser.sIP then
        tUser:SendData"*** На хабе введено ограничение: один ip - один ник"
        tUser:Disconnect()
      end
    end
  end
  NewUserConnected=ValidateNickArrival
  OpConnected=ValidateNickArrival
else
function ValidateNickArrival(tUser)
    for _,v in pairs(Core.GetOnlineUsers()) do
      if v.sIP==tUser.sIP then
        Core.SendToUser(tUser,"*** На хабе введено ограничение: один ip - один ник")
        Core.Disconnect(tUser)
      end
    end
  end
  UserConnected=ValidateNickArrival
  RegConnected=ValidateNickArrival
  OpConnected=ValidateNickArrival
end

И собственно надо что бы разрешить множественный вход мастеру, операторам и випам! Заранее спасибо

Автор: Wariner 1.11.2009, 10:16

Код
local tProfiles = {  -- 1 - вход без ограничений
    [0] = 1, -- Мастер
    [1] = 1, -- ОПератор
    [2] = 0, -- VIP
    [3] = 0, -- Зарегистрированный пользователь
    [-1] = 0, -- Незарегистрированный юзер
}

if frmHub then
  function ValidateNickArrival(tUser)
        if tProfiles[tUser.iProfile] ~= 1 then
    for _,v in pairs(frmHub:GetOnlineUsers()) do
      if v.sIP==tUser.sIP then
        tUser:SendData"*** На хабе введено ограничение: один ip - один ник"
        tUser:Disconnect()
              end
      end
    end
  end
  NewUserConnected=ValidateNickArrival
  OpConnected=ValidateNickArrival
else
function ValidateNickArrival(tUser)
       if tProfiles[tUser.iProfile] ~= 1 then
    for _,v in pairs(Core.GetOnlineUsers()) do
      if v.sIP==tUser.sIP then
        Core.SendToUser(tUser,"*** На хабе введено ограничение: один ip - один ник")
        Core.Disconnect(tUser)
                end
      end
    end
  end
  UserConnected=ValidateNickArrival
  RegConnected=ValidateNickArrival
  OpConnected=ValidateNickArrival
end


PS: добавил в частозадаваемые вопросы! http://mydc.ru/index.html?showtopic=1164&view=findpost&p=22528

Автор: Trans 1.11.2009, 10:18

Тут надо в функцию внести проверку профиля и наличие прав на что-то минимальное и обязательное для всех перечисленных профилей, например, на дроп: bDrop (это добавить к проверке наличия в хабе юзера с таким же айпи)
Перед этим, естественно, нужно взять профиль юзера.
Почему я сам просто не исправил скрипт, как ему надо - не хочу лишать человека удовольствия попытаться самому что-то сделать. big_smile.gif

Добавлено через минуту:
Хмм, пока я отправлял сообщение, уже сделали то, чего я боялся big_smile.gif
Только мой способ намного короче - добавляется всего одна строка под названием функции и добавляется в строке проверки еще один элемент.

Автор: AVANGARD 1.11.2009, 14:15

Wariner, спасибо огромное!

Trans, так и ты напиши свойю версию big_smile.gif может она красивее будет

Автор: Trans 1.11.2009, 14:30

Я же объяснил, как можно сделать. А про "почему не написал":

Цитата
Почему я сам просто не исправил скрипт, как ему надо - не хочу лишать человека удовольствия попытаться самому что-то сделать.