Вопрос: Не могу запустить lua.exe - выкидывает ошибку "Приложению не удалось запуститься, послольку оно некорректно настроено. Повторная установка приложения поможет решить проблему". Подскажите, что надо настроить, чтобы эта ошибка не возникала?
Ответ: Данная ошибка присуща официальным бинарникам Lua и пакету LuaForWindows. Для ее устранения нужно установить набор runtime-библиотек Visual C++ 2005: . Также можно в очередной раз пнуть фирму Майкрософт за столь "информативное" сообщение об ошибке .
Вопрос: Я написал скрипт на Lua, но, судя повсему, допустил в нем ошибку - консоль Lua сразу закрывается, игнорируя ключ -i, и я не могу посмотреть сообщение об ошибке. Подскажите, можно ли сделать так, чтобы консоль переходила в интерактивный режим даже в том случае, когда в скрипте есть синтаксическая ошибка?
Ответ: Можно. Для этого Вы можете добавить в контекстное меню Lua-скриптов команду, запускающую скрипт в "безопасном" режиме:
[HKEY_CLASSES_ROOT\lua\shell\runsafe\command] @="\"D:\\Program Files\\lua\\lua.exe\" -i -e \"r,e = pcall(dofile,[=[%1]=]); if r then print([=[File %1 has no errors]=]) else print(e) end\""
либо команду, позволяющую проверить скрипт на наличие синтаксических ощибок, но не запускающую его выполнение (Следует помнить, что данная команда проверяет скрипт только на наличие грубых синтаксических ошибок, не позволяющих интерпретатору Lua скомпилировать его в байт-код. Для поиска ошибок в алгоритмах скрипта, Вам необходимо отлаживать его непосредственно на той платформе, для которой он написан):
Код
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\lua\shell\check] @="Проверить"
[HKEY_CLASSES_ROOT\lua\shell\check\command] @="\"D:\\Program Files\\lua\\lua.exe\" -i -e \"r,e = loadfile([=[%1]=]); if r then print([=[File %1 has no errors]=]) else print(e) end\""
Чтобы добавить команду в контекстное меню, скопируйте код в файл с расширением .reg, и запустите его. Во всех приведенных выше фрагментах кода предполагается, что бинарники Lua находятся в папке D:\Program Files\lua\. Если Lua установлен в другую папку, то Вам необходимо исправить пути вручную. Имя раздела реестра, который используется для создания контекстных меню файлов с расширением .lua, также может отличаться. Чтобы узнать его, запустите редактор реестра, откройте ветвь HKEY_CLASSES_ROOT, найдите раздел .lua, и посмотрите значение параметра "По умолчанию". Если Вы по каким-либо причинам не хотите лезть в реестр, то можете воспользоваться готовым файлом, который внесет все необходимые изменения, и добавит в контекстное меню файлов .lua и .luac команды для редактирования в Notepad++, запуска в обычном и безопасном режимах, и проверки на наличие ошибок: lua.reg.rar ( 451 байт )
Кол-во скачиваний: 2
Итак, в этой теме мы будем описывать зарание ответы на некоторые вопросы, дабы потом их было меньше. Перед тем как создавать очередную тему, посмотрите, а вдруг уже тут дан ответ. Тему делаю закрытой, ибо удобней будет всё описать. Если у вас есть какие-то идеи о том, что стоит что-то тут изменить - пишите в личку.
Ну чтож, начнём потихоньку думаю.
Как мне сделать приветствие при входе на хаб? - MOTD
Всё просто. Открываем вкладку "Дополнительно" и в поле MOTD пишем то, что вам нужно. Нажимаем под этим полем на знак вопроса, откроется маленькое окошко. Там будут описаны так сказать теги которые можно использовать в MOTD
Краткий список
[%NICK] - Ник пользователя [%IP] - IP адрес пользователя [%TOTALHUBS] - Число хабов, на которых пользователь [%REGHUB] - Число хабов, на которых пользователь зарегистрирован [%USERHUB] - Число хабов, на которых юзер даже не зарегистрирован. [%OPHUB] - Число хабов, на которых ОП [%SHARE] - Размер шары юзера [%SLOTS] - Число открытых слотов [%DESCRIPTION] - Описание юзера [%USERMAIL] - E-Mail юзера [%CONNECTION] - Вид подключения [%USERCLIENT] - Клиент юзера [%USERMODE] - Режим подключения юзера [%PROFILE] - Профиль юзера на хабе [%HUBNAME] - Имя хаба [%OWNER] - Ник владельца хаба [%EMAIL] - E-Mail владельца хаба
Открываем вкладку "Настройки" и видим такую штуку, называется "Антиреклама". Пишем там свои запреты, исключения и т.д. Минус в том, что есть пропуск айпи.
Eximius это приложение для серверной платформы протокола Neo-Modus Direct Connect Peer2Peer. Разработка проекта началась в 2007 году. Хаб написан на C #, быстро и эффективно. NET языка. Хаб имеет свой собственный deflood, анти-реклама и много других вещей. Также у хаба есть поддержка Lua 5.1. Eximius работает под управлением Windows NT операционных систем, таких как Windows 2000, Windows XP и Vista. Она также работает в режиме эмуляции на системах Linux. (Сам не тестировал, только читал в инете что это возможно). Для использования Eximius нужно установить. NETFramework (рекомендуется 3.5). (Стандарт окна XP/SP2 и Vista)
Ссылки: (С сервера разработчика)
(Правда давно не обновлялся). Новые версии хаба искать на форуме. Спискок API функцмй читаем тут. Скачать версию 2.1.0 Eximius_2_1_0_Lua_5_1.rar ( 1.56 мегабайт )
Кол-во скачиваний: 23 (На данный момент это последняя версия)
PS. Лично я сам использую версию 2.0.6 ибо на последней версии не хочет работать экзекутор.
И так, предлагаю маленький сборник API функций Eximius'a. Конечно сам ещё толком не разобрался в нём, но думаю, что всё впереди Если у кого есть какие либо дополнения пишите, будем рады почитать))
API Функции
Код
------------------------------------------- ---- * from version 2.0.3 **-04-2009 ----- -------------------------------------------
---- Timer: ---- NewTimer(Interval) returns -1 if error else the ID number NewTimer(Interval, CallFunction) returns -1 if error else the ID number Stop(Id) Start(Id) Close(Id) Close the timer and can not be used again.
function Main() TimerID1 = Timer:NewTimer(1000, MyFucntion) TimerID2 = Timer:NewTimer(1000, MyFucntion) TimerID3 = Timer:NewTimer(1000) -- Use default OnTimer event Timer:Start(TimerID1) Timer:Start(TimerID2) Timer:Start(TimerID3) end
function MyFunction(Id) if TimerID1 == Id then -- Here is the TimerID1 event end if TimerID2 == Id then -- Here is the TimerID2 event end
end
function OnTimer(Id) -- Only TimerID3 comes here end -- End Example --
---- Mail ---- !! Is preloaded !! .sFrom .sHost .sPort .sUser .sPassword :SendMail(ToMail,Subject,Body) returns true,false
---- FTP ---- !! Is preloaded !! :Set(Host,User,Pass,Port) :Login :Move(data) -- Move to a folder step by step :GetFiles() -- Returns table with files and folders :RemoveFile(file) :UploadFile(file) :MakeDir(DirName) :RemoveDir(DirName)
---- Web ---- !! Is preloaded !! :GetHtml(url) returns html or EMPTY or ERROR :GetHtml(url,proxy) returns html or EMPTY or ERROR :GetHtml(url.proxy,nick,pass) returns html or EMPTY or ERROR :ResolveDns returns IP or ERROR
------------------------------------------- ---- * from version 2.0.3 **-04-2009 ----- -------------------------------------------
Автор Nickolya — 30.7.2010, 21:56 — 1 комментариев
Новая сказка про репку
Все мы выросли на ”Сказке про репку”. Это была самая первая сказка, что мы усвоили с рождения. Мудрая, отполированная поколениями, она призвана задать детям правильные жизненные ориентиры, заложить основы представлений о труде и работе в коллективе.
Суть сказки мы все помним: некто Дед вложился в проект, который оказался ему не по силам. Увы, так бывает. Это тоже необходимо знать малышам с рождения. Но это не беда дед не отступился, не махнул рукой, не продал бизнес. Он принялся расширять производственные мощности, заинтересовав партнеров. Малышам пока не важно, на каких долевых паях строилось сотрудничество, но очевидно, что в итоге репки хватило всем.
Важно другое: каждый следующий партнер приводил в проект своего знакомого специалиста, и тот активно включался в работу. Помните: ”Мышка за Кошку, Кошка за Жучку, Жучка за Внучку, Внучка за Бабку, Бабка за Дедку, Дедка за Репку вытянули...”
Интересен в сказке образ Мышки. Ведь мышь самое маленькое и слабое существо. Однако именно ее вклад в коллективную работу привел к успеху всего предприятия! Что тоже является для малыша важным жизненным уроком ведь он пока сам такая же мышка в мире взрослых. Также следует отметить безупречную организацию труда: скажем, попади Мышка между Дедкой и Бабкой, ее бы разорвало. Но производство спланировано грамотно, и силы распределены по убыванию. Когда в детстве нам мамы читали сказку, мы, не умеющие читать, изучали картинки, где выстраивались в цепочку по уменьшению роста и сил Дедка, Бабка, Внучка, Жучка, Кошка, Мышка... Глядя на эту интуитивно понятную экспоненту, мы понимали, что это правильно организованное дело, так и надо.
Прошли годы, в обществе появились неведомые нам когдато проблемы, чтото безнадежно разладилось, и, как следствие, разладилась детская литература. Ведь литература и искусство крайне болезненно реагируют на процессы в обществе. Я сейчас не говорю о качестве современных детских стишков, когда при чтении вслух пытаешься их редактировать, чтобы не было так стыдно перед ребенком за чудовищные рифмы и непопадание в падежи. Я не говорю о качестве современных картинок. Вы все это знаете и без меня, а если нет загляните в любой ларек с детскими книжками.
Но я был крайне удивлен, когда выяснилось, что сегодня купить годовалому сыну традиционную ”Сказку о репке” большая проблема. Разумеется, сказка имеется, причем в широком ассортименте. Но книжки эти, увы, продукт нынешней эпохи. Полистав несколько книжек подряд, мы обнаружили, что хоть текст болееменее сохранился (согласитесь, в нем трудно чтото испортить), но у современных оформителей в голове безнадежно разладилось понимание главного. Они не понимают смысла сказки! На современных иллюстрациях не найти привычной нам ”экспоненты”, нет цепочки коллективного труда. Но это тоже полбеды. Беда в том, что вместо этого на бумагу полезло коллективное бессознательное всех тех процессов, которые царят сегодня в стране и головах.
Дело не в художественном стиле. Пусть в каждый рисунок ручной техники (отсканированный на халяву со старых книг, что ли?)
прилепляют на компьютере пару аляповатых цветочков и идиотское солнышко, выдранные из какогото клипарта, и пускают на прилавок этот наспех слепленный для продажи гибрид цифрового и аналогового
к такому мы привыкли. Это тоже, конечно, диагноз эпохи, ведь все наши раскраски Штирлица и пересъемки ”Мушкетеров” репка с того же огорода. Но дело даже не в этом.
Для примера рассмотрим одну из книжек, что продаются сегодня. Они на самом деле почти все такие. Но эта особенно показательна. В ней, как в зеркале, все то, что происходит в России.
Дед, одетый в шапку не по сезону, тянет репку и вытянуть не может. Пока все правильно. Обратим внимание на остальных персонажей, они все герои нашего времени. Бабку Дед не зовет она и так здесь числится с самого начала, но Деду не помогает. Персонаж Бабка нам знаком и понятен ведь это старый неувольняемый сотрудник предприятия. Бабка ни на что не способна нет сил, нет энергии, не умеет, не понимает, а учиться поздно. Чтобы ее не выгнали, оставив без репки, Бабка пытается изображать свою причастность как умеет: пустой суетой, охами и жестами. То, что называют симбурде (симуляция бурной деятельности). Такой она будет в каждом рисунке до конца книжки. Мы видим и Внучку, которую по тексту должна позже привести Бабка, но Внучка тоже здесь с самого начала, а дело Деда ей по барабану. Наконец, мы видим Мышку. Мышка ворует лук открыто, цинично, пока Деду не до того. При полном попустительстве Бабки и за спиной Внучки.
Работа на рисунке не движется с полным непопаданием в текст. Дед, простите за выражение, курит. Бабка симбурде. Внучка, если трактовать рисунок буквально, ”чешет репу”. Внучка здесь классический образ молодого сотрудника, взятого на ставку по родственной линии: работать еще не умеет, но уже и не хочет. Обратим внимание на Мышку сегодня Мышка тырит с предприятия морковь. Фактически это единственный постоянно работающий персонаж, но только на свой карман, мимо общего дела.
Здесь апофеоз все современные проблемы вскрыты окончательно. Дед, отчаявшись получить помощь, снова безуспешно работает в одиночку. Бабка симбурде. Внучка занята своими делами. И у нас добавились еще два персонажа Жучка и Кошка. Это шикарные персонажи. Кто они? Сразу оговорюсь: мне бы очень не хотелось получить какието упреки в неполиткорректности. Но, согласитесь, ведь и ”лицами славянской национальности” их тоже называть некорректно? Это братские нам народы, но в старой сказке это не имело никакого значения для нас не было решительно никакой разницы между Внучкой и Жучкой, потому что все были заняты одним общим делом. Сегодня ситуация поменялась: распалось былое единство, а собака и кошка, предоставленные самим себе, конечно же, вспомнили старинную вековую вражду. Какая тут работа? Со всем своим животным темпераментом они принялись выяснять отношения. Жучка дерет Кошку, Кошка шипит и пускает когти, а Внучка радуется и подзуживает.
Ну, а теперь обратим внимание на Мышку. Ту самую Мышку, про которую мы тоже уже давно все поняли. У Мышки все хорошо. Зачем ей репа? Кому вообще в наше время нужна дурацкая, реликтовая репа? Кто сегодня хочет питаться репой, если имеется лук, морковь, тыква...
Имелись. Но пока вбухивались огромные силы в бессмысленное вытягивание нелепой, грандиозной и безнадежно устаревшей отечественной репы, Мышка подобрала под себя весь лук, всю морковь и, наконец, оккупировала тыкву, которая размерами намного превышает даже пресловутую репу, ”большуюпребольшую”.
Задумаемся, откуда взялась эта тыква? Ведь еще недавно на этом самом месте стоял дом! Дом с окошком, трубой, завалинкой! Фактически это было центральное офисное здание, вся недвижимость, числившаяся на балансе этого несчастного предприятия! Как? В какую такую полночь недвижимость превратилась в тыкву и оказалась целиком под какойто Мышкой?! Поразительный фокус, который, к сожалению, давно стал частью привычной нам реальности. Сказать, что Мышка довольна, значит, ничего не сказать. Естественно, она торжествует, ее лыба шире плеч, а щеки приходится крепко держать, чтоб не лопнули! Мышка пальцует хвост штопором и дразнится, высунув язык, корчит рожи издалека. Ничего подобного этот тихий зверек себе раньше не позволял Мышка свои дела проворачивала молча, изображая на мордочке умильность. Откуда вдруг такая безнаказанность? И мы понимаем: художник изобразил ее на самом дальнем плане картинки, подчеркивая, что Мышка давно вне досягаемости. Фактически в Лондоне.
И даже не так обидно, что оформители простодушно (я уверен, это выплеснулось бессознательное) изобразили сегодняшние реалии. Но на таких книжках растут новые дети! Кем вырастут они? Внучкой? Жучкой и Кошкой? Мышкой?
Автор gregorijus — 30.7.2010, 11:44 — 2 комментариев
Добрый день всем. Хочю спросить, почему WMP 11 через DC++ часто нехочет показывать артиста, а только название трека? Может есть какой нормализатор тегов? И что конкретно надо переделывать?
Помогите пожалуйста, у меня на хабе седят люди с разных городов, но не могу качать(и скачивать) у дрг друга, так как их сети раздельны. Какой есть скрипт чтобы могли юзеры качать у всех пользователей. Пожалуйста помогите с этой проблемой.
Итак, по порядку. Известно что хаблисты используют схему $Lock-$Key. Основная проблема заключаеться в том, что этот алгоритм чуть-чуть отличается от обычного. Если быть точным, ровно на первый байт.
В интернете видел информацию, что большинство хаблистов благополучно игнорируют правильность этого кода и есть там один, особо задиристый. Однако, чем черт не шутит. Поэтому наваял свою реализацию на PHP.
Но, буду последователен. Исходником послужил код из исходников PtokaX хаба:
switch(v) { case 0: strcat(sMsg, "/%DCN000%/"); break; case 5: strcat(sMsg, "/%DCN005%/"); break; case 36: strcat(sMsg, "/%DCN036%/"); break; case 96: strcat(sMsg, "/%DCN096%/"); break; case 124: strcat(sMsg, "/%DCN124%/"); break; case 126: strcat(sMsg, "/%DCN126%/"); break; default: strncat(sMsg, (char *)&v, 1); break; } }
На старте задается lport как локальный порт хаба, в подключении к хаблисту. У хаблиста порт, естественно, 2501. У нас же, тот что назначит система, а значит случайный. sBuffer - содержит исходный $Lock код. sMsg - по завершении будет содержать нужный $Key код.
Теперь собственно код на PHP:
Код
function lock2key($_LOCK, $port) { $lockLength = strlen($_LOCK);
Используется связка первого символа с нулем (вместо последнего символа), а затем с последним символом (вместо предпоследнего). Также, вместо константы 5, используется магический байт вычисляемый как сумма верхнего и нижнего байта шестнадцетиричного представления номера порта. Все остальные "отличия" - экономия "на спичках" + изменения форматирования, не меняющие алгоритма работы. Функция принимает два параметра, строку $Lock и номер порта.
Было бы неплохо этот код обосновать в соответствующей теме, описания протокола.
Версия скрипта: 1.00 Версия API: API2 (PtokaX 0.4.0/0.4.1, LUA 5.1) Автор: alex82
Описание: Скрипт отлавливает в главном чате IP-адреса, и отображает информацию о них. Если информация об IP-адресе не найдена в базе данных скрипта, то он попытается определить местоположение адреса по базе данных IP-To-Country.
Название скрипта: Local Hub Time Автор: Jimbob Версия: 1.00 Описание: По правому клику мыши, через меню, выводит информацию 2010.JPG ( 10.7 килобайт )
Кол-во скачиваний: 19
Автор Invisible — 27.7.2010, 14:31 — 2 комментариев
Народ подскажите, что мне делать. Пытаюсь скачать.rar файл с mydc.ru через оперу, он итегрируется через Download mster и требует Имя пользователя и Пароль. Вводил там свой логин от mydc.ru не канает. Прокси не стоит. Что это может быть?
Автор roflDDDD — 27.7.2010, 14:08 — 4 комментариев
2 компа, 1 сервер на линуксe(ubuntu-server) и на нем же маршрутизатор. Делал через nat в Iptables. И вот все программы работают нормально и осел и торент, кроме дц(flylink).. Если ставиь прямое соединение, то кикает, типо мой говорят что мой ип не 192.168.0.200, а 77.120.**.** Если ставить пассив, то в поиске по 50 результатов всего лишь гот хаба, а это очень мало! Можно ли настроить, чтобы работало не в пассивном режиме или по другому, главное чтобы было по максимум ответов в поиске и не кикали боты с хабов!?
Автор valdis73 — 26.7.2010, 14:14 — 17 комментариев
Народ нет случаем скрипта ведущего статистику посещаемости хаба? Нужна именно статистика по никам и айпи адресам. Дело в том, что раньше у нас сетка была локальная 100 мб всего, теперь на серваках стоят гиговые каналы, каждый раздаёт минимум терр в сутки, но народу в хабе стало в 2 раза меньше по он лайну. Я решил, что это связано с тем, что многие наверняка используют хаб чисто для закачки нужных файлов, а не для просиживания. Получается что теперь слоты всегда свободны, закачка производится с максимальной скоростью, ресурс с вводом серваков стал минимум 700 гб на рыло. Руководство считает , что народ куда то свалил, и раздувать серваки нет смысла. Я вот хочу предоставить статистику по дневному посещению хаба. Вот нужен скрипт учитывающий суточную статистику, статистику по дням и тп. В локалке все айпишники прямые, так что учитывать юзверей проще. Ещё было бы неплохо статику по времени нахождения в онлайне иметь. Птока на никсах. Если есть у кого такая тема, выложите плиз.
Название скрипта: BashMySQL Версия скрипта: 1.0 RC1 Автор: Wariner Перевод под RusHub: Saymon (Версия скрипта для PtokaX - тут.) Примечания: Скрипт основывается на скрипте Bash.Org.Ru Script автора Nickolya Возможности: v 1.0 RC1 - Возможность смотреть старые цитаты - Всем знакомый баш орг, но теперь хранящий все цитаты в БД
Для начала работы со скриптом надо установить библиотеки LuaSocket и MySQL
Название: ChatHistorySQL Версия скрипта: 1.00 Автор: alex82 Перевод под RusHub: Saymon (Версия скрипта для PtokaX тут.)
Описание: Скрипт предназначен для сохранения истории сообщений главного чата в базе данных MySQL, и последующего вывода ее при подключении к хабу, либо по запросу. Имеется возможность поиска сообщений по нику, IP-адресу, или тексту. Также имеется возможность создания резервной копии базы данных скрипта непосредственно с помощью меню хаба, либо команды в главном чате. Скрипт умеет самостоятельно восстанавливать соединение с сервером MySQL.
Для работы скрипта требуется библиотека MySQL. Перед запуском скрипта необходимо создать базу данных MySQL.
Название: HubTopic Автор: alex82 Перевод под RusHub: Saymon Описание: Скрипт позволяет устанавливать тему чата с использованием команды $HubTopic. Есть возможность смены через меню.
Версия скрипта: 1.00 Версия API: API2 (PtokaX 0.4.0/0.4.1, LUA 5.1) Автор: alex82
Описание: Скрипт предназначен для сохранения истории сообщений главного чата в базе данных MySQL, и последующего вывода ее при подключении к хабу, либо по запросу. Имеется возможность поиска сообщений по нику, IP-адресу, или тексту. Также имеется возможность создания резервной копии базы данных скрипта непосредственно с помощью меню хаба, либо команды в главном чате. Скрипт умеет самостоятельно восстанавливать соединение с сервером MySQL.
ВНИМАНИЕ! Для работы скрипта требуется библиотека MySQL. Перед запуском скрипта необходимо создать базу данных MySQL.