Guestbook
 

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

Guestbook

Started by Syphrone-NL, 06 April, 2005, 18:46:57

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Syphrone-NL

My script:

---------------------------------------------------------------------------------- guestbook by bastya_elvtars (the rock n' roll doctor) ---> bastyaelvtars@gmail.com
--------------------------------
-- v2.0prebeta >>>>>>>> use with caution, bugs can occur
--------------------------------
--------------- THIS IS LUA5 VERSION NOW
-- thx Hawk and nErBoS for helping me out in my first lua5 script
-------------------------------------------------------------------------------------------------------------------------------------

-- no flush function, delete a dat file instead (gonna add if needed ^^)
-- multiple entries can be deleted by adding multiple nubers separated by spaces (meaning !delguestbook 1 43 555 756612346239)
-- but u can separate them with any non-number char if u like it better
-- commands can be added in PM or in main, bot responds according 2 them

--=========== IMPORTANT ================

-- DO make a folder called dats in the scripts folder!!! Otherwise it won't work!




---------------------- CONFIG PART


Bot="MerlijnsToverBoek"


-- i made only 3 of this add/show/delete shit.
-- if you need more, notify me
-- The help text can only be changed by experts,altho you might translate it - see a lua documentation
-- levels are always the following, determining who CAN use the command:
        -- 5:only superops
        -- 4 ops & above
        -- 3 vips & above
        -- 2 registered users & above
        -- 1 anyone
        -- 0 disabled
---=========== #1


-- What it is called?


gbname="MerlijnsToverBoek" -- the name of this function (call it what you want)


-- name of the textfile that contains entries - if it does not exist, the script will create one.
gbfile="dats/guestbook.dat"


-- this shows the guestbook or wtf
levgbcmd1=1
gbcmd1="!showguestbook"
-- adds new entry to guestbook or wtf
levgbcmd2=1
gbcmd2="!addguestbook" -- deletes an entry by ID
levgbcmd3=5
gbcmd3="!delguestbook" 





--========== #2


-- What it is called?


nname="news bulletin" -- the name of this function (call it what you want)


-- name of the textfile that contains entries - if it does not exist, the script will create one.
nfile="dats/news.dat"


-- this shows the news bulletin or wtf
levncmd1=1
ncmd1="!shownews"


-- adds new entry to news bulletin or wtf
levncmd2=1
ncmd2="!addnews" 

-- deletes an entry by ID
levncmd3=5
ncmd3="!delnews" 





--========== #3


-- What it is called?


rname="request board" -- the name of this function (call it what you want)


-- name of the textfile that contains entries - if it does not exist, the script will create one.
rfile="dats/requests.dat"


-- this shows the requests or wtf
levrcmd1=1
rcmd1="!showrequests"


-- adds new entry to requests or wtf
levrcmd2=1
rcmd2="!addrequest" 

-- deletes an entry by ID
levrcmd3=5
rcmd3="!delrequest" 



-------------------- END OF CONFIG


function parseenv(user,env,bot)
	if env=="PM" then
		return "$To: "..user.sName.." From: "..bot.." $<"..bot.."> "
	elseif env=="MAIN" then
		return "<"..bot.."> "
	end
end


function ChatArrival(user,data)
	local returndata=0
	data=string.sub(data,1,string.len(data)-1)
	local _,_,cmd = string.find(data,"%b<>%s+(%S+)")
	if cmd then
		returndata=parsecmds(user,data,string.lower(cmd),"MAIN")
		return 1 

	end
end

function ToArrival(user,data)
	local returndata=0
	data=string.sub(data,1,string.len(data)-1)
	-- is this meant for our bot?
	local _,_,whoTo = string.find(data,"$To:%s+(%S+)")
	if (whoTo == Bot) then
		local _,_,cmd = string.find(data,"$To:%s+%S+%s+From:%s+%S+%s+$%b<>%s+(%S+)")
		returndata=parsecmds(user,data,string.lower(cmd),"PM")
	end return returndata
end 

function parsecmds(user,data,cmd,env)
	local returndata=0
	if cmd==gbcmd1 then
		showshit(user,entries,gbname,gbfile,levgbcmd1,env) returndata=1 -- (user,container,wtf,file)
	elseif cmd==gbcmd2 then
		addshit(user,data,entries,gbfile,levgbcmd2,env) returndata=1 -- (user,data,container,file)
	elseif cmd==gbcmd3 then
		delshit(user,data,entries,gbfile,gbname,levgbcmd3,env) returndata=1 -- delshit(user,data,container,file,wtf)
	-- news stuff
	elseif cmd==ncmd1 then
		showshit(user,entries,nname,nfile,levncmd1,env) returndata=1 -- (user,container,wtf,file)
	elseif cmd==ncmd2 then
		addshit(user,data,entries,nfile,levncmd2,env) returndata=1 -- (user,data,container,file)
	elseif cmd==ncmd3 then
		delshit(user,data,entries,nfile,nname,levncmd3,env) returndata=1 -- delshit(user,data,container,file,wtf)
	-- requests stuff
	elseif cmd==rcmd1 then
	showshit(user,entries,rname,rfile,levrcmd1,env) returndata=1 -- (user,container,wtf,file)
	elseif cmd==rcmd2 then
	addshit(user,data,entries,rfile,levrcmd2,env) returndata=1 -- (user,data,container,file)
	elseif cmd==rcmd3 then
	delshit(user,data,entries,rfile,rname,levrcmd3,env) returndata=1 -- delshit(user,data,container,file,wtf)
	end return returndata
end


function addshit(user,data,container,file,cmdlevel,env)
	if cmdlevel~=0 then
		if CheckUserLevel(user) >= cmdlevel then
			local container=loadshit(file)
			number=number+1
			local _,_,entry=string.find(data,"%b<>%s+%S+%s+(.*)")
			if entry then
				container[number]=os.date("%c").."|"..user.sName.."|"..entry
				saveshit(container,file)
				user:SendData(parseenv(user,env,Bot).."Your entry has been successfully added.")
			else
				user:SendData(parseenv(user,env,Bot).."Please add an entry, too.")
			end
			container={}
		else
			user:SendData(parseenv(user,env,Bot).."You do not have sufficient rights to run that command! |")
		end
	else
		user:SendData(parseenv(user,env,Bot).."That command is disabled.")
	end
end


function loadshit(file)
	local shit={}
	number=0
	local f,e = io.open(file,"r")
	if f then
		while 1 do
			local line = f:read("*l")
			if line ==  nil then
				break
			else 
				number = number +1
				shit[number]=line
			end
		end
		f:close(f)
	end
	return shit
end


function saveshit(container,file)
	local handle = io.open(file,"w+")
		for i=1,number do
			if container[i] then
				handle:write(container[i].."\n")
			end
		end
	handle:flush()
        handle:close()
end
	
 function showshit(user,container,wtf,file,cmdlevel,env)
	if cmdlevel~=0 then
		if CheckUserLevel(user) >= cmdlevel then
			local container=loadshit(file)
			local msg="\r\nHere you go, the "..wtf..":\r\n\r\n"
				if number>0 then
					for i=1,number do
						s,e,who,when,entry=string.find(container[i], "(.+)|(.+)|(.+)")
						msg=msg..i..".\t"..who.." - "..when.." ---> "..entry.."\r\n"
					end
				else
					msg=msg.."No entries in "..wtf.."."
				end
			user:SendPM(Bot,msg)
		else
			user:SendData(parseenv(user,env,Bot).."You do not have sufficient rights to run that command! |")
		end
	else
		user:SendData(parseenv(user,env,Bot).."That command is disabled.")
	end
end


function delshit(user,data,container,file,wtf,cmdlevel,env)
	if cmdlevel~=0 then
		if CheckUserLevel(user) >= cmdlevel then
			local container=loadshit(file)
			local _,_,args=string.find(data,"%b<>%s+%S+%s+(.+)")
			if args then
				string.gsub(args,"(%d+)",function (what)
									what = tonumber(what)
									if what then 
										if container[what] then
											user:SendData(parseenv(user,env,Bot).."Entry #"..what.." is deleted from the "..wtf..".|")
											container[what]=nil
											saveshit(container,file)
										else
											user:SendData(parseenv(user,env,Bot).."Entry #"..what.." wasn't found in the "..wtf..".|")
										end
									else
											user:SendData(parseenv(user,env,Bot).. "I need the ID number to delete an entry.|")
									end
								end)
			else
				user:SendData(parseenv(user,env,Bot).. "I need at least one ID number to work! ;).|")
			end
		else
			user:SendData(parseenv(user,env,Bot).."You do not have sufficient rights to run that command! |")
		end
	else
		user:SendData(parseenv(user,env,Bot).."That command is disabled.")
	end
	container=nil
end


function CheckUserLevel(user)
	if user.iProfile==0 then
		return 5
	elseif user.iProfile==1 then
		return 4
	elseif user.iProfile==3 then
		return 2
	elseif user.iProfile==2 then
		return 3
	else 
		return 1
	end
end


function Main()
	frmHub:RegBot(Bot)
end--------------------------------------------------------------------------------

My error:

Syntax D:\ptokax\ptokax\scripts\guestbook.lua:243: attempt to concatenate global `entry' (a nil value)

Can somebody help me
Owner of 2 public hubs in Palace Network ---> www.palace-network.nl

jiten

Why don't u try this  one?

Syphrone-NL

I used that one
lol

But its giving me that error from 2 days ago before it worked great and i didnt changed anything
Owner of 2 public hubs in Palace Network ---> www.palace-network.nl

Syphrone-NL

Damn wrong section it needs to be posted in lua 5 scripts hehe lol
Owner of 2 public hubs in Palace Network ---> www.palace-network.nl

jiten

QuoteOriginally posted by Syphrone-NL
Damn wrong section it needs to be posted in lua 5 scripts hehe lol

Yups  :D

SMF spam blocked by CleanTalk