PT-BR/setElementPosition

From Multi Theft Auto: Wiki
Jump to navigation Jump to search

Esta função define a posição de um elemento para as coordenadas especificadas.

[[|link=|]] Aviso: Não use essa função para spawnar um jogador. Isso vai causar problemas com outras funções, como warpPedIntoVehicle. Em vez disso, use spawnPlayer.

Sintaxe

bool setElementPosition ( element theElement, float x, float y, float z [, bool warp = true ] )  

Sintaxe POO(OOP) Não entendeu o que significa isso?

Método: elemento:setPosition(...)
Variável: .position
Oposto: getElementPosition

Argumentos Necessários

  • theElement: Um elemento válido para ser movido.
  • x: A coordenada X de destino.
  • y: A coordenada Y de destino.
  • z: A coordenada Z de destino.

Argumentos Opcionais

  • warp: teletransporta o jogador, resetando qualquer animação que esteja rodando. Definindo esse argumento com false, a animação permanecerá.

Retorno

Retorna true se foi executado com sucesso, caso contrário retorna false.

Exemplo

Click to collapse [-]
Server

Este exemplo permite que os administradores teletransportem 5 jogadores aleatórios para si mesmos

function randomPlayersToLocation(p)
    if not isPlayerStaff(p) then return end

	local playersOnline = getElementsByType("player")
	local amount = #playersOnline

	if amount == 0 then return end

	for index = 1,(amount > 5 and 5 or amount) do
		local player = playersOnline[index]
		setElementPosition(player, getElementPosition(p))
	end
end
addCommandHandler("randomtp", randomPlayersToLocation)
addCommandHandler("playershere", randomPlayersToLocation)

-- Utilitário
local staffACLs = {
    aclGetGroup("Admin"),
    aclGetGroup("Moderator")
}

function isPlayerStaff(p)
	if isElement(p) and getElementType(p) == "player" and not isGuestAccount(getPlayerAccount(p)) then
		local object = getAccountName(getPlayerAccount(p))

		for _, group in ipairs(staffACLs) do
			if isObjectInACLGroup("user." .. object, group) then
				return true
			end
		end
	end
	return false
end

Se você quiser colocar um veículo ou jogador fora da água ou simular o comportamento de redefinição de posição caso CJ fique muito abaixo do solo, será necessário recuperar uma coordenada recomendada no solo para colocar o elemento. Dê uma olhada nesse posto do Fórum do MTA para os passos na direção certa.

Problemas

Issue ID Description
#539 Alterar a posição do jogador quando ele/ela tiver um jetpack removerá o jetpack e o bug quando a skin for alterada
#529 Jogador cai da bicicleta quando ela é teletransportada por setElementPosition

Veja também