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

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

MyDC.ru _ Запросы скриптов для PtokaX _ Дисконектер

Автор: denis 8.5.2010, 7:38

Можно набросать скриптик, типа:

Юзер конект
Видит сообщение (Например:Хаб на реконструкци)
Юзер дисконект

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

Автор: Serx 8.5.2010, 9:02

Код
function ValidateNickArrival(tUser,data)
Core.SendToUser(tUser, "Хаб на реконструкции")
Core.Disconnect(tUser)
end

Автор: DrakonSP 8.5.2010, 10:49

Идея прикольная... А можно будет сделать ещё, что бы скрипт был включен всегда, но при подаче команды (например: +lock) уже не пускал юзеров и всех кто был на хабе рассоединял, и писал - "Хаб на реконструкции". И в обратную сторону +unlock
Так же будет хорошо сделать ники исключения

Автор: Setuper 8.5.2010, 10:53

Функция ValidateNickArrival не всегда может выполняться.
Поэтому такой дисконнект возможно обойти!

Автор: DrakonSP 8.5.2010, 12:12

Эм... а есть другой способ, более функциональный?

Автор: Ksan 8.5.2010, 12:23

Другой способ - только отключить Птоку.
А вот касательно первого способа - другой вариант скрипта пиши сам, можешь на уровне UserConnecned() вместо ValidateNickArrival(), тогда сможешь прилепить любую желаемую функцию.

Автор: denis 8.5.2010, 13:06

впринципе понял ещё один способ сделать такую "фишку".
Поставить ограничение на вход (например 50000000000000 TB) и написать в сообщение "Хаб на реконструкции".Вроде должно работать

Автор: Wariner 8.5.2010, 13:09

А зачем такой бред? ты часто реконструируешь? xDDDD

сделал всё на тестовом хабе отключил основу на пару минут, заменил и всего делов то)))

Автор: Saymon 8.5.2010, 13:09

Цитата
Поставить ограничение на вход (например 50000000000000 TB)


В скрипте? зачем? в птоке же есть максимальная шара.
И причём, врятли у кого будет настолько большая шара big_smile.gif

Автор: Serx 8.5.2010, 13:12

Просто написал то что используется в 1 из скриптов которые стоят у меня.
Если прочитать Последовательность входа на хаб PtokaX вот http://mydc.ru/topic915.html, то видим выделенные красным цветом скриптовые функции, которые можно использовать в этом скрипте.

Автор: Drakula 8.5.2010, 16:36

Цитата(Serx @ 8.5.2010, 9:02) *
Код
function ValidateNickArrival(tUser,data)
Core.SendToUser(tUser, "Хаб на реконструкции")
Core.Disconnect(tUser)
end


Вы случаем не подскажите как сделать ники исключения, которые смогут зайти на хаб, когда он будет на реконструкции???

Автор: Serx 8.5.2010, 19:04

Код
function ValidateNickArrival(tUser,data)
  for i = 1, #ExNicks do
    if not tUser.sNick == ExNicks[i] then
      Core.SendToUser(tUser, "Хаб на реконструкции")
      Core.Disconnect(tUser)
    end
  end
end

ExNicks = {"ник1","ник2",}

вот как-то так

Автор: Drakula 8.5.2010, 19:17

Пускает всех..=(

Автор: Ksan 8.5.2010, 20:58

Вот это:

Код
tUser.sNick == ExNicks[i]
заключи в скобки:
Код
(tUser.sNick == ExNicks[i])

Автор: Setuper 8.5.2010, 21:13

Правильнее написать так:

Код
function ValidateNickArrival(tUser,data)
  Core.SendToUser(tUser, "Хаб на реконструкции")
  Core.Disconnect(tUser)
end
UserConnected, RegConnected = ValidateNickArrival, ValidateNickArrival


Последовательности входов могут быть разными.
См. Вход на хаб при поддержке характеристики QuickList. Птоха поддерживает эту характеристику. И при такой последовательности валидация ника отсутствует!

Автор: Serx 9.5.2010, 8:21

значит в конечном итоге так:

Код
ExNicks = {"ник1","ник2",}

function ValidateNickArrival(tUser,data)
  for i = 1, #ExNicks do
    if not (tUser.sNick == ExNicks[i]) then
      Core.SendToUser(tUser, "Хаб на реконструкции")
      Core.Disconnect(tUser)
    end
  end
end

UserConnected, RegConnected = ValidateNickArrival, ValidateNickArrival


исправлено.

спасибо Setuper и Ksan

Автор: Drakula 9.5.2010, 10:10

Как не странно этот код работает:

Код
function ValidateNickArrival(tUser,data)
Core.SendToUser(tUser, "Хаб на реконструкции")
Core.Disconnect(tUser)
end


А при добавление ника оно всех пускает, записан ник или нет.

Код
ExNicks = {"ник1","ник2",}
  
   function ValidateNickArrival(tUser,data)
     for i = 1, #ExNicks do
       if (not tUser.sNick == ExNicks[i]) then
         Core.SendToUser(tUser, "Хаб на реконструкции")
         Core.Disconnect(tUser)
       end
     end
   end
  
   UserConnected, RegConnected = ValidateNickArrival, ValidateNickArrival


И остальные выше показанные коды с добавлением ника также пускают юзеров..

Автор: Wariner 9.5.2010, 10:17

Код
local tExNicks = {
     ["ник1"] = true,
     ["ник2"] = true,
}
  
   function ValidateNickArrival(tUser,data)
       if not tExNicks[tUser.sNick] then
         Core.SendToUser(tUser, "Хаб на реконструкции")
         Core.Disconnect(tUser)
     end
   end
  
   UserConnected, RegConnected = ValidateNickArrival, ValidateNickArrival

как то так)))

Автор: Ksan 9.5.2010, 11:24

Цитата(Serx @ 9.5.2010, 11:21) *
значит в конечном итоге так:
Код
ExNicks = {"ник1","ник2",}

function ValidateNickArrival(tUser,data)
  for i = 1, #ExNicks do
    if (not tUser.sNick == ExNicks[i]) then
      Core.SendToUser(tUser, "Хаб на реконструкции")
      Core.Disconnect(tUser)
    end
  end
end

UserConnected, RegConnected = ValidateNickArrival, ValidateNickArrival


спасибо Setuper и Ksan

Ты опять путаешь людей.. :(
Надо вот так:
Код
if not (tUser.sNick == ExNicks[i]) then

Будь внимательнее, плиз! NOT вне скобок!

Автор: Drakula 9.5.2010, 11:32

Ура заработало!!!!!!
Огромное спасибо: Wariner, Setuper, Ksan!!!! За помощь.
А так же и Serx!

Автор: Setuper 9.5.2010, 12:45

Кстати, лучше писать так как написал Wariner. Когда можно обойтись без циклов, лучше обходится без них big_smile.gif

Автор: Drakula 9.5.2010, 12:53

Ой и тебе спасибо.... я вас с Wariner-ром путаю. вот поэтому и пропустил=)