Версия для печати темы
MyDC.ru _ Запросы скриптов для PtokaX _ ! Часто Задаваемые Вопросы !
Автор: Setuper 18.1.2009, 13:38
Где скачать хаб PtokaX?
Читаем внимательно тут: http://mydc.ru/topic19.html
Автор: Setuper 18.1.2009, 13:49
Как сделать отсылку сообщения пользователю при входе на хаб?
Простейший код реализации отсылки сообщения в чат пользователю при входе:
API 2:
Код
local sMsg=[[
Ваше сообщение
(можно даже в несколько строк!)
]]
function UserConnected(tUser)
Core.SendToUser(tUser,sMsg)
end
RegConnected=UserConnected
OpConnected=UserConnected
API 1:
Код
local sMsg=[[
Ваше сообщение
(можно даже в несколько строк!)
]]
function NewUserConnected(tUser)
tUser:SendData(sMsg)
end
OpConnected=NewUserConnected
Простейший код реализации отсылки сообщения в
приват пользователю при входе:
API 2:
Код
local sMsg=[[
Ваше сообщение
(можно даже в несколько строк!)
]]
function UserConnected(tUser)
Core.SendPmToUser(tUser,"Бот",sMsg)
end
RegConnected=UserConnected
OpConnected=UserConnected
API 1:
Код
local sMsg=[[
Ваше сообщение
(можно даже в несколько строк!)
]]
function NewUserConnected(tUser)
tUser:SendPM("Бот",sMsg)
end
OpConnected=NewUserConnected
Автор: Wariner 18.1.2009, 13:53
Как прописать абсолютные пути?
Для API 2:
Код
sFile = Core.GetPtokaXPath().."scripts/папка/файл"
Для API 1:
Код
sFile = frmHub:GetPtokaXLocation().."scripts/папка/файл"
Автор: Setuper 18.1.2009, 14:14
Что такое MOTD или как установить сообщение при входе?
MOTD - это сокращение от Message Of The Day. Переводится как "Сообщение дня". Показывается при входе на хаб. Для старых версий PtokaX устанавливается на первой вкладке. Для новых версий устанавливается в настройках. Для отсылки данного сообщения в приват нужно установить галочку: "Отправлять сообщение дня в приват".
Автор: Setuper 18.1.2009, 14:29
Как по команде сделать показ сообщения (например правил хаба)?
1. Открываем папку, где располагается файл PtokaX.exe, и заходим в папку texts.
2. Создаём в этой папке текстовый файл.
3. Переименовываем этот файл (например в имя rules.txt)
4. Открываем его, и пишем сообщение (например правила хаба)
5. Ищем в настройках хаба настройку: "Включить текстовые файлы" (В старых версиях настройка находится во вкладке "Настройки" справа. В новых версиях в "основных настройках" - "Больше настроек"). Там же можно (если необходимо) установить отправку этого сообщения в приват.
6. Для старых версий там же в настройках нужно перезагрузить текстовые файлы (или просто воспользоваться командой в чат !reloadtxt).
Всё готово и по команде !rules можно будет увидеть правила хаба.
Таким образом можно создать любые текстовые сообщения по команде. Например, можно сделать правила, сайты, хабы сети, информацию для операторов и тд. и тп.
Автор: Setuper 18.1.2009, 14:41
Как сделать контекстное меню для команды?
Допустим, у вас есть команда !rules, по которой показываются правила хаба, команда !hubs, по которой показываются хабы сети и команда !radio, по которой показываются транслируемые через сеть радиостанции. Вы хотите, чтобы эти команды можно было вызывать из контекстного меню хаба.
API 2:
Код
function UserConnected(tUser)
Core.SendToUser(tUser,"$UserCommand 1 3 Меню хаба\\Правила хаба$<%[mynick]> !rules||"..
"$UserCommand 1 3 Меню хаба\\Хабы-друзья$<%[mynick]> !hubs||"..
"$UserCommand 1 3 Меню хаба\\Сетевое радио$<%[mynick]> !radio||")
end
RegConnected,OpConnected=UserConnected,UserConnected
API 1:
Код
function NewUserConnected(tUser)
tUser:SendData("$UserCommand 1 3 Меню хаба\\Правила хаба$<%[mynick]> !rules||"..
"$UserCommand 1 3 Меню хаба\\Хабы-друзья$<%[mynick]> !hubs||"..
"$UserCommand 1 3 Меню хаба\\Сетевое радио$<%[mynick]> !radio||")
end
OpConnected=NewUserConnected
Автор: Setuper 7.2.2009, 21:04
Как запретить скачивать и искать на хабе незарегистрированным?
Код
local sMsg="Вы не зарегистрированы. Пользоваться поиском и скачивать запрещено!"
function ConnectToMeArrival(tUser)
if tUser.iProfile==-1 then
if Core then
Core.SendToUser(tUser,sMsg)
else
tUser:SendData(sMsg)
end
return true
end
end
RevConnectToMeArrival,SearchArrival=ConnectToMeArrival,ConnectToMeArrival
Автор: Setuper 8.2.2009, 18:41
Как написать функцию оповещения об ошибках скрипта?
Код
function OnError(s)
local h=io.open("errors.log","a+")
if h then
h:write(os.date()..": "..s.."\r\n")
h:close()
end
if Core then
Core.SendToOpChat(s)
else
SendToOpChat(s)
end
end
Автор: Setuper 28.2.2009, 17:48
Как запретить пользоваться чатом и личкой на хабе незарегистрированным?
API2:
Код
local sMsg=[[Сообщение о недоступности чата и лички незарегистрированному]]
function ChatArrival(tUser)
if tUser.iProfile == -1 then
Core.SendToUser(tUser,sMsg)
return true
end
end
ToArrival=ChatArrival
API1:
Код
local sMsg=[[Сообщение о недоступности чата и лички незарегистрированному]]
function ChatArrival(tUser)
if tUser.iProfile == -1 then
tUser:SendData(sMsg)
return 1
end
end
ToArrival=ChatArrival
Автор: Setuper 7.3.2009, 2:41
Как запретить символы в нике для определённых профилей?
Код
tSmbs={
[0]="", -- Master
[1]="", -- Operator
[2]="[®™]", -- Vip
[3]="[®™]", -- Reg
[-1]="[®™]", --UnReg
}
tBeginSmbs={ -- хотя цифры (одну) можно записать как %d
[0]="", -- Master
[1]="", -- Operator
[2]="[1234567890]", -- Vip
[3]="[%[%]%!]", -- Reg -- запрет []! в самом начале ника (1 символ)
[-1]="[%.@]", --UnReg -- запрет .@
}
function UserConnected(tUser)
local sSmb=tBeginSmbs[tUser.iProfile]
if sSmb and string.find(tUser.sNick,"^("..sSmb..")") then
Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
Core.Disconnect(tUser)
end
sSmb=tSmbs[tUser.iProfile]
if sSmb and string.find(tUser.sNick,"("..sSmb..")") then
Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
Core.Disconnect(tUser)
end
end
RegConnected=UserConnected
OpConnected=UserConnected
Автор: Setuper 7.3.2009, 2:43
Как изменить выводимые в чат ники пользователей?
Код
tNames = {
["Вася"] = "Барабас",
["Петя"] = "Гондурас",
}
function ChatArrival(tUser, sData)
if tNames[tUser.sNick] then
Core.SendToAll("<"..tNames[tUser.sNick].."> "..sData:sub(tUser.sNick:len()+4, -2))
return true
end
end
Автор: Wariner 9.3.2009, 10:46
Как сделать действие по команде?
Код
function ChatArrival(tUser, sData)
local cmd = sData:match"%b<>%s+(%S+).*|"
if cmd == "!команда" then
-- здесь вписываем то, что должно происходить по команде!
return true
end
end
Код одинаков для обих API единственное различие что в конце команды под
API 2 надо писать
return true, а под
API 1 -
return 1
Автор: Setuper 19.3.2009, 14:35
Как сделать приветствие с указанием времени суток?
Код
function UserConnected(tUser)
local iHour, sMsg = tonumber(os.date"%H"), tUser.sNick..". Добро пожаловать на хаб!"
if iHour >= 5 and iHour < 12 then
Core.SendToUser(tUser, ("Доброе утро %s"):format(sMsg))
elseif iHour >= 12 and iHour < 18 then
Core.SendToUser(tUser, ("Добрый день %s"):format(sMsg))
elseif iHour >= 18 and iHour <= 23 then
Core.SendToUser(tUser, ("Добрый вечер %s"):format(sMsg))
else
Core.SendToUser(tUser, ("Доброй ночи %s"):format(sMsg))
end
end
RegConnected, OpConnected = UserConnected, UserConnected
Автор: Wariner 27.5.2009, 8:49
Есть ли скрипт статистики скачивания на хабе?
Нет, такой скрипт невозможно реализовать из-за того что скачка идёт напрямую между клиентами не затрагивая хаб.
Поэтому невозможно создать скрипт статистики не на количество скачиваемого не на то что скачивают(названия файлов)!!!
Автор: Setuper 9.8.2009, 13:30
Как сделать оповещение в ОпЧат о слишком большой шаре пользователя?
Код
local iShareLimit = 15 * 0x100000 * 0x100000 -- 15 ТБ
local sReport = "Подозрительно большая шара у пользователя: "
function MyINFOArrival(tUser, sData)
Core.GetUserData(tUser, 16)
if tUser.iShareSize >= iShareLimit then
Core.SendToOpChat(sReport..tUser.sNick.." ["..tUser.sIP.."]. Шара: "..tUser.iShareSize)
end
end
Автор: Wariner 1.11.2009, 10:21
Как сделать ограничения действий или добавить исключения по профилям?
в начале помещаем таблицу
Код
local tProfiles = {
[0] = 1, -- Мастер
[1] = 1, -- ОПератор
[2] = 0, -- VIP
[3] = 0, -- Зарегистрированный пользователь
[-1] = 0, -- Незарегистрированный юзер
}
затем в куске кода который надо ограничить пишем
Код
if tProfiles[tUser.iProfile] == 1 then
-- кусок кода
end
Кусок кода будет выполнятся только для того профиля для которого в таблице
tProfiles стоит еденичка!
Автор: Accelerator 8.6.2010, 18:47
Как сделать ограничения действий или добавить исключения по никам пользователей?
Создаём таблицу с никами
Код
local tNicks = {
["Вася"] = 1, -- Васе доступно использование команды (т.к. значение = 1)
["Петя"] = 0, -- Пете использование команды не доступно (т.к. значение = 0)
}
затем в куске кода который надо ограничить пишем
Код
if tNicks[tUser.sNick] == 1 then
-- код
else
Core.SendToUser(tUser, "<"..SetMan.GetString(21).."> Использование команды для вас не доступно!")
end
Автор: alex82 24.7.2010, 12:23
Как установить/удалить/запустить PtokaX как службу?
Консольная версия PtokaX прекрасно умеет устанавливать себя как системную службу.
- Установка сервиса:
Код
PtokaX.exe -i "имя сервиса"
Аналог: Код
PtokaX.exe /install "имя сервиса"
- Удаление сервиса:
Код
PtokaX.exe -u "имя сервиса"
Аналог: Код
PtokaX.exe /uninstall "имя сервиса"
- Запуск сервиса:
Код
PtokaX.exe -s "имя сервиса"
Аналог: Код
PtokaX.exe /service "имя сервиса"
- Установка конфиг директории:
Код
PtokaX.exe -c "абсолютный путь до директории"
- Получение версии:
Код
PtokaX.exe -v
Аналог: Код
PtokaX.exe /version
- Помощь по командам:
Код
PtokaX.exe -h
Аналог: Код
PtokaX.exe /help
- Отключение проверки ключа в $Key команде:
Код
PtokaX.exe /nokeycheck
Примеры:
Конфигурирование директории и установка сервиса:
Код
"C:\Program Files\PtokaX\PtokaX.exe" -c "C:\PtokaX\" -i "PtokaX"
Удаление сервиса:
Код
"C:\Program Files\PtokaX\PtokaX.exe" -u "PtokaX"
Для запуска и остановки службы можно также использовать консольную программу
NET, входящую в состав Windows. Команда запуска службы:
Код
NET START PtokaX
Команда остановки:
Код
NET STOP PtokaX
Автор: Accelerator 10.6.2011, 16:28
Как сделать сообщение, которое будет выдаваться при входе на хаб(Перед надписями "Этот хаб работает ...")?
Код
local sMsg = "Пожалуйста, подождите, идёт загрузка хаба..." -- сообщение, выдаваемое при входе на хаб
function ValidateNickArrival(tUser, sData)
Core.SendToUser(tUser, sMsg)
end