MyDC.ru _ VerliHub _ Помогите реализовать скрипт с PtokaX для Verlihub
Автор: Herurg 9.8.2010, 19:17
Собственно скрипт выводит инфу о топике и айпи адресе подключаегося...
Пример:
[23:04:50] <БОТ> Тема: 'ТУТ МЫ ПИШИМ ТЕМУ', установил Я (22:06:25 / 31.07.10) [23:04:50] <БОТ> Привет Herurg, добро пожаловать на ХАБ. Ваш IP: 189.157.12.11
На удивление работает но дело в том что вторая строчка про айпи адрес пишит ошибку...
[ Lua ERROR ] /etc/verlihub/scripts/WelcomMsg.lua:19: attempt to concatenate global 'sIP' (a boolean value)
Автор: Accelerator 11.8.2010, 19:39
Замени
Код
sIP = VH:GetUserIP(user)
на
Код
sIP = GetIP(user) or ""
Автор: Herurg 11.8.2010, 19:44
Код
Lua ERROR ] /etc/verlihub/scripts/WelcomMsg.lua:18: attempt to call global 'GetIP' (a nil value)
Автор: Nickolya 11.8.2010, 23:56
Вернее будет так:
Код
local _,sIP = VH:GetUserIP(user)
Верли еще возвращает переменную результата выполнения запроса, которая нам обычно не нужна и ее можно опустить пустым значением. + не забываем делать переменные локальными Плюс в верли есть такая штука, почти все вызываемые функции имеют обратимость, но для этого не как в птоке надо сделать return true, а вернуть отличное от 1 значение, если мы не хотим останавливать выполнение функции, то необходимо вернуть 1, http://mydc.ru/r/?http://www.verlihub-project.org/doku.php?id=event_handler_functions помечены как Discardable. Потом необходимо добавлять | в конец отправляемых команд, так сделан верли... Так что выходит что пара функций у нас становится такими:
Код
function VH_OnUserLogin(user) VH:SendDataToUser("<"..Bot.."> Тема: '"..tTopic.Topic.."', установил "..tTopic.SetUser.." ("..tTopic.sDate..")|", user) local _,sIP = VH:GetUserIP(user) VH:SendDataToUser("<"..Bot.."> Привет "..user..", добро пожаловать на Дом.ru P2P сервис. Ваш IP: "..sIP.."|", user) return 1 end
function VH_OnParsedMsgChat(user,data) local cmd = data:match"%b<>%s+(%S+)" if cmd and cmd == "!topic" then local sMsg = data:match"%b<>%s+%S+%s+(.*)" if not sMsg then VH:SendDataToUser("<"..Bot.."> Вы не ввели текст топика|", user) return 0 end tTopic = { sDate = os.date"%H:%M:%S / %d.%m.%y", SetUser = user, Topic = sMsg } SaveToFile(filename, tTopic, "tTopic") end return 1 end