Ищу разные скрипты под PtokaX 0.4.1.2

Разработка и поиск скриптов, обсуждение PtokaX.
Ответить
Fe[one]X
Сообщения: 5
Зарегистрирован: 25 фев 2010, 22:07

Ищу разные скрипты под PtokaX 0.4.1.2

Сообщение Fe[one]X »

Всем привет. Вчера запустил свой хаб в локальной сети, но не могу найти скрипты для него. Скачал какой-то сборник, а там ничего толком не работает. Подскажите где можно скачать рабочие скрипты для PtokaX 0.4.1.2? Заранее спасибо.
Saymon
Сообщения: 302
Зарегистрирован: 11 янв 2010, 11:23

Сообщение Saymon »

А погуглить? :-D ;-)
Аватара пользователя
ЕгО_ТенЬ
Сообщения: 73
Зарегистрирован: 29 авг 2009, 15:28
Хаб: dchub://casper-house.ru:1411
Откуда: Широта: 55° 4'N , Долгота: 38° 50'E .
Контактная информация:

Сообщение ЕгО_ТенЬ »

Изображение
Последний раз редактировалось ЕгО_ТенЬ 27 фев 2010, 09:17, всего редактировалось 1 раз.
Fe[one]X
Сообщения: 5
Зарегистрирован: 25 фев 2010, 22:07

Сообщение Fe[one]X »

Знакомая до боли картинка. :-)
Ладно, что-то нашёл в Интернете с помощью Google, но чтобы не создавать тему отпишусь здесь.
В общем есть небольшой вопрос по скрипту LifeTimeBot (данный скрипт показывает возраст хаба). Так вот я в нём вбил дату создания хаба, но разница во времени показывается 3 часа, т. е. если я хаб создал в 2 часа дня, то скрипт выдаёт разницу в 3 часа (в 5 часов вечера), видимо в скрипте где-то задаётся часовой пояс, но я не нашёл где. Помогите, буду благодарен. Код прилагаю ниже:

Код: Выделить всё

tSettings = {

	-- Имя бота
	sBot = SetMan.GetString(21),

	-- Название менюшки
	sMenu1 = SetMan.GetString(21),
	sMenu2 = "Информация",
	sMenu3 = "Возраст хаба",	

	-- Дата "Рождения хаба"
	iSetup = {
		year = 2010,
		month = 2,
		day = 24,
		hour = 14,
		min = 43,
		sec = 02
	},

	-- Обновлять топик? [true = да, false = нет]
	bUpdateTopic = false,
		-- С какой периодичностью обновлять топик? (в часах)
		iTime = 1,
}

OnStartup = function()

end

OnTimer = function(tmr)
	-- Update Topic
	if tSettings.bUpdateTopic then
		local iDiff = os.difftime(os.time(os.date("!*t")), os.time(tSettings.iSetup))
		if iDiff > 0 then
			local tTopic = {
				"Наш хаб существует уже [TIME]",
				"Нашему хабу: [TIME]",
				"Наш хаб держится на плаву вот уже [TIME]",
				"Дата 'Рождения' хаба: [TIME]",
			}
			local sTopic = string.gsub(tTopic[math.random(1, #tTopic)], "%[TIME%]", SecondsToTime(iDiff, true))
			SetMan.SetString(10,sTopic)
		end
	end
	collectgarbage(gc); io.flush()
end

ChatArrival = function(user,data)
	Core.GetUserAllData(user)
	local _,_, to = string.find(data, "^$To:%s(%S+)%s+From:")
	local _,_, msg = string.find(data, "%b<>%s(.*)|$") 
	if (to and to == tSettings.sBot) or not to then
		local _,_, cmd = string.find(msg, "^%p(%S+)")
		if cmd and tCommands[string.lower(cmd)] then
			cmd = string.lower(cmd)
			if tCommands[cmd].tLevels[user.iProfile] and tCommands[cmd].tLevels[user.iProfile] == 1 then
				return tCommands[cmd].fFunction(user, msg), 1
			else
				return Core.SendToNick(user.sNick,"<"..tSettings.sBot.."> Ошибка: У Вас нет доступа к данной команде!"), 1
			end
		end
	end
end

ToArrival = ChatArrival

UserConnected = function(user)
	Core.GetUserAllData(user)
	if user.bUserCommand then
		for i, v in pairs(tCommands) do
			if v.tLevels[user.iProfile] then
				Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tSettings.sMenu1.."\\"..tSettings.sMenu2.."\\"..v.tRC[1]..
				"$<%[mynick]> !"..i..v.tRC[2].."&#124;")
			end
		end
	end
	Core.SendToNick(user.sNick,"<"..tSettings.sBot.."> Добро пожаловать на "..(SetMan.GetString(0) or "Неизвестный хаб").." !"); tCommands["lifetime"].fFunction(user)
end

OpConnected = UserConnected

tCommands = {
	lifetime = {
		fFunction = function(user)
			local iDiff = os.difftime( os.time(os.date("!*t")), os.time(tSettings.iSetup))
			if iDiff > 0 then
				Core.SendToNick(user.sNick,"<"..tSettings.sBot.."> Нашему хабу уже "..
				SecondsToTime(iDiff).."!!! Текущее время работы хаба: "..SecondsToTime(Core.GetUpTime(), true).."!")
			else
				Core.SendToNick(user.sNick,"<"..tSettings.sBot.."> Ошибка! Вы ввели неправильную дату 'рождения' хаба!")
			end
		end,
		tLevels = {
			[-1] = 1, [0] = 1, [1] = 1, [2] = 1, [3] = 1, [4] = 1, [5] = 1, [6] = 1,
		},
		tRC = { "Показать возраст хаба", "" }
	},
}

SecondsToTime = function(iTime, bSmall)
	string.gmatch = (string.gmatch or string.gfind)
	local T = os.date("!*t", tonumber(iTime)); 
	local sTime = string.format("%i г. %i мес. %i дн. %i час. %i мин.", T.year-1970, T.month-1, T.day-1, T.hour, T.min)
	if bSmall then
		for i in string.gmatch(sTime, "%d+") do
			if tonumber(i) == 0 then sTime = string.gsub(sTime, "^"..i.."%s(%S+),%s", "") end
		end
	end
	return sTime
end
RegConnected = UserConnected
nd
Администратор
Сообщения: 311
Зарегистрирован: 23 авг 2009, 18:06

Сообщение nd »

os.date ([format [, time]])
If format starts with '!', then the date is formatted in Coordinated Universal Time.
Так что либо задавайте время создания в UTC, либо замените "!*t" на "*t".
Fe[one]X
Сообщения: 5
Зарегистрирован: 25 фев 2010, 22:07

Сообщение Fe[one]X »

Спасибо конечно, но не помогло. Я решил проблему просто поставив время создания 11:42, а считает на 3 часа позже как положено. :-)
Возникла ещё 1 проблемка, скачал скрипт погоды, а он не работает. Зашёл на гис.метео, выставил свой город, но безуспешно. Может кто знает как правильно настроить? Буду благодарен. Код ниже:

Код: Выделить всё

--Ниже находится то, что можно настраивать
sBotName="Погода"
iCityCode = 99948 					-- Код города в gismeteo
iExpireTimeSuccess = 60 * 60 * 6 	-- 6 часов Время обновления в случае удачного получения данных
iExpireTimeFail = 60 				-- 1 минута - Интервал повторения попыток, если получить данные не удалось
sUpChar="•"							-- Символ-заполнитель верхней и нижней строк
iUpChar = 75 * 2					-- Кол-во символов-заполнителей верхней и нижней строк. Нужно подобрать, если будет изменен символ-заполнитель.
sMidChar = ""						-- Символ-заполнитель для разделителя. У меня убрано, т.к. мне кажется, что мешает.
iMidChar = 154						-- Кол-во символов-заполнителей разделителя. Нужно подобрать, если будет изменен символ-заполнитель.
sMainMenu = "Узнать погоду"			-- Название головного меню для команды
--Выше находится то, что можно настраивать

iExpireTime=iExpireTimeSuccess
sAddr = "http://informer.gismeteo.ru/xml/99948_1.xml"
iLastTime = 0
sMsg = ""
sMainMenu = sMainMenu.."\\"
tReqUsers = {}

UserConnected = function(user, data) 
	Core.SendToUser(user, "$UserCommand 1 3 "..sMainMenu.."Погода $<%[mynick]> !погода".."&#124;")
end

OpConnected = UserConnected

ChatArrival = function(user, data)
	local data = string.sub(data,1,-2)
	local _,_,cmd = string.find(data, "%b<>%s+%p(%S+)")
	if (cmd == "погода") then
		local difftime = os.difftime(os.time(), iLastTime)
	    if (difftime > iExpireTime) then
	    	table.insert(tReqUsers, user)
			Core.SendToUser(user, "<"..sBotName.."> Данные устарели, запрашиваю сервер...")
			GetInfo()
			iLastTime = os.time()
		else
			Core.SendToUser(user, "<"..sBotName.."> \n"..sMsg)
	    end
	    return true
	end
end

GetInfo = function()
	local s=require("socket")
	assert(s,"Ошибка загрузки библиотеки socket. Проверьте наличие файлов необходимых библиотек.")
	local h = require("socket.http")
	assert(h,"Ошибка загрузки библиотеки socket.http. Проверьте наличие файлов необходимых библиотек.")
	local fd,sz,hd = h.request(sAddr)
	if fd and sz then
		iExpireTime=iExpireTimeSuccess
		sMsg = string.rep(sUpChar,iUpChar/2).."ПРОГНОЗ ПОГОДЫ"..string.rep(sUpChar,iUpChar/2).."\n"
		local _,_,i1,i2,i3,i4 = string.find(fd,"<item>(.*)</item>.*<item>(.*)</item>.*<item>(.*)</item>.*<item>(.*)</item>")
		if (i1 ~= nil) then
			local _,_,t1,d1 = string.find(i1,"<title>(.*)</title>.*<description>(.*)</description>")
			if (t1 ~= nil and d1 ~= nil) then
				sMsg = sMsg..t1.."\t"..d1.."\n"
			end
		end
		if sMidChar~="" then sMsg = sMsg..string.rep(sMidChar,iMidChar).."\n" end
		if (i2 ~= nil) then
			local _,_,t2,d2 = string.find(i2,"<title>(.*)</title>.*<description>(.*)</description>")
			if (t2 ~= nil and d2 ~= nil) then
				sMsg = sMsg..t2.."\t"..d2.."\n"
			end
		end
		if sMidChar~="" then sMsg = sMsg..string.rep(sMidChar,iMidChar).."\n" end
		if (i3 ~= nil) then
			local _,_,t3,d3 = string.find(i3,"<title>(.*)</title>.*<description>(.*)</description>")
			if (t3 ~= nil and d3 ~= nil) then
				sMsg = sMsg..t3.."\t"..d3.."\n"
			end
		end
		if sMidChar~="" then sMsg = sMsg..string.rep(sMidChar,iMidChar).."\n" end
		if (i4 ~= nil) then
			local _,_,t4,d4 = string.find(i4,"<title>(.*)</title>.*<description>(.*)</description>")
			if (t4 ~= nil and d4 ~= nil) then
				sMsg = sMsg..t4.."\t"..d4.."\n"
			end
		end
		sMsg = sMsg..string.rep(sUpChar,iUpChar/2).."ПРОГНОЗ ПОГОДЫ"..string.rep(sUpChar,iUpChar/2).."\n"
		--sMsg=string.gsub(sMsg,"Южно%-Сахалинск: ", "")  --Раскомментируйте, если хотите убрать название города в начале строки и чувствуете в себе силы забить шаблон вашего города. Лично я знаю, в каком городе живу.
	else
		iExpireTime=iExpireTimeFail
		sMsg="Прогноз погоды в данный момент недоступен. Попробуйте позже."
	end
	for i, user in ipairs(tReqUsers) do
		Core.SendToUser(user, "<"..sBotName.."> \n"..sMsg)
	end
end
Аватара пользователя
CASPER
Сообщения: 295
Зарегистрирован: 24 авг 2009, 12:23
Хаб: dchub://casper-house.ru:1411
Откуда: По ту сторону монитора
Контактная информация:

Сообщение CASPER »

хм , а вы не пробовали сначало узнать что еще нужно для работы этого скрипты??? мож надо какую нить библиотеку ставить , которую можно найти там же в Гугле :-)
Saymon
Сообщения: 302
Зарегистрирован: 11 янв 2010, 11:23

Сообщение Saymon »

Эх.... Для работы всех подобных скриптов которые работают с интернетом нужна библиотека Luasocket.
Тут есть повод обратится вот к http://www.google.com/webhp?hl=ru этому дядьке. ;-)
Последний раз редактировалось Saymon 08 мар 2010, 11:27, всего редактировалось 2 раза.
Аватара пользователя
CASPER
Сообщения: 295
Зарегистрирован: 24 авг 2009, 12:23
Хаб: dchub://casper-house.ru:1411
Откуда: По ту сторону монитора
Контактная информация:

Сообщение CASPER »

мдя , народ совсем скоро обленится ,если ему все будут так прям на блюдечке подавать !

щас он просит , а потом начнет требовать...
Saymon
Сообщения: 302
Зарегистрирован: 11 янв 2010, 11:23

Сообщение Saymon »

не, ну сказать то можно хотя бы что искать :-D
Virus

Вот скрипт игра в бомбу

Сообщение Virus »

Это дай ip-adres своего хаба тогда ешо ..???
Я из далёкого места ваше далеко живу далеко далеко!! :-)
Я те хотел жобавить скрипт но неполучилось потомучто у меня много знаков когда сделаеш больше тогда и вклад сделаю...

Код: Выделить всё

-- This script is converted with PtokaX LUA API Converter v0.9 at 01/17/08 15:57:18
--Chat History On Entry 1.02 LUA 5
--By Mutor The Ugly     4/14/04
--
--Based on a script by Tezlo     1/17/04
--Send chat history to PM on entry
--Перевел и конвертировал в LUA 5.1 X-Ray 01/06/2006
-- +Converted to LUA 5 2/22/05

-----------------------------------------------------------
chatfile = "Chat_History/chathistory.dat"	-- путь до файла данных
maxhistory = 20  				-- максимум строк чата для хранения в кеше
botname = "[История_чата]"			-- имя бота
BadChars = {".","?","!","+","-",}   		-- разрешенные префиксы

function OnStartup()
	chathistory = dofile(chatfile) or {}
	Core.RegBot(botname,"","",true)	-- Comment this line to not have bot appear in user list. Note: If botname is not registered, default dc++ settings will not allow pm's to pop up
				-- Enable Pop up messages from offline users / Disable ingnore messages from offline in client 'advanced dc settings'. To allow pop from unregistered botname.
end

function OnExit()
savehistory()
end

function UserConnected(user)
	Core.GetUserAllData(user)
	local n = #chathistory
	local str = "<»«»«»«»«»«»«»«[ Последние ( "..n.." ) сообщений чата ]»«»«»«»«»«»«»«>\r\n"
	for i = 1, n do str = str.."\r\n"..chathistory[i] end
	Core.SendToNick(user.sNick,"<"..botname.."> "..str.."\r\n")	-- в Main
--	user:SendPM(botname,str.."\r\n")	-- в PM
	Core.SendToNick(user.sNick,"<"..botname.."> <»«»«»«»«»«»«»«»«»«[ Конец истории чата ]»«»«»«»«»«»«»«»«»«>")
--	user:SendPM(botname,"<»«»«»«»«»«»«»«»«»«[ Конец истории чата ]»«»«»«»«»«»«»«»«»«>")
end

OpConnected = UserConnected

function ChatArrival(user,data)
	Core.GetUserAllData(user)
	if string.sub(data, 1, 1) ~= "<" then end
	local s,e,pre = string.find(data, "^%b<> (.)")
	local when = os.date("[%H:%M] ")
	local chat = string.sub(data, 1, -2)
	for k,v in pairs(BadChars) do
	   if pre == v then     -- disallow command input to cached chat
            return
        end
    end
	table.insert(chathistory,when..chat)
	if #chathistory > maxhistory then table.remove(chathistory, 1) end
	savehistory()
end

function savehistory()
	local f,e = io.open( chatfile, "w+" )
	if f then
		f:write( "return {\n" )
		  for i = 1, #chathistory do
		      f:write( "\t"..string.format("%q", chathistory[i])..",\r\n" )
		  end
		f:write( "}" )
		f:close()
		return 1
	else
		return nil,"savehistory failed: "..e

	end
end

function loadfile(chatfile)
	local f,e = io.open( chatfile, "r" )
	if f then
		local r = f:read( "*a" )
		f:close()
		return r
	else
		return nil,"loadfile failed: "..e
	end
end

RegConnected = UserConnected
Ответить