Jump to content

Chat Visível para Uma ACL Especifica


Recommended Posts

Posted

Quais argumentos eu tenho que usar pra um chat aparecer somente para uma ACL especifica?

Por exemplo, quando o player der o comando "/uber", aparecer o chat "o Jogador (nome) está precisando de um uber em (local)", mas que esse chat seja visivel somente pra quem ta na ACL da Uber

Posted (edited)
     local accName = getAccountName ( getPlayerAccount (player) )
     if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ACL_NAME" ) ) then

 

Edited by Mewjas
Posted
1 minute ago, Mewjas said:

     local accName = getAccountName ( getPlayerAccount (player) )
     if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ACL_NAME" ) ) then

Mas não teria que user nada como setElementVisebleTo?

Posted (edited)

Sim, Só coloquei a parte da verificação da ACL Uber, para fazer totalmente o que você quer teria que complementar mais, só deixei isto para amenizar seu trabalho.

Edited by Mewjas
Posted
1 minute ago, Mewjas said:

Sim, Só coloquei a parte da verificação da ACL Uber, para fazer totalmente o que você quer teria que complementar mais, só deixei isto para amenizar seu trabalho.

Tá mas tipo, qual elemento eu usaria no chatBox?

Posted

Daria pra fazer isso fazendo um loop obtendo todos jogadores  do server e verificar se cada jogador esta na Acl Uber se  não tiver não ira aparecer o output 

Posted
Just now, OverKILL said:

Daria pra fazer isso fazendo um loop obtendo todos jogadores  do server e verificar se cada jogador esta na Acl Uber se  não tiver não ira aparecer o output 

E como eu faria isso?

Posted (edited)
2 minutes ago, OverKILL said:

Daria pra fazer isso fazendo um loop obtendo todos jogadores  do server e verificar se cada jogador esta na Acl Uber se  não tiver não ira aparecer o output 

 

Ele não sabe "monta" todo código, basicamente ele está pedindo o código pronto.

Edited by Mewjas
Posted
Just now, Mewjas said:

Ele não sabe "monta" todo código, basicamente ele está pedindo o código pronto.

Obviamente se eu estou pedindo ajuda, é por que eu não sei -_-

Posted

Pra obter todos  jogadores do tipo player você  vai usar isto; 

getElementsByType ("player") 

Eu estou no celular fica difícil eu fazer o código pra você aqui mas é muito simples tem um tópico aqui na aba se programação em .lua que o varzn fez sobre  loops o loordin explicou passo.a passo lá, procure que você ira entender se não conseguir quando eu chegar eh faço o código e comento e te mando. 

Posted
1 minute ago, OverKILL said:

Pra obter todos  jogadores do tipo player você  vai usar isto; 

getElementsByType ("player") 

Eu estou no celular fica difícil eu fazer o código pra você aqui mas é muito simples tem um tópico aqui na aba se programação em .lua que o varzn fez sobre  loops o loordin explicou passo.a passo lá, procure que você ira entender se não conseguir quando eu chegar eh faço o código e comento e te mando. 

Blz mn, tmj

  • Other Languages Moderators
Posted
14 minutes ago, OverKILL said:

tem um tópico aqui na aba se programação em .lua que o varzn fez sobre  loops o loordin explicou passo.a passo lá, procure que você ira entender

Se refere a este?

 

 

  • Thanks 1
Posted
2 minutes ago, Lord Henry said:

Se refere a este?

 

 

eu dei uma olhada, mas não entendi muito bem, pq pelo o que eu consegui interpretar la não fala sobre acl

 

  • Other Languages Moderators
Posted
1 minute ago, danblemes1 said:

eu dei uma olhada, mas não entendi muito bem, pq pelo o que eu consegui interpretar la não fala sobre acl

 

Lá fala de Loops, não de ACL.

Mas o loop que tem lá é pra fazer algo em cada jogador do servidor. A única diferença é que em vez de vc dar um jetpack pra cada um, como foi feito no exemplo de lá, vc vai verificar a conta de cada player. Se estiver na ACL Group, manda o texto pra ele, se não estiver, não acontece nada.

Posted
function PedirUber (source) 
  local Jogadores = getElementsByType("player") -- Todos Jogadores Online
  for _,Jogad in ipairs(Jogadores) do -- Para cada elemento dessa table, faça o seguinte:
  local accName = getAccountName ( getPlayerAccount (Jogad) ) -- Contas do jogador
  if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ACL_NAME" ) ) then -- se a Conta do jogador Estiver no grupo "ACL_NAME" Então o Output será executado apenas para o Grupo "ACL_NAME"
  local Cliente = getPlayerName(source) -- Nick do jogador que executou /uber
  outputChatBox ("Jogador "..Cliente.." #ffffffPediu Uber!", Jogad,255,255,255,true) -- Mensagem pra todos jogadores que está no grupo "ACL_NAME"
end
end
end
addCommandHandler("uber",PedirUber) 

Se tu tivesse Dado uma olhadinha no link que te mandaram acima iria ver que o loop estava pronto. Aqui apenas implementei aclGetGroup.

  • Thanks 1
Posted
8 minutes ago, danilin said:

function PedirUber (source) 
  local Jogadores = getElementsByType("player") -- Todos Jogadores Online
  for _,Jogad in ipairs(Jogadores) do -- Para cada elemento dessa table, faça o seguinte:
  local accName = getAccountName ( getPlayerAccount (Jogad) ) -- Contas do jogador
  if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ACL_NAME" ) ) then -- se a Conta do jogador Estiver no grupo "ACL_NAME" Então o Output será executado apenas para o Grupo "ACL_NAME"
  local Cliente = getPlayerName(source) -- Nick do jogador que executou /uber
  outputChatBox ("Jogador "..Cliente.." #ffffffPediu Uber!", Jogad,255,255,255,true) -- Mensagem pra todos jogadores que está no grupo "ACL_NAME"
end
end
end
addCommandHandler("uber",PedirUber) 

Se tu tivesse Dado uma olhadinha no link que te mandaram acima iria ver que o loop estava pronto. Aqui apenas implementei aclGetGroup.

Vlw mn, vou testar aqui :)

Posted

Código devidamente identado, lordin tem tick e eu também:

 

function PedirUber (source) 
	local everybody = getElementsByType ("player") -- Todos Jogadores Online
	local accName = getAccountName (getPlayerAccount(jogadores)) -- Contas do jogador
	for _, jogadores in ipairs (everybody) do -- Para cada elemento dessa table, faça o seguinte:
		if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ACL_NAME" )) then -- se a Conta do jogador Estiver no grupo "ACL_NAME" Então o Output será executado apenas para o Grupo "ACL_NAME"
			outputChatBox ("O(A) Jogador "..getPlayerName (source).." #ffffffPediu Uber!", jogadores, 255, 255, 255, true) -- Mensagem pra todos jogadores que está no grupo "ACL_NAME"
		end
	end
end
addCommandHandler("uber", PedirUber) 

 

  • Other Languages Moderators
Posted
36 minutes ago, OverKILL said:

Código devidamente identado, lordin tem tick e eu também:

 


function PedirUber (source) 
	local everybody = getElementsByType ("player") -- Todos Jogadores Online
	local accName = getAccountName (getPlayerAccount(jogadores)) -- Contas do jogador
	for _, jogadores in ipairs (everybody) do -- Para cada elemento dessa table, faça o seguinte:
		if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ACL_NAME" )) then -- se a Conta do jogador Estiver no grupo "ACL_NAME" Então o Output será executado apenas para o Grupo "ACL_NAME"
			outputChatBox ("O(A) Jogador "..getPlayerName (source).." #ffffffPediu Uber!", jogadores, 255, 255, 255, true) -- Mensagem pra todos jogadores que está no grupo "ACL_NAME"
		end
	end
end
addCommandHandler("uber", PedirUber) 

 

A linha 3 deve estar abaixo da linha 4.

  • Other Languages Moderators
Posted

Deixa que eu mesmo arrumo essa bagaça:

function PedirUber (thePlayer)
	local everybody = getElementsByType ("player") -- Todos os jogadores conectados no servidor.
	for _, jogador in ipairs (everybody) do -- Para cada jogador da table everybody, faça:
		local accName = getAccountName (getPlayerAccount(jogador)) -- accName recebe a conta do jogador
		if isObjectInACLGroup ("user."..accName, aclGetGroup ("UBER")) then -- Se a conta do jogador estiver no grupo "UBER" então:
			outputChatBox ("O Jogador "..getPlayerName (thePlayer).." #ffffffpediu um Uber!", jogador, 255, 255, 255, true) -- Mensagem pra esse jogador que está na ACL Group.
		end -- Se não estiver, não manda nada pra ele.
	end
end
addCommandHandler ("uber", PedirUber)

 

  • Like 1
  • Haha 1

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...