Автор: VeNick 20.8.2009, 10:58
Ищу скрипт для API 2! Смысл скрипта: Пишешь в чат "бот топик" (без ковычек) и бот выдает сообщение в чат "Текущий топик: [и тут написан топик, без квадратных скобак]".
Возможно ли это реализовать, чтоб в чат писать "Бот топик" а не команду вида "!бот трпик" ???
Автор: mariner 20.8.2009, 11:32
не стоит. т.к. тогда если кто-то захочет написать БОт топик (ну мало, ли, зачем) то он не сможет этого сделать. так что стоит отставить префикс команды
Автор: VeNick 20.8.2009, 12:43
Цитата(mariner @ 20.8.2009, 12:32)
не стоит. т.к. тогда если кто-то захочет написать БОт топик (ну мало, ли, зачем) то он не сможет этого сделать. так что стоит отставить префикс команды
Ну вообщето я такую штуку на одном хабе видел, работает без префикса комманды
Автор: VeNick 20.8.2009, 14:39
Цитата(mariner @ 20.8.2009, 14:07)
уж не на [K.lan]Hub ли?
Нет, а что?
Автор: Trans 20.8.2009, 15:08
Почему именно так тебе надо? Чем не удволевторяет вызов топика через меню? Лично у меня в хабе через меню. Предлагаю тебе изменить по своему усмотрению то, что сейчас покажу своё. Просто вместо моей команды пиши свою "Бот топик" или какую хочешь, и не отсылай юзеру меню (закоммментить всю функцию UserConnected).
Код
Bot = SetMan.GetString(21)
function UserConnected(user)
Core.SendToUser(user, "$UserCommand 1 3 Показать топик$<%[mynick]> !shtopic&#*124;") -- тут в конце удалить звездочку *
end
OpConnected = UserConnected
RegConnected = UserConnected
function ChatArrival(tUser, sData)
local sTopic = SetMan.GetString(10)
local sData = string.sub(sData, 1, (string.len(sData) - 1))
local _, _, sCmd = string.find(sData, "%b<>%s+(%S+)")
if sCmd == "!shtopic" then
Core.SendToUser(tUser, "<"..Bot.."> Топик хаба:\n\n ••• "..sTopic.." ••• \n")
return true
end
end
ToArrival = ChatArrival
Вот результат:
Код
[19:00:33] <-Bot> Топик хаба:
••• Наконец-то в Томске лето! •••
Можешь видоизменить его как хочешь.
Кстати, для твоего случая - команда из двух слов - надо изменить эту строку:
Код
local _, _, sCmd = string.find(sData, "%b<>%s+(%S+)")
на:
Код
local _, _, sCmd1, sCmd2 = string.find(sData, "%b<>%s+(%S+)%s+(%S+)")
и эту строку:
Код
if sCmd == "!shtopic" then
на:
Код
if sCmd1 == "Бот" and sCmd2 == "топик" then
Автор: BeN 20.8.2009, 18:04
http://mydc.ru/index.html?showtopic=2305&view=findpost&p=19442
Автор: VeNick 21.8.2009, 8:52
Спасибо А вот ещё один вопросик, как сделать чтоб в лс бот отвечал?
Давно видел тут эту тему, но чет не нашел, короче в лс боту пишешь привет(ну или другие слова), а бот отвечает.
Если можно скажите как сделать