Jump to content

Ajuda - Chat


Recommended Posts

Estou tentando criar um chat privado para  uma organização do servidor.

como faço para mandar essas mensagem para os membro que esta na key Helper

no script abaixo fiz ele puxar o cargo do player usando o value, agora como faço para mandar apenas para quem ta no 'key' Helper

function chathelper(thePlayer, cmd, ...) 
	local conta = getAccountName (getPlayerAccount(thePlayer))
	--if (getAccountData (getPlayerAccount (thePlayer), "Helper") == 4) then
	local dataLevel = getAccountData (getPlayerAccount (thePlayer), "Helper")
if (dataLevel) then -- Se o jogador possui essa data na conta, então:
	if (dataLevel >= 4) then 
		local message = table.concat ( { ... }, " " ) 
		local name = getPlayerName(thePlayer) 
			outputChatBox("#ffffff[ #20d608Chat Helper - Líder #ffffff]#20d608 "..name..": #FFFFFF"..message, getRootElement(), 255, 255, 255, true)
	elseif (dataLevel >= 3) then 
		local message = table.concat ( { ... }, " " ) 
		local name = getPlayerName(thePlayer) 
			outputChatBox("#ffffff[ #20d608Chat Helper - Sub-Líder #ffffff]#20d608 "..name..": #FFFFFF"..message, getRootElement(), 255, 255, 255, true)
	elseif (dataLevel >= 2) then 
		local message = table.concat ( { ... }, " " ) 
		local name = getPlayerName(thePlayer) 
			outputChatBox("#ffffff[ #20d608Chat Helper - Fixo #ffffff]#20d608 "..name..": #FFFFFF"..message, getRootElement(), 255, 255, 255, true)
	elseif (dataLevel == 1) then 
		local message = table.concat ( { ... }, " " ) 
		local name = getPlayerName(thePlayer) 
			outputChatBox("#ffffff[ #20d608Chat Helper - Temporário #ffffff]#20d608 "..name..": #FFFFFF"..message, getRootElement(), 255, 255, 255, true)
		end
	end
end
addCommandHandler("ch", chathelper)

 

Link to comment
  • Other Languages Moderators

Utilize essa função para obter jogadores que possuem determinada accountData.

function getPlayersFromAccountData (data)
    if (not data) then return false end -- Se não tiver data no parâmetro, retorna false.
    local dataPlayers = {} -- Inicia uma table vazia.
    for i, player in ipairs (getElementsByType ("player")) do -- Para cada jogador conectado no servidor, faça:
        if (getAccountData (getPlayerAccount(player), data)) then -- Se o jogador possui a accountData específica, então:
            table.insert (dataPlayers, player) -- Adiciona esse jogador na table dataPlayers
        end
    end
    return dataPlayers -- Retorna uma lista de jogadores que possuem a accountData específica. Retornará uma lista vazia se ninguém possuir tal accountData.
end

E depois no seu script, passe um loop por essa tabela, mandando a mensagem pra cada jogador nela.

local helpers = getPlayersFromAccountData ("Helper")
if (#helpers > 0) then -- Se existe algum jogador com essa accountData, então:
    for i, player in ipairs (helpers) do -- Para cada jogador na lista, manda isso no chat dele:
        outputChatBox ("Mensagem exclusiva para helpers.", player)
    end
end

 

  • Thanks 1
Link to comment
9 hours ago, Lord Henry said:

Utilize essa função para obter jogadores que possuem determinada accountData.


function getPlayersFromAccountData (data)
    if (not data) then return false end -- Se não tiver data no parâmetro, retorna false.
    local dataPlayers = {} -- Inicia uma table vazia.
    for i, player in ipairs (getElementsByType ("player")) do -- Para cada jogador conectado no servidor, faça:
        if (getAccountData (getPlayerAccount(player), data)) then -- Se o jogador possui a accountData específica, então:
            table.insert (dataPlayers, player) -- Adiciona esse jogador na table dataPlayers
        end
    end
    return dataPlayers -- Retorna uma lista de jogadores que possuem a accountData específica. Retornará uma lista vazia se ninguém possuir tal accountData.
end

E depois no seu script, passe um loop por essa tabela, mandando a mensagem pra cada jogador nela.


local helpers = getPlayersFromAccountData ("Helper")
if (#helpers > 0) then -- Se existe algum jogador com essa accountData, então:
    for i, player in ipairs (helpers) do -- Para cada jogador na lista, manda isso no chat dele:
        outputChatBox ("Mensagem exclusiva para helpers.", player)
    end
end

 

Deu certo muito obrigado :D

consegui adaptar ao meu script

 

 

Link to comment
function chathelper(thePlayer, cmd, ...) 
	local conta = getAccountName (getPlayerAccount(thePlayer))
	--if (getAccountData (getPlayerAccount (thePlayer), "Helper") == 4) then
	local dataLevel = getAccountData (getPlayerAccount (thePlayer), "Helper")
	local helpers = getPlayersFromAccountData ("Helper")
	if (dataLevel) then -- Se o jogador possui essa data na conta, então:
	if (dataLevel >= 4) then 
		if (#helpers > 0) then -- Se existe algum jogador com essa accountData, então:
            for i, player in ipairs (helpers) do -- Para cada jogador na lista, manda isso no chat dele:
				local message = table.concat ( { ... }, " " ) 
				local name = getPlayerName(thePlayer) 
				outputChatBox(" #ffffff** #02d1e8Chat Helper - Líder #ffffff➟#02d1e8 "..name..": #FFFFFF"..message, player, 255, 255, 255, true)
			end
		end
	elseif (dataLevel >= 3) then 
		if (#helpers > 0) then -- Se existe algum jogador com essa accountData, então:
            for i, player in ipairs (helpers) do -- Para cada jogador na lista, manda isso no chat dele:
				local message = table.concat ( { ... }, " " ) 
				local name = getPlayerName(thePlayer) 
			outputChatBox(" #ffffff** #02d1e8Chat Helper - Sub-Líder #ffffff➟#02d1e8 "..name..": #FFFFFF"..message, player, 255, 255, 255, true)
			end
		end
	elseif (dataLevel >= 2) then 
		if (#helpers > 0) then -- Se existe algum jogador com essa accountData, então:
            for i, player in ipairs (helpers) do -- Para cada jogador na lista, manda isso no chat dele:
				local message = table.concat ( { ... }, " " ) 
				local name = getPlayerName(thePlayer) 
			outputChatBox(" #ffffff** #02d1e8Chat Helper - Fixo #ffffff➟#02d1e8 "..name..": #FFFFFF"..message, player, 255, 255, 255, true)
			end
		end
	elseif (dataLevel == 1) then 
		if (#helpers > 0) then -- Se existe algum jogador com essa accountData, então:
            for i, player in ipairs (helpers) do -- Para cada jogador na lista, manda isso no chat dele:
				local message = table.concat ( { ... }, " " ) 
				local name = getPlayerName(thePlayer) 
			outputChatBox(" #ffffff** #02d1e8Chat Helper - Temporário #ffffff➟#02d1e8 "..name..": #FFFFFF"..message, player, 255, 255, 255, true)
			end
		end
		end
	end
end
addCommandHandler("h", chathelper)

 

18 hours ago, Lord Henry said:

Utilize essa função para obter jogadores que possuem determinada accountData.


function getPlayersFromAccountData (data)
    if (not data) then return false end -- Se não tiver data no parâmetro, retorna false.
    local dataPlayers = {} -- Inicia uma table vazia.
    for i, player in ipairs (getElementsByType ("player")) do -- Para cada jogador conectado no servidor, faça:
        if (getAccountData (getPlayerAccount(player), data)) then -- Se o jogador possui a accountData específica, então:
            table.insert (dataPlayers, player) -- Adiciona esse jogador na table dataPlayers
        end
    end
    return dataPlayers -- Retorna uma lista de jogadores que possuem a accountData específica. Retornará uma lista vazia se ninguém possuir tal accountData.
end

E depois no seu script, passe um loop por essa tabela, mandando a mensagem pra cada jogador nela.


local helpers = getPlayersFromAccountData ("Helper")
if (#helpers > 0) then -- Se existe algum jogador com essa accountData, então:
    for i, player in ipairs (helpers) do -- Para cada jogador na lista, manda isso no chat dele:
        outputChatBox ("Mensagem exclusiva para helpers.", player)
    end
end

 

 

Link to comment
  • Other Languages Moderators
function getPlayersFromAccountData (data)
    if (not data) then return false end -- Se não tiver data no parâmetro, retorna false.
    local dataPlayers = {} -- Inicia uma table vazia.
    for i, player in ipairs (getElementsByType ("player")) do -- Para cada jogador conectado no servidor, faça:
        if (getAccountData (getPlayerAccount(player), data) > 0) then -- Se o jogador possui a accountData específica maior que 0, então:
            table.insert (dataPlayers, player) -- Adiciona esse jogador na table dataPlayers
        end
    end
    return dataPlayers -- Retorna uma lista de jogadores que possuem a accountData específica. Retornará uma lista vazia se ninguém possuir tal accountData.
end

 

  • Thanks 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...