ShowTopic, API2 | Показ топика в чате |
Здравствуйте, гость ( Вход | Регистрация )
ShowTopic, API2 | Показ топика в чате |
12.11.2009, 23:24
Сообщение
#1
|
|
Освоившийся участник Группа: Модераторы Сообщений: 352 Регистрация: 25.7.2009 Пользователь №: 3 960 Спасибо сказали: 73 раза |
Название скрипта: ShowTopic
Версия API: 2 Автор: X-Sky Дата написания: 13.11.09 Описание: По команде выводит в чат топик, заданный на хабе в данный момент. (может кому понадобится) ShowTopic_by_X_Sky_API2.lua ( 1.58 килобайт ) Кол-во скачиваний: 56 Вывод в чат топика по двум командам (например !топик и !топег) ShowTopicForAll_2com_by_X_Sky_API2.lua ( 1.65 килобайт ) Кол-во скачиваний: 27 Показ топика только для юзера ShowTopicForNick_2com_by_X_Sky_API2.lua ( 1.64 килобайт ) Кол-во скачиваний: 24 |
|
|
13.11.2009, 11:24
Сообщение
#2
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
считаю совершенно не нужным 3 скрипта...
давай по порядку: 1)переменные лучше объявлять локальными, поэтому не так Код Bot = "[BOT]Revolution" cmdTop = "топик" tProfiles = { --Кто может использовать команды (1 - да / 0 - нет): [-1] = 0, -- Анрег [0] = 1, -- Админ [1] = 1, -- ОП [2] = 0, -- VIP [3] = 0, -- Рег } а вот так Код local Bot = "[BOT]Revolution" local cmdTop = "топик" local tProfiles = { --Кто может использовать команды (1 - да / 0 - нет): [-1] = 0, -- Анрег [0] = 1, -- Админ [1] = 1, -- ОП [2] = 0, -- VIP [3] = 0, -- Рег } 2) как советовал Setuper лучше использовать венгерскую нотацию для обозначения переменных или хотябы один вид а то у тебя user и User - это совсем разные переменные! Так как это таблица лучше писать tUser 3) вот это Код local _,_,cmd = string.find(Data, "%b<>%s%p(%S+)|") лучше так Код local cmd = Data:match"%b<>%s%p(%S+)|" а это Код if cmd and (cmd == cmdTop) then просто Код if cmd == cmdTop then 4) вот эту часть Код hubtop = SetMan.GetString(10) Core.SendToAll(Data) Core.SendToAll("<"..Bot.."> Топик хаба: "..hubtop.."") return true end вот так Код Core.SendToAll(Data) Core.SendToAll("<"..Bot.."> Топик хаба: "..SetMan.GetString(10).."") return true end PS: не надо в название скрипта писать свой ник PPS: вот набросал как примерно должно получится
Прикрепленные файлы
|
|
|
13.11.2009, 11:44
Сообщение
#3
|
|
Освоившийся участник Группа: Модераторы Сообщений: 352 Регистрация: 25.7.2009 Пользователь №: 3 960 Спасибо сказали: 73 раза |
Цитата Core.SendToAll("<"..Bot.."> Топик хаба: "..SetMan.GetString(10).."") Получается так: Код Топик хаба: тест X-Sky меняет топик на: 1 ПЕРЕЗАХОЖУ НА ХАБ Топик хаба: тест И ещё..) Код [15:44] Синтаксис ...X-Sky\0.4.1.1new\scripts\ShowTopic.lua:39: bad argument #1 to 'SendToAll' (string expected, got nil) P.S. Сильно не ругайся, только учусь писать :( P.P.S. В смысле скрипты |
|
|
13.11.2009, 13:05
Сообщение
#4
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Условие
Код if cmd and (cmd == cmdTop) then было написано правильно. Оно предостерегает от попытки сравнить cmdTop с nil, так как пользователь может отправить, например, пустую строку в чат, и тогда регулярное выражение ничего не захватит.Что касается установки топика, то нужно писать SetMan.GetString(10, "новый топик"). Код: Код Core.SendToAll(Data) Core.SendToAll("<"..Bot.."> Топик хаба: "..SetMan.GetString(10).."") лучше писать в одну функцию: Код Core.SendToAll(Data.."|<"..Bot.."> Топик хаба: "..SetMan.GetString(10)) И конечно же нужно избавляться от очень дурной привычки добавлять конкатенацию с пустой строкой! Не знаю от кого она пошла, но она очень вредная. |
|
|
13.11.2009, 15:43
Сообщение
#5
|
|
Освоившийся участник Группа: Модераторы Сообщений: 352 Регистрация: 25.7.2009 Пользователь №: 3 960 Спасибо сказали: 73 раза |
Цитата Условие было написано правильно. И то радует ^.^ Цитата Не знаю от кого она пошла (конкатенация) Мне так с каким-то скриптом советовал Nickolya В остальном спасибо, Setuper |
|
|
21.11.2009, 19:37
Сообщение
#6
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Ммм исправления будут?)))))
|
|
|
22.11.2009, 6:58
Сообщение
#7
|
|
Освоившийся участник Группа: Модераторы Сообщений: 352 Регистрация: 25.7.2009 Пользователь №: 3 960 Спасибо сказали: 73 раза |
Да, конечно.
Заметался немного, про скрипт забыл Как смогу - выложу, обещаю, занят в последнее время очень |
|
|
|
Сейчас: 23.11.2024, 9:52 |