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