any reg/vip chat script
 

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

any reg/vip chat script

Started by gazzer, 27 March, 2004, 13:02:33

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gazzer

hi guys i'm after a vip/reg chat script similar to the one on vb that our old friend gadget made.

basically and user that is regged in the hub can auto have access to the vip chat page and not have to join or unjoin, just close it down.

reason being i want to run trivia in main, but still have a page where regs can hang and chat if they want to.
anyone help me or can point me in right direction please?
-=U=K=?=E=T=-???? the friendly network from good old blighty.

DorianG

I think that this is your ideal script  ;)
I hope to have understood well

-----------------------------------------------------
-- Chat Bot v3.5 Coded by   [aXs] Wellx   01/09-03
-- Formerly known as the Developer-Chat for TIC50
-- Based on the idea VIPChat from Piglja 
-- Thx goes to Piglja & aMutex for Ideas and Help
-----------------------------------------------------

ChatBot = "[ChatRum]"	-- Chat Bot Name
CanUseCommands = { -1 , 0 , 1 , 2 , 3 }	-- Can Use Chat Bot Commands Lvl ( 0 = Master ~~ 1 = Operators ~~ 2 = VIPs ~~ 3 = Reg ~~ etc.)

ChatArray={}
ChatFile = "Chatters.tbl"

function Main()
frmHub:RegBot(ChatBot)
ChatArray = LoadFromFile(ChatFile)
end

--========================================================    DataArrival:    =========================================================--

function DataArrival(user, data)
	if (strsub(data, 1, 1) == "<" ) then 
	data=strsub(data,1,strlen(data)-1)
	_,_,cmd=strfind(data, "%b<>%s+(%S+)")
	local Commands = (DeveloperCommands(user, data, cmd))
	return Commands
	elseif strsub(data, 1, 5) == "$To: " then 
		local s, e, to = strfind(data, "$To: (%S+)")
		if to ~= ChatBot then
			return 0
		else
			if to == ChatBot then
			local data=strsub(data,1,strlen(data)-1)  
			local s,e,from,msg = strfind(data,"From:%s+(%S+)%s+$%b<>%s+(.+)")  
				if ChatArray[user.sName] ~= nil then
				ChatArray[user.sName] = nil
					for i,v in ChatArray do
					Developer=GetItemByName(i)
						if (Developer~=nil) then
						Developer:SendData("$To: "..i.." From: "..ChatBot.." $<"..user.sName.."> "..msg.."|")
						end
					end
				ChatArray[user.sName] = user.sName 
				else
				user:SendPM(ChatBot,"You do not have permission to write inhere (Join or Talk to a Operator if you need permission)")
				end 
			local _,_,cmd = strfind(data,"$%b<>%s+(%S+)")
			local Commands = (DeveloperCommands(user, data, cmd))
			end
		end
	end
end

--=====================================================      Chat Commands:      ======================================================--

function DeveloperCommands(user, data, cmd)
	if tfind(CanUseCommands, user.iProfile) then
		if (cmd == "+chathelp") then
		DevHelp(user)
		return 1
		elseif (cmd == "+chat") then
		local s,e,cmd,ChatName = strfind( data, "%b<>%s+(%S+)%s+(.*)" )
			if (ChatName == nil) then
			ChatName = user.sName
			end
			if ChatArray[ChatName] == nil then
			ChatArray[ChatName] = ChatName
				for index, value in ChatArray do 
				SendPmToNick(index, ChatBot, "  "..ChatName.." Has joined the "..ChatBot) 
				end 
			else
				for index, value in ChatArray do 
				SendPmToNick(index, ChatBot, "  "..ChatName.." Has left the "..ChatBot) 
				end 
			ChatArray[ChatName] = nil
			end
			SaveToFile(ChatName,ChatFile,ChatArray)
			return 1
		elseif (cmd == "+showchatters") then
			function DevList()
			local DevList = ""
				for index, value in ChatArray do
				local line = index
					if GetItemByName(index) then
						if (strlen(index) <= 10) then
						DevList = DevList.." ? "..line.."\t\t\t~ On-line ~\r\n"
						else
						DevList = DevList.." ? "..line.."\t\t~ On-line ~\r\n"
						end
					else
						if (strlen(index) <= 10) then
						DevList = DevList.." ? "..line.."\t\t\t? Off-Line ?\r\n"
						else
						DevList = DevList.." ? "..line.."\t\t? Off-Line ?\r\n"
						end
					end
				end
				return DevList
			end
			user:SendPM(ChatBot, "\r\n\r\n(? ?.??.->      "..ChatBot.." Chatters      <-.??.???) \r\n\r\n"..DevList())
			return 1
		end
	else user:SendData("You don't have permission to use the commands to the "..ChatBot.." ask a Operator for permission !!") return 0 end
end

function DevHelp (user)
	local disp = "\r\n\r\n"
	disp = disp.."~~ Scripted DeveloperChat Commands: ~~\r\n\r\n"
	disp = disp.."   +chat 		-	Add or part a user to the list of people that can chat in the "..ChatBot.."\r\n"
	disp = disp.."   +showchatters		-	See witch users that can chat in the "..ChatBot.."\r\n"
	disp = disp.."\r\n"
	user:SendPM(ChatBot, disp)
end

--========================================================    Functions:    ===========================================================--

function SaveToFile(arg,file,table)
	local aString = pickle(table)
	writeto(file)
	write(aString)
	writeto()
end

function LoadFromFile(file)
	readfrom(file)
	local aString = read("*all")
	return  unpickle(aString) 
end

function tfind(table, key) 
return foreachi(table, function(id, tmp) return (tmp == %key) and id end) 
end 

----------------------------------------------
-- Pickle.lua
-- An table serialization utility for lua
-- Steve Dekorte, [URL]http://www.dekorte.com,[/URL] Apr 2000
-- Freeware
----------------------------------------------
function pickle(t)
return Pickle:clone():pickle_(t)
end

Pickle = {
clone = function (t) local nt={}; for i, v in t do nt[i]=v end return nt end 
}

function Pickle:pickle_(root)
	if type(root) ~= "table" then 
	error("can only pickle tables, not ".. type(root).."s")
	end
	self._tableToRef = {}
	self._refToTable = {}
	local savecount = 0
	self:ref_(root)
	local s = ""
	while getn(self._refToTable) > savecount do
	savecount = savecount + 1
	local t = self._refToTable[savecount]
	s = s.."{\n"
		for i, v in t do
		s = format("%s[%s]=%s,\n", s, self:value_(i), self:value_(v))
		end
	s = s.."},\n"
	end
return format("{%s}", s)
end

function Pickle:value_(v)
local vtype = type(v)
	if vtype == "string" then return format("%q", v)
	elseif vtype == "number" then return v
	elseif vtype == "table" then return "{"..self:ref_(v).."}"
	else --error("pickle a "..type(v).." is not supported")
	end  
end

function Pickle:ref_(t)
local ref = self._tableToRef[t]
	if not ref then 
		if t == self then error("can't pickle the pickle class") end
	tinsert(self._refToTable, t)
	ref = getn(self._refToTable)
	self._tableToRef[t] = ref
	end
return ref
end

----------------------------------------------
-- unpickle
----------------------------------------------

function unpickle(s)
	if type(s) ~= "string" then
	error("can't unpickle a "..type(s)..", only strings")
	end
	local tables = dostring("return "..s)
	for tnum = 1, getn(tables) do
	local t = tables[tnum]
	local tcopy = {}; for i, v in t do tcopy[i] = v end
		for i, v in tcopy do
		local ni, nv
			if type(i) == "table" then ni = tables[i[1]] else ni = i end
			if type(v) == "table" then nv = tables[v[1]] else nv = v end
		t[ni] = nv
		end
	end
return tables[1]
end

gazzer

thanks doriang,
bot is working ok, but...............

what i want is a bot that auto allows all vip's to chat without having to join via +chat.
is that possible for someone to alter this command structure to auto allow peeps on vip and upwards status to chat together so they are not isolated in the hub. but can interact with the ops ans  owners of the hub?
-=U=K=?=E=T=-???? the friendly network from good old blighty.

SMF spam blocked by CleanTalk