От: Экзекутор (ekzekutor), От темы с ID: 1403 |
Здравствуйте, гость ( Вход | Регистрация )
От: Экзекутор (ekzekutor), От темы с ID: 1403 |
24.2.2009, 13:27
Сообщение
#1
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Функционал скрипта достаточный, однако написан скрипт не лучшим образом с точки зрения оптимальной работы. Почти в каждой функции проверяется платформа хаба, что не слабо грузит (если посчитать столько лишних действий делается при том или ином событии, то получается внушительная цифра). Скрипт не тестил, однако не думаю, что он работает быстро, так как структура написания оставляет желать лучшего.
|
|
|
24.2.2009, 18:15
Сообщение
#2
|
|
Продвинутый участник Группа: Пользователи Сообщений: 179 Регистрация: 24.2.2009 Из: Самара Пользователь №: 2 340 Спасибо сказали: 103 раза |
Ну проверено, работает довольно быстро, вполне себе нравится Структура нормальная Поделись своими практическими соображениями, если не трудно, в таком случае
Спасибо Спасибо сказали: |
|
|
24.2.2009, 18:35
Сообщение
#3
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Я так понимаю, что ты автор скрипта?
Огрехи в оптимизации обычно сказываются, когда на хабе народу за тысячу (или даже за несколько тысяч). Первое что бросилось в глаза в данном скрипте - это проверка в функциях на использование той или иной платформы (имеются ввиду функции на подобии PMToUser, PMToAll и тд.). Лучше сделать так: написать 2 файла (например verli.lua и ptokax.lua). В одном файле пишутся API функции verli, во втором API функции ptokax. В основном исполняемом файле вместо этих функций написать код: Код if Core then в данном случае нужные функции будут загружаться в зависимости от платформы хаба и нагрузка на проверку по части исполнения той или иной функции исчезнет. Для большей читаемости кода всё же советую раздробить на большее количество файлов (и самому буде легче разобраться что и где).
if loadfile(ptokax.lua) then dofile(ptokax.lua) end else if loadfile(verli.lua) then dofile(verli.lua) end end |
|
|
24.2.2009, 18:37
Сообщение
#4
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
а почему такой выбор верли + птока? редко бывают такие скрипты!
|
|
|
24.2.2009, 19:35
Сообщение
#5
|
|
Продвинутый участник Группа: Пользователи Сообщений: 179 Регистрация: 24.2.2009 Из: Самара Пользователь №: 2 340 Спасибо сказали: 103 раза |
Я так понимаю, что ты автор скрипта? Огрехи в оптимизации обычно сказываются, когда на хабе народу за тысячу (или даже за несколько тысяч). Первое что бросилось в глаза в данном скрипте - это проверка в функциях на использование той или иной платформы (имеются ввиду функции на подобии PMToUser, PMToAll и тд.). Лучше сделать так: написать 2 файла (например verli.lua и ptokax.lua). В одном файле пишутся API функции verli, во втором API функции ptokax. В основном исполняемом файле вместо этих функций написать код: Код if Core then в данном случае нужные функции будут загружаться в зависимости от платформы хаба и нагрузка на проверку по части исполнения той или иной функции исчезнет. Для большей читаемости кода всё же советую раздробить на большее количество файлов (и самому буде легче разобраться что и где).if loadfile(ptokax.lua) then dofile(ptokax.lua) end else if loadfile(verli.lua) then dofile(verli.lua) end end Спасибо за идею Ну я просто пользовался и Птокой и Верлихабом, на винде и Линуксе. Поэтому создал этот скрипт под себя Каких-то тормозов не заметил. Народа 500-600 человек. Функции тоже добавлялись по мере надобности Так что приветствуются любая критика и предложения и нет ограничений на использование идей проекта Спасибо сказали: |
|
|
24.2.2009, 22:19
Сообщение
#6
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Интересно чем обусловлен переход с verli на ptokax? Вроде как, сев на верли, с него уже не слезают, так как впечатляет производительность, скорость и возможность работы с бд.
|
|
|
24.2.2009, 22:39
Сообщение
#7
|
|
Продвинутый участник Группа: Пользователи Сообщений: 179 Регистрация: 24.2.2009 Из: Самара Пользователь №: 2 340 Спасибо сказали: 103 раза |
Да нет, просто у меня знакомые, которые работают с Птокой на Винде. Верли на серваке... Вобщем, была надобность иметь и для Птоки и для Верли бота И чтобы не писать параллельно одно и тоже для разных серверов, решил объединить и писать универсально. Сейчас вот доработать скрипт, усовершенствовать, будет удобно. По твоему совету сделаю локализацию в виде отдельных файлов-плагинов. Так очень удобно добавлять любые локализации других хабов. Так что, есть перспектива
Спасибо сказали: |
|
|
27.2.2009, 13:39
Сообщение
#8
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Ну этим ты никого не удивил. Данный приём работает в каждом втором скрипте.
Спасибо сказали: |
|
|
27.2.2009, 14:27
Сообщение
#9
|
|
Продвинутый участник Группа: Пользователи Сообщений: 179 Регистрация: 24.2.2009 Из: Самара Пользователь №: 2 340 Спасибо сказали: 103 раза |
Ну этим ты никого не удивил. Данный приём работает в каждом втором скрипте. Ну я не видел таких "вторых" скриптов Посмотри сначала что это ;) Хотя может я отстал от жизни Например для тогго, чтобы сделать просто команду, например, получения прикола с башорга, надо добавить просто триггер и одну строчку ответа на него И у тебя готов цитатник башорга с форматированием и получением в ПМ текста запрошенной цитаты и тому подобное Например, пример для цитатника башорга: Создать триггер с шаблоном: ^[%%%+!]баш_[%%%d]$ Добавить ему ответ: {class:1:Команда только для зарегистрированных}{var:Q="%s(%d+)"}{repl:"="'" <="<" >=">" <br%s/>="\n" <br>="\n"}{url:http://bash.org.ru/quote/[Q],1,,"<div>[^<].-</div>"<div>([^<].-)</div>"\n%1\n}{exit} И всё По команде !баш <номер> в ПМ от Экзекутора будет приходить эта цитата Ну это как пример.... |
|
|
1.3.2009, 7:26
Сообщение
#10
|
|
Освоившийся участник Группа: Пользователи Сообщений: 314 Регистрация: 13.10.2008 Пользователь №: 791 Спасибо сказали: 9 раз |
совет от человека помучившимся со скриптами достаточно много: раздели бота чисто для верлика и чисто птоки(у меня 800 юзерей и хаб начал заметно подвисать). не иди путём Jashka который создаёт изумительные скрипты для двух api сразу и которые имеют изумительные баги.
скрипт у тебя норм. upd и ещё: у меня на хабе 9 профилей. и из-за этого на хабе не показываются менюшки (совсем) можешь тут примерно сказать что и как нужно сделать чтобы меню были? у меня вот такие профили Код pAdmin = { --Профили, имеющие доступ к статистике IP/ников [0] = 1, -- =[админ]= [1] = 1, -- =[заместитель админа]= [2] = 1, -- =[старший ОП]= [3] = 1, -- =[младший ОП]= [4] = 1, -- =[Старший вип]= [5] = 1, -- =[младший вип]= [6] = 1, -- =[админ других ресурсов]= [7] = 1, -- =[сервер]= [8] = 1, -- =[Отличившийся]= [9] = 1, -- =[зарегенный]= [-1] = 0, } upd2 при следующих доработках/модификациях можно писать какие конкретно функции изменены? я просто целиком и полностью выдрал из бота всё что связано с верликом |
|
|
1.3.2009, 14:25
Сообщение
#11
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
там столько папок что и не понятно что куда вкидовать....
|
|
|
1.3.2009, 16:01
Сообщение
#12
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Всего 3 папки. Это разве много?
|
|
|
1.3.2009, 19:01
Сообщение
#13
|
|
Продвинутый участник Группа: Пользователи Сообщений: 179 Регистрация: 24.2.2009 Из: Самара Пользователь №: 2 340 Спасибо сказали: 103 раза |
совет от человека помучившимся со скриптами достаточно много: раздели бота чисто для верлика и чисто птоки(у меня 800 юзерей и хаб начал заметно подвисать). не иди путём Jashka который создаёт изумительные скрипты для двух api сразу и которые имеют изумительные баги. скрипт у тебя норм. upd и ещё: у меня на хабе 9 профилей. и из-за этого на хабе не показываются менюшки (совсем) можешь тут примерно сказать что и как нужно сделать чтобы меню были? у меня вот такие профили Код pAdmin = { --Профили, имеющие доступ к статистике IP/ников [0] = 1, -- =[админ]= [1] = 1, -- =[заместитель админа]= [2] = 1, -- =[старший ОП]= [3] = 1, -- =[младший ОП]= [4] = 1, -- =[Старший вип]= [5] = 1, -- =[младший вип]= [6] = 1, -- =[админ других ресурсов]= [7] = 1, -- =[сервер]= [8] = 1, -- =[Отличившийся]= [9] = 1, -- =[зарегенный]= [-1] = 0, } upd2 при следующих доработках/модификациях можно писать какие конкретно функции изменены? я просто целиком и полностью выдрал из бота всё что связано с верликом Как я понял у Вас Птока? Тогда придётся подкорректировать сами функции: Код function UsrClassConvert(usercl) usercl=tonumber(usercl) or -1 if localization == "verlihub" then if usercl==-1 then usercl=0 end return usercl elseif localization == "ptokax04" then if usercl==0 or usercl==1 then return 10 elseif usercl==-1 then return 0 elseif usercl==2 then return 5 elseif usercl==3 then return 3 elseif usercl==4 then return 2 elseif usercl==5 then return 1 end end return usercl end --конвертация класса пользователя в/из 10-бальную шкалу Вот тут ты для каждого профиля возвращаешь аналог в стиле верлихаб. Тоесть для админа (класс 0) ты вернёшь 10, тоесть у Экзекутора основные классы в стиле верлихаб: 0 (унрег), 1 (рег), 2 (вип) 3 (оп) 5 (мастер) 10 (админ). Ты свои профили продумай к каким категориям отнести и переделай эту функцию под себя. Если возникнут проблемы, пиши мне тут или в асю 233-560-855. Код function isVip(user) if localization == "verlihub" then if GetUsrClass(user) == 2 then return true end elseif localization == "ptokax04" then if RegMan.GetReg(user) and UsrClassConvert(RegMan.GetReg(user).iProfile)==2 then return true end end return false end -- проверка на VIP Тут проверка на ВИП. Измени число 2 на нудный тебе класс с правами ВИП. В стиле верлихаб. Точнее, эту функцию не нужно будет переделывать (проверь, соответствует ли код этому), если ты переделаешь конвертацию (первую функцию). Аналогично при необходимости посмотри: function isModer(user) и function isMaster(user) Листинг кода верных процедур: Тут для Модера преобразованный класс 4 или выше, а для мастера 5 или выше. Если устраивает, то проверь код процедуры: Код function isModer(user) if localization == "verlihub" then if GetUsrClass(user) >= 5 and GetUsrClass(user) < 10 then return true end elseif localization == "ptokax04" then if RegMan.GetReg(user) and UsrClassConvert(RegMan.GetReg(user).iProfile)>=4 then return true end end return false end -- проверка на Moder function isMaster(user) if localization == "verlihub" then if GetUsrClass(user) == 10 then return true end elseif localization == "ptokax04" then if RegMan.GetReg(user) and UsrClassConvert(RegMan.GetReg(user).iProfile)>=5 then return true end end return false end -- проверка на Master (битовое) Далее найди авторегистрацию пользователей. У меня при авторегистрации регистрирует с профилем 5. Тоесть Рег у меня под индексом 5. Замени на нужный тебе (на 9). Найди блок -----------------------------регистрация---------------------------------------------->>> найди строчку RegMan.AddReg(curUser, sPas, 5) и замени на RegMan.AddReg(curUser, sPas, 9) Далее отредактируй таблицу разрешений в файлах меню BotMenu.lua и HubMenu.lua там у каждой команды в таблице ["PROFILES"]={ идёт перечень классов, которым эта команда разрешена. Добавь классы в соответствии со своими и тогда будет работать меню как положено |
|
|
1.3.2009, 20:56
Сообщение
#14
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
|
|
|
1.3.2009, 21:18
Сообщение
#15
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
|
|
|
1.3.2009, 21:32
Сообщение
#16
|
|
Освоившийся участник Группа: Пользователи Сообщений: 314 Регистрация: 13.10.2008 Пользователь №: 791 Спасибо сказали: 9 раз |
|
|
|
1.3.2009, 22:17
Сообщение
#17
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
Ну либо у нас с Setuper`ом массовые глюки либо их там действительно 3 ИХ не 3!!! Ekzekutor (папка,а в той папке скрипты и 2е папка),ЗаглушкаНеизвестныхКомандПтоки.lua,Ekzekutor.lua и наконецто архив PXLuaSocket-2.0.2.rar который я не могу понять куда втулить нада.... |
|
|
1.3.2009, 22:21
Сообщение
#18
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
я вот не понимаю, люди делают кросплатформенный скрипт, а тебе лень даже подумать -_-. Чо то ты дерзкий. |
|
|
1.3.2009, 22:27
Сообщение
#19
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
продолжаем оффтопить(позже я это уберу)!
2Артём считаем главная папка Ekzekutor - раз, подпапки txt - два welcome - три. Всё остальное это часть скрипта и текстовые файлы!!! Вообще не понимаю зачем настаивать на своём если не прав... |
|
|
1.3.2009, 22:57
Сообщение
#20
|
|
Продвинутый участник Группа: Пользователи Сообщений: 179 Регистрация: 24.2.2009 Из: Самара Пользователь №: 2 340 Спасибо сказали: 103 раза |
3???Их не три....а куда вложить PXLuaSocket-2.0.2.rar ? Я не могу понять как поставть... Содержимое архива с LuaSocket распаковать просто в папку с Птокой. Всё что есть, просто распаковать и всё У экзектора только одна папка (по умолчанию Ekzekutor), где хранится всё что касается его LuaSocket это не часть Экзекутора, это просто то, что требуется в наличии в Птоке для его работы. В инструкции описано в разделе Установка Прости, но не могу, специально делал именно кроссплатформенный, так как такая нужда есть Если тебе интересно, но хочешь именно униплатформу, то пиши мне в асю, решим твою пробелму Кстати, если так нужно, можно просто найти в скрипте все участки с if localization == ... и удалить условие и лишний код. относяцийся к другой локализации, оставив лишь участок условия нужный. Будет некроссплатформенный Кстати, потом планирую кроссплатформенность сделать более удобной и правильной, как было тут мне предложено и что я учёл. Так что пока жду предложений по функционалу и работе самого скрипта, чтобы сразу потом в финальную версию 2.0 всё внести. |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
Экзекутор (ekzekutor) API2|Универсальный многоязычный бот для PtokaX,VerliHub,RusHub,Eximius |
168 | Phazeus | 228 610 | 27.4.2014, 10:08 Посл. сообщение: Prizrak333 | |
Экзекутор, Верлик и ВДС | 8 | Aлзим | 13 310 | 12.3.2013, 15:40 Посл. сообщение: Артём | |
Бот Экзекутор бот птохи |
1 | Slav | 6 665 | 11.9.2009, 12:43 Посл. сообщение: Maximum |
|
Сейчас: 27.11.2024, 3:58 |