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

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

MyDC.ru _ Помощь по скриптам для PtokaX _ Uplimit

Автор: King 19.3.2009, 20:52

Нашел на board.ptokax.ch скрипт ограничения минимальной скорости отдачи. Но почему не работает понять не могу. Как только не крутил, тестировал разными клиентами, результат один и тот же.

Цитата
[13:59:47] <PtokaX> Sorry Admin, this hub requires a minimum upload limit of 1024.00 kbps. or higher. Your limit of 0.00 bps. is 1024.00 kbps. short of the minimum You will now be disconnected.


Помогите скриптеры =)



Мда, портал DC++....

 UpLimit.lua ( 8.46 килобайт ) : 19
 

Автор: ustas 20.3.2009, 0:22

84 строка

Код
if val < tab[1] and val~=0 then

Автор: King 20.3.2009, 6:09

так он вообще ни на что не реагирует. Хоть ставь ограничение, хоть нет.

Автор: Setuper 20.3.2009, 12:12

Код
heckLimit = function(user)
  if StartOn then
    user = GetNormalValue(user)
    local val = user.iLlimit
    val = val and tonumber(val)*1000 or 0
    local tab = Profiles[user.iProfile]
    if tab and tab[1] > 0 then
      if val < tab[1] and val>0 then
...
...


Реализацию функции GetNormalValue берём тут: http://mydc.ru/ipb.html?s=&showtopic=334&view=findpost&p=9085

Автор: King 20.3.2009, 13:33

То есть до этого кода:

Код
CheckLimit = function(user)
  if StartOn then
    user = GetNormalValue(user)
    local val = user.iLlimit
    val = val and tonumber(val)*1000 or 0
    local tab = Profiles[user.iProfile]
    if tab and tab[1] > 0 then
      if val < tab[1] and val>0 then


нужно включить функцию:

CODE
function GetNormalValue(tUser)
if not tUser.sTag then
local sDescription,sTag,sClient,sClientVersion,sMode,iNormalHubs,iRegHubs,iOpHubs,iSlots,iLlimit = tUser.sDescription:match"(.*)(<(.+)%sV?:?(.-),M:(.-),H:(%d+)/(%d+)/(%d+),S:(%d+)>)$"
if not sDescription then
sDescription,sTag,sClient,sClientVersion,sMode,iNormalHubs,iRegHubs,iOpHubs,iSlots,iLlimit = tUser.sDescription:match"(.*)(<(.+)%sV?:?(.-),M:(.-),H:(%d+)/(%d+)/(%d+),S:(%d+),L:(%d+)>)$"
end
if not sDescription then
sDescription,sTag,sClient,sClientVersion,sMode,iNormalHubs,iRegHubs,iOpHubs,iSlots,iLlimit = tUser.sDescription:match"(.*)(<(.+)%sV?:?(.-),M:(.-),H:(%d+)/(%d+)/(%d+),S:(%d+),B:(%d+)>)$"
end
tUser.sDescription=sDescription
tUser.sTag=sTag
tUser.sClient=sClient
tUser.sClientVersion=sClientVersion
tUser.sMode=sMode
tUser.iNormalHubs=iNormalHubs
tUser.iRegHubs=iRegHubs
tUser.iOpHubs=iOpHubs
tUser.iHubs=iNormalHubs and iRegHubs and iOpHubs and (iNormalHubs + iRegHubs + iOpHubs)
tUser.iSlots=iSlots
tUser.iLlimit=iLlimit
end
return tUser
end


так?

Автор: Setuper 20.3.2009, 13:51

Пробуй. Зачем задавать вопрос, когда можно попробовать.

Автор: King 20.3.2009, 14:30

Потому что попробовал и не помогло =)

Автор: Setuper 20.3.2009, 14:33

Ошибки есть?

Автор: King 20.3.2009, 18:31

Нет, никаких ошибок не выдает. На ограничение не реагирует.

Автор: Setuper 20.3.2009, 19:10

Код
CheckLimit = function(user)
  if StartOn then
    Core.GetUserAllData(user)
    user = GetNormalValue(user)
    local val = user.iLlimit
    val = val and tonumber(val)*1000 or 0
    local tab = Profiles[user.iProfile]
    if tab and tab[1] > 0 then
      if val < tab[1] and val>0 then
....

Автор: King 20.3.2009, 20:03

Нет, не работает. Вот, что я зменил в коде:

CODE
function GetNormalValue(user)
if not user.sTag then
local sDescription,sTag,sClient,sClientVersion,sMode,iNormalHubs,iRegHubs,iOpHubs,iSlots,iLlimit = tUser.sDescription:match"(.*)(<(.+)%sV?:?(.-),M:(.-),H:(%d+)/(%d+)/(%d+),S:(%d+)>)$"
if not sDescription then
sDescription,sTag,sClient,sClientVersion,sMode,iNormalHubs,iRegHubs,iOpHubs,iSlots,iLlimit = tUser.sDescription:match"(.*)(<(.+)%sV?:?(.-),M:(.-),H:(%d+)/(%d+)/(%d+),S:(%d+),L:(%d+)>)$"
end
if not sDescription then
sDescription,sTag,sClient,sClientVersion,sMode,iNormalHubs,iRegHubs,iOpHubs,iSlots,iLlimit = tUser.sDescription:match"(.*)(<(.+)%sV?:?(.-),M:(.-),H:(%d+)/(%d+)/(%d+),S:(%d+),B:(%d+)>)$"
end
tUser.sDescription=sDescription
tUser.sTag=sTag
tUser.sClient=sClient
tUser.sClientVersion=sClientVersion
tUser.sMode=sMode
tUser.iNormalHubs=iNormalHubs
tUser.iRegHubs=iRegHubs
tUser.iOpHubs=iOpHubs
tUser.iHubs=iNormalHubs and iRegHubs and iOpHubs and (iNormalHubs + iRegHubs + iOpHubs)
tUser.iSlots=iSlots
tUser.iLlimit=iLlimit
end
return user
end

CheckLimit = function(user)
if StartOn then
Core.GetUserAllData(user)
user = GetNormalValue(user)
local val = user.iLlimit
val = val and tonumber(val)*1000 or 0
local tab = Profiles[user.iProfile]
if tab and tab[1] > 0 then
if val < tab[1] and val>0 then

Автор: Setuper 20.3.2009, 20:14

У меня всё работает. Ищи ошибку у себя.
 UpLimit.lua ( 9.64 килобайт ) : 37

Автор: King 20.3.2009, 20:42

Больше никто не тестировал? что-то тут не так...

Автор: Master-Grow 30.7.2009, 17:34

тестировали как же
вот твой скрип
[18:32:22] <BOND> Вы были временно забанены на этом хабе! Вам осталось ждать: 19 мин 15 сек
IP: 192.168.1.2
Ник: Master
Причина: Upload limit set to 0.00 bps.
Кем забанен: [Bot]PtokaX
в личку пишет
[18:36:52] <[Bot]PtokaX> Sorry Master, this hub requires a minimum upload limit of 1024.00 kbps. or higher. Your limit of 0.00 bps. is 1024.00 kbps. short of the minimum You will now be disconnected.