Teixeira

Dúvida sobre ligação de resource/getElementPosition

Recommended Posts

Bom dia comunidade, estou começando um estudo de linguagem de programação e meio que algumas dúvidas estão surgindo. Sempre acompanho aqui a parte do fórum brasileiro, em que os senhores tiram as dúvidas daqueles que perguntam e realmente demonstram interesse no que estão perguntando.

1 - Dúvida (Ligação de resource)

Eu estava procurando alguns recursos na internet, e baixei um para ver como o mesmo funciona. Ao baixar o resource que no caso é um sistema de inventário, me deparei com uma situação bem diferente que gostaria de perguntar:

98qlVRG.png 

Como é possível ligar uma resource a outra? Por exemplo nessa foto a cima, tem vários resource diferentes que são ligados a um único resource, como é possível ligar esses resource? Qual a função deve ser utilizada, apenas eu queria uma base mesmo, após isso eu vou aprofundando pesquisando em outros lugares.

 

2 - Dúvida (getElementPosition)

Estou tentando criar um comando simples, que quando o "player" der o comando /entrar em uma determinada posição ele ser teletransportado para outra posição. Eu fiquei rodando e rodando e não conseguir chegar em lugar nenhum, penso que é possível fazer com "getElementPosition" da maneira que verifica se o player está na determinada posição e se for verdadeiro então, ao player dar o comando ele ser teletransportado. Infelizmente não estou conseguindo, poderiam tirar essa dúvida como posso fazer?

Share this post


Link to post
1 hour ago, Teixeira said:

Como é possível ligar uma resource a outra? Por exemplo nessa foto a cima, tem vários resource diferentes que são ligados a um único resource, como é possível ligar esses resource? Qual a função deve ser utilizada, apenas eu queria uma base mesmo, após isso eu vou aprofundando pesquisando em outros lugares.

Os resources são ligados pelo meta.xml

Quando você usa o include, isso faz com que o resource incluído seja iniciado junto com este resource.

Para usar as funções de um resource no outro, você usa a função call (ou export, dependendo da sintaxe que vc escolher) e você deve exportar essa função no meta.xml também.

Essas ligações são comuns nos resources nativos do gamemode padrão, como por exemplo o votemanager.

Share this post


Link to post

1. Dúvida:

Pra você fazer um recurso ser dependente do outro tem duas formas, uma delas é usar uma propriedade no meta desta forma:

<include resource="Nome_Do_Resource"/>

E a segunda maneira, é você usar um call de um resource para o outro.

INFO: Call

2. Dúvida:

Para você se teleportar do local que você esta a outro local você usa a função

SetElementPosition

Exemplo:

function telePosition (thePlayer)
	setElementPosition (thePlayer, x, y, z)
end
addCommandHandler ("go", telePosition)

 

Edited by OverKILL

Share this post


Link to post
1 hour ago, Teixeira said:

penso que é possível fazer com "getElementPosition" da maneira que verifica se o player está na determinada posição e se for verdadeiro então, ao player dar o comando ele ser teletransportado.

Essa não é a melhor maneira de fazer isso. (até dá, mas não é o ideal)

É mais recomendável você fazer isso por meio de um marker (createMarker). Então vc apenas verifica se o jogador está dentro dele ou não (IsElementWithinMarker) ao usar o comando pra teleportar. Se estiver dentro do marker, teleporta pra tal posição com setElementPosition.

local teleMarker = createMarker (0, 0, 2.2, "cylinder", 1) -- Marker que o jogador deve estar dentro pra funcionar.
local teleX, teleY, teleZ = 10, -20, 4 -- Posição que o teleporte vai levar.

function posVerify (thePlayer) -- thePlayer = jogador que executou o comando.
	if isElementWithinMarker (thePlayer, teleMarker) then -- Se o jogador está dentro do marker, então:
		setElementPosition (thePlayer, teleX, teleY, teleZ, true) -- Teleporta o jogador para a coordenada declarada.
		outputChatBox ("Teleportado com sucesso.", thePlayer, 0, 255, 0)
	else
		outputChatBox ("Você não está na posição do teleporte.", thePlayer, 255, 150, 0)
	end
end
addCommandHandler ("tele", posVerify) -- Comando que o jogador usa para teleportar: /tele

====================

Se você realmente quer fazer da maneira não recomendada, que é verificando a posição do jogador, você vai precisar de uma margem de erro nas coordenadas. Pois é impossível o jogador ficar na posição exata que você quer verificar. Então você deve fazer o seguinte, exemplo:

local posX, posY, posZ = 0, 0, 3 -- Posição que o jogador deve estar para que o comando funcione.
local teleX, teleY, teleZ = 10, -20, 4 -- Posição que o teleporte vai levar.

function posVerify (thePlayer) -- thePlayer = jogador que executou o comando.
	local x, y, z = getElementPosition (thePlayer)
	-- Vamos fazer a margem de erro pra 2 coordenadas a mais e 2 coordenadas a menos da posição exata.
	if x >= (posX - 2) and x <= (posX + 2) and y >= (posY - 2) and y <= (posY + 2) and z >= (posZ - 2) and z <= (posZ + 2) then -- Se o jogador está dentro da margem de erro, então:
		setElementPosition (thePlayer, teleX, teleY, teleZ, true) -- Teleporta o jogador para a coordenada declarada.
		outputChatBox ("Teleportado com sucesso.", thePlayer, 0, 255, 0)
	else
		outputChatBox ("Você não está na posição do teleporte.", thePlayer, 255, 150, 0)
	end
end
addCommandHandler ("tele", posVerify) -- Comando que o jogador usa para teleportar: /tele

 

Share this post


Link to post

@Lord Henry e @OverKILL muito obrigado de coração por terem tirado as minhas dúvidas, com pessoas iguais a vocês, fica mais prazeroso aprender a linguagem de programação! 

Share this post


Link to post
On 27/02/2019 at 10:21, Teixeira said:

Bom dia comunidade, estou começando um estudo de linguagem de programação e meio que algumas dúvidas estão surgindo. Sempre acompanho aqui a parte do fórum brasileiro, em que os senhores tiram as dúvidas daqueles que perguntam e realmente demonstram interesse no que estão perguntando.

1 - Dúvida (Ligação de resource)

Eu estava procurando alguns recursos na internet, e baixei um para ver como o mesmo funciona. Ao baixar o resource que no caso é um sistema de inventário, me deparei com uma situação bem diferente que gostaria de perguntar:

98qlVRG.png 

Como é possível ligar uma resource a outra? Por exemplo nessa foto a cima, tem vários resource diferentes que são ligados a um único resource, como é possível ligar esses resource? Qual a função deve ser utilizada, apenas eu queria uma base mesmo, após isso eu vou aprofundando pesquisando em outros lugares.

 

2 - Dúvida (getElementPosition)

Estou tentando criar um comando simples, que quando o "player" der o comando /entrar em uma determinada posição ele ser teletransportado para outra posição. Eu fiquei rodando e rodando e não conseguir chegar em lugar nenhum, penso que é possível fazer com "getElementPosition" da maneira que verifica se o player está na determinada posição e se for verdadeiro então, ao player dar o comando ele ser teletransportado. Infelizmente não estou conseguindo, poderiam tirar essa dúvida como posso fazer?

Desculpem-me o anti-topic, mas é satisfatório ver que um dos primeiros mods que eu fiz são utilizados até hoje, rs.

  • Confused 1

Share this post


Link to post
On 28/02/2019 at 18:37, Vazern said:

Desculpem-me o anti-topic, mas é satisfatório ver que um dos primeiros mods que eu fiz são utilizados até hoje, rs.

satis oq?

Share this post


Link to post

Sem mais Off topic por favor.

Share this post


Link to post
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.