Nesse mini tutorial vamos fazer um script que causa dano no player.
Você pode usar esse script quando o player toca no NPC ou em outra part do cenário. Para esse exemplo, usamos um cilindro com um bloco em seu centro. Selecionamos as duas partes e com o botão direito escolhemos a opção Group as a Model. Renomeie o Model criado. Aqui o chamamos de saída de ar e toda vez que o player tocar nas partículas de ar, ele sofrerá um dano.
Selecione a parte central, que é o bloco preto e no Explorer clique no seu sinal de +. Na caixa de pesquisa procure ParticleEmiter e selecione-o. Você já verá um efeito de partículas de ar saindo da part preta.
Selecione o ParticleEmitter e nas propriedades você pode alterar:
Color: Cor das partículas
Size: Tamanho das partículas
EmissionDirection: Direção de onde a partícula vai sair em relação a part escolhida.
Speed: Determina a quantidade de partículas que saem
Shape: A forma como as partículas vão sair.
Configure a seu gosto.
Agora vamos fazer o script que causa dano quando o player toca nessas partículas. Selecione o bloco preto e clique no sinal de +. Escolha Script. Escreva o código abaixo:
local vento = script.Parent
local DANO = 10
local Players = game:GetService("Players")
local function hurtPlayer(player)
if player then
local character = player.Character
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.Health - DANO
return humanoid
end
end
end
vento.Touched:Connect(function(otherPart)
hurtPlayer(Players:GetPlayerFromCharacter(otherPart.Parent))
end)
Salve o script e teste. Toda vez que o player tocar na partícula de ar, ele sofrerá um dano e assim vai aparecer a barra de vida do seu personagem no canto direito superior da tela.
Outro comando que podemos usar para causar dano seria humanoid:TakeDamage(DANO), substituindo a linha humanoid.Health = humanoid.Health – DANO
Também podemos usar uma dessas duas instruções quando o NPC nos toca para causar dano ao invés de simplesmente matar o player.
Veja esse script funcionando em OBBY RJ BYTE.