Jump to content

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?

Link to comment
  • Other Languages Moderators
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.

Link to comment

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
Link to comment
  • Other Languages Moderators
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

 

Link to comment
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
Link to comment
  • 2 weeks later...
  • DNL291 locked this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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