Итак, выкладываю скрипт дающий пока небольшой функционал для управления новоиспеченным RusHub'ом.
Что сделано:
Приветствие, меняется в отдельном файлике hello.txt, все возможные значения для замены в нем уже присутствуют
Регистрация - расширение того, что выложил Илья, теперь команда регистрации доступна только тем кто не зарегистрирован, команда смены пароля, просмотра своего пароля и удаления своей регистрации. По умолчанию удалять свою регистрацию могут только пользователи с профилем 3, менять пароль могут все зарегистрированные. У администраторов теперь есть команды просмотра паролей пользователей, смены профилей пользователей, удаления и добавления регистраций пользователей. Везде ведется контроль за уровнем профиля, т.е. оператор не может добавить к зарегистрированным администратора. Есть мысль регистрировать первого юзера с профилем 0
Маленькие команды помощи, просмотра своего айпи и отсылки сообщения от 3 лица.
Управление скриптами, двигать пока нет возможности, но все остальное доступно. Работа с логом ошибок так же будет позже.
Положено начало системе наказаний командой отключения от хаба, баны будут в следующей версии.
Получилась гибкая легко изменяемая система, команды лежат в файле cmds.lua, по шаблону легко добавляется что угодно. Так же возможные настройки: имя бота и хабтопик, можно задать какие профили будут иметь ключик, за это отвечает параметр bHaveKey таблицы tProfiles что находится в самом начале файла FirstRusHubBot.lua. Пока все, позже будет больше, тестируйте. Для того чтобы стать админом необходимо зарегистрироваться, залезть в файл RegUsers.dat, поменять там параметр ["iProfile"] на 0 рядом с нужным ником, затем перезагрузить скрипты.
Изменения в версии 0.2 по сравнению с предыдущей:
Исправлена совместимость с текущей версией хаба
Ввиду поправленого косяка с функцией скриптов теперь работает управление скриптами
Мониторинг команд профиля, чтобы профиль ниже рангом не мог воздействовать на пользователя имеющего профиль выше
Раширены команды управления регистрацией: пользователь теперь может смотреть свой айпи, администраторы могут смотреть пароли, изменять профиль (забыл про смену пароля юзеру, это записано в todo) и удалять регистрацию пользователей
Команда отключения юзера от хаба
Вот возможности профилей по умолчанию в скрипте на текущую версию:
Администратор
<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 лица. Альтернативы: !ми, !я
я скачал файл кинул папку skript. а потом начинаю активировать скрипт. и пишет ошибку критическую хотя я ничего неделал в скрипте ?
Автор: Setuper 2.1.2010, 18:55
knuckles, этот скрипт написан под RusHub, а не под PtokaX !
Насчет ветки, думаю можно в ближайшее время. А пока могут быть некоторые незначительные изменения api, поэтому, дабы не переписывать по 10 раз скрипты, прямо сейчас, я думаю, не стоит открывать ветку.
Автор: Nickolya 5.1.2010, 7:47
Выложил версию 0.2, все изменения в первом посту, пользуйтесь.
Автор: Setuper 5.1.2010, 13:27
Ух... Отличная работа! Единственное только профили сделаны как в птохе: -1 - анрег 0 - админ 1 - оп 2 - вип 3 - рег
Однако, эта система профилей не очень хороша тем, что анрег выпадает из иерархии (админ < оп < вип < рег, но анрег < админ). Предлагаю сделать так (чем больше профиль, тем больше статус): -1 - анрег 0 - рег 1 - вип 2 - оп 3 - админ
Тогда будет иерархическая лестница. И для проверки различных доступов можно будет применять всего одну операцию сравнения. Думаю это логичнее и оптимальнее.
Автор: Wariner 5.1.2010, 14:28
а если сделать как у Колюхи, токо выкинуть профиль анрегов... нафиг он им вообще? т.е. если нет профиля значит анрег)))
Илюх если сделать как у тебя, то мне кажется возникнет проблема с добавлением профилей...
Автор: Setuper 5.1.2010, 14:47
Просто в скрипте итак всё построено на знаке сравнения профилей. Поэтому речь о добавлении какого-то ещё профиля тут в принципе не идёт, так как в этом случае порушится вся задумка
Автор: Wariner 5.1.2010, 15:03
но надо сделать так чтоб система профилей была гибкой, а не привязанной к определённому числу....
Автор: Setuper 5.1.2010, 15:45
Тогда для иерархической лестницы предлагаю ввести ранее мною упомянутое понятие класса. То есть ставить профилю в соответствие иерархическое значение класса, и проверять права на использование того или иного действия используя команду сравнения для классов, а не для профилей.
Классы можно будет перестраивать после добавления нового профиля. В этом нет проблем, так как классы можно хранить как индексы таблицы, а профили как значения в таблице и добавлять новый класс при помощи функции table.insert(table, class, profile), сдвигая тем самым значения прочих классов.
Для того чтобы стать админом необходимо зарегистрироваться, залезть в файл RegUsers.dat, поменять там параметр ["iProfile"] на 0 рядом с нужным ником, затем перезагрузить скрипты.
Простите, сейчас немного занят, попробую вскоре сделать новую версию с более широкими возможностями и настройками хаба.
Автор: Setuper 5.3.2010, 19:20
Немного отредактировал скрипт. Добавил строку, отвечающую за отсылку ip адресов всех пользователей операторам, а также добавил функцию ContextMenu для использования совместно со скриптом http://mydc.ru/topic3085.html. По умолчанию контекстные менюшки отсылаются при входе. Если у вас установлен скрипт ContextMenu.lua, то для того чтобы менюшки отсылались только по команде, а не при входе нужно в конце функции OnUserEnter закомментировать строку ContextMenu(UID).
Автор: Otshelnik-Fm 5.3.2010, 20:12
Когда заккоментировал строку
Код
--Core.SendToUser(UID, sMenu)
, то не отсылается меню "прислать менюшку" если раскомментировать ее (то есть оставить так как было) - то отсылается пользователю "прислать менюшку" но и остальное меню (от FirstRusHubBot) приходит с нею.
Автор: Saymon 5.3.2010, 20:18
перекачай, у меня сейчас всё нормально.
Автор: Setuper 5.3.2010, 20:18
Скрипт ContextMenu.lua не трогаем. Я говорил про комментирование строки в текущем скрипте!
Автор: Otshelnik-Fm 5.3.2010, 20:22
Спасибо. А я с дуру закомментировал в ContextMenu.lua . FirstRusHubBot.lua - его отредактировать надо. Работает.
Автор: Setuper 5.3.2010, 20:22
В текущем скрипте (FirstRusHubBot) есть функция OnUserEnter. В самом конце этой функции есть вызов функции ContextMenu:
Код
function OnUserEnter(UID) ... ContextMenu(UID) end
Комментируем этот вызов:
Код
function OnUserEnter(UID) ... --ContextMenu(UID) end
Я оставил этот вызов в скрипте незакомментированным, так как FirstRusHubBot - основной бот и иногда просто необходимо чтобы этот скрипт работал и были доступны только его функции.
Автор: lewonchik 11.3.2010, 18:22
Код
[Thu Mar 11 20:18:42 2010] E:/VESSEL~1/scripts/FirstRusHubBot.lua:106: attempt to index field '?' (a nil value)
Выскочила ошибка, прошу помочь исправить...
Автор: Setuper 11.3.2010, 19:18
в 106 строчке вместо:
Код
if tProfiles[iProfile].bHaveKey then
напиши:
Код
if tProfiles[iProfile] and tProfiles[iProfile].bHaveKey then
А вообще, эта ошибка означает, что у тебя в таблице tProfiles описаны не все профили, которые используются. По всей видимости есть какой-нибудь профиль с номером 4 (какой-нибудь модератор)
Автор: lewonchik 11.3.2010, 19:29
Цитата(Setuper @ 11.3.2010, 21:18)
А вообще, эта ошибка означает, что у тебя в таблице tProfiles описаны не все профили, которые используются. По всей видимости есть какой-нибудь профиль с номером 4 (какой-нибудь модератор)
Точно, спасибо большое за помощь, прописал все профили и ошибка пропала!!!
Автор: Drakula 8.5.2010, 20:29
Всё отлично работает НО хотелось бы увидеть баны + определения мак-адреса + бан по мак адресу. P.S. А реально реализовать бан по Айди???
Автор: Nickolya 10.5.2010, 13:54
Хорошо что работает как надо Никак руки не доходят до бота, баны будут обязательно. По маку банить можно будет если он будет известен. Что касается АЙДИ, то откуда ты его возьмешь?
Автор: Drakula 10.5.2010, 14:25
(Про айди)Так вот я и у тебя и спрашиваю возможно ли это как нибудь реализовать=)) А вот по мак адресу это уже неплохо. Не каждому в голову допрёт что в ДЦ можно по маку банить.
P.S. сор что не по теме, а в PtokaX возможно реализовать бан по МАК-адресу??? Если да то отпиши плиз в ЛС что бы не захламлять тему. Заранее сенк.
Автор: Nickolya 11.5.2010, 10:31
Понятия ID нету в протоколе NMDC, так что банить по нему нельзя, по маку банить можно только в пределах сети где стоит хаб, это уже обсуждалось неоднократно, в птоке это не реализуемо. Если интересно - поищи по форуму.
Автор: Saymon 28.10.2010, 20:36
Предложения: 1) гаги, баны, какие возможно) 1.1) + к этому лог банов, киков, гагов (когда, кем, за что был забанен или кикнут) 2) убрать название профиля в меню. Пусть лучше будет отдельно. 3) добавить переменную "посылать мотд или нет" 4) оп чат 5) Меню управления скриптами типа как http://mydc.ru/topic3767.html и при перезапуске, запуске, остановке отдельного скрипта я думаю не нужно показывать список всех скриптов.... 6) текстовые файлы.. 7) переменная использовать ли ContextMenu 8) скрытие из списка юзеров. 9) антиреклама. 10) команды остановить/перезапустить хаб 11) проверка обновлений хаба и Lua плагина 12) чистка регистраций
Автор: Артём 28.10.2010, 20:44
+ бан IP диапазон -
Цитата
я думаю не нужно показывать список всех скриптов...
Доброго времени суток. Я новичёк, только установил и запустил RusHub, скачал этот скрипт, разархивировал, кинул в папку со скриптами. Ничего не произошло, просто голый хаб ничего нового не добавилось. Такой вот вопрос - как активировать скрипт? И как перезапустить скрипт?
потестировал данный скрипт и заметил, что нет проверки на повторный вход: если войти с (зарегистрированным) именем пользователя, который уже подключен к хабу, то первого вошедшего выкидывает с хаба. если первый делает переподключение, то выкидает второго и так до бесконечности могут выкидывать друг друга конечно это можно использовать и как фичу. немного поковырял скрипт и добавил туда
Код
function OnValidateNick(UID, sData) local sNick = UID.sNick local tLUsers = Core.GetUsers() for i, sLUser in ipairs(tLUsers) do if sLUser.sNick == sNick then Core.SendToUser(UID, "*** Doppelganger - No pasaran!", sBot) -- Отсылаем сообщение о дубликате Core.SendToUser(UID, "$ValidateDenide") Core.Disconnect(UID) -- Разъединяем пользователя return false end end local tRegInfo = tRegUsers[sNick] -- Получаем регистрационные данные
... далее по тексту
правда LUA я не знаю и рисовал по подобию - не знаю насколько "коряв" полученный результат, но вроде работает
в отношении привелегий профилей: запретить манипулировать не только вышестоящими профилями, но и себе равными - т.е. только нижестоящими - ИМХО так правильнее будет (себе я так и сделал)
Автор: Alexey 26.2.2011, 17:57
Цитата(Darksome @ 26.2.2011, 16:44)
нет проверки на повторный вход: если войти с (зарегистрированным) именем пользователя, который уже подключен к хабу, то первого вошедшего выкидывает с хаба. если первый делает переподключение, то выкидает второго и так до бесконечности могут выкидывать друг друга конечно это можно использовать и как фичу.
А разве в других хабах по-другому? Это и есть фича: подвисший юзер не помешает зайти в хаб живому.
Автор: Darksome 26.2.2011, 19:03
я имел ввиду - заходя с другой машины/места вытеснятся текущий живой пользователь вместо сообщения, что ник уже занят а подвисшего юзера прибивает сам хаб или не?
Автор: Alexey 26.2.2011, 19:55
Сам, но не всегда сразу. И часто слышны жалобы от незарегистрированных пользователей о том, что их выкинуло из хаба и не пускает обратно по причине занятого ника.
Автор: mod 3.3.2011, 15:44
При нажатии на "Посмотреть скрипты", все норм, но в строке "Папка, содержащая скрипты:" не отображается папка, просто пусто.
Автор: Saymon 9.3.2011, 2:58
Для тех кто не знает в какой папке у них скрипты делаем так: в файле cmds.lua находим строку:
Код
table.multiinsert(tMsg, "\n*** Общее использование памяти скриптами: ", iMemory, " Кб\n", "*** Папка, содержащая скрипты: ", sScriptsDir, "\n")
И меням sScriptsDir на sThisScriptDir или на Core.sScriptsDir
Автор: Hellsing 2.4.2011, 21:41
Всё отлично, спасибо за скрипт, единственное либо это шутка, либо чуть поспешил) если не шутка, то поправьте пожалуйста. Не сочтите за грубость или подстрекание, случайно обнаружил
Код
local tMsg = {"*** Время хабы хаба: ", GetNormalTime(Core.GetUpTime())}
Автор: Saymon21 2.4.2011, 22:01
и? Что не так то?
Автор: Артём 2.4.2011, 22:22
скорей всего, его смутило
Цитата
*** Время хабы хаба:
Hellsing, это не смертельно и на работу скрипта и хаба не влияет
Автор: Saymon21 3.4.2011, 0:03
Блин, ну пиши подробней. Что не так?
Автор: Andrean 3.4.2011, 2:50
Видимо все-таки стоит написать "Время работы хаба" , а не "Время хабы хаба" ))
Автор: CrazyKiller 14.5.2011, 23:02
Хотелось-бы видит в данном скрипте !
1) Сообщение в глав чате о не зарегистрированных людях, с просьбой зарегистрироваться, ну и после Регистрация вывод сообщение в глав чат что зарегистрировался новый пользователь с ником таким-та. 2) Возможность Регистрация через Email. 3) Может глупа, но привязку айпи к нику ( Регистрация ) тоже не помешало, не по принуждение а по выбору. 4) возможность Регистраций Через Вебку, да сложно, но удобно для веб ресурсов !
не подумайте не чего лишнего, это всего предложение !
Автор: CrazyKiller 29.7.2011, 19:41
I Need Help !
Log ./scripts/FirstRusHubBot/cmds.lua:179: warning: function 'SetUser' was deprecated. Use 'UID[sName] = Value' instead
Строка Core.SetUser(tUser.UID, 1, iRegProfile)
Работал Работал, и на тебе !
Ошибка не мешает, но все ровно ошибка есть ошибка
Проявляется когда регистрируешь нового юзера.
Выручите подсказкой пожалуйста !
Автор: Saymon21 29.7.2011, 19:43
Это не ошибка, а варнинг - педупреждение!!! Написано же Use 'UID[sName] = Value' instead - Используйте...
Автор: Dimon21 30.7.2011, 12:24
Версия RusHub 2.3.5 выходит ошибка в логе. Core.SetUser(UID, 4, true) Core.SetUser(UID, 6, true) Core.SetUser(UID, 1, tRegInfo.iProfile) -- Устанавливаем профиль пользователю LUA API функции найдена Core.SetUser(UID/sNick, iType, Value) Функция устарела. Используйте вместо неё прямую установку параметров: UID[sName] = Value или Core.GetUser(sNick)[sName] = Value, где sName - это одна из строк: "iProfile", "sMyINFO", "sData" и тд. У меня не вышло.Запрос пароля идёт а определяет как не зарегистрированый юзер Функция Core.GetUser(sNick).Помогите!
Автор: Setuper 30.7.2011, 12:46
Так в первом посту ведь скрипт исправленный уже довольно давно приложен!
Автор: Dimon21 30.7.2011, 13:35
Setuper спс
Всё таки скрипт не доработан. Есть ошибки. Cmds 105 строка регистрация ...sHub-2.3.5/scripts/FirstRusHubBot/cmds.lua:105: warning: function 'SetUser' was deprecated. Use 'UID[sName] = Value' instead выходит такая ошибка Core.SetUser(tUser.UID, 1, iRegProfile) не изменён Удаление регистрации ...sHub-2.3.5/scripts/FirstRusHubBot/cmds.lua:141: warning: function 'SetUser' was deprecated. Use 'UID[sName] = Value' instead Core.SetUser(tUser.UID, 1, -1) 141 строка не изменена
Автор: Setuper 30.7.2011, 14:01
Ну так замени на:
tUser.iProfile = iRegProfile tUser.iProfile = -1
Автор: Dimon21 30.7.2011, 14:11
Setuper большое спс.Теперь бот полностью работоспособен.
Автор: Dimon21 2.8.2011, 22:15
Setuper помоги мне с ещё 1 ошибкой. команда смены профиля пользователя админами Core.SetUser(tUser2.UID, 1, iProfile) команда удаления пользователя админами Core.SetUser(tUser2.UID, 1, -1) Чем их заменить Core.SetUser(tUser2.UID, 1, iProfile) на это tUser.iProfile = iRegProfile Core.SetUser(tUser2.UID, 1, -1) на это tUser.iProfile = -1
Автор: Angel_D 13.9.2011, 8:41
Вроде все работает. Разве что на RussHub-е 2.3.6 наблюдаем в логах...
Цитата
[Mon Sep 12 18:18:27 2011] ...les/RusHub/scripts/FirstRusHubBot/cmds.lua:105: warning: function 'SetUser' was deprecated. Use 'UID[sName] = Value' instead [Mon Sep 12 18:45:14 2011] ...les/RusHub/scripts/FirstRusHubBot/cmds.lua:105: warning: function 'SetUser' was deprecated. Use 'UID[sName] = Value' instead [Mon Sep 12 19:23:20 2011] ...les/RusHub/scripts/FirstRusHubBot/cmds.lua:105: warning: function 'SetUser' was deprecated. Use 'UID[sName] = Value' instead
Автор: kma21 13.9.2011, 18:58
Ничего в программировании не понимаю, но пытаюсь как-то прикрутить невозможность гостям писать в чат. Т.е. чтобы read-only у гостей было. Сложно ли это реализовать?
Автор: CrazyKiller 13.9.2011, 19:01
Цитата(kma21 @ 13.9.2011, 19:58)
Ничего в программировании не понимаю, но пытаюсь как-то прикрутить невозможность гостям писать в чат. Т.е. чтобы read-only у гостей было. Сложно ли это реализовать?
Вот Скрипт есть ! http://mydc.ru/topic4836.html
Автор: CrazyKiller 25.1.2012, 0:46
Выручите пожалуйста ))) [Mon Jan 23 00:39:45 2012] ./scripts/FirstRusHubBot/cmds.lua:294: warning: function 'SetUser' was deprecated. Use 'UID[sName] = Value' instead
Строка Core.SetUser(tUser2.UID, 1, iProfile)
Автор: Saymon21 25.1.2012, 0:48
заменить на
Код
tUser2.iProfile = iProfile
Автор: CrazyKiller 25.1.2012, 1:14
Спасибо, сходу исправил другие ошибки
Автор: CrazyKiller 25.1.2012, 16:57
Выручите, что нужна изменить и на что, чтоб операторы не могли просматривать пароли, удалять регистрацию, менять профиль, сами-же операторам ? Чтоб операторы могли видеть только Пользователей, а Администратор всех
Автор: ShadoWx 7.2.2012, 10:53
смотрите обнаружил неприятную особенность, удаляю пользователя (как админ) перезапускаю скрипт (при помощи скрипта для управления скриптами) и этот юзер вновь в числе зарегистрированный ... я так понимаю регистрация действует только на текущую сессию?? до перезапуска ..
Цитата(CrazyKiller @ 25.1.2012, 17:57)
Выручите, что нужна изменить и на что, чтоб операторы не могли просматривать пароли, удалять регистрацию, менять профиль, сами-же операторам ? Чтоб операторы могли видеть только Пользователей, а Администратор всех
if tUser.iProfile > tRegUser.iProfile then
заменяем на
if tUser.iProfile >= tRegUser.iProfile then
и так везде где тебе надо ..
Автор: Setuper 7.2.2012, 14:44
Просто не сохраняется удаление. В файле cmds.lua перед строчкой:
Остальное (приветствие, команды: дропа, просмотра собственного IP и отправки сообщения от третьего лица) FRHB_others.zip ( 3.91 килобайт )
: 9
Автор: Артём 21.2.2014, 20:22
В общем, решил перевести на инглишь, а то много иностранцев жалуются, что все скрипты для RusHub на русском, ошибки могут быть, на 98% перевёл... остальное нервы не позволили доперевести. FirstRusHubBot_Eng.rar ( 7.98 килобайт )
: 16