Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
5.1.2010, 19:39 |
нужен скрипт для запрета входа с ограничением скорости аналог RusBot на YnHub |
НеуНейм, мамин_парень | |||
4.1.2010, 23:46 |
Репорты об ошибках старых версий архив темы ошибок текущей версии хаба |
Попробовал почистить основную тему, все ошибки старых версий сложил сюда, если что не так - выслушаю ваши правки. |
Wariner | ||
4.1.2010, 15:02 |
HideMe 1.0b API2 |
Вот, переделал Жень, пробуйте. |
Invisible, Saymon21, X-Sky, мамин_парень | ||
2.1.2010, 4:39 |
Репорты об ошибках старых версий архив темы ошибок текущей версии хаба |
Отловленные баги при работе с луа: - функция Core.SendToUID при том что она получает 3 аргумента, отправляет сообщение в чат без ника - такое чувство что что-то отваливается когда происходит ошибка при загрузке скрипта, при этом функция перезагрузки скриптов не возвращает ошибку, приходится перезапускать хаб чтобы он перезапустил скрипты. - креш при вызове Core.GetScript с параметром выключенного скрипта, из-за этого невозможно запустить выключенный скрипт (в смысле сделать проверку на включенность скрипта), лог в файле system1.log: Раскрывающийся текст Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: rushub.exe Версия приложения: 0.0.0.0 Отметка времени приложения: 4b3aabde Имя модуля с ошибкой: lua51.dll Версия модуля с ошибкой: 0.0.0.0 Отметка времени модуля с ошибкой: 4b3aabf6 Код исключения: c0000005 Смещение исключения: 000056f8 Версия ОС: 6.1.7600.2.0.0.256.1 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789 Что хочется видеть в апи: - совсем не ясный параметр iByte в функции Core.GetUser(UID/sNick, iByte), либо объяснений по этому параметру, либо нормальной функции - изменение настроек хаба через луа, хотя бы имени хаба и топика - совместить функции Core.SendToNick(sTo, sData, sNick, sFrom) и Core.SendToUID(UID, sData, sNick, sFrom) - может будет удобней если будет парситься майинфо юзеров - и конечно же расширения апи Хабыч, тут нет профилей, они реализуются скриптами, я написал пробную версию подобного скрипта с минимумом функций, лежит оно здесь: FirstRusHubBot |
Setuper | ||
2.1.2010, 4:33 |
FirstRusHubBot приводим RusHub к рабочему виду функционалом скриптов |
Итак, выкладываю скрипт дающий пока небольшой функционал для управления новоиспеченным RusHub'ом. Что сделано:
Получилась гибкая легко изменяемая система, команды лежат в файле cmds.lua, по шаблону легко добавляется что угодно. Так же возможные настройки: имя бота и хабтопик, можно задать какие профили будут иметь ключик, за это отвечает параметр bHaveKey таблицы tProfiles что находится в самом начале файла FirstRusHubBot.lua. Пока все, позже будет больше, тестируйте. Для того чтобы стать админом необходимо зарегистрироваться, залезть в файл RegUsers.dat, поменять там параметр ["iProfile"] на 0 рядом с нужным ником, затем перезагрузить скрипты. Изменения в версии 0.2 по сравнению с предыдущей:
Вот возможности профилей по умолчанию в скрипте на текущую версию: Администратор <RusHubBot> *** Доступные вам команды: *** Команды вашего профиля "администратор": !mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль !changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль !seepass <ник> - позволяет посмотреть пароль пользователя. Альтернативы: !смотретьпароль !addreguser <ник> <пароль> <профиль> - добавляет регистрацию ника с заданым паролем и профилем. Альтернативы: !добавитьюзера !changereguser <ник> <профиль> - меняет профиль у указанного ника. Альтернативы: !поменятьюзера !delreguser <ник> - удаляет регистрацию пользователя. Альтернативы: !удалитьюзера !getscripts - показывает список всех скриптов. Альтернативы: !скрипты, !получитьскрипты !restartscripts - перезапускает все скрипты. Альтернативы: !перезапускскриптов !startscript <имя скрипта> - запускает указанный скрипт. Альтернативы: !запуститьскрипт !restartscript <имя скрипта> - перезапускает указанный скрипт. Альтернативы: !перезапуститьскрипт !stopscript <имя скрипта> - останавливает указанный скрипт. Альтернативы: !остановитьскрипт !drop <ник> - отключает от хаба выбранного пользователя. Альтернативы: !отключить *** Глобальные команды: !help - вот эта справка по командам. Альтернативы: !помощь !myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип !me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я Оператор <RusHubBot> *** Доступные вам команды: *** Команды вашего профиля "оператор": !mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль !changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль !seepass <ник> - позволяет посмотреть пароль пользователя. Альтернативы: !смотретьпароль !addreguser <ник> <пароль> <профиль> - добавляет регистрацию ника с заданым паролем и профилем. Альтернативы: !добавитьюзера !changereguser <ник> <профиль> - меняет профиль у указанного ника. Альтернативы: !поменятьюзера !delreguser <ник> - удаляет регистрацию пользователя. Альтернативы: !удалитьюзера !getscripts - показывает список всех скриптов. Альтернативы: !скрипты, !получитьскрипты !restartscript <имя скрипта> - перезапускает указанный скрипт. !stopscript <имя скрипта> - останавливает указанный скрипт. !drop <ник> - отключает от хаба выбранного пользователя. Альтернативы: !отключить *** Глобальные команды: !help - вот эта справка по командам. Альтернативы: !помощь !myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип !me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я vip <RusHubBot> *** Доступные вам команды: *** Команды вашего профиля "VIP": !mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль !changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль !drop <ник> - отключает от хаба выбранного пользователя. Альтернативы: !отключить *** Глобальные команды: !help - вот эта справка по командам. Альтернативы: !помощь !myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип !me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я Пользователь <RusHubBot> *** Доступные вам команды: *** Команды вашего профиля "пользователь": !unreg - удалить свою регистрацию на хабе. Альтернативы: !удалитьрегистрацию !mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль !changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль *** Глобальные команды: !help - вот эта справка по командам. Альтернативы: !помощь !myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип !me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я Гость <RusHubBot> *** Доступные вам команды: *** Команды вашего профиля "гость": !regme <пароль> - зарегистрироваться на хабе. Альтернативы: !регми, !зарегистрироваться *** Глобальные команды: !help - вот эта справка по командам. Альтернативы: !помощь !myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип !me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я |
Setuper, FallenAngel, Invisible, MEXAHuK, ShadoWx, Maximum, Otshelnik-Fm, Accelerator, KT315, Drakula, Kingston, Sekretchik, CrazyKiller, Saymon21, Dimon21, Sorrow, mod, Darksome, Hellsing, AltSide, Panasonic, AfLc, kma21, КрутойПерец, werwolf.zw | ||
1.1.2010, 14:33 |
Подарки от дед мороза API2 |
Если это стока Код sSentence = "*** Дарит "..user.sNick.." "..sSentence.." ***" то по логике вещей надо заменить вот на этоКод sSentence = "*** Дарит "..sUserName1.." "..sSentence.." ***" |
TiGRpp, Плюшевая_мишка | ||
31.12.2009, 18:48 |
С Новым Годом! см название темы |
Хочу от лица начальства вас поздравить с наступающим НОВЫМ ГОДОМ, чтобы были настроения и сбывались мечты, всем много времени и терпения! Спасибо вам что вы есть, надеюсь этот форум стал чем-то больше чем просто каким-то сайтом в интернете для многих тут, и не зря это все делается, очень вам всем признателен, надеюсь в новом году мы будем немного добрее, много умнее и очень усердны, лень уйдет и будут делаться дела, так как хочется именно нам! С уважением, ваш N. |
FallenAngel, Alexey | ||
31.12.2009, 1:33 |
Скрипт онлайн-погоды скрипт погоды сейчас |
Это переделка моего скрипта, написал как сделать тут |
Saymon21 | ||
31.12.2009, 1:32 |
Weather [ Api 1&2 ] [ By Nickolya ] API2 | Расширенная погода с rp5.ru |
Для вывода в чат по таймеру инфы типа Цитата <PtokaX> Расписание Погоды в Туле, Тульская область: В 00:00 было -6.5°C, облачность 10 баллов (без просв.), 729.6 мм рт ст, влажность 91%, ветер ЮЮЗ, 1 м/с, ливневой снег слабый делаем следующее в файле Core.lua, находим: Код local tData2 = {} -- таблица с данными пустая и заменяем это все дело на for i = 1, table.maxn(S.tMadeData) do -- проходим таблицу с готовыми данными if i <= iDaysToChat then -- если нужный нам день, то добавляем в пустую таблицу с данными (кол-во дней - в конфиге) table.insert(tData2, S.tMadeData[i]) -- добавление end end local sTitle2 = S.sMainTitle.." (на "..iDaysToChat.." дня)" -- заголовок с указанием кол-ва дней для ясности local sMsg2 = CreateMsg(tData2, sTitle2, S.sArchiveData, 1) -- функция создания сообщения из таблицы с данными, заголовка и архивных данных Core.SendToAll("<"..sBot.."> "..sMsg2) -- высылаем в чат Код Core.SendToAll("<"..sBot.."> "..S.sMainTitle..": "..S.sArchiveData) |
Saymon21 | ||
31.12.2009, 1:00 |
Скрипт онлайн-погоды скрипт погоды сейчас |
Вот скрипт что получился для Евгения, если хотите - переделывайте, если не можете - кидайте ссылку на страницу где находятся данные, если страница локальная - можно код этой страницы. Скрипт скачивает страницу и находит на ней температуру, по команде выводит в чат и может выдавать в чат через определенный интервал времени погоду. |
X-Sky, CrackWG | ||
29.12.2009, 23:01 |
Репорты об ошибках старых версий архив темы ошибок текущей версии хаба |
СУПЕР! Итак, начнем тестирование... Запуск без луа прошел успешно, закинув библиотеку в папку получил вот такое после запуска: Цитата Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: rushub.exe Версия приложения: 0.0.0.0 Отметка времени приложения: 4b390a23 Имя модуля с ошибкой: ntdll.dll Версия модуля с ошибкой: 6.1.7600.16385 Отметка времени модуля с ошибкой: 4a5bdadb Код исключения: c0000005 Смещение исключения: 00052b79 Версия ОС: 6.1.7600.2.0.0.256.1 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789 Запуск от имени администратора и попытка выставить совместимость с ХРюшей тоже не помогла, ошибка та же, в чем косяк? Винда седьмая... Попробовал посмотреть системный лог хаба, он окзался пустым, полез в настройки, нашел некоторые что не описаны в первом посту Цитата <Item Name="iMaxErrLevel">2</Item> <Item Name="iMaxLevel">0</Item> для любопытства выставил эти настройки в 10000, в лог написалось немного, вот содержимое: Цитата [Tue Dec 29 22:58:34 2009] (3) cPluginList: Open plugin dir: C:/RusHub/plugins/ Это сильно плохо? И работает ли все у вас?[Tue Dec 29 22:58:34 2009] (3) cPluginList: Plugin file name: . [Tue Dec 29 22:58:34 2009] (3) cPluginList: Plugin file name: .. [Tue Dec 29 22:58:34 2009] (3) cPluginList: Plugin file name: lua51.dll [Tue Dec 29 22:58:34 2009] (3) cPluginList: Attempt loading plugin: C:/RusHub/plugins/lua51.dll [Tue Dec 29 22:58:34 2009] (4) tcHashMap: Added: 3645847146 Спасибо за проделанную работу, Илюх, думаю мир дц будет обожать тебя за твое творение!!! |
Setuper | ||
26.12.2009, 13:27 |
Freshstuff3 5.0.1 API2 | Русская версия | Скрипт релизов и заказов |
Папка config, файл main.lua, все просто, ставим тут ноль: Цитата -- Показывать последние Релизы при подключении? 1=PM, 2=mainchat, 0=no ShowOnEntry = 1 |
denis | ||
26.12.2009, 13:22 |
Guess Country ; Страны API2 |
76 строка Код local Path,Os,Gcf = Core.GetPtokaXPath().."scripts/",os.getenv("OS"):lower(),Gc.File косяк скорее всего в моментеКод os.getenv("OS"):lower() т.к. нет проверки на возвращаемое значение ОС, попробуй вот так сделать:Код local Path,Os,Gcf = Core.GetPtokaXPath().."scripts/",(os.getenv("OS") or ""):lower(),Gc.File |
TiGRpp | ||
20.12.2009, 16:06 |
TimeToNewYear API2 | Время до нового года |
Исправления есть, просто скрипт перезаливался в один пост, вот ссылка: TimeToNewYear_littleFix.lua Качаем его и тестируем на здоровье, править там ничего не надо. |
FallenAngel | ||
20.12.2009, 15:33 |
Guess Country ; Страны API2 |
Чтобы полностью избавиться от бота удали эту строчку, в которой менял значение. Смена true на false отнимает только ключ у бота. |
SAG | ||
19.12.2009, 17:46 |
Новогодняя шапка форума как вам? |
Еще немного пофлудим... Недавно сделали новогоднюю шапку для форума, а точнее немного поизголялись над логотипом, хочется ваших мнений и одобрения + новогоднего настроения P.S.: Дед Мороз в трубе посередине и правда прячется, да, так задумано)) P.P.S.: пингвин - отдельный привет для линуксоидов... |
Wariner, Invisible, X-Sky | ||
19.12.2009, 17:39 |
Guess Country Help |
Первая строка выглядит так, разница конечно между s и S, но это значительно: Код local _,_,pfx,cmd = data:lower():find("%b<> (["..Gc.Prefixes.."])(%S+)") хотя именно в этой строке, если не менять команды скрипта, можно оставить и %a+ |
Артём | ||
19.12.2009, 17:36 |
TimeToNewYear API2 | Время до нового года |
Узнаем, сделал пару фиксов, из них: меню теперь собирается при запуске 1 раз а не при каждом заходе, замена функций регистрации бота на отсылку протокольных команд, проверка таймера теперь ведется каждые 200 милисекунд, думаю это исправит все косяки с дубляжом, пробуйте! |
FallenAngel, Serx | ||
18.12.2009, 13:05 |
Подскажите как исправить косяк... |
Все никак не доберусь удалить вообще эти режимы... Инструкция на картинке |
Артём | ||
15.12.2009, 13:07 |
Say_script 1.03 - 1.031 API1 | Скрипт, позволяющий писать от любого имени |
Только цвет фразы-ботовидного увета. ну это уже, как я понимаю,завсит от клиента. Попробуйте дополнить скрипт отправкой еще и майинфо, перед Код Core.SendToAll("$OpList "..sWho) припишитеКод Core.SendToAll("$MyINFO $ALL "..sWho.." no<SomeDC++ V:(r21),M:A,H:1/0/1,S:10>$ $ $no@mail$255008881124$") тут я не стал вписывать соединение юзера, там идет магический байт, который тут вряд ли отобразиться, если хотите - допишите сами, можно выдрать его из CMD-отладчика в дц, по аналогии с отправляемыми MyINFO. |
FallenAngel | ||
10.12.2009, 0:33 |
С Днюхой Тебя! поздравления |
Да, Сев, с Днем Варенья тебя, начинающий скриптодел, успехов и много удачи! |
Invisible | ||
9.12.2009, 19:41 |
от:Как по команде сделать показ сообщения консультация |
Давай по-порядку: 1. Создаем файл hubs.txt с нужным нам содержимым в папке texts, которая лежит в той же папке что и exe'шник самого хаба. 2. В настройках хаба ты включаешь текстовые файлы. Скрипт тебе никакой не нужен чтобы выводить этот файлик! 3. Для надежности перегружаем текстовые файлы. 4. Пробуем команду !hubs на хабе, если она проскакивает в чат идем дальше. 5. Отключаем все скрипты и снова пробуем команду, если все хорошо - включаем по-одному скрипты и смотрим какой нам мешает, пишем об этом сюда. Скорее всего это скрипт лонли или какая-нибудь другая заглушка, либо мультибот. Цитата а мини-меню в самом верху, над всеми скриптами.. вот это совсем не понял, давай без сленга и профессиональных словечек не из сферы дц, пробуем писать на литературном языке годов эдак 90х, тогда будет проще, заранее спасибо |
Uncle_Dif | ||
9.12.2009, 11:04 |
TriviaMods - мод скрипта для командной игры API2 |
Подправил, так пойдет? |
demondroid | ||
5.12.2009, 21:35 |
Weather [ Api 1&2 ] [ By Nickolya ] API2 | Расширенная погода с rp5.ru |
По-идее если сделать Код tTimesToSendToChat = {} тогда инфа перестанет выводиться в чат, проверь еще раз что ты сохранил файл и все сделал именно так, еще можно для надежности удалить все временные файлы из папки скрипта, кроме Core, конечно.tShowAtCurTime = {} |
Come_clarity | ||
4.12.2009, 1:13 |
Freshstuff3 5.0.1 API2 | Русская версия | Скрипт релизов и заказов |
первая строка лежит в самом конце файла ptokaxnew.lua, вторая - 340 строка в файле kernel.lua, третья - последняя строка в том же файле, по аналогии в папке components 2 скрипта, в их конце следующие 2 строки (модуль загружен), а последняя - 215 строка файла requester.lua в все той же папке components... |
Wan | ||
3.12.2009, 1:28 |
Домены Для Вашего Хаба Как думаете? |
Uncle_Dif, во-первых, прекрати под каждым своим сообщением приписывать извинения, это не по-мужицки Во-вторых, в твоем случае твой локальный меняющийся айпи присоединяется к любому домену на |
BIMMER71, Uncle_Dif | ||
24.11.2009, 10:17 |
SmilesLimiter API2 | Бан за злоупотребление смайлами |
По-идее такой ошибки быть не должно или же перед ней должна быть другая, все пути в скрипте, на сколько я вижу, правильные! А... извиняюсь, сейчас все будет, скрипт выложен без его папки! Папку в 1 пост положил, ее класть в папку scripts, сейчас ошибок быть не должно. Смайлы все в файле SmilesHere.txt Вот кстати удаленное обсуждение: http://mydc.ru/topic2708.html |
Invisible, steppnov, shur49 | ||
24.11.2009, 10:14 |
Хаблист |
Или замени в скрипте <? на <?php ... |
Saymon21 | ||
21.11.2009, 22:18 |
Sbot мульти-скрипт |
Нам бы код, так сказать "на растерзание", чисто поучиться, можно, пожалуйста, в каком бы виде он не был?! |
MIKHAIL | ||
13.11.2009, 16:02 |
Support API2 | Комната техподдержки |
Вместо Код SendToRoom(user.sNick,str) делаемКод SendToRoom(user.sNick,str,user.iProfile) затемКод function SendToRoom(name,msg) заменяем наКод function SendToRoom(name,msg,iProfile) и... заменяем в этой функции вездеlocal oldname = name if tAllowProfilesKick[iProfile] then name = "Администрация" end Код if user.sNick ~= name then на Код if user.sNick ~= oldname then Пробуем что получится, отписываемся сюда. |
Артём, мамин_парень | ||
13.11.2009, 0:55 |
MagnetLog API2 | Сохранение магнет ссылок |
возможноли сделать чтобы, если в сообщении несколько магнеток, все магнетки сохранялись а не только последняя? Берем и вот этот код: Код local sMagnet = sData:match".*(magnet:%S+%.%S%S%S).*" local bFlag = true if sMagnet then local sNick = sData:match"(%b<>)" for i,v in ipairs(tMagnet) do if v[1] == sMagnet then bFlag = nil break end end if bFlag then table.insert(tMagnet,{sMagnet, sNick, os.time()+iTime*3600}) end end заменяем на вот этот немного доработанный код: Код local sMagnet, bFlag for sMagnet in sData:gmatch"(magnet:%S+)" do bFlag = true if sMagnet then local sNick = sData:match"(%b<>)" for i,v in ipairs(tMagnet) do if v[1] == sMagnet then bFlag = nil break end end if bFlag then table.insert(tMagnet,{sMagnet, sNick, os.time()+iTime*3600}) end end end Надеюсь моя помощь поддержит автора скрипта и он выполнит другую просьбу пользователя, да, Илюх? |
Accelerator, wasd | ||
9.11.2009, 9:42 |
нужна помощь |
По-моему тут надо искать проблему не в скриптах, а в головах людей... Но если так интересно, можно вписать фразу в этот скрипт, если сами не сделаете - пишите в ту тему, скажу куда и что. Или же есть вариант с простым скриптом, который, к примеру, отлавливает команду и отсылает сообщение: Код -- таблица с командами: tCmds = { ["wds"] = true, ["nfspro"] = true, ["someanothercmd"] = true, } -- фраза для отправки: sSendPhrase = "вам отправлено личное приватное сообщение, прочтите его!" function OnStartup() sBot = SetMan.GetString(21) end function ChatArrival(tUser, sData) local sCmd = sData:match("^%b<>%s+%p(%S+).*|$") if sCmd then sCmd = sCmd:lower() if tCmds[sCmd] then Core.SendToUser(tUser, "<"..sBot.."> *** "..tUser.sNick..", "..sSendPhrase) end end end |
Invisible, Saymon21, X-Sky | ||
8.11.2009, 14:21 |
Помогите перевести скрипт на API2 |
Переделал, для работы потребуется теперь библиотека PXLuaSocket-2.0.2, пробуйте, о всех проблемах можно писать тут |
Pro009 | ||
4.11.2009, 18:32 |
Скрипт проверки баланса хелп |
Код <form method="post"> У тебя та же беда, нечто универсальное в этом скрипте будет не просто создать, ведь везеде свои премудрости. У ТС был довольно простой вариант, к тому же он предоставил все данные и поставил задачу, тут же пришло конкретное решение, все просто, это меня и порадовало Так что кому надо - отписываем адрес станицы с формой логинов и паролей и код того что получаем после входа, тогда и посмотрим что можно сделать... |
RoL | ||
2.11.2009, 13:56 |
Скрипт проверки баланса хелп |
Мой косяк, попробуйте вот этот вариант |
RoL | ||
28.10.2009, 14:34 |
Скрипт проверки баланса хелп |
Так, а замени конструкцию Код local a, b = http.request{ наurl = [[http://billing:8080/balance_sender?login=]]..login..[[&pswd=]]..pass..[[&mid=5]], } Код local a, b = http.request([[http://billing:8080/balance_sender?login=]]..login..[[&pswd=]]..pass..[[&mid=5]]) |
RoL | ||
27.10.2009, 15:49 |
Скрипт проверки баланса хелп |
Возможно и вполне легко реализуется, если пароль для проверки пароля отличается от того что для входа в интернет (так у нормальных провайдеров), то проблем никаких не будет Не сильно много времени у меня, но идея понравилась, - набросал скрипт, в самом конце введи свои данные ("тут_впиши_логин" и "тут_впиши_пароль") и напиши тут что тебе выдал хаб в ответ на запуск скрипта. Тогда посмотрим что можно сделать... Для работы требуется библиотека сокетов LuaSocket! Код local http = require("socket.http") function GetData(login, pass) local a, b = http.request{ url = [[http://billing:8080/balance_sender?login=]]..login..[[&pswd=]]..pass..[[&mid=5]], } if b and b == 200 then local c = a:match("status=\"(%S+)\"") if c then if c == "error" then return "Ошибка логина или пароля" elseif c == "ok" then local d = a:match("summa=\"(%S+)%s*\"") if d then return "Ваш баланс равен "..d.." руб." else return "Сумма не найдена" end else return "Ответ не корректен" end else return "Запрос не корректен" end else return "Запрос не обработан" end end Core.SendToAll("Ответ на запрос: "..GetData("тут_впиши_логин", "тут_впиши_пароль")) |
RoL | ||
26.10.2009, 16:19 |
Limit_Poisk API2 | Скрипт ограничивает поиск и закачку по шаре |
Во-первых лучше сразу просчитать размер ограниченной шары, дабы не производить это действие каждый раз (умножение), с сообщением и этим исправлением скрипт выглядит так: Код Limit=10*1073741824 -- в байтах (10 гб) function ConnectToMeArrival(user) if Core.GetUserData(user,16)<Limit then Core.SendToUser(user, "*** Ваша шара меньше 10 гигабайт, поэтому вы не можете пользоваться файлообменом!") return true end end RevConnectToMeArrival=ConnectToMeArrival |
Saymon21, Nenomernoj | ||
13.10.2009, 11:19 |
Hub Menu API2 | Меню для встроенных команд PtokaX |
Если не ошибаюсь это вшито в некоторые клиенты, в стронге каких-то версий было именно такое отдельное меню, проверь на флайлинке, к примеру, там должно быть так как ты хочешь. |
Gate001 | ||
29.9.2009, 14:07 |
Предложения для развития |
Otshelnik-Fm | |||
28.9.2009, 13:25 |
Support API2 | Комната техподдержки |
Saymon21, X-Sky | |||
27.9.2009, 20:22 |
Антиреклама идея более сложного скрипта |
в строках вида Код if string.find(msg ,tSafe[i] , 1, true) then убираешь последние 2 параметра чтобы было примерно так: Код if string.find(msg ,tSafe[i]) then попробуй... |
Артём | ||
27.9.2009, 18:11 |
Скрипт перенаправления юзверей |
А включить перенаправление при постоянном бане и забанить эти диапазоны не вариант? Или как вариант по-быстрому переделал этот скрипт: Код -- Автор: Артём local tRanks = { {"10.0.0.0", "10.255.255.255"}, -- Диапазон для перенаправления {"192.168.0.0", "192.168.255.255"} -- Диапазон для перенаправления } sAddress = "адрес_для_перенаправления" sReason = "причина для перенаправления" function Ip2Num(sIP) local a, b, c, d = sIP:match"^(%d+)%.(%d+)%.(%d+)%.(%d+)$" return a * 16777216 + b * 65536 + c * 256 + d end function OnStartup() for k, v in ipairs(tRanks) do tRanks[k][1], tRanks[k][2] = Ip2Num(v[1]), Ip2Num(v[2]) end end function UserConnected(tUser) local iIP = Ip2Num(tUser.sIP) for _, v in ipairs(tRanks) do if iIP > v[1] and iIP < v[2] then Core.Redirect(tUser, sAddress, sReason) return end end end RegConnected, OpConnected = UserConnected, UserConnected |
-=Alexandr=- | ||
27.9.2009, 17:36 |
Помогите перевести скрипт на API2 |
Скрипт использует библиотеку pxwsa_l51.dll котроая есть только для 1 апи птоки, для 2 весии апи эта библиотека не подходит и весь скрипт надо переписываыать, проще настроить уже существующий. |
MIhan | ||
26.9.2009, 14:02 |
Женюсь |
И от меня много-много-всего-всего Главное - счастья со второй половинкой!!! Поздравляю от лица всего портала!!! И не сметь ругаться! Чуть что - пиши к нам, послушаем и поможем! А если 23+14-24=13:00 значит уже 2 часа как в счасливейшем браке |
Otshelnik-Fm | ||
23.9.2009, 14:39 |
Мысли вслух-2 |
Так, конфликт прекратить, тут форум во-первых для тех кому интересна конкретная тематика, админы должны В ПЕРВУЮ ОЧЕРЕДЬ быть поддержкой любого пользователя. Обращаюсь ко всем кто является лицом форума, конечно больше к упомянутому тут тезке. Как думаю вы бы сказали сами - не интересно - не пишите или не читайте даже, а если хочется посраться с кем-нибудь и выясьнить кто прав, тогда давайте в личку. district, тебя же лично прошу не обращать внимания на тех кто по-твоему его не достоин, в итоге же в выигрыше остается тот кто сильнее и промолчит в ответ обидчику. Все ваши предложения и мысли выслушаю тут, желательно в культурном виде, многоуважаемые господа. |
district | ||
21.9.2009, 10:40 |
Домены Для Вашего Хаба Как думаете? |
X-Sky | |||
16.9.2009, 9:45 |
TEST |
а можно код на это? можно |
Saymon21 | ||
15.9.2009, 9:10 |
TEST |
Нет это не я)))) это я как-то давно стебался в кс и играл пару дней с таким ником, акк как видите старый, 88 (это не хай хитлер, это хип-хап)))) юзер Теги вроде сделал так чтобы автор темы МОГ ИХ УДАЛЯТЬ, теперь каждый автор немножко модератор Сейчас вам сделаю спойлер для текста и попробую сделать так чтобы автор темы тоже имел доступ к закреплению поста в теме, чтобы было как при линейном просмотре. |
LaLa, Ksan | ||
14.9.2009, 14:04 |
TEST |
Не удаляйте плиз, это я извращаюсь! |
LaLa | ||
13.9.2009, 21:59 |
С праздником |
Присоединюсь. Всех с праздником, всем удачи и правильного кода |
FallenAngel | ||
9.9.2009, 12:28 |
SetMan.GetString |
Часть тут: http://mydc.ru/topic118.html Думаю там и стоит это все продолжить... |
Invisible, Drakula | ||
7.9.2009, 10:39 |
Ваши Вопросы И Предложения По Поводу Форума |
И ещё. Нажав на ссылку: "Активные сегодня", там заголовке написано: "10 авторов сегодня". Я уже об этом говорил раньше. Видимо при переносе форуме изменилось. Это поправил. Еще по просьбе Maximum'а сделал в форуме HexHUB два подфорума: Скрипты для HexHub'а, Плагиный для HexHub'а. Maximum, отпишись, можешь ты их модерировать или нет?! Added: Мучаюсь с хромом, но он упорный, с**а. Может кто знает как решить проблему? Косяк только на странице портала. :( Еще повесил адсенс назад, пользуйтесь, только аккуратно |
Setuper | ||
20.8.2009, 15:05 |
Домены Для Вашего Хаба Как думаете? |
Сделал: city24.mydc.ru <= 84.22.141.71 |
intlive | ||
10.8.2009, 10:56 |
Несколько Слов О Захватах И Регулярных Выражениях исключительно для разработчиков |
Мерси, а методы len и sub естественно быстрее чем match или find ?! Т.е. к примеру, берем строку "<Nick> lalalalala|", в ней нам нужен текст сообщения, ник нам известен, вот примерный код теста: CODE sData = "<Nick> lalalalala|" sNick = "Nick" iBegin = os.clock() for i = 1, 1000000 do --sNeedData = sData:match("^%b<>%s(.*)|$") sNeedData = sData:sub(sNick:len() + 4, -2) end --Core.SendToAll((os.clock() - iBegin).." secs with _match_ and data: "..sNeedData) Core.SendToAll((os.clock() - iBegin).." secs with sub and data: "..sNeedData) А вот результат, сначала закоментированы 2е строки, 5 раз, потом первые: Цитата [11:52:22] 0.74899999999991 secs with _match_ and data: lalalalala [11:52:23] 0.71699999999998 secs with _match_ and data: lalalalala [11:52:25] 0.73300000000006 secs with _match_ and data: lalalalala [11:52:25] 0.73299999999995 secs with _match_ and data: lalalalala [11:52:26] 0.74900000000002 secs with _match_ and data: lalalalala [11:52:41] 0.702 secs with sub and data: lalalalala [11:52:42] 0.71799999999996 secs with sub and data: lalalalala [11:52:44] 0.702 secs with sub and data: lalalalala [11:52:44] 0.74900000000002 secs with sub and data: lalalalala [11:52:44] 0.73299999999995 secs with sub and data: lalalalala Как видите на милионе операций разница есть, незначительная, так что лучше использовать? |
Invisible | ||
10.8.2009, 9:06 |
Домены Для Вашего Хаба Как думаете? |
Сорри за задержку, кучусь как белка в колесе, сделал, прием заявок продолжается! fullhub.mydc.ru <= 94.232.12.211 Тему подчистил |
himikell | ||
29.7.2009, 9:02 |
Помогите избавится от ошибки UserToBotDescription (API1) |
Ищешь вот эту строку Код local sNewMyINFO = "$MyINFO $ALL "..i.." "..tNeedUser.sDescription.."<"..v["sNeedClient"].." V:"..v["sNeedVersion"]..",M:"..tNeedUser.sMode..",H:"..v["sNeedHubs"]..",S:"..tNeedUser.iSlots..">$ $"..v["sNeedConnection"].."$"..sMail.."$"..tNeedUser.iShareSize.."$" и в ней заменяешь Код M:"..tNeedUser.sMode..",H: наКод M:"..(tNeedUser.sMode or "P")..",H: |
Артём, мамин_парень | ||
25.6.2009, 10:48 |
Банер хаба с онлайном юзеров и шары. |
Это просто стучалка порта, она не определяет сколько где народа и шары, не так? Если порыться в мануале по функциям пхп и найти разумную статью про создание изображений можно сделать такую штуку. Сделаем, обещаю! Тогда давайте тут обсудим это, как вы видите этот юзербар, в каких вариантах вы его видите и так далее. Очень трудно самому все придумывать, а делать - нет, вот поэтому и прошу ВАШЕЙ помощи, идеи и мысли принимаются любые, выговаривайтесь, заодно и постов у вас прибавится. |
BIMMER71, FallenAngel | ||
18.6.2009, 13:13 |
Домены Для Вашего Хаба Как думаете? |
Оформил: goldhub.mydc.ru <= 89.222.185.103 |
Electr0n1q | ||
11.6.2009, 13:23 |
Алгоритм работы поиска в DC Как работает поиск |
По срабатыванию api функции поиска (SeachArrival) тут же высылать свои результаты, думаю только так. Не думаю что тебе это будет кто-то делать (я бы не стал, это во-первых искажение результатов поиска, во-вторых - никто не знает что ты туда хочешь, если рекламу, то она уже всех достала, и так где только можно), но на форуме есть как описание функций, так и описание протокола, плюс ты смотришь скрипты что работают с поиском, тут тоже такие есть! Так что сделать это даже новичку будет не трудно, правда времени на это понадобится побольше. Немного подскажу: сортировка идет в большинстве клиентов по количеству совпадений, так что чем больше у тебя будет ответов, тем выше будет твой резульат. |
bestnokia | ||
10.6.2009, 9:36 |
Комната Смеха=) |
Setuper, Цитата <System> Для регистрации нужно ответить на несколько вопросов!!! Если вы не согласны, то просто закроте это окно ;) <System> Вопрос № 1: "Согласны ли вы не оскорблять пользователей хаба?" <()Disconnect> Ога <System> Положительные ответы предыдущего вопроса: да, согласен, согласна, yes <System> Вопрос № 2: "Вы собираетесь тут флудить в чате?" <()Disconnect> Нет <System> Вопрос № 3: "Вы собираетесь спамить?" <()Disconnect> Нет <System> Вопрос № 4: "Рекламить ресурсы будите?" <()Disconnect> Нет <System> Вы были кикнуты по причине: Флуд однотипными PM! *** Юзер ушёл [System - Poligon™] *** |
Uncle_Dif | ||
22.4.2009, 12:41 |
Информация По Nick&ip |
Можно, все можно Делается так: строку Код sMsg = sMsg.."¦_ "..sSp..i.."\t"..tCurIPsData[1].."\t\t"..tLang.From..": "..sForm..sOnStartup.."\t"..tLang.To..": "..sTo..sOnExit..sRn меняем наКод sMsg = sMsg.."¦_ "..sSp..i.."\t"..tCurIPsData[1].."\t\t"..tLang.From..": "..sForm..sOnStartup.."\t"..tLang.To..": "..sTo..sOnExit.."\t - "..GetNormalTime(((tCurIPsData[4] ~= 0 and tCurIPsData[4]) or os.time()) - tCurIPsData[3])..sRn и в самый конец добавляем вот эту хорошую функцию: Код function GetNormalTime(s) s=tonumber(s) or 0 local r="" if s>=31104000 then r=math.floor(s/31104000).." г. " s=math.fmod(s,31104000) end if s>=2592000 then r=r..math.floor(s/2592000).." мес. " s=math.fmod(s,2592000) end if s>=86400 then r=r..math.floor(s/86400).." д. " s=math.fmod(s,86400) end if s>=3600 then r=r..math.floor(s/3600).." ч. " s=math.fmod(s,3600) end if s>=60 then r=r..math.floor(s/60).." мин. " s=math.fmod(s,60) end return r..s.." сек." end Получаем: Цитата ¦ История сессий пользователя (лимит установлен в 30 записей): ¦_ 1 192.168.0.10 с: 12:13:02 22-04-09* до: 12:13:34 22-04-09 - 32 сек. ¦_ 2 192.168.0.10 с: 12:13:35 22-04-09 до: 12:14:40 22-04-09* - 1 мин. 5 сек. ¦_ 3 192.168.0.10 с: 12:14:41 22-04-09* до: 12:15:32 22-04-09* - 51 сек. ¦_ 4 192.168.0.10 с: 12:15:32 22-04-09* до: 12:16:04 22-04-09* - 32 сек. ¦_ 5 192.168.0.10 с: 12:16:04 22-04-09* до: 12:27:24 22-04-09* - 11 мин. 20 сек. ¦_ 6 192.168.0.10 с: 12:27:24 22-04-09* до: 12:28:44 22-04-09* - 1 мин. 20 сек. ¦_ 7 192.168.0.10 с: 12:28:45 22-04-09* до: 12:29:56 22-04-09* - 1 мин. 11 сек. ¦_ 8 192.168.0.10 с: 12:29:56 22-04-09* до: текущее время (на хабе) - 5 сек. ¦ * Включение или выключение скрипта Для особо ленивых прилагаю файлик, из поста выше его удаляю. И напоминаю что таблицы надо удалить если вы пользовались старой версией, без записей всех ip для ника [attachment=2214:UserInfo...API_2___.lua] Еще забыл спросить, в скрипте я храню данные в формате TEXT, а потом уже используя конструкцию в духе Код local tNeedUserData = loadstring("return "..row.sData)() получаю таблицу, получается как бы бд за место текстовых файлов с доп. возможностями выборки и сортировки, как вам такая реализация, в том же сравнении со скриптом Ильи (варинера) и в духе оптимизованности и рациональности?! |
Saymon21, TiGRpp | ||
25.2.2009, 9:53 |
Ошибка При Распаковке |
Тема обсуждения (на английском): Ответ PPK: Цитата Error during decompression is possible in any client supporting ZPipe.. when for some reason client is not able to receive all data and PtokaX reach max size for his sendbuffer. In that case when "keep slow clients online" is enabled PtokaX delete some data from start of sendbuffer and zpiped data can be corrupted. Мой примерный перевод, по-моему по-дилетантски, но смысл думаю понятен: Цитата Ошибка при распаковке возможна в любом клиенте, поддерживающем ZPipe.. когда по какой-либо причине клиент не имеет возможности получить все данные и Птока достигает максимального размера буфера отправки. По этой причине когда "поддерживать медленные клиенты" включено, Птока удаляет некоторые данные из начала буфера отправки и сжатые данные могут быть повреждены. Как видите, дело в скорости соединения и в объеме изначально отправляемых данных. Так что думаю будет разумно не мешать птоке и отправлять все что надо со скриптов по таймеру, как в некоторых скриптах описания... Была и у меня такая проблема, виной всему были новые версии флайлинка (тогда еще новые), помогла установка версии еще новее. |
Saymon21 | ||
5.2.2009, 13:04 |
Textfiles_manager_and_updater API1, API2 | Обновление TXT файлов по интервалу |
На скорую руку перевел под 2 апи: CODE sTextFilesPath = "texts" -- папка с текстовыми файлами iTime = 60 -- время в секундах на обновление файлов bPm = false -- отсылать сообщение в приват (true) или нет (false) function OnStartup() sBot = SetMan.GetString(21)--frmHub:GetHubBotName() require("pxlfs") tFiles = {} sHubPath = Core.GetPtokaXPath()--frmHub:GetPtokaXLocation():g("/", "\\") sFilesPath = sHubPath..sTextFilesPath --SetTimer(1000 * iTime) --StartTimer() TmrMan.AddTimer(1000 * iTime, "LoadFiles") LoadFiles() end function string.g(sData, s1, s2) return sData:gsub(s1, Return(s2)) end function Return(sData) if type(sData) == "function" then return sData end return function() return sData end end --[[ function OnTimer() LoadFiles() end ]]-- function ChatArrival(tUser, sData) sData = sData:sub(1, -2) local _,_, sCmd = sData:find("^%b<>%s+%p(%S+)") if not sCmd then return end local sText = tFiles[sCmd] if sText then if bPm then --tUser:SendPM(sBot, sText.data) Core.SendPmToUser(tUser, sBot, sText.data) else Core.SendToUser(tUser, "<"..sBot.."> "..sText.data) --tUser:SendData(sBot, sText.data) end return true end end function LoadFiles() tFiles = attrdir(sFilesPath) end function attrdir(path) local tData = {} for file in lfs.dir(path) do if file ~= "." and file ~= ".." then local _,_, sFileName, sExt = file:find("(.+)(%.txt)$") if sExt then local f = path.."/"..file local attr = lfs.attributes(f) assert (type(attr) == "table") if attr.mode ~= "directory" then tData[sFileName] = { modification = attr.modification, data = OpenTextFile(f), } end end end end return tData end function OpenTextFile(sFileWay) local sMessage = "[ can not open file ]" local sFile = io.open(sFileWay, "r") if sFile then sMessage = sFile:read("*all") sMessage = sMessage:g("\n", "\r\n") sFile:close() end if sMessage then sMessage = "[ no data in file ]" end return sMessage end Библиотеку надеюсь найдете |
ramzes | ||
27.12.2008, 15:08 |
Webhubconfig API2 | Скрипт конфигурации хаба через веб-интерфейс |
Файл WebScriptsCore.lua, строки 94-99: Код if RegMan.AddReg(sNick, sPass, iDefRegProfile) then sLoginErrors = "<b style=\"color:#FF6600\">Поздравляем с успешной регистрацией!</b><blockquote>Вы зарегистрировали ник <b>"..GsubForHtml(sNick).."</b> с паролем <b><input value=\""..sPass.."\" readonly=\"true\" /></b><br />Теперь для входа на хаб под вашим ником необходимо знать пароль<br />Вы можете вводить его каждый раз вручную, либо прописать пароль в настройках клиента<br />Для этого найдите в списке избранных хабов этот хаб, зайдите в его свойства и пропишите в строках Nick и Password ваши ник и пароль</blockquote>" tRegSessions[sIP] = os.time() else sLoginErrors = "<b style=\"color:#FF6600\">Неизвестная ошибка регистрации!</b>\r\n" end Меняем на: Код if RegMan.AddReg(sNick, sPass, iDefRegProfile) then sLoginErrors = "<b style=\"color:#FF6600\">Поздравляем с успешной регистрацией!</b><blockquote>Вы зарегистрировали ник <b>"..GsubForHtml(sNick).."</b> с паролем <b><input value=\""..sPass.."\" readonly=\"true\" /></b><br />Теперь для входа на хаб под вашим ником необходимо знать пароль<br />Вы можете вводить его каждый раз вручную, либо прописать пароль в настройках клиента<br />Для этого найдите в списке избранных хабов этот хаб, зайдите в его свойства и пропишите в строках Nick и Password ваши ник и пароль</blockquote>" tRegSessions[sIP] = os.time() Core.SendToAll("<"..SetMan.GetString(21).."> *** Привестсвуем нового зарегестрировавшегося пользователя "..sNick.." ***") else sLoginErrors = "<b style=\"color:#FF6600\">Неизвестная ошибка регистрации!</b>\r\n" end Ищи отличия Так же можно сделать отправку нику дополнительного сообщения с хаба и прочее... |
Wildcdu | ||
15.12.2008, 2:03 |
Webhubconfig API2 | Скрипт конфигурации хаба через веб-интерфейс |
Выкладываю скрипт, библиотеки и другие файлы найдете если что в ахиве выше. Про дизайн никто ничего не говорил, хотя я просил, так что получайте что получаете Теперь при переходе на адрес хаба автоматом перекидывает в папку /reg/, где и можно зарегистрироваться. Настройки регистрации (в главном файле в самом начале): Цитата iDefRegProfile = 3 -- регистрируемый профиль по умолчанию iMinPassLen = 6 -- минимальная длина пароля iRegTimeToIpInterval = 60*60*12+1 -- интервал для возможности пользования интерфейсом, в секундах, указано 12 ч. 1 сек. Если задать параметр nick в get запросе, то получите заполненное поле ник, к примеру: Код -- load url module применение в нашем случае:url = require("socket.url") code = url.escape("/#?;") -- code = "%2f%23%3f%3b" Код weneedpagewithnick = "http://localhost:7070/reg/?nick="..url.escape(sSomeNick) Смотрите сами, все претензии - сюда, чувствуется мне будет их немало... Конфигурация по-прежнему находится в каталоге /config/, больше ничего толком не сделано. |
Invisible, Saymon21 | ||
22.11.2008, 13:57 |
Webhubconfig API2 | Скрипт конфигурации хаба через веб-интерфейс |
Всё что угодно при Вашем финансировании... Наймем ученых, программеров, пару шаманов с бубном, и дадим им задание сделать всё что хотите. Ты имел в виду отметание фтп и редактирование скриптов как в редакторе птоки? Или можно сделать просто управление папками и файлами через скрипт. Но это часы разработки, а у меня их нет, так что либо ждать, либо делать самим. |
X-Sky | ||
11.11.2008, 0:49 |
Домены Для Вашего Хаба Как думаете? |
Сделано... jina-net.mydc.ru <= 193.93.13.15 mageal.mydc.ru <= 195.189.45.30 Буду, естественно, очень рад взаимной помощи... |
Чебурашка | ||
10.11.2008, 21:20 |
Домены Для Вашего Хаба Как думаете? |
Итак, приступимс к выполнению заявок: Записи типа CNAME: jina-net.mydc.ru <= jina-net.no-ip.org hentai.mydc.ru <= hentai-family.redirectme.net Записи типа A: district.mydc.ru <= 80.64.95.38 dimetrius, надо указать либо ip к которому привязывать домен, либо другой домен Цитата [21:05:06] *** Соединение с jina-net.mydc.ru... Ээээ, я упустил выход новых версий хаба??)))[21:05:08] *** Соединён [21:05:09] <Eras> Этот хаб работает под управлением PtokaX DC Hub 0.4.2.9 (Время работы: 0 дней, 22 часов, 33 минут / Юзеры: 145) =) Вроде крутые парни, а домен за 350р в год се позволить не можете )) Ну не знаю, это правда просто, но я так не думал пока не задался такой целью. А домен сейчас можно купить чуть ли не за 100, но это же русский народ... |
Чебурашка | ||
10.11.2008, 11:44 |
Домены Для Вашего Хаба Как думаете? |
Суть вопроса такова: есть возможность раздавать домены вида любая-фигня.тут.как_вообще_хотите.mydc.ru. Технически, dns позволяет разместить большое количество записей, но раздавать всем подряд домены я не собираюсь, только тем кто в этом нуждается. Если вы имеете хаб, имеет ли смысл для вас иметь домен не с no-ip, допустим, а с mydc? Единственную трудность, которую я тут вижу, что лично вы не будете иметь доступ к изменению записи, так что тем, у кого часто меняется айпи, этот вариант не подойдет (может и получится автоматизировать процесс смены ip, но по личным наблюениям меняется он не так быстро как в указанном выше сервисе, может я конечно что-то не так делаю, но это время в районе 4 часов)... В плюсах вижу некую уникальность, да и домен хорошо показывает направленность. Материальных выгод я не ищу, только некое увеличение популярности форума, плюс может где-то скромную ссылку на ресурс. Теперь что вы думаете по этому поводу? PS: извиняю за не очень четкое выражение мысли, бошка варит с трудом... |
tolya, LOKI, dj_crazy_joker | ||
8.11.2008, 21:52 |
Работа С Библиотекой Операционной Системы Lua 5.1.x |
Оригинальный мануал (на английском), и не только, находится Итак, вот функции, их описание и способы применения, всё исключительно из опыта ковыряния скриптов и этого мануала, функции никогда не применияемые мною или в которых я не вижу смысла не описываю: os.clock() Возвращает приблизительное время в секундах использования ЦПУ программой (с момента запуска exe'шника) os.date([format [, time]]) Функция для получения даты в определенном формате. Имеет два опциональных параметра format и time. Если оба параметра отсутствуют, то функция аналогична os.date("%c"), "%с" = "%x %X", об этом далее. Первый параметр format имеет тип string. Опционально можно указать "!" в самом начале строки, тогда время форматируется в соответствии с универсальным глобальным временем (по Гринвичу). Если формат состоит из "*t", то возвращается таблица со следующими полями: year (4 знака), month (1–12), day (1–31), hour (0–23), min (0–59), sec (0–61), wday (день недели, Воскресенье - 1), yday (день года) и isdst (по-моему летнее ли время, имеет тип boolean). Код [22:22:01] os.date("*t") = { Как видите, с восклицательнм знаком параметры hour различаются на 3.["hour"] = 22, ["min"] = 22, ["wday"] = 7, ["day"] = 8, ["month"] = 11, ["year"] = 2008, ["sec"] = 1, ["yday"] = 313, ["isdst"] = false, } [22:22:57] os.date("!*t") = { ["hour"] = 19, ["min"] = 22, ["wday"] = 7, ["day"] = 8, ["month"] = 11, ["year"] = 2008, ["sec"] = 57, ["yday"] = 313, ["isdst"] = false, } Если формат отличен от "*t", то строка форматируется аналогично функции С strftime. Вот обрабатываемые форматы:
Примечание: перевод докуметации без изменения, в реальности некоторые функции отличаются или вообще не работатют, вот примеры: Цитата os.date() = "11/08/08 23:33:15" Как видите, не всё работает. И для доп. нагрузки на мозги код для получения такого списочка:os.date("%A") = "Saturday" os.date("%b") = "Nov" os.date("%B") = "November" os.date("%d") = "08" os.date("%e") = "00" os.date("%H") = "23" os.date("%I") = "11" os.date("%j") = "313" os.date("%k") = "00" os.date("%l") = "00" os.date("%m") = "11" os.date("%M") = "33" os.date("%p") = "PM" os.date("%S") = "15" os.date("%w") = "6" os.date("%x") = "11/08/08" os.date("%X") = "23:33:15" os.date("%y") = "08" os.date("%Y") = "2008" CODE qwe = "\r\n" tData = { "", "%A", "%b", "%B", "%d", "%e", "%H", "%I", "%j", "%k", "%l", "%m", "%M", "%p", "%S", "%w", "%x", "%X", "%y", "%Y", } for i = 1, #tData do local s = "return os.date(\""..tData[i].."\")" s = s:gsub("\"\"", "") local q = assert(loadstring(s))() q = (type(q) == "string") and string.format("%q", q) or tostring(q) s = s:gsub("return ", "") qwe = qwe..s.." = "..q.."\r\n" end Core.SendToAll(qwe) Второй параметр, если он не указан, равен os.time(), т.е. текущему времени "эпохи", можно указать другое время, которое можно получить при помощи функции os.time(table), пример таблицы table выше. os.difftime(t2, t1) Возвращает количество секунд с времени t1 по время t2. В POSIX, Windows и некоторых других системах это значение равнозначно t2-t1. os.execute([command]) Функция аналогична С функции system. Она передает команду на исполнение ОС. Возвращает статус-код, который зависит от ОС. Если команда отсутствует, тогда возвращается ненулевое значение если shell доступен, 0 в противном случае. os.exit([code]) Вызывают функцию C exit, с опциональным кодом code,чтобы выйти из программы. По умолчанию значение code - код успешного выполнения. os.getenv(varname) Возвращает значение системной переменной или nil если переменная не определена. os.remove(filename) Удаляет файл или папку с названием filename. Папка должна быть пустой чтобы ее удалить. Если функция не может провести удаление, возвращается nil и сторка с ошибкой. os.rename(oldname, newname) Переименовывает файл или папку с названием oldname в newname. Если функция не может провести переименование, то возвращается nil и строку с ошибкой. os.time([table]) Возвращает текущее время при вызове без аргументов, или время и дату, указанные в передаваемой таблице. Эта таблица должна иметь поля year, month, и day, и может иметь поля hour, min, sec, и isdst (описание этих полей см. в описании функции os.date). Возвращаемое значание – это число, значение которого зависит от системы. В POSIX, Windows и некоторых других системах, это число соответствует количеству секунд, отсчитываемому от некоторого заданного момента времени ("эпоха"). В других системах, значение не специфицировано, и число, возвращаемое функцией time, может быть использовано только как аргумент функций date и difftime. |
Setuper, FallenAngel, Invisible, Ksan, BeN, Saymon21 | ||
17.10.2008, 22:30 |
Бан По Днс подскажите кто в курсах |
Можем, я вот попробовал, пробуй что вышло. |
Saymon21, MIKHAIL, CRH | ||
12.10.2008, 21:28 |
HelloToNewUsers API1, API2 | Приветствие новому юзеру |
Название скрипта: HelloToNewUsers Версия API: API 1 и 2 Автор: Nickolya Описание скрипта: отправляет приветствия юзеру зашедшему первый раз! |
Pro009 | ||
12.10.2008, 16:23 |
Пара Скриптов Скрипты под ptoka 0.4.1.1 |
Просто этот скрипт делал персонально для 1 хаба, скрипту необходимо изменть настройки хаба, и тут уже видимо я накосячил, слегка переделав блок смены настроек чтобы выложить на форуме. На хабе настройки не менялись, т.к. надо было перезапускать хаб, это решилось парой фраз переписки... Попробуй заменить функцию ConfigPtokaX в скрипте на вот эту: Код function ConfigPtokaX() local bMustChange if SetMan.GetNumber(11) ~= 2 then SetMan.SetNumber(11, 2) bMustChange = true end if SetMan.GetBool(11) then SetMan.SetBool(11, false) bMustChange = true end if SetMan.GetBool(12) then SetMan.SetBool(12, false) bMustChange = true end if not SetMan.GetBool(13) then SetMan.SetBool(13, true) bMustChange = true end if not SetMan.GetBool(14) then SetMan.SetBool(14, true) bMustChange = true end if not SetMan.GetBool(15) then SetMan.SetBool(15, true) bMustChange = true end if not SetMan.GetBool(16) then SetMan.SetBool(16, true) bMustChange = true end if bMustChange then SetMan.Save() Core.Restart() end end Или вот как всё должно выглядеть: |
DriverZX-10 | ||
11.10.2008, 0:52 |
Бан По Днс подскажите кто в курсах |
Самой птокой - никак, можно использовать доп. библиотеки для скрипта, но там есть 1 проблема: если за ip нет записи на DNS-сервере, то библиотека виснет на некоторое время, от 1 до 20 секунд. А имя хоста определяется каждый раз при заходе юзера (надо чтобы знать забанен он или нет) и когда ты пытаешься забанить пользователя, так что хаб начнет жутко тормозить и превратится в один сполшной лаг. Чтобы ты попробовал, даже нашел у себя скрипт бана по днс, который я еще давно-давно пытался сделать, апи 1, работает с библиотекой PXLuaSocket. |
andromed | ||
9.10.2008, 23:47 |
Пара Скриптов Скрипты под ptoka 0.4.1.1 |
Информер поправленный мной приложил. И вот экспериментальная версия описания сетей. Обычную найдешь тут. |
Pro009, мамин_парень | ||
4.10.2008, 17:24 |
Weather [ Api 1&2 ] [ By Nickolya ] API2 | Расширенная погода с rp5.ru |
Нашел вот в закромах у себя скрипт погоды, был даже сделан под оба апи, на сколько я помню, не выкладывал. Для работы требуется библиотека сокетов! Вот тут ее можно взять. Для работы с вашим городом идем на Вот результат работы (полный просмотр): Цитата <PtokaX> Погода в Туле. Расписание Погоды: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ В 13:00 было +18.8°C, облачность 7-8 баллов, влажность 60%, ветер ЮЮЗ, 3 м/с ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [ сб, 4 о. ] \_ На 22:00: +13°C, без осадков, малооблачно (облачность 19%), влажность 76%, ветер Южный, 4 м/с, давление 745 мм рт. ст. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [ воскресенье, 5 октября ] \_ На 04:00: +10°C, без осадков, переменная облачность (35%), влажность 80%, ветер Южный, 4 м/с, давление 745 мм рт. ст. \_ На 10:00: +11°C, осадки (0.2 мм / 6 час), пасмурная погода (облачность 100%), влажность 82%, ветер Юго-Восточный, 4 м/с, давление 744 мм рт. ст. \_ На 16:00: +15°C, преимущественно без осадков (0.1 мм / 6 час), пасмурная погода (облачность 100%), влажность 74%, ветер Юго-Восточный, 4 м/с, давление 744 мм рт. ст. \_ На 22:00: +12°C, без осадков, пасмурная погода (облачность 97%), влажность 81%, ветер Юго-Восточный, 2 м/с, давление 744 мм рт. ст. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [ понедельник, 6 октября ] \_ На 04:00: +11°C, без осадков, значительная облачность (81%), влажность 82%, ветер Южный, 3 м/с, давление 744 мм рт. ст. \_ На 10:00: +11°C, преимущественно без осадков (0.1 мм / 6 час), пасмурная погода (облачность 100%), влажность 90%, ветер Восточный, 5 м/с, давление 744 мм рт. ст. \_ На 16:00: +16°C, преимущественно без осадков (0.1 мм / 6 час), пасмурная погода (облачность 100%), влажность 73%, ветер Юго-Восточный, 4 м/с, давление 743 мм рт. ст. \_ На 22:00: +13°C, осадки (0.2 мм / 6 час), пасмурная погода (облачность 97%), влажность 90%, ветер Юго-Восточный, 2 м/с, давление 743 мм рт. ст. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [ вторник, 7 октября ] \_ На 04:00: +13°C, осадки (3 мм / 12 час), пасмурная погода (облачность 100%), влажность 93%, ветер Юго-Восточный, 2 м/с, давление 743 мм рт. ст. \_ На 16:00: +17°C, преимущественно без осадков (0.2 мм / 12 час), пасмурная погода (облачность 100%), влажность 81%, ветер Юго-Восточный, 4 м/с, давление 744 мм рт. ст. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [ среда, 8 октября ] \_ На 04:00: +11°C, без осадков, малооблачно (облачность 18%), влажность 90%, ветер Юго-Западный, 2 м/с, давление 744 мм рт. ст. \_ На 16:00: +17°C, преимущественно без осадков (0.3 мм / 12 час), облачно (облачность 77%), влажность 62%, ветер Южный, 2 м/с, давление 744 мм рт. ст. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [ четверг, 9 октября ] \_ На 04:00: +11°C, пасмурная погода (облачность 100%), влажность 93%, ветер Северный, 3 м/с, давление 745 мм рт. ст. \_ На 16:00: +13°C, пасмурная погода (облачность 100%), ветер Северо-Восточный, 4 м/с, давление 748 мм рт. ст. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [ пт, 10 о. ] \_ На 04:00: +10°C, пасмурная погода (облачность 100%), ветер Восточный, 3 м/с, давление 750 мм рт. ст. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > Данные предоставлены rp5.ru - по лицензии Мет.Офиса Великобритании (Met Office) [ Этот скрипт и не только можно найти на портале для администратора хаба: http://mydc.ru/ ] ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
Invisible, Ksan, ZION, Артём, 7up, Anarhiya, Kingston, Sekretchik, Saymon21, TiGRpp, girs, Тёмич, Litе, shur49, Kar@bas, zeusby | ||
19.9.2008, 21:59 |
Webhubconfig API2 | Скрипт конфигурации хаба через веб-интерфейс |
Появился наконец интернет, так что я теперь снова с вами, но хватит о грустном. Я конечно ленив, но кое-что все-таки делаю на досуге, так что вот вам очередная версия для тестов, там не до конца сделана страничка с ошибками скриптов, да и не доделаны 3 страницы настроек различного антифлуда, но пока потестите это. В архиве все нужные библиотеки, теперь нужна еще и LFS, файлы скрипта, файлы языков, распаковываем в папку хаба, включаем в скриптах и тестируем. Обо всей фигне пишем сюда. |
Alexey, dj_crazy_joker | ||
3.9.2008, 12:12 |
Антикапс API1, API2 | Без наворотов, зато работает |
Пжалуста Нашел вот один баг в новой функции: при наличии подряд не максимального ряда символов, а потом их повторе без разделения другими символами, второй и следующие ряды урезаются, к примеру "! раз! два!! три!!!" будет урезано в "! раз! два! три". Исправленную версию качаем из этого поста. |
|||
1.9.2008, 11:01 |
Антикапс API1, API2 | Без наворотов, зато работает |
Может это подойдет? Скрипт подделал под универсальный, будет работать на любой птоке с луа 5.1. Работает в фоновом режиме, никаких сообщений или предупреждений не оставляет, настройка простая - со скольки символов сообщения реагировать и процент капса, при котором сработает скрипт. |
Pro009 | ||
26.8.2008, 18:31 |
RSS Ленты API2 | Скрипт для просмотра новостных лент |
Вот функция перевода из утф в коир, пришлось как-то сворганить, причем из функции которая переделывала коир в утф , из-за неумения создания библиотек, изобретаем велосипеды... Вот код: Код s208 = string.char(208) s209 = string.char(209) function utf8towinru(text) text = text:gsub(s208.."(.)", function(sch) if (string.byte(sch)>=144 and string.byte(sch)<=191) then return string.char(string.byte(sch)+48) end if (string.byte(sch)==129) then return "Ё" end return s208..sch end) text = text:gsub(s209.."(.)", function(sch) if (string.byte(sch)>=128 and string.byte(sch)<=143) then return string.char(string.byte(sch)+112) end if (string.byte(sch)==145) then return "ё" end return s209..sch end) return text end |
xRayNeo | ||
17.8.2008, 9:10 |
Webhubconfig API2 | Скрипт конфигурации хаба через веб-интерфейс |
Начал вот доделывать скрипты, думаю можно показать, заодно потестите. Скрипт работает подобно апачу, намного упрощенней конечно, но все же. Это лишь наработки, надеюсь конечная версия будет намного лучше оформлена. По умолчанию в скрипте прописан порт 7070, так что после запуска заходите на |
Invisible, Alexey, TiGRpp, striker, CyberGhost404 | ||
29.7.2008, 22:11 |
Chatguard_v1.2 Удобный скрипт. )) |
Переконвертировал. Конвертор очень хороший - мои руки))) Так что всё должно работать. Скрипт был довольно коряво написан, так что немного его переписал, тестите. |
DrakonSP, САМАЭЛЬ | ||
24.6.2008, 17:20 |
Faq По Dc Задавайте свои вопросы! |
Поправил. Спасибо! |
мамин_парень | ||
22.6.2008, 22:23 |
Changestatus+seepass&profile API1, API2 | Меняем профиль + смотрим профиль или пароль юзера |
ChangeStatus+SeePass&Profile, скрипт для быстрой смены админом хаба профиля пользователя, просмотра его профиля или пароля. Всё делается через удобное меню, профили уже вбиты в него, и никаких заморочек! Как всегда, для обоих версий апи. Цитата <PtokaX> *** Nickolya, ты успешно сменил профиль юзера "Nickolya2" с Owner (0) на VIP (4)! <PtokaX> *** Nickolya, пользователь "Nickolya2" имеет профиль VIP (4) <PtokaX> *** Nickolya, пользователь "Nickolya2" имеет такой пароль: "1" |
Invisible, Kingston, CERBER, Pro009, shur49 | ||
22.6.2008, 17:29 |
Network Separation API1, API2 | Скрипт разделения сетей пользователей |
Вот он, новый релиз скрипта разделения сетей пользователей. Выкладываю, как и всегда, для 1 и 2 API. Функционал скрипта (версия 1.3):
Выкладываю версию 1.3b и 1.3.1. В первой исправлена 1 ошибочка в реализации, во второй по умолчанию разделение сетей у пользователя выключено! |
Invisible, Ksan, Kingston, whuru, Milena, Dialog, -Andersen-, TiGRpp, balbes, van21, RAND(i)M, мамин_парень | ||
21.6.2008, 17:03 |
Userinfo [ By Nickolya ] [ Sqlite Db ] [ Lua5.1 ] [ Api 1 ] API1 | Скрипт оффлайн информации по юзерам |
Нде, как я не старался, ничего не вышло. Давайте разрулим вместе эту библиотеку, это ооочень полезная вещь, и я хочу ее использовать в своих проектах! Обсуждаем все тут: Дополнительные Библиотеки: Sqlite |
Milena | ||
16.6.2008, 14:12 |
Гороскоп API1, API2 | Гороскоп от Hyrax.ru на вашем хабе |
Вот, свял... Скрипт берет rss-ленты с Hyrax.ru и делает из них гороскопы для хаба. :P Цитата Функционал скрипта: • Общая характеристика дня из Ежедневного гороскопа • Показ общей характеристики по определенным минутам часа • Автообновение данных (опционально), проводится 1 раз в день, после 1 часа ночи • Гороскопы сгруппированы для каждого знака зодиака и доступны по команде • По команде доступен просмотр всего тематического гороскопа • Просмотр полного гороскопа для всех знаков зодиака • Админские команды просмотра статуса скрипта и ручного обновления данных • Полноценная менюшка Как всегда, выкладываю скрипт для 1 и 2 api хаба. Изменения в версии 1.1: • Добавлена таблица для настроек времени вывода (теперь можно четко задавать время суток, в которое будет отсылаться сообщение в чат) Библиотека для работы скрипта лежит тут, без нее работать ничего не будет! |
Invisible, Saymon21, Pro009, Тёмич, доктор ливси, Litе, Kar@bas | ||
16.6.2008, 14:03 |
Luasocket win32 | Работа с сокетами |
Бибилиотека для работы с данными из интернета. Для работы помещаем файлы из архива в папку libs, которую надо создать в папке хаба (где лежит PtokaX.exe) Версия 2.0.2 для второго API, для первого - 2.0.1 !! |
FBR, Tsd, Invisible, Ksan, district, Tarantul13, Sekretchik, Saymon21, Men, Sunshine-hub, Setup, Shurchik, shur49, stone, Osimus, AfLc, dj_crazy_joker, Yamakasi, Unique | ||
10.6.2008, 18:09 |
Бутылочка API1, API2 |
Цитата Функционал скрипта: Игра в бутылочку на хабе, бот выдает сначала фразы из таблицы w, затем - случайное действие из таблицы s.Что умеет скрипт (добавлено мною): - ники не совпадают (только переделал слегка систему)Что примерно получается: [00:00:03] < Бутылочка > *** Бутылочка крутится, крутится... Выкладываю версии для 1 и 2 апи хаба. Пользуйтесь на здоровье! ;) |
Invisible, denis, Drakula, Санёк, Inkvizitor_ks | ||
29.5.2008, 12:27 |
Userinfo [ By Nickolya ] [ Sqlite Db ] [ Lua5.1 ] [ Api 1 ] API1 | Скрипт оффлайн информации по юзерам |
UserInfo [ by Nickolya ] [ SQLite db ] [ lua5.1 ] [ API 1 ] Скрипт оффлайн информации о пользователях вашего хаба. Позволяет узнать данные пользователя, когда он уже покинул хаб. Скрипт использует лишь 1 базу данных, думаю это уберет всю нагрузку на хаб, память будет использоваться как обычным скрипом! Суть скрипта и оформление заимствовано из скрипта UserInfoF12 от Foreteller12. База включает в себя:
Цитата ------------------------------------------------------------------------------------------------------------------------------------------------------ ¦ Информация о пользователе: Nickolya ( пользователь на хабе ) ------------------------------------------------------------------------------------------------------------------------------------------------------ ¦ Общая информация: ¦ Имя в базе данных: nickolya ¦ Юзер: Nickolya ¦ IP: 10.3.10.3 ¦ Тег: <++ V:0.699,M:A,H:4/6/7,S:7> ¦ Описание: ?!! ¦ Email: @ ¦ Клиент: DC++ ¦ Версия клиента: 0.699 ¦ Активный режим: Нет ¦ Оператор: Нет ¦ Шара: 296,31 ГБ (318155250438 Б) ¦ Профиль: Администратор (0) ¦ Хабы: 17 ¦ Слоты: 7 ------------------------------------------------------------------------------------------------------------------------------------------------------ ¦ История сессий IP (лимит установлен в 30 записей): ¦_ 1 10.3.10.3 с: 13:22:13 29-05-08 до: текущее время (на хабе) ¦ * Включение или выключение скрипта ------------------------------------------------------------------------------------------------------------------------------------------------------
Цитата ------------------------------------------------------------------------------------------------------------------------------------------------------ ¦ Информация о никах IP-адреса 10.3.10.3 пользователя Nickolya (nickolya): ------------------------------------------------------------------------------------------------------------------------------------------------------ ¦_ AУA™: использовался 2 раз, последний - 13:21:44 29-05-08 ¦_ Nickolya: использовался 1 раз, последний - 13:22:13 29-05-08 ------------------------------------------------------------------------------------------------------------------------------------------------------ Для работы вам потребуется вот эта библиотека, ее надо разместить в папке хаба (где лежит PtokaX.exe) Пока только для 1 апи, под второй видимо были изменения в библиотеке, и теперь приходится решать кое-какие проблемы. Пробуем и отписываем как всё это работает... |
Ksan, Milena, WINS, мамин_парень | ||
19.5.2008, 21:29 |
Открытие Форума Мы открылись! U are welcome :) |
Вот и состоялось открытие форума, пока абсолютно девственного, но думаю общими усилиями мы это исправим!?! Все замечания и пожелания оставляем тут, опрос я думаю будет в тему, так что отвечаем, аргументы так же тут. Приятного общения! |
Saymon21 | ||
|
Сейчас: 27.11.2024, 3:14 |