God damn it, people. If you can't write proper Lua, please don't.
@
sheeL: No, your script doesn't work perfectly. It hides the chat of any player if the members table isn't empty and only works for the first entry in the members table.
wotaan actually fixed your code in many places, such as the MessageToAdmins function, which you failed to realise. I won't even talk about tabbing.
This is the code that I propose, you may use it or
wotaan's - as far as I can see, his code is correct.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
members = {}
function split(string)
	local c = {}
	for word in string.gmatch(string, '[^%s]+') do
		table.insert(c, word)
	end
	return c
end
function IsAdmin(id)
	for _, usgn in pairs(members) do
		if player(id,"usgn") == usgn then
			return true
		end
	end
	return false
end
addhook("say","OnSay")
function OnSay(id,text)
	local v = split(text)
	if IsAdmin(id) then
		if v[1] == "!k" and player(v[2],"exists") then
			MessageToAdmins(string.char(169).."000255000Admin "..player(id,"name").." kicked "..player(v[2],"name"))
			parse("kick "..v[2])
			return 1
		end
	end
end
function MessageToAdmins(msg) -- message to all admins
	for _, usgn in pairs(members) do
		for __,pid in pairs(player(0,"table")) do
			if player(pid,"usgn")==usgn then
				msg2(pid,msg)
			end
		end
	end
end