Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Служебные скрипты [PtokaX] _ TopicManager

Автор: Wariner 3.7.2008, 17:53

Название скрипта: TopicManager
Версия скрипта: 1.0 RC1
Версия API: API2
Автор: Wariner
Возможности:
v 1.0 RC1
- Установка(снятие) несменяемого топика
- Уведомление о попытке смены топика группе лиц из списка
- Показ топика по команде в чате
- Ведение истории из n-ого количества топиков и показ их по команде
- Сохранение топиков в файл
- Установка топика написанного вручную или выбраного из истории или сохранений

v 1.0 RC2
- Добавленаа возможность удалять сохранённые топики
- Добавлена очистка топика
- Добавленно предупреждение о использовании стандартной команды хаба
- Исправленна пара багов


 TopicManager.rar ( 3.95 килобайт ) : 220
 

Автор: DrakonSP 19.1.2010, 3:59

Искал подобный скрипт и вот нашёл.
Но хочеться его маленько дополнить...
1. Что бы при повторном нажтии "Админ поставил несменяемый топик/Админ убрал несменяемый топик!!!"
Писало мл "Несменяемый топик уже активирован/Несменяемый топик уже убран"
Типо того =)) я думаю это не сложно реализовать, но мне не удалось =)) потому что я в этом вообще практически ничего не смыслю и пытался делать методом тыка, но ничего не вышло к сожалению =((
2. Так же хотелось бы что бы при активации "несменяемого топика" в файл настроек был так же записан ник того админа который собственно и его активировал. Что бы в дальнейшем использовать его например:
"Админ DrakonSP поставил несменяемый топик!"
"Админ DrakonSP поставил несменяемый топик, поэтому ты не можешь сменить его!"
ну и собственно наоборот:
"Админ DrakonSP убрал несменяемый топик!"
Но есть у меня мыслишка конечно, что файл настроек врятли будет работать как БД, что скорее всего...
Ну если всё таки это возможно, то было бы неплохо.
3. Хотел так же ещё спросить про параметр "owner"
Возможно ли отправка служебного сообщения не только тому нику который указан в этой переменой?
Т.е. другими словами можно ли как то добавить например ещё 1 ник, что бы служ. сообщ. отправлялось обоим?

Если все это возможно при минимальных усилиях, то я очень прошу автора немножко его дополнить.
Если же это всё потребует кардинальных переделок в скрипте, то конечно не стоит заморачиваться.

PS. Чуть не забыл...
И возможно ли что бы на профиль "Master" (0) "несменяемый топик" не распространялся,
Т.е что бы "Master" (0) мог изменять топик даже, когда он несменяем. Вот =))
Спасибо

Автор: Unterlink(X-Sky) 19.1.2010, 6:44

Хм, зачем писать пост, держать его некоторое время, пока на него не ответят а затем полностью его изменять?
Глупо...

Автор: Wariner 19.1.2010, 21:52

Итак, по просьбе человека выше переработал скрипт полностью + добавил кое чего ещё)))

тестим отписываемся)))

Автор: DrakonSP 19.1.2010, 23:03

Спасибо!
Тестим...

Автор: DrakonSP 20.1.2010, 22:46

Цитата
[22:08] Синтаксис F:\Program Files\PtokaX\scripts\TopicManager.lua:157: bad argument #2 to 'format' (string expected, got nil)

Ошибка происходит, когда какой нить из опов или админов к примеру пытаеться сменить топик, при том условии что он "Поставлен несменяемый топик"
При этом Птока выдаёт выше указанную ошибку и топик меняеться =))
Эта строка как я понял овечает за отправку сообщения лицам из списка tControlNicks

Итак нашёл ещё пару ошибок
строка 111 ("<%s> Несменяемый не установлен!!! (Последний раз снял %s %s)")
Ну тут чисто слово "топик" пропущено =))
Ну и в коде баг. Не ["Adnin"] а ["Admin"] наверно, но этот параметр указан так везде поэтому всё работает,
Просто в базу данных так же сохраняет ["Adnin"] =))
И ещё один возможно самый серьёзный недочёт
Меняю топик на 123456 (к примеру)
Сохраняю топик
Меняю топик на другой какой нибудь из истории
Потом меняю опять на 123456
Пытаюсь его сохранить
Ну и мне соотвественно пишет, что мл такой топик уже сохранён
сохранил "такой то такой то" во "столько то столько то"
но ник не того админа который сохранял этот топик в действительности и время не то во сколько этот топик был сохранён
Зато ник и время совпадают с последним кто менял топик, т.е. в базе данных TopicHistory.tbl он под №1
И самое интересное что он никакого отношения к топику 123456 не имеет вообще
Т.е почему то инфа берёться из TopicHistory.tbl
Вообщем вот такой вот баг =))

Автор: Wariner 20.1.2010, 23:02

Вроде поправил пробуйте))))

Автор: DrakonSP 20.1.2010, 23:25

Цитата(Wariner @ 20.1.2010, 23:02) *
Вроде поправил пробуйте))))

Пасиба
И ещё 1 вопрос мона?
стандартная смена топика в Птоке !topic <раздватри>
У Вас же применена другая технология =) !topic null <раздватри>
И вообщем проблема в том, что если пользоваться стандартной командой, то топик тупо отчищается.
Нельзя ли как нить это урегулировать.
Ну типа там...
Код
topic = topic null

Или эта фишка не прокатит?

Автор: Unterlink(X-Sky) 21.1.2010, 8:20

А как насчёт попробовать?))

Автор: DrakonSP 21.1.2010, 12:34

Дело в том что я не програмист и ничего практически не смыслю
Я просто подумал что такой вариант возможен
Но как его реализовать до конца не знаю
Т.е меня напрягают всякие мелочи типа ""
Надо ли их ставить или нет
Так же непойму что делать с префиксом
И в конце концов я не представляю куда нужно это все вписывать, т.е в какую часть скрипта
Вообщем решил спросить

А так же ещё хотел попросить автора что бы он сделал кнопочку "Отчистка базы данных"
Надо же как то базы подчищать =)) И вообще супер будет =))

Автор: Wariner 23.1.2010, 18:57

новая версия в первом посту!

Автор: DrakonSP 23.1.2010, 21:34

Несменяемый топик включен.
При любой попытке изменения топика,
Будь, то !topic 12345
или !topic null 12345
И даже !topic null
Происходит ошибка:

Код
Синтаксис F:\Program Files\PtokaX\scripts\TopicManager.lua:173: bad argument #2 to 'format' (string expected, got nil)

Разница лишь в том, что
При !topic 12345 - Топик меняеться на '12345'
При !topic null 12345 - Топик меняеться на 'null 12345'
При !topic null - Топик меняеться на 'null'
Паходу тут серюёзная запара с этим null'ом.

Автор: Wariner 23.1.2010, 21:41

перезалил))))

Автор: DrakonSP 23.1.2010, 23:54

Код
Синтаксис F:\Program Files\PtokaX\scripts\TopicManager.lua:220: bad argument #2 to 'format' (string expected, got nil)

Когда жмёшь на кнопочку "Отчистить топик" =))
При этом топик меняеться на всё тот же 'null' =))
А в остальном всё ок
Респект! Гуд скрипт!

Автор: X-Sky 28.5.2010, 18:02

Wariner, выручай, помоги сделать так, чтобы по команде #topic <текст> топик обновлялся, то есть, чтобы к тому тексту, что есть в топике, добавлялся ещё текст, заданный командой обновления.

Например:
Я поставил топик с текстом "Траляля" (!topic траляля)

Цитата
Топик хаба: Траляля [X-Sky]

Топик обновил NiKe10 с текстом "Ололо" (#topic Ололо)
Цитата
Топик хаба: Траляля [X-Sky] *** Ололо [NiKe10]

Топик обновил опять же я с текстом "Тест" (#topic Тест). То есть первое сообщение с топика удаляется, остаётся только второе и обновлённое третье.
Цитата
Топик хаба: Ололо [NiKe10] *** Тест [X-Sky]

Если же кто-то попытается сменить топик обычной командой, то топик ставится только с заданным текстом.
Юзер 123 ставит топик "разразраз" (!topic разразраз)
Цитата
Топик хаба: разразраз [123]



+ ещё, не могу добавить в топик ник юзера, поставившего его.
При изменении этого куска кода:
Цитата
else
SetMan.SetString(10, sTopic, tUser.sNick)
Core.SendToAll(("<%s> Топик хаба изменен на: %s (by %s)"):format(sBot, sTopic, tUser.sNick))
end
end
if sTopic then

вылетает ошибка:
Цитата
bad argument count to 'SetString' (2 expected, got 3)



+ слово "null" всё-таки не вписывается в команду, если вводить её вручную

Думаю поймёшь о чем я
Заранее спасибо.

Автор: Nickolya 29.5.2010, 14:02

Чтобы не вылетала ошибка в 220 строке замените

Код
Core.SendPmToNick(tControlNicks[i], sBot,("%s пытался сменить топик на: %s"):format(tUser.sNick, sTopic))
на
Код
Core.SendPmToNick(tControlNicks[i], sBot,("%s пытался сменить топик на: %s"):format(tUser.sNick, sTopic or "[пустая команда]"))


X-Sky, чтобы дополнить топик не надо вписывать еще 1 аргумент, надо дополнить строку:
Код
SetMan.SetString(10, sTopic.." ("..tUser.sNick..")")


С обновлением топика ты заморочал конечно, тебе надо чтобы при определенной команде в топике было 2 топика? scorn.gif

Автор: X-Sky 29.5.2010, 16:22

Да, и чтобы первый топик постоянно, при каждом обновлении сдвигался вникуда, то есть удалялся

Автор: Wariner 29.5.2010, 16:47

и ты предлагаешь первый топик от второго отделять звёздочками? тогда их придётся запретить! + нафига такой гемор?

Автор: X-Sky 29.5.2010, 16:51

Да не надо их запрещать! Пусть будут!

Цитата
+ нафига такой гемор?

Не хочется - не делайте, я не заставляю же! Просто попросил помочь. Ваше дело отказаться!

Автор: elektrosistema 17.7.2010, 16:10

Уменя такой вопрос) можно сделать какнибудь чтобы в топике отображался еще ник в скобках?

и как можно сделать чтобы вместо команды !topic null было !топик?А то я некак немогу сделать(

Автор: Nickolya 25.7.2010, 16:14

Как добавить ник описано мною выше, а команды на которые реагирует скрипт описаны в таблице

Код
local tTrigs = {                                                                -- команды с помощью которых у вас на хабе меняется топик
    ["!topic"] = true,
    ["/topic"] = true,
    ["+topic"] = true,
    ["#topic"] = true  
}

Автор: MeR 31.8.2010, 8:00

вопрос такой, где подкаректить время смены топика? тоесть что бы задать время смены топика, и вообще в этом скрипте же можно такое сделать т.е изменить время? тогда странно почему не было добавлено нечто в меню или в настройки самого скрипта помойму полезная строчка была бы) и ещё одна просьба, как и куда добавить функцию кол-во топиков в базе вообще т.е в сохранённой базе? тоже хорошая весч была бы) знать сколько топиков вообще) т.к када допустим топиков много больше 1к и идёт смена топика по времени интересно юзверам знать сколько таких топиков красивых) как то так. да и админу что бы не замарачиваца с подсчётом всех топиков по команде легко узнал и усё) если этих функций нету в скрипте то плз напишите их и куда добавить или что изменить) или же если вам это понравилось то переделайте скрипт под эти функции=) ну вот что то из этого)

Автор: Inkvizitor_ks 23.3.2014, 12:25

Спасибо, вроде бы работает, но...
Если топик был очищен, и вызываешь из меню команду "Показать топик", то скрипт останавливается и выдаёт ошибку:

[11:16:11] <Информатор> ...ы\[Ptokax_0.5.0.0_mod3_x86]\scripts\TopicManager.lua:127: bad argument #2 to 'format' (string expected, got nil)
[11:16:28] <Информатор> У вас нет прав для использования этой команды!

Можно ли как нибудь обойти проблему?
Или просто заменить команду очистки топика, использовать команду поставить топик вписав дежурную фразу...
Или может быть сделать проверку на наличие фразы в топике, если она есть - то срабатывает команда показа топика, если нет - то пусть так и пишет в чат что топик пуст... Простите, не знаю как добавить такую проверку... Заранее благодарю за совет
Используется Ptokax_0.5.0.0_mod3_x86

Автор: Alexey 26.3.2014, 21:51

Замени строку №125 на

Код
local sTopic = SetMan.GetString(10) or "не установлен."

Автор: Inkvizitor_ks 28.3.2014, 17:34

Цитата(Alexey @ 26.3.2014, 22:51) *
Замени строку №125 на
Код
local sTopic = SetMan.GetString(10) or "не установлен."

Спасибо!! теперь не выдает ошибок, и все отлично работает!)