Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
7.3.2009, 20:15 |
Trivia Mod API2 | Игра "Викторина" |
Цитата игра в личке. бот не зарегистрирован на хабе. Так не может быть. Бот ВСЕГДА регистрируется если игра ведётся в личке, вне зависимости от настроек. Проверил режим игры в личке - ошибок не заметил, сообщения нормально ретранслируются всем игрокам. |
Milena | ||
7.3.2009, 19:26 |
Trivia Mod API2 | Игра "Викторина" |
Попробуй подвинуть скрипт в самый верх. |
Milena | ||
7.3.2009, 18:18 |
Создание Dll |
Ну ладно. Тады продолжим в том же духе. Создание библиотеки под API2 Урок второй: Вызов WinAPI функции из Lua-скрипта. Необходимые инструменты: * PtokaX 0.4.x.x * Borland C++ Builder * Текстовый редактор с подсветкой кода C (в принципе, можно использовать редактор встроенный в C++ Builder, но лично мне он не очень нравится) * А также клавиатура, мышь, и немного мозга 1. Создаём проект DLL-библиотеки (на языке C), и сразу же лезем в его настройки (Project -> Options). Здесь выбираем Build configuration - Base, переходим на вкладку C++ Compiler -> General compilation, и меняем опцию Calling convention на Fastcall (Register). Далее переходим на на вкладку Linker -> Linking, и отключаем пункт Dynamic RTL. Ну вот, с настройками вроде разобрались. Теперь переименуем проект. Назовём его, ну, скажем, PXHello. 2. Пишем код: Код #include <windows.h> //Это необходимо для использования функций WinAPI #include "lua.h" #include "lualib.h" #include "lauxlib.h" #pragma comment(lib, "PXLua.lib") //Собственно, это и есть функция, которую мы будем вызывать из Lua-скрипта: static int msgbox (lua_State *L) { //Функциям, вызываемым из Lua-скриптов, всегда передаётся только один аргумент - адрес массива lua_State, который содержит информацию о состоянии Lua //При вызове функции из скрипта, её аргументы помещаются в стек. const char *header = luaL_checkstring (L, 1); //Забираем из стека первый аргумент функции const char *text = luaL_checkstring (L, 2); //Забираем из стека второй аргумент функции MessageBox(0,text,header,0); //Вызываем функцию WinAPI MessageBox return 0; } //Массив luaL_reg, содержащий список функций, которые можно будет вызвать из скрипта. В нашем случае функция всего одна. static const struct luaL_reg functions[] = { {"MessageBox", msgbox}, {NULL, NULL}, //Так всегда должен выглядеть последний элемент массива luaL_reg }; //Функция, вызываемая при инициализации библиотеки: int libinit (lua_State *L) { luaL_register (L, "Win", functions); //Второй аргумент - имя таблицы, в которую будут помещены функции, доступные из скриптов, третий аргумент - адрес массива luaL_reg (См. выше) return 1; } Далее создаём в папке проекта файл с расширением .def (имя файла может быть любым), и добавляем в него следующее: Код LIBRARY PXHello.dll EXPORTS luaopen_pxhello =@libinit @0 ; libinit(lua_State *) После чего добавляем файл в проект. 3. Сохраняем проект и компилируем библиотеку. 4. Пишем скрипт: Код require "pxhello" function OnStartup() Win.MessageBox("Hello World!!!", "Фигасе!!! Это работает!") --Первый аргумент - заголовок окна сообщения, второй - текст, отображаемый в окне end Если Вы всё сделали правильно, то при запуске скрипта появится сообщение: [attachment=1759:2009_03_07_165023.gif] Ну, вроде бы всё. Во всяком случае на сегодня. Да, чуть не забыл. [attachment=1761:PXHello.rar][attachment=1760:PXHello_source.rar] |
Invisible | ||
3.3.2009, 18:55 |
Hub Menu API2 | Меню для встроенных команд PtokaX |
В меню есть команда для просмотра списка скриптов. Если скриптов много, то имеет смысл включить упрощённое меню управления скриптами: Код ScriptEasy = true |
Milena | ||
1.3.2009, 5:54 |
Anekbot API2 | Анекдоты из Интернета |
подскажи пожалуйста как её востановить? можно даже просто кд только скажи куда его вписать, если сложно вписывать, то сделай пожалуйста как надо, бот этот одна из самый крутых вещей на нашем хабе ИМХО Строка 183: Код local Server = tCfg.Server Сразу после неё добавь Код if RandomServer then Server = math.random(1,table.maxn(tServers)) end И в настройках: Код RandomServer = true |
Milena | ||
28.2.2009, 19:31 |
Anekbot API2 | Анекдоты из Интернета |
ой всё=) Перезагрузили сервер и заработал на 5 с + Спасибо за бота отличный! вот вопрос можно сделать чтоб он не только с одного сервера брал а скажем со всех сразу или по выбору с определенного количества, меняя их каждый раз когда приходит время выводить новое сообщение в чат? Можно. Некоторое время такая фича даже присутствовала в скрипте. Потом убрал как бесполезную. ( |
Milena | ||
27.2.2009, 18:24 |
Anekbot API2 | Анекдоты из Интернета |
Такая проблема, всё установил работает...проходит время он просто выпадает Ошибка: Ошибка при загрузке парсера anikdot.ru: файл anikdot.lu не найден [17:26:03] Ошибка: Ошибка при загрузке парсера best-aneks.com: файл best_aneks.lu не найден [17:26:03] Ошибка: Ошибка при загрузке парсера wow.by: файл wow_by.lu не найден [17:26:03] Ошибка: Ошибка при загрузке парсера allprikol.ru: файл allprikol.lu не найден [17:26:03] Ошибка: Ошибка при загрузке парсера pda.anekdot.ru: файл pda_anekdot.lu не найден [17:26:03] Ошибка: Ошибка при загрузке парсера bash.org.ru: файл bash.lu не найден Парсеры загружаются только при запуске скрипта, либо по команде !anekrestart. Соответственно, само по себе это происходить не может. Птоха 4.1.1.1 Нету такой птоки. |
Milena | ||
26.2.2009, 8:23 |
Hub Menu API2 | Меню для встроенных команд PtokaX |
тогда нужна проверка на доступность комманды по профилям. если левый профиль воспользовался не той командной то ему пишется что "у вас нет прав доступа на это действие" Цитата Скрипт использует встроенные настройки профилей. Не вижу смысла добавлять какие-либо ещё - даже если менюшки не появятся, команды всё равно будут доступны. и всё таки доверенные ники сделать стоит. у меня 3 Опа с одинаковым профилем. при моём к ним доверии я точно знаю что только один из них понимает к сему могут привести эксперименты со скриптами Цитата Зачем было давать ОПам доступ к командам управления скриптами, а потом отключать эти команды в скриптах? |
Milena | ||
26.2.2009, 8:14 |
Hub Menu API2 | Меню для встроенных команд PtokaX |
MEXAHuK Писатель - не читатель? |
RoL | ||
26.2.2009, 7:38 |
Hub Menu API2 | Меню для встроенных команд PtokaX |
мне пришлось отключить ту часть меню отвечающую за скрипты. дабы мои Опы и заместители не лезли куда попало. не мешает сделать доступ каким профилям будет доступно управление. Скрипт использует встроенные настройки профилей. Не вижу смысла добавлять какие-либо ещё - даже если менюшки не появятся, команды всё равно будут доступны. PS. Зачем было давать ОПам доступ к командам управления скриптами, а потом отключать эти команды в скриптах? |
Milena | ||
25.2.2009, 0:29 |
Hub Menu API2 | Меню для встроенных команд PtokaX |
Название: HubMenu Версия скрипта: 1.01 Версия API: API2 Автор: alex82 Описание: Скрипт создаёт менюшки к встроенным командам PtokaX - смена топика, управление скриптами, баны, и.т.д. Также добавлены команды: !disconnect - отключение юзера от хаба без последующего временного бана. !scriptmoveup и !scriptmovedown - перемещение скриптов соответственно вверх и вниз. !frombot - отправка сообщения юзеру от имени главного бота хаба. Дополнительные настройки прав доступа не требуются - скрипт использует настройки профилей PtokaX. [attachment=2718:HubMenu_1.01.rar] |
Tsd, Invisible, zzipper, Ksan, prapor, Accelerator, Kingston, whuru, Milena, Saymon21, hondas, X-Sky, thehawk, Aлзим, artist07, Djessa, Alexey5176, shur49, Kar@bas, ke(x)one, 111222, мамин_парень, Mishari, Unique | ||
24.2.2009, 23:54 |
Создание Dll |
Если не лень качать 800 с лишним метров, тогда вот - |
Invisible | ||
21.2.2009, 2:29 |
Pxprocess win32 | Функции запуска приложений |
Название библиотеки: PXProcess Версия: первая (и судя по всему последняя) Версия PtokaX: 0.4.1.1 (теоретически должно работать на всех 0.4.х.х, но я не проверял) Описание: Библиотека добавляет к API PtokaX некоторые функции для работы с приложениями: process.run(sProcess, iPriority) - Запускает процесс. sProcess - имя исполняемого файла, iPriority - приоритет (1 - низкий, 2 - средний, 3 - высокий). В случае успешного запуска функция возвращает PID процесса, в случае неудачи возвращается false. process.check(iPID) - Проверяет, запущен ли процесс. iPID - идентификатор процесса. В случае успешного запуска функция возвращает имя исполняемого файла, в случае неудачи возвращается false. process.exec(sName, sCommandLine, iShow) - Запускает файл при помощи командной оболочки Windows sName - имя файла, sCommandLine - параметры командной строки, iShow - отображение окна (1 - нормальное окно, 2 - развёрнутое во весь экран, 3 - свёрнутое, 4 - скрытое) В случае успешного запуска функция true, в случае неудачи возвращается false. [attachment=1665:PXProcess.rar] |
Invisible, Ksan, Milena, MIKHAIL | ||
20.2.2009, 23:06 |
Trivia Mod API2 | Игра "Викторина" |
Цитата NRJ не пытался ничего копировать. Он просто переводил скрипт с lua4 под lua5 + переводил на русский язык + фиксил некоторые баги + кое что дописывал, но основные принципы построения скрипта он не изменял. Насколько я понимаю, почти весь класс TrivEx - дело рук NRJ, ну а curTriv - из оригинального скрипта. Если сомневаешься - почитай чейнджлог викторины на проце. Я ничего не имею против "необычных" реализаций, но какой, черт возьми, смысл в этой функции: Код function curTriv:GetGetQues() if (self.getques == 1) then return 1 end end Не проще ли взять взять значение переменной напрямую? Или это такой способ оптимизации? И подобных моментов в скрипте было довольно много. |
Milena | ||
20.2.2009, 21:01 |
Trivia Mod API2 | Игра "Викторина" |
Milena | |||
20.2.2009, 18:28 |
StatPX API1, API2 | Статистика хаба |
Можно ли в "Пользователи за сутки" добавить их количество? Строка 733 Код html=string.gsub(html,"%[PAGENAME%]","Пользователи, посетившие хаб за прошедшие сутки"..disabled) меняем на Код html=string.gsub(html,"%[PAGENAME%]","Пользователи, посетившие хаб за прошедшие сутки - "..UsersDay..disabled) |
Milena | ||
20.2.2009, 18:18 |
Trivia Mod API2 | Игра "Викторина" |
По поводу путей. Если админ хаба не в состоянии исправить ОДИН параметр в настройках скрипта для того, чтобы скрипт заработал на его устаревшей версии птоки, то такой админ хабу не нужен, хаб проживёт и без него. А элементы ООП убраны вовсе не из соображений оптимизации, а для лучшей читаемости кода. |
Milena | ||
20.2.2009, 17:49 |
Trivia Mod API2 | Игра "Викторина" |
Milena | |||
20.2.2009, 17:06 |
Trivia Mod API2 | Игра "Викторина" |
Название скрипта: Trivia Mod Версия: 1.02 Версия API: API2 Автор: alex82 Информация: Скрипт создан на основе Викторины 1.6 (by NRJ), которая в свою очередь основывается на скрипте Trivia (by chill). Изменения относительно оригинального скрипта: * Перевод на API2 * Оптимизация и уплотнение кода * Некоторые изменения функционала: - Запоминание последнего состояния игры - Юзеры могут самостоятельно включать Викторину (отдельные настройки автоотключения) [attachment=2752:Trivia_Mod_v1.02.rar] [attachment=2753:Trivia_Mod_v1.02.7z] Версия, поддерживающая Lua 5.3: [attachment=7225:Trivia_Mod_v1.02a.7z] PS. Убедительная просьба сообщать о найденных ошибках. |
Tsd, zzipper, truth, Drakula, Alexey, Kingston, whuru, Milena, PSIX, Saymon21, Pro009, Inkvizitor_ks, DEN 007, stone, мамин_парень, Mishari, Jimchat, Barbarossa178 | ||
19.2.2009, 3:38 |
StatPX API1, API2 | Статистика хаба |
Milena | |||
17.2.2009, 17:24 |
StatPX API1, API2 | Статистика хаба |
Решение достаточно оптимальное, и, главное, простое. Но практика показывает, что флуд от скрипта прекращается через несколько дней после запуска, так что в данной модификации нет необходимости. |
Milena | ||
9.2.2009, 23:44 |
StatPX API1, API2 | Статистика хаба |
Milena | |||
7.2.2009, 21:11 |
StatPX API1, API2 | Статистика хаба |
Milena | |||
7.2.2009, 17:28 |
Функции Для Разработчиков склад полезных функций |
Функция форматирования шары, решающая сию проблему чисто математически. Код function GetNormalSize(size, num) size = size or 0 local tSize, sSize = {" B"," kB"," MB"," GB"," TB"," PB"}, "" for i in pairs(tSize) do if size < 1000 then sSize = tSize[i] break end size = size/1024 end local tmp1, tmp2 = 1, 0 if size > 0 then num = num or 3 while size < 10^num do size, tmp1 = size*10, tmp1*10 end size, tmp2 = math.modf(math.floor(size)/10); tmp2 = tmp2*10 if tmp2 >=5 then size = size+1 end size = size/tmp1*10 end return tostring(size)..sSize end Первый аргумент - собственно размер шары в байтах, второй - до скольки знаков округлить значение шары. Если второй аргумент отсутствует, шара округляется до 3-х знаков. |
Invisible, Saymon21, мамин_парень | ||
6.2.2009, 21:40 |
StatPX API1, API2 | Статистика хаба |
Скрипт классный работает нормально Спасибо большое alex82. Есть единственный маленький вопрос. можно ли сделать что бы инфа MOTD.txt отсылалась не в чат а в личку при заходе Строка 174 Код Core.SendToNick(user.sNick,"<"..sBot.."> "..msg) меняем на Код Core.SendPmToNick(user.sNick,sBot,msg) Цитата баг: не сразу реагирует рекорд. старый рекорд был 587 юзеров. на 601 почему то не среагировал. рекорд шары работает норм. ОК. Гляну. |
Milena | ||
6.2.2009, 17:40 |
StatPX API1, API2 | Статистика хаба |
Milena | |||
6.2.2009, 12:25 |
Anekbot API2 | Анекдоты из Интернета |
Название скрипта: AnekBot Версия: 1.00 beta Версия API: API2 Язык: русский Автор: alex82 Описание: Скрипт скачивает анекдоты из Интернета и отсылает в главный чат. Анекдоты могут выводиться как автоматически, так и по запросу пользователя. В настройках скрипта уже имеются 6 серверов - anikdot.ru, best-aneks.com, wow.by, allprikol.ru, pda.anekdot.ru, bash.org.ru (последний - не совсем анекдоты, но тоже весело). Есть возможность добавления новых серверов. Также есть возможность чтения анекдотов из локальной базы. Для работы скрипта требуется библиотека LuaSocket. Дополнительная информация: Скрипт имеет один серьёзный недостаток: подвисание хаба во время запроса информации из Интернета. Это происходит не из-за ошибки в скрипте, а благодаря глючной библиотеке LuaSocket. В связи с этим разработка скрипта замораживается на неопределённый срок - до появления нормальной библиотеки для работы с сокетами. Скачать: [attachment=1592:AnekBot_1.00_beta.rar] База анекдотов (8400 штук): [attachment=1593:base.rar] |
Invisible, whuru, Dzhin, Sekretchik, Milena, PSIX, Saymon21, SAG, AfLc, Nikolaevich, zeusby | ||
4.2.2009, 20:07 |
StatPX API1, API2 | Статистика хаба |
Цитата можно еще про очистку базы узнать. через сколько времени и по какому принципу проходит? Пока что только вручную - с помощью менюшки. В следующей версии наверное добавлю автоочистку. |
Milena, мамин_парень | ||
3.2.2009, 21:54 |
StatPX API1, API2 | Статистика хаба |
Вроде нашёл Так это выглядит: В архиве модуль с инсталлятором и шаблон hubstat.tpl. Остальное не выкладываю, потому как совсем сырое. [attachment=1554:joomla.rar] |
Milena | ||
3.2.2009, 21:28 |
StatPX API1, API2 | Статистика хаба |
Для Джумлы 1.0 начал писать модуль, но до конца ниасилил. Статистика на главной полностью готова, остальное в зачаточном состоянии. Если надо, могу выложить (если найду, конечно ). |
Milena | ||
3.2.2009, 13:20 |
StatPX API1, API2 | Статистика хаба |
StatPX Версия скрипта: 1.06 Версия API: API2 Системные требования: PtokaX 0.4.x.x, Lua 5.1 Автор: alex82 Возможности скрипта:
Скриншоты Web-статистика: Web-статистика встроенная в DataLife Engine: Web-статистика встроенная в PHP-Nuke: Web-статистика встроенная в PHP-Fusion: Скачать: [attachment=5138:StatPX_1.06.rar] Старые версии [attachment=5107:StatPX_1.06_beta.rar] [attachment=4668:StatPX_1.05.rar] [attachment=3940:StatPX_1.04a.rar] [attachment=2917:StatPX_1.03_beta2.rar][attachment=2760:base_converter.rar] [attachment=3686:StatPX_1.02.rar] (последняя версия, поддерживающая API1) История версий Изменения в версии 1.05: Исправлена ошибка в функции поиска IP (attempt to concatenate global 'IP' (a nil value)) Исправлена ошибка в функции просмотра топа хабберов (attempt to concatenate global 'sRank' (a nil value)) Небольшое исправление в шаблоне gagme.tpl Исправление в логе чата: при отправке в чат сообщения от третьего лица (команда !me), лог чата не обновлялся. Изменения в версии 1.05 beta: Переписаны функции обработки команд. Добавлено отображение возраста хаба. Добавлена возможность просмотра топа шары на хабе. Оптимизация отправки сообщения дня. В систему шаблонов добавлены переключатели, благодаря чему стало возможным отключение некоторых функций веб-статистики без необходимости редактирования шаблонов. Добавлен лог главного чата. Лог отображается в сообщении дня и на странице веб-статистики. Добавлено отображение графиков на странице веб-статистики. Удалена функция удаления префиксов из ников. Настройки скинов убраны из файла конфигурации. Теперь они хранятся непосредственно в папке скина. Удалена возможность выбора скина из меню. Переверстаны шаблоны "По умолчанию" и "Простой". Изменения в версии 1.04: Оптимизация кода веб-статистики. Производительность веб-статистики увеличена на несколько порядков. Добавлена возможность отображения списка заглушек скрипта GagMe. Изменения в версии 1.03 beta2: Исправлена сортировка топа шары. Изменения в версии 1.03 beta: Изменен формат базы данных, благодаря чему потребление памяти снизилось примерно на 20%. Оптимизация и уплотнение кода. Исправлено несколько мелких ошибок. Прекращена поддержка API1. Изменения в версии 1.02: Добавлена возможность отправки сообщения дня со статистикой. Полностью переписана функция GetRanks() - основной источник "тормозов" в скрипте. Изменён алгоритм генерации списка пользователей онлайн, пользователей за сутки, топа шары и топа хабберов. Добавлена чистка памяти по таймеру. Добавлена чистка памяти после каждого обновления Web-статистики (рекомендуется для больших хабов). Добавлена возможность отключения списка пользователей за сутки (рекомендуется для больших хабов). Добавлена функция очистки базы данных. Добавлена поддержка PtokaX 0.4.1.x. Добавлена поддержка PHP-Nuke и PHP-Fusion. |
Nickolya, intlive, Taulalan, Tsd, Invisible, zzipper, PRIZrak, Артём, p_marozov, Accelerator, Karumo, Rez911, truth, Infinity_Love, Satib, KT315, Alexey, darkangel17, Andrew Frost, Kingston, whuru, Milena, CrazyKiller, PSIX, Saymon21, leonss, Syndicate, hondas, Dimon21, X-Sky, TiGRpp, balbes, Aлзим, Pro009, Werwolf, Naum_Off, forrz, mastersweet, 2man, WINS, TommyKaira, ParKur, Has21, lankmv, доктор ливси, Blazer, xXx-Portal, KCAHDEP, stone, GULAM33, Hashish, мамин_парень, Unique, Nikolaevich, advent | ||
24.1.2009, 8:33 |
Informer API1, API2 | Скрипт рассылки сообщений |
Название: InformEr Версия: 1.01 Версия API: API1, API2 Автор: alex82 Язык: русский Возможности скрипта: *Периодическая рассылка сообщений в главный чат. *Рассылка сообщений в личку при входе юзера на хаб (можно установить количество рассылок для каждого сообщения). *Ручная рассылка сообщений от имени главного бота хаба в главный чат и в личку. *Возможность создания справки. Для каждого раздела справки создаётся меню. Дополнительная информация: *При автоматической рассылке сообщений в чат используется система антифлуда - при отсутствии сообщений пользователей рассылка приостанавливается (для нормальной работы антифлуда, скрипт должен стоять выше любых скриптов, модифицирующих сообщения пользователей). *Количество рассылок сообщений в личку может учитываться как по нику, так и по IP. *В сообщениях можно использовать переменную [USER] - при рассылке она будет заменена на имя пользователя, которому отсылается сообщение. *Текст сообщения или раздел справки может быть прочитан из файла - для этого необходимо ввести вместо сообщения "file:ИМЯ_ФАЙЛА". [attachment=2968:InformEr_1.02.rar] |
dimetrius, Invisible, truth, whuru, Milena, Saymon21, TiGRpp, Pro009, Тёмич, stailzoRE, ke(x)one, мамин_парень | ||
|
Сейчас: 23.11.2024, 5:34 |