‫Olá e bem-vindo.
‫O assunto desta palestra será a função de tomar dano do ator e como a chamamos.
‫Vamos mergulhar e descobrir tudo sobre isso.
‫Então, para que possamos causar dano a algo, precisamos realmente ter algo que
‫possamos acertar.
‫Então vamos para a nossa rota de navegador de conteúdo e trazer um dos personagens do atirador da BP.
‫Porque, na verdade, o que acontece é que, se você trouxer um personagem para a cena, automaticamente o Unreal
‫fará com que esse personagem seja controlado pelo ar e os que aparecerem no início do jogador serão controlados
‫pelo jogador.
‫Então isso é ótimo.
‫Esse é exatamente o comportamento que queremos.
‫Se eu seguir em frente e apertar alt p, você notará que estou no ponto de spawn errado, então
‫talvez eu queira deletar este segundo início de jogador.
‫Se eu clicar em LP agora, ele estará no local certo.
‫Aí está meu inimigo.
‫Eu posso atirar no inimigo.
‫Eu recebo o efeito de acertos, mas obviamente não estou causando nenhum dano.
‫Ainda não de qualquer maneira.
‫E causar danos é um processo de duas partes.
‫A primeira parte está enviando o dano e a segunda parte está recebendo.
‫Nesta palestra, vamos lidar com o envio de dano ao jogador e as chamadas de função envolvidas com
‫isso.
‫Portanto, o principal que veremos é o ator Dot H e estamos procurando por uma chamada de
‫função chamada take Damage.
‫E você pode ver aqui que é essa função virtual aqui ela retorna um float.
‫O que está retornando é o dano real aplicado ao ator, a quantidade real que realmente foi aplicada.
‫E o que entra é o valor do dano, um evento de dano, que nos dá mais informações sobre isso, o
‫dano que aconteceu.
‫Temos um instigador.
‫Isso quer dizer quem foi o controlador responsável por causar esse dano?
‫E então o dano causado, qual foi o responsável pelo ator?
‫Então, neste caso, pode ser uma arma.
‫Ou está dizendo aqui o projétil que explodiu, a pedra que caiu em você?
‫Neste caso, a arma que atirou em você será o ator responsável.
‫Então, isso é levar dano em poucas palavras.
‫A maior parte disso deve ser bastante simples para você montar, com exceção dessa estrutura de
‫evento de dano.
‫E isso é um pouco mais complicado.
‫Então, vamos dar uma olhada nessa estrutura de eventos de dano e ver o que podemos fazer?
‫Como vai ser composto?
‫Como vamos juntar isso?
‫Agora, não é imediatamente óbvio, mas na verdade existem dois subtipos para esse evento de dano.
‫Na prática, você não criará um evento de dano EF,
‫mas sim um evento de dano de ponto EF ou um evento de dano radial EF.
‫Esses são os dois principais tipos de dano que existem no Unreal.
‫Você pode criar mais tipos diferentes de dano para suas próprias coisas personalizadas.
‫Como você pode ter um dano de fogo com parâmetros diferentes, mas no nosso caso
‫estamos interessados no dano radial e pontual EF.
‫Então, radial novamente seria algo como uma granada explodindo, nesse caso você quer dizer, ok, onde está
‫o raio, qual é a queda?
‫Todos esses tipos de coisas em que o ponto de dano é muito mais apropriado para coisas como
‫armas.
‫Então, vamos criar um evento de dano de ponto EF e vamos procurar o construtor, aqui está o construtor
‫para ele, e podemos ver o que ele está recebendo.
‫Está tomando a quantidade de dano novamente.
‫Então isso é um pouco de repetição lá.
‫Estamos tendo o resultado de acerto que causou esse dano pontual.
‫Então nós estamos tendo a direção do tiro.
‫Excelente.
‫Já calculamos isso.
‫Eu estava pensando um pouco à frente quando fizemos isso na aula anterior e depois nessa subclasse
‫de tipo de dano.
‫Agora isso pode ser usado para passar mais informações.
‫Então, na verdade, em vez de criar um tipo de evento de dano diferente, você provavelmente criaria um tipo
‫de dano diferente.
‫Então você pode ter um tipo de fogo ou algo assim.
‫No nosso caso, como não precisamos de nenhum tipo de dano, não estamos causando dano de fogo ou qualquer coisa
‫extra como esse dano de veneno.
‫Então o que vamos fazer é apenas passar um ponto nulo para aqui.
‫Então, vamos tentar construir um desses juntos e então eu vou deixar você esfriar esse evento de dano.
‫Então a primeira coisa a fazer é colar o tipo, vamos chamá-lo de evento de dano e
‫então vamos construí-lo.
‫Então, em primeiro lugar, os danos são, bem, ainda não temos um desses para a arma.
‫Nós não temos quanto dano ele faz.
‫Assim, podemos ir em frente e criar algumas informações.
‫Eles já têm um alcance máximo.
‫Queremos mais algumas propriedades aqui.
‫Será uma edição em qualquer lugar, o que nos permitirá dizer dano de flutuação.
‫Quanto dano fazemos?
‫Vou fazer um dano de dez e então podemos usar isso no C++.
‫Então, dano é o que vamos passar como o primeiro argumento.
‫O segundo é aquele resultado de acerto?
‫Bem, felizmente, temos os resultados chamados hit.
‫Então a próxima coisa será a direção do disparo que já calculamos para o nosso emissor no
‫local.
‫Então vamos olhar para a subclasse, que será apenas um ponteiro nulo.
‫Ok, então está feito.
‫A próxima coisa seria apenas pegar o ator que estamos tentando danificar.
‫Isso é bastante direto do hit que você faz.
‫Hit dot obter ator aqui.
‫Mas você precisará verificar se isso não é nulo porque não queremos acabar com um ator nulo
‫no qual estamos tentando causar danos ou vamos acabar travando.
‫Portanto, seu desafio será chamar essa verificação de função de dano para o ator ser nulo.
‫Em primeiro lugar, não queremos que um ator nulo e chame o dano e veja se você consegue compilar.
‫Puxa o vídeo e vá em frente.
‫OK.
‫Bem vindo de volta.
‫Então nós temos nosso personagem aqui.
‫Eu só vou chamar isso.
‫Vou dar a isso uma pequena variável.
‫Então, um ponteiro de ator será o ator hit e então vamos em frente e fazer uma instrução if
‫aqui, basicamente dizendo que se o ator hit não for igual a um ponteiro nulo, então vamos continuar
‫com este ator de sucesso para chamar a função de receber dano nele.
‫E nós vamos fazer a quantidade de dano aqui são os primeiros argumentos.
‫Qual foi a segunda?
‫Eu só vou navegar de volta para tomar dano e dar uma olhada.
‫Então a próxima é a estrutura que montamos neste evento de dano.
‫Vamos colocar isso em um segundo.
‫Então vamos dar uma olhada no controlador que criou isso.
‫Bem, esse é o nosso controlador.
‫O controlador de armas é quem está causando o dano.
‫E então este é o instigador foi o último parâmetro em dano de ataque.
‫E provavelmente só queremos construir essa estrutura dentro disso se o ator não for igual a pontos nulos, porque não
‫é necessário se não tivermos um ator para aplicar esse dano.
‫Então vamos compilar e ver se isso vai funcionar.
‫Então eu tenho um erro no meu log.
‫Vamos ver o que está acontecendo.
‫Ah, só está faltando um ponto e vírgula.
‫Bem, isso é muito fácil.
‫Um para consertar depois do ato dois lá.
‫Vamos tentar de novo.
‫Frio.
‫Tudo foi compilado com sucesso e podemos ir em frente e jogar e apenas verificar esse conjunto.
‫O tiro não vai nos dar nenhum erro nulo ou tentar travar o motor.
‫Parece que está tudo bem.
‫Então vamos para a próxima palestra onde vamos tentar receber o dano nesse ator aqui que
‫colocamos no nível C disso.