Jump to content

Ajuda Chat Local


Recommended Posts

Posted

Olá, 

estou com uma duvida em meu script.

Como faço para que esse Chatbox fica local ? só aparece ao redor de quem usou o comando, e ao redor da pessou que puxado pelo comando.

function getPlayer(player, cmd, id)
	if tonumber(id) then
		local mx, my, mz = getElementPosition(player)
		local player2 = getPlayerFromID ( tonumber(id) )
		local trplayername = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
		if not player2 or not isElement(player2) then
			return outputChatBox( "Player Offline", player )
		end
		local rand = math.random(1, 5)
		outputChatBox ( "#c9c9c9[#1a6cefFW-COMANDO#c9c9c9]O #1a6cef".. trplayername .."#c9c9c9 Puxou o #1a6cef".. id .."", source, 255, 0, 0, true );
		setElementPosition(player2, mx+rand, my+rand, mz + 1)
	end
end
addCommandHandler("tr", getPlayer)

 

Posted (edited)
On 25/07/2019 at 17:24, giovanymito said:

Olá, 

estou com uma duvida em meu script.

Como faço para que esse Chatbox fica local ? só aparece ao redor de quem usou o comando, e ao redor da pessou que puxado pelo comando.


function getPlayer(player, cmd, id)
	if tonumber(id) then
		local mx, my, mz = getElementPosition(player)
		local player2 = getPlayerFromID ( tonumber(id) )
		local trplayername = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
		if not player2 or not isElement(player2) then
			return outputChatBox( "Player Offline", player )
		end
		local rand = math.random(1, 5)
		outputChatBox ( "#c9c9c9[#1a6cefFW-COMANDO#c9c9c9]O #1a6cef".. trplayername .."#c9c9c9 Puxou o #1a6cef".. id .."", source, 255, 0, 0, true );
		setElementPosition(player2, mx+rand, my+rand, mz + 1)
	end
end
addCommandHandler("tr", getPlayer)

 

Tentei procurar alguma função para fazer isso e falhei.

Estou querendo que o chatbox aparece somente perto de quem ultizou ou comando e de quem foi puxado pelo comando

Oque teria que usar para isso

Edited by giovanymito
Posted

Mude source para player e para mostrar para quem foi puxado use player2.

Se você quer que mostre essa mensagem para jogadores a uma determinada distância do player use: getDistanceBetweenPoints3D e faça um loop nos jogadores do server verificando a distância.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
1 hour ago, DNL291 said:

Mude source para player e para mostrar para quem foi puxado use player2.

Se você quer que mostre essa mensagem para jogadores a uma determinada distância do player use: getDistanceBetweenPoints3D e faça um loop nos jogadores do server verificando a distância.

Eu fazendo isso não deixara o servidor lento ? Caso tenha muitos player online

Posted (edited)
function getPlayer(player, cmd, id)
	if tonumber(id) then
		local mx, my, mz = getElementPosition(player)
		local player2 = getPlayerFromID ( tonumber(id) )
		local trplayername = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
		if not player2 or not isElement(player2) then
			return outputChatBox( "Player Offline", player )
		end
		local rand = math.random(1, 5)
		for i=1, #players do   -- fastest loop 
		local xp, yp, zp = getElementPosition ( players[i] ) 
		if getDistanceBetweenPoints3D ( x, y, z, xp, yp, zp ) <= 50 then
		outputChatBox ( "#c9c9c9[#1a6cefFW-COMANDO#c9c9c9]O #1a6cef".. trplayername .."#c9c9c9 Puxou o #1a6cef".. id .."", players[i], 255, 0, 0, true );
		setElementPosition(player2, mx+rand, my+rand, mz + 1)
        end
		end
	end
end
addCommandHandler("tr", getPlayer)

Seria assim ??

Edited by giovanymito
Posted

Não vai deixar lento.

Tente:

function getPlayer(player, cmd, id)
	if tonumber(id) then
		local mx, my, mz = getElementPosition(player)
		local player2 = getPlayerFromID ( tonumber(id) )
		if not player2 or not isElement(player2) then
			return outputChatBox( "Player Offline", player )
		end
		local trplayername = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
		
		setElementPosition(player2, mx+rand, my+rand, mz + 1)
		
		for i, p in ipairs(getElementsByType("player")) do
			local xp, yp, zp = getElementPosition ( p )
			
			if getDistanceBetweenPoints3D ( mx, my, mz, xp, yp, zp ) <= 50 then
				outputChatBox ( "#c9c9c9[#1a6cefFW-COMANDO#c9c9c9]O #1a6cef".. trplayername .."#c9c9c9 Puxou o #1a6cef".. tostring(id), p, 255, 0, 0, true );
			end
		end
	end
end
addCommandHandler("tr", getPlayer)

 

Please do not PM me with scripting related question nor support, use the forums instead.

Posted (edited)
On 27/07/2019 at 10:59, DNL291 said:

Não vai deixar lento.

Tente:


function getPlayer(player, cmd, id)
	if tonumber(id) then
		local mx, my, mz = getElementPosition(player)
		local player2 = getPlayerFromID ( tonumber(id) )
		if not player2 or not isElement(player2) then
			return outputChatBox( "Player Offline", player )
		end
		local trplayername = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
		
		setElementPosition(player2, mx+rand, my+rand, mz + 1)
		
		for i, p in ipairs(getElementsByType("player")) do
			local xp, yp, zp = getElementPosition ( p )
			
			if getDistanceBetweenPoints3D ( mx, my, mz, xp, yp, zp ) <= 50 then
				outputChatBox ( "#c9c9c9[#1a6cefFW-COMANDO#c9c9c9]O #1a6cef".. trplayername .."#c9c9c9 Puxou o #1a6cef".. tostring(id), p, 255, 0, 0, true );
			end
		end
	end
end
addCommandHandler("tr", getPlayer)

 

ERROR: [FW]Comandos\Server.Lua:10: attempt to perform arithmetic on global 'rand' (a nil value)

Chega esse erro

Edited by giovanymito
  • Moderators
Posted (edited)

Ele está procurando isso na linha 9.

local rand = math.random(1, 5)

Mas não prestei atenção se foi removido de propósito.

Edited by Lord Henry

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! spacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
9 minutes ago, Lord Henry said:

Ele está procurando isso na linha 9.


local rand = math.random(1, 5)

Mas não prestei atenção se foi removido de propósito.

Entendi, Sou um fracasso ainda em Lua ?‍♂️, vim do samp, aos poucos vamos aprendendo kkkk .

Agora Funcionou

  • Moderators
Posted

Não se esqueça do Thanks nas respostas que lhe ajudaram.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! spacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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