Como fazer um objeto perseguir o player no Roblox Studio (:MoveTo)


Nesse post vou mostrar como fazer um personagem perseguir o player através do mapa no Roblox Studio.

Link do Game: https://www.roblox.com/games/6515406177/DESTRUA-O-INIMIGO-COVIRUS


1 – Part ➔ Block: Criando um portal onde os inimigos vão nascer
Esse portal foi criado utilizando a ferramenta Part ➔ Sphere. No portal inserimos ParticleEmitter e efeito de Transparência

2 – Part ➔ Sphere: Criando um inimigo utilizando a Sphere
O Inimigo foi criado utilizando a ferramenta Part ➔ Sphere, uma bola gigante.
Definimos a cor, mudamos o “Material” para “Neon” que gera o efeito de brilho.
Para o script de perseguição funcionar você precisa:
➔ Transformar a Sphere em “Model” através do agrupamento “CTRL + G”
➔ Inserir o objeto “Humanoide”
➔ Inserir o “Surface” no Objeto

3 – Script de Perseguição: Script que faz o Inimigo perseguir o Player

Movendo objetos

local objeto = script.Parent
while (true) do
	wait(0.1)
	objeto.Position = objeto.Position + Vector3.new	(0,0,1)
end

Como fazer um objeto perseguir o player

  • O Bloco tem que ter HumanoidRootPart
  • Tem que transformar em Surface
local distanciamax = 200 -- 20 metros para o NPC perSeguir o jogador
local distanciamin = 20 -- 5 de distancia minima para o bot parar
function jogador()
	repeat wait() until game.Players.NumPlayers >= 1 -- esperar até que a quantidade de jogadores for maior que 1 ou igual
	local NPC = script.Parent
	local NPCHumanoidRoot = NPC.HumanoidRootPart
	local NPCHumanoid = NPC.Humanoid
	for i,v in pairs(game.Players:GetPlayers()) do -- Pegar a lista dos jogadores
		repeat wait() until v.Character -- Aguardar o character do player			
		-- perseguição
		if (v.Character.HumanoidRootPart.Position - NPCHumanoidRoot.Position).Magnitude <= distanciamax and (v.Character.HumanoidRootPart.Position - NPCHumanoidRoot.Position).Magnitude >= distanciamin then
			NPCHumanoid:MoveTo(v.Character.HumanoidRootPart.Position - Vector3.new(0,distanciamin,0))
			if v.Character.Humanoid.Jump == true then -- se o jogador pular o npc também irá pular
				NPCHumanoid.Jump = true
			end			
			NPCHumanoidRoot.Touched:Connect(function(hit) -- dar dano no jogador
				wait(1)
				if hit.Parent:FindFirstChild("Humanoid") then
					wait(1)
					hit.Parent:FindFirstChild("Humanoid"):TakeDamage(0.05)
				end
			end)
		end				
	end
end
while wait() do
	jogador()
end

Outras referências
Vídeo 1 https://www.youtube.com/watch?v=M_JCH4ibqMo

Vídeo 2 https://www.youtube.com/watch?v=KldFdpHTUEk

Vídeo 3 https://www.youtube.com/watch?v=NuRUbwsSRY4

Vídeo 4 https://www.youtube.com/watch?v=fxpJjF0frQI

Vídeo 5 https://www.youtube.com/watch?v=C80p_WXSoB0

Vídeo 6 https://www.youtube.com/watch?v=IQBEH9OMBm4


Fabio Bmed nas Redes Sociais


Fabio Bmed no Youtube

Fabio Bmed no TikTok

Fabio Bmed no Facebook

Fabio Bmed no Instagram

Fabio Bmed na Twitch

Fabio Bmed no Twitter

 266 Total Visualizações,  3 Visualizações Hoje