All language subtitles for 35. Player - Receive Damage (Receber Dano)

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English Download
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu

Original subtitles

1

15. The Grid Player - Receber Dano

2

Explicar um negócio aqui, bem importante.

3

Prestem atenção aqui.

4

Porque...

5

Pode dar uma confusão, tá?

6

Primeiramente, a gente vai fazer agora...

7

O tiro do inimigo, causando dano no jogador, tá?

8

Só que a gente vai fazer o processo inverso.

9

O que eu quero dizer com isso?

10

Quando a gente fez...

11

O tiro do jogador...

12

Então, tem jogador aqui, né? O Player Start está aqui.

13

Quando ele atira...

14

Vem o projétil...

15

Tá?

16

E quando bate aqui, tem o Evento Hit.

17

Lembra do Evento Hit? Que a gente fez.

18

O Evento Hit é disparado no...

19

Projétil.

20

Que está aqui. Projetinho.

21

E no inimigo.

22

Tá?

23

Então, como é que a gente fez a lógica...

24

Para o...

25

Para o dano no inimigo? A gente fez...

26

O Evento Hit dentro do inimigo. Então, se você abrir a Blueprint do inimigo...

27

BP_Enemy.

28

A gente vai ter a lógica do dano lá dentro.

29

Ele vai começar a levar dano, quando ele recebe esse tiro.

30

Deixa eu até mostrar para vocês aqui, isso.

31

BP_Enemy.

32

Tem aqui, o Evento Hit. Tá vendo? Event Hit.

33

E aqui, a gente faz o dano.

34

Tá?

35

Então, pela mesma lógica...

36

O que a gente tem que fazer agora?

37

Quando...

38

O inimigo...

39

Atirar no jogador.

40

Tem o projétil, né?

41

A gente vai ter que construir dentro do jogador, um Evento Hit.

42

Né?

43

Onde aconteça o dano.

44

Pela mesma lógica. O Evento Hit dentro do jogador.

45

E o Evento Hit dentro do...

46

BP...

47

Enemy.

48

Tá? Então, aqui deixa eu colocar Hero.

49

Então, para essa lógica...

50

A gente mantém a consistência, né?

51

De... Uma coisa...

52

No inverso, funcionando da mesma maneira.

53

No entanto...

54

Para que a gente faça o seguinte... Para que o projétil saia do inimigo e chegue no jogador...

55

O jogador vai ter que ter uma referência para esse projétil, né?

56

Porque o jogador está andando no mundo.

57

Toda vez que ele...

58

Bater em alguma parede. Bati em uma parede, disparou o Event Hit.

59

Por exemplo.

60

Tá?

61

Ele vai começar a levar dano disso? Não dá, né? Ele tem que levar dano apenas...

62

Quando ele...

63

Levar tiro do projétil.

64

Para que isso aconteça, a gente vai ter que ver...

65

Toda vez que o Event Hit acontecer, a gente vai ter que ver se o...

66

Onde ele bateu é o projétil ou não é.

67

Tá? Para isso, a gente tem que criar uma referência.

68

Do projétil, lá na Blueprint do Hero.

69

Eu acho um empenho...

70

Principalmente porque...

71

Esse projétil vai sendo destruído, né?

72

Assim que ele bate, ele destrói, enfim.

73

Ou, se ele não bate, ele vai embora do mundo.

74

Mas, o que a gente vai fazer é ao contrário. A gente vai...

75

Colocar toda a lógica do Hit...

76

Dentro do projétil, tá?

77

Para que exista apenas quando o projétil bater no jogador.

78

A gente tem uma coisa aí, chamada inconsistência. Isso é importante.

79

Em programação.

80

Você tem que tomar cuidado com a inconsistência.

81

Tá? Não pode...

82

Ficar usando isso...

83

Sempre, porque começa a ficar um código confuso.

84

Porque a gente vai fazer com que a lógica de Hit...

85

Quando o jogador atira no inimigo...

86

A lógica esteja construída dentro do inimigo.

87

Tá?

88

E quando o inimigo atira no jogador, a lógica está construída no projétil.

89

Né?

90

É uma inconsistência. Não é... Não segue o mesmo padrão.

91

É isso que eu quero dizer.

92

Tá?

93

Eu estou fazendo de propósito, isso.

94

Né?

95

Para que a gente possa fazer os dois caminhos.

96

Né? Como eu comentei, o jogo tem um caráter didático.

97

Então, vamos fazer os dois caminhos.

98

Tá? Mas, presta atenção.

99

Como a gente está fazendo uma coisa diferente da outra.

100

Em uma... Em uma lógica...

101

Ela está construída dentro do BP_Enemy.

102

Então, o Damage está aqui dentro.

103

E na outra lógica...

104

No caminho contrário...

105

O Damage vai estar construído...

106

Dentro do projétil, né?

107

Beleza? Então vamos lá, fazer essa lógica aí.

108

Então, vamos começar.

109

Primeira coisa é...

110

Eu vou pegar o meu projétil do inimigo...

111

Não é esse BP_Projetil.

112

É o projétil do inimigo. BP_Enemy.

113

Toda vez que acontecer o Hit...

114

Ele vai disparar alguma coisa. A primeira coisa, eu vou disparar um Print String.

115

Pra gente poder...

116

Ver o que está acontecendo.

117

Eu vou colocar aqui...

118

TiroInimigo.

119

Inimigo.

120

Só pra gente ver que está funcionando, toda vez que esse projétil bater em algum lugar, tá?

121

Só que a gente precisa fazer que isso aconteça apenas quando ele bater no jogador.

122

Não pode acontecer de ele bater no chão e disparar isso, porque pra gente não importa.

123

A gente só quer pegar o dano no jogador.

124

Então, pra gente conseguir entender quando atinge o jogador, essa Blueprint do projétil...

125

Precisa ter uma referência para o jogador.

126

Né?

127

Fazer essa referência, a gente já sabe.

128

A gente vai fazer um Cast.

129

Então...

130

Get Player Character.

131

Fazer um Cast to BP_HeroChar.

132

E esta variável... Promote to Variable.

133

Eu vou chamar de...

134

HeroRefer.

135

Então, agora essa Blueprint do projétil do inimigo...

136

Ela sabe que o jogador existe.

137

HeroRefer.

138

Então, a gente quer disparar essa Print String apenas...

139

Se o...

140

Ele bater no jogador, né?

141

E não em um lugar do mundo, qualquer.

142

Então, nesse Other aqui. É o Other Actor, né?

143

É o Actor que ele está batendo. Event Hit.

144

Other é o Actor.

145

A gente tem que comparar esse Actor que ele bateu...

146

Se ele é igual...

147

Igual ao objeto. Qual objeto?

148

Igual ao Hero.

149

Se ele bater e for igual ao Hero, a gente vai ter uma condição aqui.

150

Verdadeira, né?

151

A gente já sabe. A gente vai usar um Branch.

152

A condição é o Branch.

153

Então, se ele bater no inimigo...

154

Quando ele bater...

155

For o inimigo.

156

Você vai disparar o True para mim.

157

Que é o TiroInimigo. E depois, você destrói o Actor.

158

Se não for o inimigo...

159

Bater em qualquer outro lugar, você também vai destruir o Actor, tá?

160

O Actor sempre tem que destruir, quando ele bater.

161

Mas, você não vai fazer a Print String TiroInimigo.

162

Depois, obviamente, a gente vai trocar essa Print String pela nossa lógica, né?

163

Pela lógica do dano que ele vai causar no personagem.

164

Maravilha! Eu vou Compilar...

165

Salvar e ver se funciona.

166

Play.

167

Então, vamos dar um tiro ali, no cara.

168

TiroInimigo.

169

TiroInimigo, TiroInimigo TiroInimigo.

170

Tá, mas quando eles estão atingindo, sei lá, o chão...

171

Se ele atingir outra coisa, não vai disparar o Evento.

172

Mas, quando bate em mim, TiroInimigo, TiroInimigo, TiroInimigo.

173

Então, agora a lógica é...

174

Criar o dano que ele vai causar em mim.

175

Tá?

176

É uma boa ideia...

177

A gente...

178

Colocar a lógica do dano causado.

179

Dentro do herói.

180

Para que depois a gente queira...

181

Reutilizar essa Blueprint para outras coisas, para outro projeto ou para outros tipos de inimigo.

182

A gente tem sempre a lógica do dano lá, tá?

183

Então, eu vou ver no meu personagem...

184

BP_HeroChar.

185

E vou criar aqui, um Evento...

186

Chamado HeroIsDamaged. O herói foi danificado.

187

Né?

188

Está começando a ficar grande aqui, a Blueprint, mas é normal.

189

Então...

190

Custom Events.

191

Add Custom Event.

192

HeroDamage.

193

HeroDamage.

194

A gente vai disparar toda vez que ele levar um dano. Seja deste inimigo ou seja de qualquer outra coisa.

195

Por isso que é legal a gente ter isso aqui dentro do...

196

Do personagem, tá?

197

Uma coisa que a gente não tem ainda, é a vida dele.

198

A gente não fez ainda, né? Não tem nenhuma variável.

199

Eu vou criar uma variável.

200

Do tipo Float.

201

E vou chamar de Health, que é a vida. Health.

202

E a gente Compila a Blueprint.

203

Coloca o valor padrão como 100.

204

Agora a gente tem vida nele.

205

A gente pode fazer um pouquinho mais interessante, para depois a gente criar algumas lógicas no futuro.

206

Esse cara, eu vou chamar de Current Health, né?

207

Que é a vida atual dele.

208

Então, por padrão é 100.

209

A gente vai fazer uma outra, que é a Total Health.

210

Que é a vida total que ele vai ter.

211

Né?

212

Isso vai ser importante mais para a frente.

213

Pra gente criar algumas outras lógicas, né? Para saber quando ele morreu...

214

Quando, sei lá, se ele começar a restaurar a vida dele... Pegar alguma coisa para restaurar a vida.

215

Não pode passar da vida total, né? Total Health.

216

Tem que ter isso anotado em algum lugar.

217

Então, eu criei Current Health como 100.

218

E Total Health como 100.

219

Compilar.

220

Então, o que acontece quando ele é danificado? Quando ele leva uma porrada, alguma coisa, né?

221

Ele pega o Current Health dele...

222

Get...

223

E ele vai diminuir um valor...

224

Float menos Float.

225

O Float que ele vai diminuir, sei lá...

226

É tipo, 10, né? A gente já vai...

227

Melhorar isso aqui.

228

E ele vai mudar o Current Health dele...

229

Atual, né? Vai ser esse novo valor.

230

Basicamente é isso que vai acontecer quando ele for danificado.

231

A gente tem que ver isso na tela, para ver se está funcionando. Print String...

232

E a gente conecta esse cara aqui...

233

Então, a gente vai começar a exibir na tela, toda vez que esse Evento for chamado.

234

O Current Health dele, tá?

235

Pra gente não se confundir, a gente tem que tirar...

236

Lá do inimigo...

237

O dano que a gente está causando nele e o Print String que ele faz, né?

238

Então, aqui em BP_Enemy...

239

Quando ele leva tiro, ele também está exibindo a vida dele. Está vendo?

240

Eu vou tirar esse cara aqui. Não precisa mais.

241

Pra gente não se confundir. Agora eu estou só exibindo na tela...

242

A vida que o personagem está perdendo, tá?

243

A gente fez esse Evento, mas em nenhum momento a gente está chamando ele.

244

A gente tem que chamar ele toda vez que o projétil...

245

Atacar ele, né?

246

Então a gente vem no projétil do inimigo...

247

Então esse Print String agora vai embora, né? A gente só fez para testar.

248

O que que vai acontecer agora? A gente vai chamar aquele Evento que está lá no personagem...

249

Então, eu pego o Hero...

250

Refer, aqui.

251

E chamo aquele Evento, que se chama...

252

HeroDamage.

253

HeroDamage.

254

Toda vez que eu for dar tiro nele, então, eu vou chamar esse Evento, que está dentro dele mesmo, tá?

255

E, maravilha.

256

Compilar, salvar e dar play.

257

Então, agora, se eu levar tiro... 70, 40... Estou levando um monte de tiro, né?

258

E claro que está passando para negativo.

259

Porque a gente ainda não arrumou isso.

260

Mas, está funcionando.

261

Vamos fazer isso agora, então? Já para arrumar.

262

A gente vai fazer um Branch aqui.

263

Então, toda vez que...

264

A gente der o tiro, a gente vai diminuir o valor.

265

Vou dar um Print String para ver na tela. E vou ver se esse valor...

266

Ele está menor ou igual à zero.

267

Né? Então vamos comparar aqui.

268

Se isso aqui for menor ou igual...

269

À zero...

270

Então, é Verdadeiro. Então, aqui eu vou dizer que o herói morreu.

271

Print String.

272

Herói morreu. HeroDead.

273

E quando isso acontece, o Current Health...

274

Tem que ser, necessariamente, zero.

275

Então, eu vou dar um Set como zero.

276

Tá?

277

Então, mesmo que eu continue levando tiro, depois que...

278

Eu entendi que eu morri...

279

Vai continuar sendo zero.

280

Então, a gente travou no zero ali, tá?

281

Se for Falso, nada acontece.

282

E esse Print String aqui, a gente vai só levar para o lugar certo agora.

283

Vem para depois do Branch.

284

Tá?

285

Print String aqui.

286

Current Health.

287

Então, eu coloco aqui. Só estou colocando agora, pra gente poder ver, né?

288

Depois isso tudo vai para um HUD, bonitinho.

289

Vem para cá.

290

E vem para cá também.

291

Play.

292

40, 0, 0, 0, Hero Dead, Hero Dead. Eu escrevi errado...

293

Ead.

294

Ensino à distância.

295

O Hero está ensinando à distância, né?

296

Beleza.

297

Eu já tenho a condição da morte aqui, que depois a gente vai utilizar mais para a frente.

298

Né?

299

Hero Ead.

300

Uma coisa legal de a gente fazer...

301

É que este dano aqui, que eu coloquei como 10, né? Como fixo, seja uma variável, né?

302

E que este valor venha lá do inimigo. Venha lá do projétil.

303

Porque, por exemplo, eu estou atirando com esse projétil, mas digamos que...

304

O inimigo atira um outro tipo de projétil, mais forte...

305

Aí, o dano que vai me causar é maior.

306

Né?

307

Isso é importante. Você está fazendo um jogo onde tem vários tipos de danos, né?

308

O personagem levou um tiro de outro tipo de arma. O dano que ele...

309

Recebe é maior.

310

Então, este valor aqui...

311

Quanto que ele perde, tem que vir lá do projétil.

312

Tá?

313

Então, aqui no projétil, eu vou criar uma variável...

314

Nova variável.

315

Do tipo Float.

316

E eu vou escrever aqui, o nome...

317

Damage.

318

É o dano que ele vai causar.

319

Eu vou deixar como 10 também, de novo, tá?

320

Mas, agora eu estou dizendo o dano aqui na Blueprint do projétil tá?

321

Onde eu vou conectar esse cara?

322

Get. Não tem onde conectar, né? Aqui no HeroDamage.

323

Não tem como levar essa informação para lá.

324

Então, aqui na Blueprint do herói...

325

Neste Evento, a gente vai colocar um novo Input.

326

Lembra disso? Nas aulas de...

327

Eventos.

328

Novo Input.

329

Aqui eu vou colocar como Damage também.

330

Float.

331

Então, agora tem um valor para sair daqui.

332

Vou Compilar.

333

Aqui no projétil apareceu. Damage. Então, eu vou levar esse valor junto.

334

Toda vez que eu...

335

Chamar esse cara, eu estou levando esse valor para lá.

336

Vai o 10 junto.

337

O 10 vai.

338

Ele sai do projétil e vem para o Hero.

339

O 10 está aqui agora.

340

E eu conecto esse cara aqui.

341

Só deixa eu arrumar melhor.

342

Então, agora quem está dizendo o quanto que eu vou levar de porrada aí...

343

De dano...

344

É o meu...

345

É o meu projétil, beleza?

346

Só pra gente ter mais organizado. Então, se eu mudar de projétil...

347

Eu posso mudar o valor que vem daqui.

348

E ter um outro tipo de situação, né?

349

Isto conclui aí, pra gente, o dano que o personagem leva.

350

Já com o tratamento de morte, né?

351

Ele já morre, né? Tipo, ele... 0, né? Tem que acontecer alguma coisa depois.

352

Mas, na próxima aula, eu quero fazer uma condição para ele restaurar a vida, né?

353

Como a gente não vai ter pick ups... Lembra, nos nossos Blueprint cards, lá? Que a gente decidiu, no Escopo.

354

Não vai ter nada no ambiente, pra gente coletar e restaurar a vida.

355

Então, a gente vai restaurar a vida ao longo do tempo.

356

Se eu ficar parado, eu restauro vida.

357

Vou fazer isso agora, na próxima aula...

358

Uma condição, um Evento pra gente começar a restaurar a vida do personagem.

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.