!mute [id] [minute]
------------------------------
!mute 2 9 --> ID 2 muted for 9 minute.
!mute 2 --> ID 2 no longer muted.
Thanks.
Scripts
Mute with minute
Mute with minute
1

mute = {}
function split(str, pat)
local t = {}
local fpat = "(.-)" .. pat
local last_end = 1
local s, e, cap = str:find(fpat, 1)
while s do
if s ~= 1 or cap ~= "" then
	 table.insert(t,cap)
end
last_end = e+1
s, e, cap = str:find(fpat, last_end)
end
if last_end <= #str then
cap = str:sub(last_end)
table.insert(t, cap)
end
return t
end
function unmute(id)
	local id = tonumber(id)
	mute[id] = false
end
addhook("say","_say")
function _say(id,txt)
	if mute[id] then return 1
	else
		local t = split(txt," ")
		if t[1] == "!mute" and #t == 3 then
			local id = tonumber(t[2])
			local minutes = tonumber(t[3])
			mute[id] = true
			timer(minutes * 1000 * 60, "unmute",""..id,1)
		end
	end
end
function array(b)
	local a = {}
	for i = 1, 32 do
		a[i] = b
	end
	return a
end
function splitString(string)
	local c = {}
	for word in string.gmatch(string, '[^%s]+') do
		table.insert(c, word)
	end
	return c
end
plr = {}
plr.mute = array(0)
plr.admin = {
	[usgn1] = 1,
	[usgn2] = 1,
	[usgn3] = 1
}		--// Write USGN's here
addhook('say', '_sayFunc')
addhook('second', '_secondFunc')
function _muteFunc(id, time)
	if not time then
		plr.mute[id] = 0
		return 1
	else
		plr.mute[id] = time * 60
		return 2
	end
end
function _secondFunc()
	for _, id in pairs(player(0, 'tableliving')) do
		if plr.mute[id] > 0 then
			plr.mute[id] = plr.mute[id] - 1
		end
	end
end
function _sayFunc(id, msg)
	if plr.mute[id] == 0 then
		--// Saycommands
		local a = splitString(msg)
		if string.sub(a[1], 1, 1) == '!' then
			if plr.admin[player(id, 'usgn')] then	--// All admin functions
				if string.upper(string.sub(a[1], 2, string.len(a[1]))) == 'MUTE' then		--// Mute syntax
					local b = _muteFunc(a[2], a[3])
					if b == 1 then
						print(player(id, 'name')..'('..player(id,'usgn')..'): muted '..player(a[2], 'name')..'('..player(a[2], 'usgn')..') for '..a[3]..' minutes.')
					elseif b == 2 then
						print(player(id, 'name')..'('..player(id,'usgn')..'): unmuted '..player(a[2], 'name')..'('..player(a[2], 'usgn')..')')
					end
				end
			end
			--// All non-admin functions
			return 1
		end
	else
		return 1
	end
end
limonata has writtenfunction _secondFunc() for _,id in pairs(player(0,"table")) do if plr.mute[id] > 0 then plr.mute[id] = plr.mute[id] - 1 end end end
limonata has written
print(player(id, 'name')..'('..player(id,'usgn')..'): unmuted '..player(a[2], 'name')..'('..player(a[2], 'usgn')..')')
limonata has written
print(player(id, 'name')..'('..player(id,'usgn')..'): unmuted '..player(a[2], 'name')..'('..player(a[2], 'usgn')..')')
Also there is no any message it should be write.
I can ask another. function Split(string)
local c = {}
for word in string.gmatch(string, '[^%s]+') do
table.insert(c, word)
end
return c
end
muted = {} for a = 1,32 do muted[a] = false end
admins = {12345,54321,xxxxx} -- your usgn here
addhook("say","OnSay")
function OnSay(id,text)
local id = tonumber(id) -- debug
if muted[id] == true then
	msg2(id,"©255000000[ERROR] You Are Muted !")
	return 1
end
local i = Split(text)
for _, k in ipairs(admins) do
if player(id,"usgn") == k then
if i[1] == "!mute" then
	local param = tonumber(i[2])
	local mintime = tonumber(i[3])
		if (muted[param]==false) then
		msg("©255255255> "..player(id,"name").." muted "..player(param,"name").." for "..mintime.." Minute(s) !")
			muted[param] = true
				timer(mintime * 1000 * 60, "unp",""..param)
					return 1
				else
					muted[param] = false
				msg("©255255255> "..player(id,'name').." unmuted "..player(param,"name"))
				end
				return 1
			end
		end
	end
end
addhook("join","OnPlayer")
addhook("leave","OnPlayer")
function OnPlayer(id)
	muted[id] = false
end
function unp(v)
v = tonumber(v) -- debug
	msg2(v,"You are UnMuted !")
muted[v] = false
end
sheeL: Dude thank you so much
It is works !!
1
