Opa, sou eu de novo. 
Dessa vez, vim liberar um script que ainda estou desenvolvendo já que é muito grande. Trata-se de um painél que dará diversas ferramentas para o GM trabalhar no servidor com maior facilidade. 
  
O que faz isso? 
  
Por enquanto por se tratar de uma versão "Alpha", existem poucos recursos dentre eles: 
  
 
Informações detalhadas do servidor 
Informação de um determinado jogador 
Procura de um item em um jogador (para investigar hacks de itens por exemplo) 
Configuração e uso amigável 
 
  
A versão 0.1 BETA que deverá sair nesse final de semana ou no próximo terá tudo acima listado e mais: 
  
 
Administração de bans 
Possibilidade de uso de senha 
Gravação de atividades no log via log 
Mudanças no sistema in-game  
Broadcasts de diversas cores 
 
  
Estou aceitando sugestões. Bom, agora vamos ao código: 
  
 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- The Commander 0.1 Alpha Release - By Chose
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commander = 
{
password = {true, "123"},
log = false, -- not working yet
firstTime = true,
useDeepSearch = TRUE
}
function Commander:new (i)
i = i or {}
setmetatable(i, self)
self.__index = self
return i
end
function Commander:scanItem(cid, itemName, deepSearch)
local targetItem = getItemIdByName(itemName)
if (isPlayer(cid) then
	if (getPlayerItemById(cid, deepSearch, targetItem)) then
		return true
	end
end
end
function Commander:passwordCheck(entry)
if (entry == self.password[2]) then
	return true
end
end
function Commander:writeLog(cid, action)
local file = io.open(getPlayerName(cid), "a+")
file:write("[" .. os.date("%x") .. "] [" ..  os.date("%X") .. "]" .. action)
io.close(file)
end
function Commander:getServerStats()
return serverStats = 
	{
		players = getWorldCreatures(0),
		monsters = getWorldCreatures(1),
		npcs = getWorldCreatures(1),
		uptime = { hours = math.floor(os.clock() / 3600), minutes =  math.ceil((os.clock() - (3600 * hours))/ 60)},
		playerList = getPlayersOnlineList()
	}
end
function Commander:getPlayerStats(cid)
local online = false
if (isPremium(cid) == TRUE) then
	_premium = "Y"
else
	_premium = "N"
end
if (isPlayer(cid) == TRUE) then
	_online = "Y"
else
	_online = "N"
end
if (isPlayer(cid)) then
	return playerStats =
		{
			level = getPlayerLevel(cid),
			magic = getPlayerMagLevel(cid),
			sex = getPlayerSex(cid),
			hp = getCreatureHealth(cid),
			hpMax = getCreatureMaxHealth(cid),
			mp = getPlayerMana(cid),
			mpMax = getPlayerMaxMana(cid),
			premium = _premium,
			online = _online
		}
end
return false
end
--[[
MESSAGE_STATUS_WARNING = 18
MESSAGE_EVENT_ADVANCE = 19
MESSAGE_EVENT_DEFAULT = 20
MESSAGE_STATUS_DEFAULT = 21
MESSAGE_INFO_DESCR = 22
MESSAGE_STATUS_SMALL = 23
MESSAGE_STATUS_CONSOLE_BLUE = 24
MESSAGE_STATUS_CONSOLE_RED  = 25
]]
function Commander:broadcastMessage(type, msg)
local messageColors = {18, 19, 20, 21, 22, 23, 24, 25}
if (isInArray(messageColors, type)) then
	broadcastMessageEx(type, msg)
end
return false
end
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function onSay(cid, words, param)
local separator = param:find(',') or 0 
if (words == "!commander")
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Welcome to The Commander. Choose what you want to admin:')
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '1) Server | 2) Players | 3) Item Scan | 4) Banishments | 5) Broadcast | 6) Options'
elseif (words == "1") then
	Commander:getServerStats()
elseif (words == "2") then
	if (separator > 0) then
		if (Commander:getPlayerStats(getPlayerByName(param:sub(1, separator - 1)))) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Level: ' .. Commander:getPlayerStats(cid).level .. ' | Magic: ' .. Commander:getPlayerStats(cid).magic .. ' | Sex: ' .. Commander:getPlayerStats(cid).sex .. ' | HP: ' .. Commander:getPlayerStats(cid).hp .. '/' .. Commander:getPlayerStats(cid).hpMax .. ' | MP: ' .. Commander:getPlayerStats(cid).mp .. '/' .. Commander:getPlayerStats(cid).mpMax .. ' | Premium: ' .. Commander:getPlayerStats(cid).premium .. ' | Online: ' .. Commander:getPlayerStats(cid).online)
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Player not exists or it is not online.')
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Player Manager. Please type "!2, <player name>". E.g: !2, Chose')
	end
elseif (words == "3") then
	if (separator > 0) then
		local targetPlayer, targetItem = param:sub(1, separator - 1), param:sub(separator + 1, param:len())
		if (Commander:scanItem(getPlayerByName(targetPlayer), targetItem, Commander.useDeepSearch)) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item found.')
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item not found.')
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Item Scan. Please type "!3, <player name>, <item name>". E.g: !3, Chose, Carlin Sword')
	end
elseif (words == "!4") then	
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Not working yet.')
elseif (words == "!5") then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Not working yet.')
elseif (words == "!6") then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Options Manager')
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Choose what you want to change: A) Enable/Disable Log System | B) Enable/Disable Deep Search')
elseif (words == "!A") then
	if (Commander.log) then
		Commander.log = false
	else
		Commander.log = true
	end
elseif (words == "!B") then
	if (Commander.useDeepSearch == TRUE) then
		Commander.useDeepSearch == FALSE
	else	
		Commander.useDeepSearch == TRUE
	end
else
	return false
end
end
 
  
E em talkactions.xml você adiciona as words: !commander, !1, !2, !3, !4, !5, !6, !A, !B. 
  
Lembrando que o script ainda não está 100% mas que os sistemas que listei estão funcionando corretamente. O sistema apenas está faltando coisas que eu ainda irei implementar.