Нерабочий скрипт ВИПа по шаре |
Здравствуйте, гость ( Вход | Регистрация )
Нерабочий скрипт ВИПа по шаре |
25.8.2010, 9:19
Сообщение
#1
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
Пробовал не так давно скрипт BestShareKey. Из подобных выбрал именно его, т.к. другие устраивали ещё меньше. Критерии были такие: випа должны получать и реги, и анреги. Статус не прописывается в настройках птохи, он должен сохраняться лишь либо во время работы скрипта, либо в время нахождения юзера на хабе. Это как раз должно дать возможность создавать временного випа из незарегистрированного юзера. Иначе придётся либо вписывать ему пароль, что не так удобно, либо под его ником сможет зайти каждый, и при любой шаре будет випом.
Вышеприведённый скрипт имеет один минус, ликвидировать который я не смог. Возможно, автор поможет. Проблему описывал там, просто скопирую: Цитата К хабу подключается юзер с шарой выше указанной и становится ВИПом. Всё отлично. Далее, если заходит другой юзер с шарой больше положенной, то тут уже два варианта. Первый: если у него шара больше или равна шаре первого, то он тоже становится ВИПом, теперь на хабе два ВИПа. Второй: если у него шара меньше шары первого, то ВИПом он не становится. Следовательно, при работе в результате подключений, отключений и реконнектов на хабе бедт всего один ВИП с самой большой шарой. Остальные с шарой выше прописанной всё равно не будут ВИПами. Если есть другой аналогичный скрипт, буду рад. Но на этом форуме я такого не нашёл, чтобы удовлетворял описанным условиям. А скрипты повышения профиля на 1 не подходят по причине слегка запутанной таблицы профилей, хаб не на моём компьютере. Если кто сможет исправить этот скрипт, буду благодарен. P.S. Не надо спрашивать "а зачем тебе енто надо?" Такие вопросы есть уже в других темах. |
|
|
25.8.2010, 21:26
Сообщение
#2
|
|
Освоившийся участник Группа: Пользователи Сообщений: 226 Регистрация: 24.6.2008 Пользователь №: 77 Спасибо сказали: 34 раза |
Попробуй этот повышает профель на 1 или уменьшает работает как часы без проблем выставлен порог 1000Gb работает только для зарегеных, для обычных невижу смысла делать випом
Прикрепленные файлы
|
|
|
26.8.2010, 8:04
Сообщение
#3
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
В том-то и дело, что этот скрипт повышает профиль на постоянной основе, к тому же только для зарегенных. На хабе не так много юзеров с шарой более 3 ТБ, преференции не напрягают.
|
|
|
26.8.2010, 14:02
Сообщение
#4
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
|
|
|
26.8.2010, 14:22
Сообщение
#5
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
|
|
|
26.8.2010, 14:26
Сообщение
#6
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
да ну... такого быть не может...
Код RegMan.ChangeReg(tUser.sNick, tUserProf.sPassword, iVipProfile)
|
|
|
26.8.2010, 18:21
Сообщение
#7
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
Артём,
Пользователь является випом лишь при нахождении на хабе и работе скрипта, нигде не прописываясь. Заходя на хаб, он проверяется и делается випом (если удовлетворяет условиям). При выключении скрипта он становится тем, кем был до этого (рег/анрег). При перезапуске он опять проверяется. В этом суть дела. Во время работы скрипта и нахождения в випах даже незарегенный в юзерах не прописыватся никаким способом, его там вообще нет. Но становится випом лишь юзер с самой большой шарой, а не все выше определённой. Тут вся загвоздка. |
|
|
26.8.2010, 18:22
Сообщение
#8
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
1. Судя по скрипту, он даёт випа только регенным. Прочитай его внимательнее.
Код local tUserProf = RegMan.GetReg(tUser.sNick) и if tUserProf then RegMan.ChangeReg(tUser.sNick, tUserProf.sPassword, tMadeVIPs[tUser.sNick]) end Код local tUserProf = RegMan.GetReg(tUser.sNick) Тут в обоих участках проверка на принадлежность к зарегенным и далее при положительном результате дается ему вип с использованием его пароля из таблицы зарегенных.if tUserProf and tMakableProfiles[tUserProf.iProfile] then tMadeVIPs[tUser.sNick] = tUserProf.iProfile RegMan.ChangeReg(tUser.sNick, tUserProf.sPassword, iVipProfile) end 2. Что до изначальной твоей проблемы, она должна решаться манипулированием результатов сравнений больше, больше или равно, меньше, меньше или равно...Думаю, тебе это по силам, насколько я знаю |
|
|
26.8.2010, 18:39
Сообщение
#9
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
1. Судя по скрипту, он даёт випа только регенным. Прочитай его внимательнее. Сделал скрин списка юзеров и окна зарегистрированных юзеров. ВИП-шара задана на 10 ГБ. Test-nik незарегистрирован. это не мешает ему быть в випах. 2010_08_26_193521.png ( 9.44 килобайт ) Кол-во скачиваний: 115 |
|
|
26.8.2010, 18:50
Сообщение
#10
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Так, вопрос - а как ты узнаешь, что он в випах?
|
|
|
26.8.2010, 19:11
Сообщение
#11
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
Хороший вопрос. Проверил профиль через скрипт - не зарегистрирован. Проверил скриптом, получает ли возможности профиля ВИП - нет. Однако находится наверху. В чём же дело тогда.
А вот зарегенные становятся випами, профиль в птохе изменяется, не углядел. Но в этом случае всё равно действует закон большей шары. |
|
|
26.8.2010, 19:48
Сообщение
#12
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Любой ник можно сделать красным (ОПом) отправив $OpList с его ником клиенту, что и делает скрипт
Логика выбора юзеров находится здесь: Код iShare = tOnlineNonOps[1].iShareSize for i = 1, #tOnlineNonOps do if tOnlineNonOps[i].iShareSize == iShare then tUsers[tOnlineNonOps[i].sNick] = true else break end end Берется самая большая шара и еще смотрится есть ли юзеры с такой же шарой (вдруг таких два или больше) и они заносятся в таблицу. Плюс по всему скрипту идут проверки на то что превышена лучшая шара. Для занесения всех юзеров с шарой для випов надо изменить условие Код if tOnlineNonOps[i].iShareSize == iShare then на Код if tOnlineNonOps[i].iShareSize >= iVipShare then И дальше по всему коду еще пройтись и посмотреть на проверки, поправить их там, пробуйте...
|
|
|
26.8.2010, 19:59
Сообщение
#13
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
Nickolya,
Спасибо за разъяснения. На днях буду кромсать. |
|
|
29.8.2010, 18:17
Сообщение
#14
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
Справился. Работает правильно, за исключением одной мелочи: когда юзеру меняется профиль (или просто перемещается вверх), то все випы и уже помеченные пользователи становятся на какое-то время обычными, затем обратно согласно статусу и шаре. Мигает список. Как с этим можно справиться?
После редактирования скрипт получился такой: best_share_to_vip_api2.lua ( 4.81 килобайт ) Кол-во скачиваний: 14 |
|
|
29.8.2010, 18:52
Сообщение
#15
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Во всем виновата эта строчка, попробуй ее убрать:
Код iRemoveTimer = TmrMan.AddTimer(2000, "RemoveMadeOps") or iRemoveTimer
|
|
|
30.8.2010, 13:43
Сообщение
#16
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
Если убрать эту строчку, то из випов обратно в реги при уменьшении шары не переносит.
Нужно было всего лишь слегка изменить местами строчки. Делал так до вопроса, но тогда ничего не получилось, возможно невнимательность. Заменил это: Код if iShare >= iVipShare then iSendTimer2 = TmrMan.AddTimer(3000, "SendNewMadeOpList") or iSendTimer2 iRemoveTimer = TmrMan.AddTimer(2000, "RemoveMadeOps") or iRemoveTimer elseif iShare >= iVipShare then if not tBest[tUser.sNick] then tBest[tUser.sNick] = true iSendTimer = TmrMan.AddTimer(2000, "SendMadeOpList") or iSendTimer end end на это: Код if iShare >= iVipShare then if not tBest[tUser.sNick] then tBest[tUser.sNick] = true iSendTimer = TmrMan.AddTimer(2000, "SendMadeOpList") or iSendTimer else iSendTimer2 = TmrMan.AddTimer(3000, "SendNewMadeOpList") or iSendTimer2 end elseif iShare < iVipShare then iRemoveTimer = TmrMan.AddTimer(2000, "RemoveMadeOps") or iRemoveTimer end На тестах работает. В ближайшие дни опробирую на практике. |
|
|
23.2.2023, 7:16
Сообщение
#17
|
|
Активный участник Группа: Пользователи Сообщений: 65 Регистрация: 16.7.2010 Пользователь №: 7 288 Спасибо сказали: 0 раз |
Не работает 0.5.3.0 \ 5.1.5
Ошибки текст [11:07:18] Нет синтаксических ошибок в скрипте share_vip_api2.lua [11:07:18] Синтаксис C:\PtokaX\scripts\share_vip_api2.lua:79: bad argument #1 to 'RemoveTimer' (userdata expected, got number) stack traceback: [C]: in function 'RemoveTimer' C:\PtokaX\scripts\share_vip_api2.lua:79: in function 'SendMadeOpList' C:\PtokaX\scripts\share_vip_api2.lua:35: in function <C:\PtokaX\scripts\share_vip_api2.lua:27> [11:07:18] Синтаксис C:\PtokaX\scripts\share_vip_api2.lua:105: bad argument #1 to 'RemoveTimer' (userdata expected, got number) stack traceback: [C]: in function 'RemoveTimer' C:\PtokaX\scripts\share_vip_api2.lua:105: in function 'RemoveMadeOps' C:\PtokaX\scripts\share_vip_api2.lua:52: in function <C:\PtokaX\scripts\share_vip_api2.lua:51> [11:07:18] Критическая ошибка в скрипте share_vip_api2.lua ! Скрипт остановлен! [11:07:18] Скрипт запущен. [11:07:18] Синтаксис C:\PtokaX\scripts\share_vip_api2.lua:105: bad argument #1 to 'RemoveTimer' (userdata expected, got number) stack traceback: [C]: in function 'RemoveTimer' C:\PtokaX\scripts\share_vip_api2.lua:105: in function 'RemoveMadeOps' C:\PtokaX\scripts\share_vip_api2.lua:52: in function <C:\PtokaX\scripts\share_vip_api2.lua:51> [11:07:18] Синтаксис C:\PtokaX\scripts\share_vip_api2.lua:105: bad argument #1 to 'RemoveTimer' (userdata expected, got number) stack traceback: [C]: in function 'RemoveTimer' C:\PtokaX\scripts\share_vip_api2.lua:105: in function 'RemoveMadeOps' C:\PtokaX\scripts\share_vip_api2.lua:52: in function <C:\PtokaX\scripts\share_vip_api2.lua:51> [11:07:18] Критическая ошибка в скрипте share_vip_api2.lua ! Скрипт остановлен! Может кто-нибудь подправит
Прикрепленные файлы
|
|
|
Похожие темы
|
Сейчас: 22.11.2024, 23:24 |