Автор: Рыжий 25.6.2008, 14:29
Выложите у ково есть токой скрипт Который приведствует каждый профель
типо того [Bot]PtokaX ••• Поприветствуем Оператора хаба "Nik"•••
Автор: Jaska 25.6.2008, 15:45
Цитата(Рыжий @ 25.6.2008, 17:29)
Выложите у ково есть токой скрипт Который приведствует каждый профель
типо того [Bot]PtokaX ••• Поприветствуем Оператора хаба "Nik"•••
Подобного рода скрипт можно и самому написать. Ничего сложного нет. Объясню пошагово как же написать свой первы скрипт (Лучше начинать с приветствий)
Шаг 1.Задаем имя бота. Допустим
Код
sBot = "Ваше_имя_бота"
либо если хотите чтоб ваш бот имел имя вашего системного бота
Код
sBot = frmHub:GetHubBotName()
frmHub: - обращение к вашему хабу
GetHubBotName - Что именно вам надо (Тем кто хоть чуть знает английский думаю проблем разобраться с API PtokaX не составит проблем)
Шаг 2.Теперь нужно отыскать нужную нам функцию. Итак лезем в папке с PtokaX.exe и открываем Scripting-Interface.txt находим раздел Functions смотрим дальше. NewUserConnected(tUser) - вот что нам надо. Функция выполняется при коннекте юзера к хабу. Итак записываем
Код
function NewUserConnected(User)
tUser - таблица с информацией о подключившемся пользователе. Имеет вид:
tUser = {
"sNick" = Ник
"sIP" = ip-адрес итп }
Шаг 3.Итак теперь нам надо разграничить т.е. "кому что отсылать". Обычно различные сообщения отсылаются в зависимотси от профиля зашедшего юзера. Чтож не будем менять традицию =) Создаем таблицу с сообщениями. Каждому профилю присваивается свое сообщение.
Код
sProfMessages = {
[0] = "Приветствую мастер",
[1] = "Приветствую ОПератор",
[2] = "Приветствую ВИП",
}
[0] - индекс, "Приветствую мастер" - его значение. И не забывайте после каждого значения ставить ","
Шаг 4.Теперь надо чтобы хаб различил какой у вас профиль и отослал соответствующее сообщение. Пишем
Код
sProfMes = sProfMessages[tUser.iProfile]
sProfMes - произвольная переменная
sProfMessages - таблица содержащая сообщения профилей.
tUser.iProfile - ваш профиль.
Допустим вы мастер. Ваш профиль = 0 (по дефолту) Получается запись вида sProfMessages[0] что равно "Приветствую мастер" т.е. по индексу мы присваиваем переменной sProfMes значение индекса [0]
Шаг 5.Теперь это сообщение надо отправить.
Код
if sProfMes then
tUser:SendData(sBot,""..sProfMes.." "..tUser.sName.."")
SendToAll(sBot,""..sProfMes.." "..tUser.sName.."")
end
tUser:SendData - отправить юзеру в чат (tUser:SendPM - в личку)
SendToAll - Отправить всем
if sProfMes then -- проверяем существует ли сообщение которые мы собираемся отправить юзеру. Если допустим будет подключаться регистр. юзеро профль у которого = 3 (по дефолту) то не имея это проверки бот выдаст ошибку потому что в таблице sProfMessages нет сообщения для профиля = 3
В PtolaX так же есть функция которая срабатывает при подключении оператора (OpConnected). Чем отличается оператор от простого пользователя. Для нас оператор - юзер с полномочиями для хаба оператор - юзер с "ключиком". Он выделяется среди всех прочих (цветом и местоположением в списке юзеров в клиенте DC++) К чем все это? Да к тому что в нынешнем состоянии скрипт будет отправлять сообщение только ВИПам (профиль == 2) потому что они не имеют ключика с функция срабатывает при их подключении. Для того чтобы наш скрипт работал полноценно приравняем
Код
OpConnected = NewUserConnected
Только так и никак иначе. Ибо функция NewUserConnected уже описана и содержит определенные действия. Написав NewUserConnected = OpConnected мы при заходе випа регюзера и гостя будем выполнять функция OpConnecyted которая у нас в скрипте не описана.
в конце концов получаем
Код
sBot = frmHub:GetHubBotName()
sProfMessages = {
[0] = "Приветствую мастер",
[1] = "Приветствую ОПератор",
[2] = "Приветствую ВИП",
}
function NewUserConnected(tUser)
sProfMes = sProfMessages[tUser.iProfile]
if sProfMes then
tUser:SendData(sBot,""..sProfMes.." "..tUser.sName.."")
SendToAll(sBot,""..sProfMes.." "..tUser.sName.."")
end
end
OpConnected = NewUserConnected
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Все описанное выше - результаты моего самообучения Lua. Я не профессионал и не могу утверждать что мои "приемы" идеальны. Я действую в общепринятых рамках. В данном мануале могут содержаться неточности и грубости. Прошу не судите строго я всего лишь хочу поделиться тем что сам понял и знаю.
Автор: Рыжий 25.6.2008, 18:11
Спосиба большое я понел с первого раза))0
Автор: MEXAHuK 4.11.2008, 16:01
Jaska, спасибо!
а можно тоже самое но только под АПИ2?
Автор: district 8.11.2008, 9:43
Есть старый-престарый скрипт Инфо пользователя от Semjon, 2005 года.
Я его немного подредактировал, приветствие у меня выглядит примерно так:
Цитата
[12:04:23]
Baш IP: **.**.**.**
Baш клиeнт: ApexDC++ , вepcия: 1.1.0
Bы нa 1 xaбax и y вac oткpытo 10 cлoтoв
Baшa шapa: 241.38 Gb., Baшe oпиcaниe: ...
Baш пpoфиль: Master
Oбщaя шapa xaбa: 19.327 Tb.
Ceйчac нa xaбe: 64 пoceтитeлeй.
[12:04:23] <БoтПpoщaйMoлoдocть>
Пpивeтcтвyю, [INT]district, paд видeть в дoбpoм
здpaвии! :-)
Дописал строчку по желанию автора топика:
Код
SendToAll(Bot, "Пришел "..v[2].." "..user.sName..", ура, товарищи! :-)")
Изменяйте под свои потребности, хотя по мне, так эта мельтешня с ивещениями в чате совсем ни к чему. (У меня такой строчки нет ) :-)