Please help
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

Please help

Started by ZadOff, 29 February, 2008, 06:31:44

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ZadOff

I have ptokax 3.6.0.0 and some scripts. I want to use 4.0.0.0 but my scripts not working on it. May you convert my scripts for 4.0.0.0. Please help. And if you can - send me new scripts on my mail:mekhtiev_n@mail.ru or give me a link on archive)))

ruler

most if not all of those scripts have already been converted, look here > http://board.ptokax.ath.cx/index.php?board=105.0
before requesting scripts or script conversions please check to see if they are already avaliable on the forum. the search button at the top is just there for show  ;D

The Direct Connect Global Banlist get protected.

F_O_X

#2
zadoff The dude, all your attached scripts full dung to convert them as two fingers about asphalt.
Take the converter from Hungarista and be pleased lives.

Look as converts scripts the converter about which I to you spoke

ZadOff

#3
Link oh the converter is NOT working ((( give me please another one. And sorry - I can't find my scripts((( Sorry - but I'm not very smart on this things ... Help me please... :'(

F_O_X

Quote from: ZadOff on 29 February, 2008, 13:32:09
Link oh the converter is NOT working ((( give me please another one. And sorry - I can't find my scripts((( Sorry - but I'm not very smart on this things ... Help me please... :'(
http://dump.ru/files/o/o93267768/

Psycho_Chihuahua

PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

ZadOff

Thanks !!! But after convertion I have any scripts with this error:

Синтаксис [string "-- This script is converted with PtokaX LUA..."]:(NUMBER OF THE LINE): attempt to index global 'SetMan' (a nil value)

I don't know what to do(((


F_O_X


ZadOff


Psycho_Chihuahua

Quote from: F_O_X on 04 March, 2008, 08:05:15
Psycho_Chihuahua Please correct the reference for uploading the converter in this theme: http://board.ptokax.ath.cx/index.php?topic=7338.msg70370#msg70370



Done.
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

ZadOff

Can I place here a few of code for you? It not works((( Help

-- This script is converted with PtokaX LUA API Converter v0.9 at 03/04/08 09:33:25
--[[

	Mute 1.0 LUA 5.0/5.1/5.11

	By Mutor	06/24/06
	Переведел и пофиксил некоторые ошибки NRJ (08/17/06)

	Что же здесь вкусненького?
	-VIP/OP/Master доступ к командам
	-Можно глушить/снимать заглушку с ников онлайн и оффлайн
	-Нельзя заглушить/снять заглушку с самого себя
	-Менюшка
	-Можно смотреть список заглушенных
	
	***Важное замечание (это если вы хотите, чтобы командами могли пользоваться дополнительные профили; переводите сами ):
	Allow certain profiles to use this script by
	enabling this profile permission: [x] Gag,Ungag
	Set permissions in the PtokaX GUI...
	Options -> Profile Manager. Do this for each
	profile that should be allowed these commands.
	

	Помощь по скрипту

	Команда		Описание
	????????????????????????????????????????
	+mute           	глушим юзера
	+mhelp          	помощь
	+mlist          	просмотреть всех заглушенных
	+unmute         	вернуть возможность говорить в чате

	????????????????????????????????????????
	
]]

MuteCfg = {
-- Имя бота
Bot = SetMan.GetString(21),
-- Бот оп или нет?
BotIsOp = 1,
-- Описание бота
BotDesc = "Mute bot",
-- Email бота
BotMail = "mail@mail.ru",
-- Название таблицы
File = "MutedCfg.txt",
-- Меню
SubMenu = "Заглушки юзеров",
-- Кому будут отправляться сообщения об ошибках?
OpNick = "SeT",
-- Таблица заглушенных ников
Muted = {},
}

OnStartup = function()
	gc = nil
	if _VERSION == "Lua 5.1" then
		gc = "collect"
	end
	if loadfile(MuteCfg.File) then
		dofile(MuteCfg.File)
	else
		Save_File(MuteCfg.File,MuteCfg,"MuteCfg")
	end
	if MuteCfg.Bot ~= SetMan.GetString(21) or
		MuteCfg.Bot == SetMan.GetString(21) and not (SetMan.GetBool(17) and 1 or 0) then
		Core.RegBot(MuteCfg.Bot,MuteCfg.BotDesc,MuteCfg.BotMail,false)
	end
	OnError("Скрипт Mute 1.0 LUA версии ".._VERSION.." запущен. Используется памяти: "..collectgarbage(count).." Кб.")
end

OnExit = function()
	OnError("Скрипт Mute 1.0 LUA версии ".._VERSION.." остановлен.")
end

OnError = function(msg)
	Core.SendToNick(MuteCfg.OpNick,"<"..MuteCfg.Bot.."> "..msg)
end

function NewUserConnected(user, data)
	if (RegMan.GetReg(user.sNick) and RegMan.GetReg(user.sNick).iProfile) and ProfMan.GetProfile(user.iProfile) and ProfMan.GetProfile(user.iProfile).tProfilePermissions.bGag then
		SendMuteCmds(user)
		Core.SendToNick(user.sNick,"<"..MuteCfg.Bot.."> "..(ProfMan.GetProfile(user.iProfile) and ProfMan.GetProfile(user.iProfile).sProfileName).."'s команды заглушки пользователей доступны!"..
		"Команды доступны через всплывающее меню по правой кнопке мыши..")
	end
end
OpConnected = UserConnected

ChatArrival = function(user,data)
	Core.GetUserAllData(user)
	if MuteCfg.Muted[user.sNick] then
		Core.SendPmToNick(user.sNick,MuteCfg.Bot,"Вам выставлена заглушка на чат! Вы не можете говорить ни в общем чате, ни в привате.")
		Core.SendToNick(user.sNick,"<"..MuteCfg.Bot.."> Вы заглушены! Бесполезно пытаться что-либо написать.")
		return true
	else
		if (RegMan.GetReg(user.sNick) and RegMan.GetReg(user.sNick).iProfile) and ProfMan.GetProfile(user.iProfile) and ProfMan.GetProfile(user.iProfile).tProfilePermissions.bGag then
			local s,e,to = string.find(data,"^$To:%s(%S+)%sFrom:")
			local s,e,cmd = string.find( data, "%b<>%s%p(%w+)")
			if cmd and MuteCmds[cmd] then
				if to and to == MuteCfg.Bot then
					Core.SendPmToNick(user.sNick,MuteCfg.Bot,MuteCmds[cmd](user,data))
				else
					Core.SendToNick(user.sNick,"<"..MuteCfg.Bot.."> "..MuteCmds[cmd](user,data))
				end
				collectgarbage(gc)
				return true
			end
		end
	end
end
ToArrival = ChatArrival

MuteCmds = {
	mute = function(user,data)
		if user then
			local s,e,nick = string.find( data, "%b<>%s%p%w+%s(%S+)|$")
			if not nick then
function getcmdprefixarray() local p = {} for i=1,#SetMan.GetString(29) do table.insert(p,SetMan.GetString(29):sub(i,i)) end end
				return "Ошибка!, Используйте: "..getcmdprefixarray()[1]..
				"mute <ник>"
			else
				if nick == user.sNick then
					return "Вы не можете заглушить самого себя "..user.sNick..". Не будьте дураком!"
				end
				if MuteCfg.Muted[nick] then
					return "Пользователь: "..nick.." уже заглушен."
				else
					MuteCfg.Muted[nick] = 1
					Save_File(MuteCfg.File,MuteCfg,"MuteCfg")
					local status = "оффлайн"
					if Core.GetUser(nick,true) then
					        status = "онлайн"
						Core.SendToNick(nick,"<"..MuteCfg.Bot.."> Вы были заглушены. "..
						"Теперь Вы не можете говорить ни в главном чате, ни в привате.")
 					end
					Core.SendToAll("<"..MuteCfg.Bot.."> Пользователь "..nick..", находящийся "..status..", заглушен "..
					"и не может пользоваться ни чатом, ни приватом.")
					return nil
				end
			end
		else
			return "Заглушить юзера"," %[line:Ник]"," %[nick]"
		end
	end,
	unmute = function(user,data)
		if user then
			local s,e,nick = string.find( data, "%b<>%s%p%w+%s(%S+)|$")
			if not nick then
function getcmdprefixarray() local p = {} for i=1,#SetMan.GetString(29) do table.insert(p,SetMan.GetString(29):sub(i,i)) end end
				return "Ошибка!, Используйте: "..getcmdprefixarray()[1]..
				"unmute <ник>"
			else
				if nick == user.sNick then
					return "Вы не можете снять заглушку с самого себя, "..user.sNick..". Делать что ли нечего, да?"
				end
				if not MuteCfg.Muted[nick] then
					return "Пользователь: "..nick.." не был заглушен."
				else
					MuteCfg.Muted[nick] = nil
					Save_File(MuteCfg.File,MuteCfg,"MuteCfg")
					local status = "оффлайн"
					if Core.GetUser(nick,true) then
						status = "онлайн"
						Core.SendToNick(nick,"<"..MuteCfg.Bot.."> Заглущка на чат снята. "..
						"Теперь вы можете говорить в чате и привате.")
					end
					Core.SendToAll("<"..MuteCfg.Bot..">  С пользователя "..nick..", находящегося "..status..", снята заглушка. "..
					"Теперь он может общаться и в чате, и в привате.")
					return nil
				end
			end
		else
			return "Снять заглушку"," %[line:Ник]"," %[nick]"
		end
	end,
	mlist = function(user,data)
		if user then
			if next(MuteCfg.Muted) then
				local Count = 0
				local reply = "Список заглушенных юзеров...\r\n\r\n\tНомер\t\tНик\r\n"..
				"\t"..string.rep("?",40).."\r\n"
				for i,v in pairs(MuteCfg.Muted) do
					Count = Count + 1
					reply = reply.."\t"..string.format("[ %-3s ]",Count).."\t\t"..i.."\r\n"
				end
				return reply.."\n\t"..string.rep("?",40).."\r\n\r\n"
			else
				return "На данный момент никто не заглушен."
			end
		else
			return "Список заглушенных юзеров","",""
		end
	end,
	mhelp = function(user,data)
		if user then
			local reply = "Помощь по командам\r\n\r\n\tКоманда\t\tОписание\r\n"..
			"\t"..string.rep("?",40).."\r\n"
			for i,v in pairs(MuteCmds) do
				local desc,args = MuteCmds[i]()
				reply = reply.."\t+"..string.format("%-15s",i).."\t"..desc.."\r\n"
			end
			return reply.."\n\t"..string.rep("?",40).."\r\n\r\n"
		else
			return "Помощь","",""
		end
	end,
}

SendMuteCmds = function(user)
	for i,v in pairs(MuteCmds) do
		local desc,arg1,arg2 = MuteCmds[i]()
		Core.SendToNick(user.sNick,"$UserCommand 1 1 "..MuteCfg.SubMenu.."\\"..
		desc.."$<%[mynick]> +"..i..arg1.."&#124;")
		Core.SendToNick(user.sNick,"$UserCommand 1 2 "..MuteCfg.SubMenu.."\\"..
		desc.."$$To: "..MuteCfg.Bot.." From: %[mynick] $<%[mynick]> +"..i..arg2.."&#124;")
		collectgarbage(gc)
	end
end

Save_Serialize = function(tTable, sTableName, hFile, sTab)
	sTab = sTab or "";
	hFile:write(sTab..sTableName.." = {\n" )
	for key, value in pairs(tTable) do
		local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key)
		if(type(value) == "table") then
			Save_Serialize(value, sKey, hFile, sTab.."\t")
		else
			local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value)
			hFile:write( sTab.."\t"..sKey.." = "..sValue)
		end
		hFile:write( ",\n")
	end
	hFile:write( sTab.."}")
end

Save_File = function(file,table, tablename )
	local hFile = io.open (file , "wb")
	Save_Serialize(table, tablename, hFile)
	hFile:close()
	collectgarbage(gc)
end
RegConnected = UserConnected

ZadOff

the second script :'(
-- This script is converted with PtokaX LUA API Converter v0.9 at 03/04/08 09:33:25
--[[

	Простой скрипт регистрации 
	от NRJ v. 1.2 (22/09/06)

	Команды:
	!regme <pass> - зарегистрироваться
	!passwd <new_pass> - изменить пароль (встроенная команда)
	!unreg - удалить регистрацию

	Changelog:

	**1.2**
	- незарегистрированные пользователи при входе на хаб получают сообщение о неоходимости регистрации
	- добавлена команда !reghelp

	**1.1**
	- добавлена команда !unreg
	- добавлено меню для зарегистрированного пользователя

]]--

----------------------------------------------------- Конфигурация -----------------------------------------------------
------------------------------------------------------------------------------------------------------------------------

ShowInfo = 1	-- позазывать дополнительную информацию о том, как можно избежать повторных вводов пароля при входе на хаб
ShowToAll = 1	-- показывать всем пользователям, что на хабе новый зарегистрированный участник

------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------

bot = SetMan.GetString(21)

function UserConnected(user)
	Core.GetUserAllData(user)
	if not(RegMan.GetReg(user.sNick)) and not (RegMan.GetReg(user.sName)) then
		local msg = "\r\n\r\n"..
		"\t????????????????????????????????????????????????????????\r\n"..
		"\t\tВЫ НЕ ЗАРЕГИСТРИРОВАНЫ НА ХАБЕ ! ! !\r\n"..
		"\t????????????????????????????????????????????????????????\r\n\r\n"..
		"\tПомощь по регистрации: !reghelp\r\n\r\n"..
		"\t"..string.rep("-", 112).."\r\n"
		Core.SendPmToNick(user.sNick,bot,msg)
	end
	UserMenu(user)
end


function ChatArrival(user,data)
	Core.GetUserAllData(user)
	local data = string.sub(data,1,-2)
	local s,e,cmd =string.find(data, "%b<>%s+(%S+)")
	if cmd == "!regme" then
		if not(RegMan.GetReg(user.sNick)) and not (RegMan.GetReg(user.sName)) then
		local s,e,pass = string.find(data, "%b<>%s+%S+%s+(%S+)")
			if (pass == nil) then	
				local pass=math.random(os.date("%H%M%S"))
				RegMan.AddReg(user.sNick, pass, 3)
				Core.SendToNick(user.sNick,"<"..bot.."> Вы были зарегистрированы на хабе. Ваш ник:"..user.sNick.." Пароль: "..pass..". Не забудьте перезайти на хаб!")
				if (ShowInfo == 1) then
				Core.SendToNick(user.sNick,"<"..bot.."> Теперь для входа на хаб под вашим ником необходимо знать пароль. Вы можете вводить его каждый раз вручную, либо прописать пароль в настройках клиента. Для этого найдите в списке избранных хабов этот хаб, зайдите в его свойства и пропишите в строках Nick и Password ваши ник и пароль.")
				end
				if (ShowToAll == 1) then
				Core.SendToAll("<"..bot.."> Поприветствуем нового зарегистрировавшегося участника - "..user.sNick.." !!!")
				end
			else
				RegMan.AddReg(user.sNick, pass, 3)
				Core.SendToNick(user.sNick,"<"..bot.."> Вы были зарегистрированы на хабе. Ваш ник:"..user.sNick.." Пароль: "..pass..". Не забудьте перезайти на хаб!")
				if (ShowInfo == 1) then
				Core.SendToNick(user.sNick,"<"..bot.."> Теперь для входа на хаб под вашим ником необходимо знать пароль. Вы можете вводить его каждый раз вручную, либо прописать пароль в настройках клиента. Для этого найдите в списке избранных хабов этот хаб, зайдите в его свойства и пропишите в строках Nick и Password ваши ник и пароль.")
				end
				if (ShowToAll == 1) then
				Core.SendToAll("<"..bot.."> Поприветствуем нового зарегистрировавшегося участника - "..user.sNick.." !!!")
				end
			end
		else
			Core.SendToNick(user.sNick,"<"..bot.."> Вы уже зарегистрированы!")
		end
		return true
	end
	if cmd == "!unreg" then
		if (user.iProfile == 3) then
			RegMan.DelReg(user.sNick)
			Core.SendToNick(user.sNick,"<"..bot.."> Ваш аккаунт был был удален")
		else
			Core.SendToNick(user.sNick,"<"..bot.."> Команда доступна только для зарегистрированных пользователей!")
		end
		return true
	end
	if cmd == "!reghelp" then
		local msg = "\r\n\r\n"..
		"\t"..string.rep("=", 50).."\r\n"..
		"\t\tПомощь по регистрации\r\n"..
		"\t"..string.rep("-", 100).."\r\n\r\n"..
		"\t!reghelp\t\t - Этот файл помощи\r\n"..
		"\t!regme <пасс>\t - Зарегистрироваться (можно не указывать пасс)\r\n"..
		"\t!passwd <пасс>\t - Сменить пароль (встроенная команда хаба)\r\n"..
		"\t!unreg\t\t - Удалить аккаунт\r\n\r\n"..
		"\tТакже все команды доступны в меню хаба:\r\n"..
		"\tНажмите правой кнопкой мыши на любого пользователя\r\n"..
		"\tи выбирете подменю 'Регистрация'\r\n"
		Core.SendPmToNick(user.sNick,bot,msg)
	end
end

ToArrival = ChatArrival

function UserMenu(user)
	if (user.iProfile == -1) then
		Core.SendToNick(user.sNick,"$UserCommand 0 3")
		Core.SendToNick(user.sNick,"$UserCommand 1 3 Регистрация\\Зарегистрироваться$<%[mynick]> !regme %[line:Введите пароль или оставьте поле пустым]&#124;")
	end
	if (user.iProfile == 3) then
		Core.SendToNick(user.sNick,"$UserCommand 0 3")
		Core.SendToNick(user.sNick,"$UserCommand 1 3 Регистрация\\Сменить пароль$<%[mynick]> !passwd %[line:Введите новый пароль]&#124;")
		Core.SendToNick(user.sNick,"$UserCommand 1 3 Регистрация\\Удалить регистрацию$<%[mynick]> !unreg&#124;")
	end
end
RegConnected = UserConnected

ZadOff

Third script
-- This script is converted with PtokaX LUA API Converter v0.9 at 03/04/08 09:33:26
--[[

	Скрипт: User Info
	Автор:	dragos_sto

	Перевод и меню: by NRJ
	
]]--

----------------------------------- Конфигурация -----------------------------------
------------------------------------------------------------------------------------

pathUser = "UserInfo"			-- Название папки, в которой будут храниться информация о юзерах
pathIp = "IpInfo"			-- Название папки, в которой будут храниться информация о IP
ext = ".log"				-- Расширение файлов
userlastlog = 20			-- кол-во последних ников, которые использовал юзер
iplastlog = 20				-- кол-во последних IP, которые использовал юзер
botname = SetMan.GetString(21)	-- Имя бота

-- Команды
command = {
	[1] = "userinfo",
	[2] = "ipinfo",
	[3] = "userlast",
	[4] = "iplast",
	[5] = "userlist",
	[6] = "lhelp",
}

prefcmd = "" -- Префиксы для команд
firstpref = "#"

-- У кого есть доступ к командам
AllowedProfiles = { 
	[0] = 1,   -- Masters
	[1] = 0,   -- Operators
}

------------------------------------------------------------------------------------
------------------------------------------------------------------------------------

os.execute("mkdir ".."\""..string.gsub(pathUser, "/", "\\").."\"")
os.execute("mkdir ".."\""..string.gsub(pathIp, "/", "\\").."\"")

onlineuser = {}

function Main(user,data)
	prefcmd = "]"
function getcmdprefixarray() local p = {} for i=1,#SetMan.GetString(29) do table.insert(p,SetMan.GetString(29):sub(i,i)) end end
	local pref,count = getcmdprefixarray(),0
	for pre,preval in pairs(pref) do
		if count == 0 then 
			firstpref = preval 
			count = 1
		end
		prefcmd = "%"..preval..""..prefcmd
	end
	prefcmd = "["..prefcmd
--[%!%+%?]
end

function UserConnected(curUser)
	Core.GetUserAllData(curUser)
	if AllowedProfiles[curUser.iProfile] == 1 then
			Core.SendToNick(curUser.sNick,"$UserCommand 1 3 User Log\\Помощь$<%[mynick]> "..firstpref..""..command[6].."&#124;")
			Core.SendToNick(curUser.sNick,"$UserCommand 1 3 User Log\\Инфо по нику$<%[mynick]> "..firstpref..""..command[1].." %[line:Введите ник]&#124;")
			Core.SendToNick(curUser.sNick,"$UserCommand 1 3 User Log\\Инфо по IP$<%[mynick]> "..firstpref..""..command[2].." %[line:Введите IP-адрес]&#124;")
			Core.SendToNick(curUser.sNick,"$UserCommand 1 3 User Log\\Посл. "..userlastlog.." откл. по нику $<%[mynick]> "..firstpref..""..command[3].." %[line:Введите ник]&#124;")
			Core.SendToNick(curUser.sNick,"$UserCommand 1 3 User Log\\Посл. "..iplastlog.." откл. по IP$<%[mynick]> "..firstpref..""..command[4].." %[line:Введите IP-адрес]&#124;")
			Core.SendToNick(curUser.sNick,"$UserCommand 1 3 User Log\\Когда вошел..$<%[mynick]> "..firstpref..""..command[5].." %[line:Введите ник]&#124;")	
	end
	local ma = ""
	local count = 0
	local usernam = tostring (string.lower(curUser.sNick))
	local userip = tostring (curUser.sIP)
	if io.open(pathUser.."/"..usernam..ext) == nil then io.open(pathUser.."/"..usernam..ext,"w") end
	for line in io.lines(pathUser.."/"..usernam..ext) do 
		if ( string.sub(line,  1, string.len(userip) ) == userip ) then
			local des = string.match(line,"%S+%=%=(%d+)$") 
			des = des + 1
			count = 1
			ma = ma..""..userip.."=="..des.."\r\n"
		else
			ma = ma..line.."\r\n"
		end
	end
	if count == 0 then ma = ma..""..userip.."==".."1".."\r\n" end
	local f,_ = io.open(pathUser.."/"..usernam..ext,"w+")
	f:write(ma)
	f:flush()
	f:close()	
	ma = ""
	count = 0
	if io.open(pathIp.."/"..userip..ext) == nil then io.open(pathIp.."/"..userip..ext,"w") end
	for line in io.lines(pathIp.."/"..userip..ext) do 
		if ( string.sub(line,  1, string.len(usernam) ) == usernam ) then
    		local des = string.match ( line, "%S+%=%=(%d+)$" )
    		des = des + 1
    		count = 1
    		ma = ma..usernam.."=="..des.."\r\n"
		else
    		ma = ma..line.."\r\n"
		end
	end
	if count == 0 then ma = ma..""..usernam.."==".."1".."\r\n" end
	local f,_ = io.open(pathIp.."/"..userip..ext,"w+")
	f:write(ma)
	f:flush()
	f:close()	
	ma = "Юзер "..usernam.." вошел "..os.date("%d-%m-%Y").." в "..os.date("%H:%M:%S").." с IP "..userip
	onlineuser[usernam] = ma
	io.flush()
end

function UserDisconnected(curUser)
	Core.GetUserAllData(curUser)
	local ma = ""
	local count = 0
	local usernam = tostring (string.lower(curUser.sNick))
	local userip = tostring (curUser.sIP)
	count = 0
	if io.open(pathUser.."/"..usernam.."last"..ext) == nil then io.open(pathUser.."/"..usernam.."last"..ext,"w") end
	ma = "Последнее посещение "..os.date("%d-%m-%Y").." в "..os.date("%H:%M:%S").." с IP-адресом "..userip.."\r\n"
	for line in io.lines(pathUser.."/"..usernam.."last"..ext) do 
		if count < userlastlog then
			count = count + 1
			ma = ma..line.."\r\n"
		end
	end
	local f,_ = io.open(pathUser.."/"..usernam.."last"..ext,"w+")
	f:write(ma)
	f:flush()
	f:close()	
	count = 0
	if io.open(pathIp.."/"..userip.."last"..ext) == nil then io.open(pathIp.."/"..userip.."last"..ext,"w") end
	ma = "Последнее посещение "..os.date("%d-%m-%Y").." в "..os.date("%H:%M:%S").." с ником "..usernam.."\r\n"
	for line in io.lines(pathIp.."/"..userip.."last"..ext) do 
		if count < iplastlog then
			count = count + 1
			ma = ma..line.."\r\n"
		end
	end
	local f,_ = io.open(pathIp.."/"..userip.."last"..ext,"w+")
	f:write(ma)
	f:flush()
	f:close()	
	onlineuser[usernam] = nil
	io.flush()
end

OpConnected = UserConnected

OpDisconnected = UserDisconnected

tCmds = {
		[command[1]] = function(user, data)
		if data == "" or data == nil then
		Core.SendToNick(user.sNick, "<"..botname.."> Вы не выбрали ни ник, ни IP-адрес|")
		elseif io.open(pathUser.."/"..data..ext) == nil then
			Core.SendToNick(user.sNick, "<"..botname.."> В логах нет юзера с ником "..data.."!!!")
		else
			Core.SendToNick(user.sNick, "<"..botname.."> IP-адреса для пользователя "..data..": \r\n")
			for line in io.lines(pathUser.."/"..data..ext) do 
				Core.SendToNick(user.sNick, "<"..botname.."> \t"..line)
			end
		end
		return true
		end,
		[command[2]] = function(user, data)
		if data == "" or data == nil then
		Core.SendToNick(user.sNick, "<"..botname.."> Вы не выбрали ни ник, ни IP-адрес|")
		elseif io.open(pathIp.."/"..data..ext) == nil then
			Core.SendToNick(user.sNick, "<"..botname.."> В логах нет IP-адреса "..data.."!!!")
		else
			Core.SendToNick(user.sNick, "<"..botname.."> Ники юзеров для IP-адреса "..data..": \r\n")
			for line in io.lines(pathIp.."/"..data..ext) do 
				Core.SendToNick(user.sNick, "<"..botname.."> \t"..line)
			end
		end		
		return true
		end,
		[command[3]] = function(user, data)
		if data == "" or data == nil then
		Core.SendToNick(user.sNick, "<"..botname.."> Вы не выбрали ни ник, ни IP-адрес|")
		elseif io.open(pathUser.."/"..data.."last"..ext) == nil then
			Core.SendToNick(user.sNick, "<"..botname.."> В логах нет юзера с ником "..data.." !!!")
		else
			for line in io.lines(pathUser.."/"..data.."last"..ext) do 
				Core.SendToNick(user.sNick, "<"..botname.."> "..line)
			end
		end
		return true
		end,
		[command[4]] = function(user, data)
		if data == "" or data == nil then
		Core.SendToNick(user.sNick, "<"..botname.."> Вы не выбрали ни ник, ни IP-адрес|")
		elseif io.open(pathIp.."/"..data.."last"..ext) == nil then
			Core.SendToNick(user.sNick, "<"..botname.."> В логах нет IP-адреса "..data.."!!!")
		else
			for line in io.lines(pathIp.."/"..data.."last"..ext) do 
				Core.SendToNick(user.sNick, "<"..botname..">"..line)
			end
		end		
		return true
		end,
		[command[5]] = function(user, data)
		if onlineuser ~= nil or onlineuser ~= "" then
			for seto,setoval in pairs(onlineuser) do
				Core.SendToNick(user.sNick, "<"..botname.."> "..setoval.."|")
			end
			return true		
		end		
		end,
		[command[6]] = function(user, data)
		Core.SendToNick(user.sNick, "\t\t Помощь по скрипту логирования юзеров и их IP-адресов\r\n")
		Core.SendToNick(user.sNick, "\t"..firstpref..""..command[1].." <ник> \t - Узнать все IP-адреса юзера, и сколько раз он заходил с каждого")
		Core.SendToNick(user.sNick, "\t"..firstpref..""..command[2].." <IP> \t - Узнать все ники, с которых был произведен заход с IP, и сколько раз")
		Core.SendToNick(user.sNick, "\t"..firstpref..""..command[3].." <ник> \t - Посмотреть последние "..userlastlog.." отключений юзера от хаба ")
		Core.SendToNick(user.sNick, "\t"..firstpref..""..command[4].." <ник> \t - Посмотреть последние "..iplastlog.." отключений IP от хаба ")
		Core.SendToNick(user.sNick, "\t"..firstpref..""..command[5].." <ник> \t - Посмотреть, во сколько и с какого IP вошел юзер на хабе\r\n")
		return true
		end,
		}

function ChatArrival(user,data)
	Core.GetUserAllData(user)
	if AllowedProfiles[user.iProfile] == 1 then
		if (string.sub(data,1,1) == "<") then 
			local data1=string.sub(data,1,string.len(data)-1) 
			local cmd = string.match(data1,"%b<>%s+"..prefcmd.."(%S+)")
			if cmd then
			cmd = string.lower(cmd)
			if tCmds[cmd] then
				local _,hodata = string.match(data1,"%b<>%s+"..prefcmd.."(%S+)%s+(%S*)$")
				if hodata == nil then hodata = "" end
				hodata = string.lower(hodata)
				hodata = tostring (hodata)
				if  tCmds[cmd] then
					return tCmds[cmd](user, hodata)
				end
			end
			end
		end
	end
end


RegConnected = UserConnectedRegDisconnected = UserDisconnected

ZadOff

And the last script
-- This script is converted with PtokaX LUA API Converter v0.9 at 03/04/08 09:33:25
--[[
	User Log 1.0 LUA 5.0/5.11
	By Mutor	08/19/06

	Перевод: 
	By NRJ		08/21/06 

 	User Log Помощь по командам

	Команда		Описание
	????????????????????????????????????????
	+check          Проверить лог юзера...
	+listlog        Посмотреть User Log
	+loghelp        Помощь по командам

	????????????????????????????????????????



]]

LogCfg = {
-- Бот возьмет имя с хаба или же вы зададите емус свое имя?
Bot = SetMan.GetString(21),
-- Назание хаба
Hub = SetMan.GetString(0),
-- Будет ли у бота ключик
BotIsOp = 1,
-- Описание бота
BotDesc = "User Log",
-- Email бота
BotMail = "user@domain.com",
-- В каком файле все будет храниться
File = "UserLog.txt",
-- Название менюшки
SubMenu = "Лог юзеров",
-- Ник админа для статуc-сообщений и сообщениях об ошибках
OpNick = "NRJ",
-- Уровень доступа к командам
--[профиль#] = {0/1 (0=Команды/меню отключено / 1=Команды/меню включено),"Название профиля"},
Profiles = {
	[-1] = {0,"Незарегистрированный пользователь"},
	[0] = {1,"Мастер"},
	[1] = {1,"Оператор"},
	[2] = {0,"VIP"},
	[3] = {0,"Зарегестрированный пользователь"},
	[4] = {1,"Moderator"},		--для RoboCop'a
	[5] = {1,"NetFounder"},		--для RoboCop'a
	},
-- Таблица логов
UserLog = {},
}

OnStartup = function()
	gc,no = nil,table.getn
	if _VERSION == "Lua 5.1" then
		gc,no = "collect",table.maxn
	end
	if loadfile(LogCfg.File) then
		dofile(LogCfg.File)
	else
		for i,v in ipairs(Core.GetOnlineUsers(true)) do
			user = GetItemByName(v.sNick)
			Log(user)
		end
		Save_File(LogCfg.File,LogCfg,"LogCfg")
	end
	if LogCfg.Bot ~= SetMan.GetString(21) or
		LogCfg.Bot == SetMan.GetString(21) and not (SetMan.GetBool(17) and 1 or 0) then
		Core.RegBot(LogCfg.Bot,LogCfg.BotDesc,LogCfg.BotMail,false)
	end
	collectgarbage(gc)
	OnError("User Log 1.0 LUA версии ".._VERSION.." от Mutor'a стартовал. Задействовано памяти: "..collectgarbage(count).." Кб.")
end

OnExit = function()
	OnError("User Log 1.0 LUA версии ".._VERSION.." от Mutor'a остановлен.")
	--Save_File(LogCfg.File,LogCfg,"LogCfg")
end

OnError = function(msg)
	Core.SendToNick(LogCfg.OpNick,"<"..LogCfg.Bot.."> "..msg)
end

function NewUserConnected(user, data)
	Log(user)
	if LogCfg.Profiles[user.iProfile] and LogCfg.Profiles[user.iProfile][1] == 1 then
		SendLogCmds(user)
		Core.SendToNick(user.sNick,"<"..LogCfg.Bot.."> Добро пожаловать, "..user.sNick..", "..(ProfMan.GetProfile(user.iProfile) and ProfMan.GetProfile(user.iProfile).sProfileName)..
		"'s User Log команды доступны нажатием правой кнопки мыши на любого пользователя.")
	end
end
OpConnected = UserConnected

ChatArrival = function(user,data)
	Core.GetUserAllData(user)
	data = string.sub(data,1,-2)
	if LogCfg.Profiles[user.iProfile] and LogCfg.Profiles[user.iProfile][1] == 1 then
		local s,e,cmd = string.find( data, "%b<>%s%p(%w+)")
		local s,e,to = string.find(data,"^$To:%s(%S+)%sFrom:")
		if cmd and LogCmds[cmd] then
			if to and to == LogCfg.Bot then
				Core.SendPmToNick(user.sNick,LogCfg.Bot,LogCmds[cmd](user,data))
			else
				Core.SendToNick(user.sNick,"<"..LogCfg.Bot.."> "..LogCmds[cmd](user,data))
			end
			collectgarbage(gc)
			return true
		end
	end
end
ToArrival = ChatArrival

Log = function(user)
	local nick,profile,time,exists = user.sNick,(ProfMan.GetProfile(user.iProfile) and ProfMan.GetProfile(user.iProfile).sProfileName) or "Unregistered User",os.date("*t"),nil
	for i,v in ipairs(LogCfg.UserLog) do
		if v[1] == user.sNick then
			exists = true
                        v[2],v[3] = profile,time
			break
		end
	end
	if not exists then
		local t = {nick,profile,time}
		table.insert(LogCfg.UserLog,t)
	end
	Save_File(LogCfg.File,LogCfg,"LogCfg")
	collectgarbage(gc)
end

GetLog = function(nick)
	if nick then
		local msg = nil
		for i,v in ipairs(LogCfg.UserLog) do
			if v[1] == nick then
				msg = {v[1],v[2],v[3]}
				break
			end
		end
		collectgarbage(gc)
		return msg
	end
end

LogCmds = {
	check = function(user,data)
		if user then
			local s,e,nick = string.find( data, "%b<>%s%p%w+%s(%S+)")
			if not nick then
function getcmdprefixarray() local p = {} for i=1,#SetMan.GetString(29) do table.insert(p,SetMan.GetString(29):sub(i,i)) end end
				return "Ошибка!, Используйте: "..getcmdprefixarray()[1]..
				"check <ник>"
			else
				local msg,prof = "Пользователь: ",(ProfMan.GetProfile((RegMan.GetReg(nick) and RegMan.GetReg(nick).iProfile)) and ProfMan.GetProfile((RegMan.GetReg(nick) and RegMan.GetReg(nick).iProfile)).sProfileName) or "Unregistered"
				local usr,on = GetItemByName(nick)," в оффлайне"
				if GetLog(nick) then
					local t = GetLog(nick)
					if usr then
						on = "онлайн"
					end
					msg = msg..t[1]..". Последнее появление на хабе: "..
					t[3]["day"].."."..t[3]["month"].."."..t[3]["year"]..
					" - "..t[3]["hour"]..":"..t[3]["min"].." В данный момент "..on
				else
					msg = msg..nick.." имеет профиль "..prof.." и не существует в логе "..
					"and is currently "..on
				end
				return msg
			end
		else
			return "Проверить лог юзера..."," %[line:Ник]"," %[nick]"
		end
	end,
	listlog = function(user,data)
		if user then
			local reply = "Список User Log\r\n\r\n\tUser\t\t\tПосл. посещение\t\tСтатус\r\n"..
			"\t????????????????????????????????????????????????????????????\r\n"
			for i,v in ipairs(LogCfg.UserLog) do
				local usr,on = GetItemByName(v[1]),"- Оффлайн -"
				if usr then
					on = "+ Онлайн +"
				end
				reply = reply.."\t"..string.format("%-30s",v[1]).."\t"..
				string.format("%-16s",v[3]["day"].."."..v[3]["month"].."."..v[3]["year"]..
				" - "..v[3]["hour"]..":"..v[3]["min"]).."\t\t"..on.."\r\n"
			end
			return reply.."\n\t????????????????????????????????????????????????????????????\r\n\r\n"
		else
			return "Показать лог юзера","",""
		end
	end,
	loghelp = function(user,data)
		if user then
			local reply = "User Log Помощь по командам\r\n\r\n\tКоманда\t\tОписание\r\n"..
			"\t????????????????????????????????????????\r\n"
			for i,v in pairs(LogCmds) do
				local desc,args = LogCmds[i]()
				reply = reply.."\t+"..string.format("%-15s",i).."\t"..desc.."\r\n"
			end
			return reply.."\n\t????????????????????????????????????????\r\n\r\n"
		else
			return "Помощь по командам","",""
		end
	end,
}

SendLogCmds = function(user)
	for i,v in pairs(LogCmds) do
		local desc,arg1,arg2 = LogCmds[i]()
		Core.SendToNick(user.sNick,"$UserCommand 1 1 "..LogCfg.SubMenu.."\\"..
		desc.."$<%[mynick]> +"..i..arg1.."&#124;")
		Core.SendToNick(user.sNick,"$UserCommand 1 2 "..LogCfg.SubMenu.."\\"..
		desc.."$$To: "..LogCfg.Bot.." From: %[mynick] $<%[mynick]> +"..i..arg2.."&#124;")
		collectgarbage(gc)
	end
end

Save_Serialize = function(tTable, sTableName, hFile, sTab)
	sTab = sTab or ""
	hFile:write(sTab..sTableName.." = {\n" )
	for key, value in pairs(tTable) do
		local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key)
		if(type(value) == "table") then
			Save_Serialize(value, sKey, hFile, sTab.."\t")
		else
			local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value)
			hFile:write( sTab.."\t"..sKey.." = "..sValue)
		end
		hFile:write( ",\n")
	end
	hFile:write( sTab.."}")
end

Save_File = function(file,table, tablename )
	local hFile = io.open (file , "wb")
	Save_Serialize(table, tablename, hFile)
	io.flush()
	hFile:close()
	collectgarbage(gc)
end
RegConnected = UserConnected

ZadOff

I AM VERY SORRY BUT - it is very important for me because i have a hub. 150 guys. PLEASE help :'(

F_O_X

ZadOff Use search, all your scripts for a long time are already converted.
And from Russian on English and back here anybody will not be engaged in translation.
In Russian I already have laid out scripts in this theme:
http://forum.proc.ru/index.php?showtopic=40376


In search inquiry write for example date or key function of a required script.
Then you will have hope, that the script to you is converted.

Example:
We search for first your script. Search by word Mute.
http://board.ptokax.ath.cx/index.php?topic=6099.0

And so for all scripts search.

ZadOff

SPECIAL FOR !!! F O X !!! 1 - my scripts is lua 5.1.2 - and I need to convert them to 5.1.3 !!! for ptokax 0.4.0.0
                                   2 - those scripts on your link are 5.1.1 !!!

If you can't help me - don't flood

F_O_X

Quote from: ZadOff on 05 March, 2008, 11:58:12
SPECIAL FOR !!! F O X !!! 1 - my scripts is lua 5.1.2 - and I need to convert them to 5.1.3 !!! for ptokax 0.4.0.0
                                   2 - those scripts on your link are 5.1.1 !!!

If you can't help me - don't flood

Well, well. Then sit and wait at the sea of weather.

ZadOff

I hope that someone who knows scripts - help me - in my 4 scripts only 1 error - and I don't know how to fix them(((

speedX

Quote from: ZadOff on 06 March, 2008, 06:11:53
I hope that someone who knows scripts - help me - in my 4 scripts only 1 error - and I don't know how to fix them(((

Then post your errors with the script.....
Thanking You,

speedX

ZadOff

for first script: Синтаксис [string "-- This script is converted with PtokaX LUA..."]:39: attempt to index global 'SetMan' (a nil value)
for sercond script: Синтаксис [string "-- This script is converted with PtokaX LUA..."]:33: attempt to index global 'SetMan' (a nil value)
for third script: Синтаксис [string "-- This script is converted with PtokaX LUA API Converter v0.9 ..."]:249: unexpected symbol near '='
for fourth script: Синтаксис [string "-- This script is converted with PtokaX LUA..."]:25: attempt to index global 'SetMan' (a nil value)

Madman

what ptokax version are you useing?
We suffer in silence, we lurk in the shadows, we kill in the night
Site currently down, ETA of returning online is 2099 ;p

F_O_X

#22
Quote from: ZadOff on 06 March, 2008, 10:50:15
for first script: ????????? [string "-- This script is converted with PtokaX LUA..."]:39: attempt to index global 'SetMan' (a nil value)
for sercond script: ????????? [string "-- This script is converted with PtokaX LUA..."]:33: attempt to index global 'SetMan' (a nil value)
for third script: ????????? [string "-- This script is converted with PtokaX LUA API Converter v0.9 ..."]:249: unexpected symbol near '='
for fourth script: ????????? [string "-- This script is converted with PtokaX LUA..."]:25: attempt to index global 'SetMan' (a nil value)
1, 2 and 4 errors. Your name is not mentioned hub (Hub bot).
1, 2 ? 4 ??????. ? ?????????? ?? ??????? ??? ???? (???????? ????).
Bot = SetMan.GetString(21),

Fill in the column Nick


3 ??????: ??? ???????
3 mistake: there is no blank
RegConnected = UserConnectedRegDisconnected = UserDisconnected

RegConnected = UserConnected
RegDisconnected = UserDisconnected


Zadoff ?? ??????? ??????? ?????? ?????? 5 ? 6    Zadoff do not break a rule of a forum points 5 and 6
http://board.ptokax.ath.cx/index.php?action=rules


ZadOff

Quote from: Madman on 06 March, 2008, 12:47:28
what ptokax version are you useing?

I have 0.3.6.0 but i want to use 0.4.0.0

ZadOff

Quote from: F_O_X on 06 March, 2008, 13:11:56
1, 2 and 4 general mistake. His name is not specified in options of a hub (general bot).

3 mistake: there is no blank
RegConnected = UserConnectedRegDisconnected = UserDisconnected

RegConnected = UserConnected
RegDisconnected = UserDisconnected


done, but another error after fix -

[15:31] sintaksis [string "-- This script is converted with PtokaX LUA..."]:19: attempt to index global 'SetMan' (a nil value)

and i don't understand what to do with 1 2 & 4(((

SMF spam blocked by CleanTalk