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

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

MyDC.ru _ Запросы скриптов для PtokaX _ Бот топик

Автор: VeNick 20.8.2009, 10:58

Ищу скрипт для API 2! Смысл скрипта: Пишешь в чат "бот топик" (без ковычек) и бот выдает сообщение в чат "Текущий топик: [и тут написан топик, без квадратных скобак]".
Возможно ли это реализовать, чтоб в чат писать "Бот топик" а не команду вида "!бот трпик" ??? still_dreaming.gif

Автор: mariner 20.8.2009, 11:32

не стоит. т.к. тогда если кто-то захочет написать БОт топик (ну мало, ли, зачем) то он не сможет этого сделать. так что стоит отставить префикс команды

Автор: VeNick 20.8.2009, 12:43

Цитата(mariner @ 20.8.2009, 12:32) *
не стоит. т.к. тогда если кто-то захочет написать БОт топик (ну мало, ли, зачем) то он не сможет этого сделать. так что стоит отставить префикс команды


Ну вообщето я такую штуку на одном хабе видел, работает без префикса комманды embarrassed.gif

Автор: mariner 20.8.2009, 13:07

уж не на [K.lan]Hub ли?

Автор: 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

Спасибо still_dreaming.gif А вот ещё один вопросик, как сделать чтоб в лс бот отвечал?
Давно видел тут эту тему, но чет не нашел, короче в лс боту пишешь привет(ну или другие слова), а бот отвечает.
Если можно скажите как сделать