• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

!online

Dankoo

Active Member
Joined
Sep 4, 2010
Messages
1,007
Reaction score
27
I have this !online script:

Lua:
local config = {
showGamemasters = getBooleanFromString(getConfigValue('displayGamemastersWithOnlineCommand'))
}
function onSay(cid, words, param, channel)
local players = getPlayersOnline()
local strings = {""}
local i, position = 1, 1
local added = FALSE
for _, pid in ipairs(players) do
if(added) then
if(i > (position * 7)) then
strings[position] = strings[position] .. ","
position = position + 1
strings[position] = ""
else
strings[position] = i == 1 and "" or strings[position] .. ", "
end
end
if((config.showGamemasters or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES) or not getPlayerCustomFlagValue(pid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) and (not isPlayerGhost(pid) or getPlayerGhostAccess(cid) >= getPlayerGhostAccess(pid))) then
strings[position] = strings[position] .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]"
i = i + 1
added = TRUE
else
added = FALSE
end
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, (i - 1) .. " player(s) online:")
for i, str in ipairs(strings) do
if(str:sub(str:len()) ~= ",") then
str = str .. "."
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str)
end
return TRUE
end

It would be nice if we could adapt this script to show like this:

21:26 2 player(s) and 1 staff member(s) online:
21:26 Treveran [9], Pain Firework's [20].
21:26 Staff member(s): Steve
 
Agreed, but by looking at the script it's implicit that GhostMode gamemasters don't appears in !online command
 
Lua:
local config = {
	showGamemasters = getBooleanFromString(getConfigValue('displayGamemastersWithOnlineCommand'))
}

function onSay(cid, words, param, channel)
	local players = getPlayersOnline()
	local strings = {""}

	local i, position = 1, 1
	local added = false
	local staff = {}
	for _, pid in ipairs(players) do
	    if getPlayerAccess(pid) > 3 then
            table.insert(staff, pid)
		end
		if(added) then
			if(i > (position * 7)) then
				strings[position] = strings[position] .. ","
				position = position + 1
				strings[position] = ""
			else
				strings[position] = i == 1 and "" or strings[position] .. ", "
			end
		end

		if((config.showGamemasters or getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES) or not getPlayerCustomFlagValue(pid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) and (not isPlayerGhost(pid) or getPlayerGhostAccess(cid) >= getPlayerGhostAccess(pid)) and getPlayerAccess(pid) < 3) then
			strings[position] = strings[position] .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]"
			i = i + 1
			added = true
		else
			added = false
		end
	end

	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, (i - 1) .. " player(s) and " .. #staff .. " staff member(s) online:")
	for i, str in ipairs(strings) do
		if(str:sub(str:len()) ~= ",") then
			str = str .. "."
		end
		local text = ""
		local sep = ", "
        	for i = 1, #staff do
			if i == #staff - 1 then
				sep = " and "
			elseif i == #staff then
				sep = "."
			end
			text = text .. getCreatureName(staff[i]) .. sep
		end
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player(s): " .. str)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Staff member(s): " .. text)
	end

	return true
end
 
This script is not working 100%.
It's showwing Ghost GM's.
Will be better if list like this (example):

2 Staff Members Online: GM Dankoo, GM Lucas.
200 Players Online: Dankoo, Lucas ... Darkhaos.



Reason:
If you list GM's after all, it will be in chat of player(they will msg all time)
 
This script is not working 100%.
It's showwing Ghost GM's.
Will be better if list like this (example):

2 Staff Members Online: GM Dankoo, GM Lucas.
200 Players Online: Dankoo, Lucas ... Darkhaos.



Reason:
If you list GM's after all, it will be in chat of player(they will msg all time)

i'll work on it in 2 hours..
 
Back
Top