﻿1
00:00:04,350 --> 00:00:05,010
‫Cześć i witaj.

2
00:00:05,010 --> 00:00:11,900
‫Tematem tego wykładu będzie funkcja przyjmowania obrażeń przez aktora i jak ją nazywamy.

3
00:00:11,910 --> 00:00:14,460
‫Zanurzmy się i dowiedzmy się wszystkiego.

4
00:00:15,830 --> 00:00:21,050
‫Abyśmy więc byli w stanie zadać czemuś obrażenia, musimy faktycznie mieć coś, w co

5
00:00:21,050 --> 00:00:22,010
‫możemy uderzyć.

6
00:00:22,520 --> 00:00:29,210
‫Przejdźmy więc do naszej trasy przeglądarki treści i weźmy jedną z postaci strzelanki BP.

7
00:00:29,870 --> 00:00:36,110
‫Ponieważ tak naprawdę dzieje się tak, że jeśli wprowadzisz postać na scenę, wtedy automatycznie Unreal sprawi, że

8
00:00:36,110 --> 00:00:42,140
‫ta postać będzie kontrolowana w powietrzu, a te, które pojawiają się na początku gracza, będą kontrolowane

9
00:00:42,140 --> 00:00:43,070
‫przez gracza.

10
00:00:43,190 --> 00:00:44,600
‫Więc to świetnie.

11
00:00:44,600 --> 00:00:45,830
‫To jest dokładnie takie zachowanie, jakiego pragniemy.

12
00:00:45,860 --> 00:00:51,140
‫Jeśli pójdę dalej i nacisnę alt p, zauważysz, że faktycznie jestem w złym punkcie odrodzenia, więc

13
00:00:51,140 --> 00:00:53,750
‫może chcę usunąć ten start drugiego gracza.

14
00:00:54,140 --> 00:00:56,900
‫Jeśli teraz trafię na LP, będzie we właściwym miejscu.

15
00:00:57,200 --> 00:00:58,580
‫Oto mój wróg.

16
00:00:58,580 --> 00:01:00,020
‫Mogę strzelać do wroga.

17
00:01:00,020 --> 00:01:03,100
‫Otrzymuję efekt trafień, ale oczywiście nie zadaję żadnych obrażeń.

18
00:01:03,110 --> 00:01:04,040
‫W każdym razie jeszcze nie.

19
00:01:04,670 --> 00:01:07,130
‫A wyrządzanie szkód to proces dwuczęściowy.

20
00:01:07,520 --> 00:01:12,440
‫Pierwsza część wysyła obrażenia, a druga je otrzymuje.

21
00:01:12,680 --> 00:01:18,440
‫W tym wykładzie zajmiemy się wysyłaniem obrażeń do gracza i związanymi z tym wywołaniami

22
00:01:18,440 --> 00:01:19,100
‫funkcji.

23
00:01:19,910 --> 00:01:28,040
‫Więc głównym, któremu będziemy się przyglądać, jest aktor z kropką H i szukamy wywołania funkcji

24
00:01:28,040 --> 00:01:30,560
‫o nazwie odbierz obrażenia.

25
00:01:31,430 --> 00:01:35,810
‫I widzicie tutaj, że jest to ta wirtualna funkcja, która zwraca liczbę zmiennoprzecinkową.

26
00:01:35,930 --> 00:01:41,630
‫To, co zwraca, to rzeczywiste obrażenia zadane aktorowi, rzeczywista kwota, która naprawdę została zadana.

27
00:01:42,500 --> 00:01:50,750
‫A to, co wchodzi, to kwota szkody, zdarzenie związane z uszkodzeniem, które daje nam więcej informacji o tym, o szkodach, które

28
00:01:50,750 --> 00:01:51,980
‫się wydarzyły.

29
00:01:52,880 --> 00:01:54,380
‫Mamy prowokatora.

30
00:01:54,620 --> 00:01:58,460
‫Czyli to znaczy, kto był kontrolerem odpowiedzialnym za spowodowanie tej szkody?

31
00:01:59,120 --> 00:02:03,620
‫A potem powstałe szkody, za co odpowiadał aktor?

32
00:02:03,890 --> 00:02:06,350
‫Więc w tym przypadku może to być broń.

33
00:02:06,350 --> 00:02:10,130
‫A może mówi tutaj o pocisku, który eksplodował, o kamieniu, który na ciebie wylądował?

34
00:02:10,700 --> 00:02:15,590
‫W tym przypadku broń, która cię postrzeliła, będzie aktorem, który był za to odpowiedzialny.

35
00:02:16,100 --> 00:02:18,710
‫Więc to w skrócie odnieś obrażenia.

36
00:02:18,980 --> 00:02:24,110
‫Większość z nich powinna być całkiem prosta, z wyjątkiem tej struktury

37
00:02:24,110 --> 00:02:25,220
‫zdarzenia obrażeń.

38
00:02:25,220 --> 00:02:26,450
‫A to jest trochę bardziej skomplikowane.

39
00:02:26,450 --> 00:02:32,080
‫Przyjrzyjmy się więc strukturze zdarzenia obrażeń i zobaczmy, co możemy zrobić?

40
00:02:32,090 --> 00:02:34,130
‫Jak będzie skomponowany?

41
00:02:34,130 --> 00:02:35,750
‫Jak zamierzamy to poskładać?

42
00:02:36,110 --> 00:02:42,310
‫Nie jest to od razu oczywiste, ale w rzeczywistości istnieją dwa podtypy tego zdarzenia obrażeń.

43
00:02:42,320 --> 00:02:47,300
‫W praktyce tak naprawdę nie stworzysz zdarzenia obrażeń

44
00:02:47,300 --> 00:02:54,230
‫EF, ale raczej stworzysz zdarzenie obrażeń punktowych EF, lub stworzysz zdarzenie obrażeń EF.

45
00:02:54,470 --> 00:02:58,160
‫To są dwa główne rodzaje obrażeń, które istnieją w Unreal.

46
00:02:58,370 --> 00:03:02,300
‫Możesz stworzyć więcej różnych rodzajów uszkodzeń dla własnych niestandardowych rzeczy.

47
00:03:02,300 --> 00:03:08,480
‫Możecie mieć obrażenia od ognia o różnych parametrach, ale w naszym przypadku interesuje

48
00:03:08,480 --> 00:03:11,930
‫nas radialne i punktowe obrażenia EF.

49
00:03:11,930 --> 00:03:18,350
‫Więc promienisty znowu byłby czymś w rodzaju wybuchu granatu, w którym to przypadku chcesz powiedzieć, dobrze,

50
00:03:18,350 --> 00:03:20,950
‫gdzie jest promień, jaki jest odpad?

51
00:03:20,960 --> 00:03:27,440
‫Wszystkie te rzeczy, w których obrażenia punktowe są o wiele bardziej odpowiednie dla rzeczy takich jak

52
00:03:27,440 --> 00:03:28,070
‫broń.

53
00:03:28,550 --> 00:03:35,900
‫Więc utworzymy zdarzenie uszkodzenia punktowego EF i będziemy szukać konstruktora, oto konstruktor do

54
00:03:35,900 --> 00:03:40,040
‫tego, i możemy zobaczyć, co to przyjmuje.

55
00:03:40,250 --> 00:03:41,690
‫Znowu przyjmuje wielkość obrażeń.

56
00:03:41,690 --> 00:03:43,220
‫Więc to jest trochę powtórzenia.

57
00:03:43,700 --> 00:03:48,350
‫Mamy wynik trafienia, który spowodował uszkodzenie tego punktu.

58
00:03:48,950 --> 00:03:51,350
‫Wtedy mamy kierunek strzału.

59
00:03:51,350 --> 00:03:51,650
‫Świetny.

60
00:03:51,650 --> 00:03:52,850
‫Już to obliczyliśmy.

61
00:03:52,850 --> 00:03:58,160
‫Myślałem trochę naprzód, kiedy zrobiliśmy to w poprzednim wykładzie, a następnie tę

62
00:03:58,160 --> 00:03:59,500
‫podklasę typu obrażeń.

63
00:03:59,510 --> 00:04:02,690
‫Teraz można to wykorzystać do przekazania większej ilości informacji.

64
00:04:02,690 --> 00:04:08,420
‫Tak więc, zamiast tworzyć inny typ obrażeń, prawdopodobnie stworzyłbyś inny typ

65
00:04:08,420 --> 00:04:09,470
‫obrażeń.

66
00:04:09,470 --> 00:04:12,770
‫Więc możesz mieć typ ognia lub coś takiego.

67
00:04:13,040 --> 00:04:18,950
‫W naszym przypadku, ponieważ nie potrzebujemy żadnego rodzaju obrażeń, nie zadajemy obrażeń od ognia ani niczego dodatkowego w

68
00:04:18,950 --> 00:04:20,870
‫tym rodzaju obrażeń od trucizny.

69
00:04:21,170 --> 00:04:25,070
‫Następnie zamiast tego przekażemy tutaj punkt zerowy.

70
00:04:25,400 --> 00:04:32,030
‫Spróbujmy więc zbudować jeden z nich razem, a potem pozwolę ci schłodzić to zdarzenie obrażeń.

71
00:04:33,050 --> 00:04:39,650
‫Więc pierwszą rzeczą do zrobienia jest wklejenie typu, nazwiemy to zdarzeniem uszkodzenia, a następnie

72
00:04:39,650 --> 00:04:41,270
‫będziemy go konstruować.

73
00:04:41,660 --> 00:04:45,830
‫Więc po pierwsze, obrażenia wynoszą, cóż, nie mamy jeszcze jednego z nich do broni.

74
00:04:45,830 --> 00:04:47,870
‫Nie wiemy, ile zadaje obrażeń.

75
00:04:48,260 --> 00:04:50,900
‫Więc możemy iść dalej i stworzyć trochę informacji.

76
00:04:50,900 --> 00:04:52,520
‫Mają już maksymalny zasięg.

77
00:04:52,820 --> 00:04:54,620
‫Potrzebujemy tutaj więcej nieruchomości.

78
00:04:54,680 --> 00:05:00,410
‫Będzie to zmiana w dowolnym miejscu, co pozwoli nam powiedzieć, że obrażenia pływające.

79
00:05:00,410 --> 00:05:01,370
‫Ile szkód wyrządzamy?

80
00:05:01,370 --> 00:05:05,720
‫Zamierzam zadać mu obrażenia równe dziesięciu, a potem możemy to wykorzystać w C++.

81
00:05:05,720 --> 00:05:09,050
‫Więc uszkodzenie jest tym, co przedstawimy jako pierwszy argument.

82
00:05:09,590 --> 00:05:11,480
‫Drugi to ten wynik trafienia?

83
00:05:11,480 --> 00:05:13,400
‫Cóż, na szczęście mamy wyniki zwane hitem.

84
00:05:14,500 --> 00:05:22,390
‫Następnie następną rzeczą będzie kierunek strzału, który już obliczyliśmy dla naszego emitera w

85
00:05:22,390 --> 00:05:23,050
‫miejscu.

86
00:05:24,000 --> 00:05:29,490
‫Następnie przyjrzymy się podklasie, która będzie po prostu wskaźnikiem zerowym.

87
00:05:30,180 --> 00:05:31,740
‫Ok, więc gotowe.

88
00:05:31,740 --> 00:05:36,000
‫Następną rzeczą byłoby po prostu złapać aktora, którego próbujemy zniszczyć.

89
00:05:36,010 --> 00:05:38,310
‫To całkiem proste po uderzeniu, które robisz.

90
00:05:38,790 --> 00:05:41,340
‫Hit dot get aktor tutaj.

91
00:05:42,150 --> 00:05:48,570
‫Ale musisz sprawdzić, czy to nie jest zerowe, ponieważ nie chcemy skończyć z zerowym aktorem, któremu

92
00:05:48,570 --> 00:05:52,360
‫próbujemy wyrządzić szkody, w przeciwnym razie skończymy się awarią.

93
00:05:53,220 --> 00:05:58,750
‫Twoim wyzwaniem będzie więc wywołanie funkcji sprawdzania funkcji obrażeń dla aktora, który jest zerowy.

94
00:05:58,770 --> 00:06:04,650
‫Przede wszystkim nie chcemy, aby aktor zerowy i wywołanie odniosły obrażenia i sprawdziły, czy można go skompilować.

95
00:06:04,650 --> 00:06:06,120
‫Wyciąga wideo i zaczyna się.

96
00:06:08,450 --> 00:06:08,640
‫Dobra.

97
00:06:08,660 --> 00:06:09,230
‫Witamy spowrotem.

98
00:06:09,740 --> 00:06:12,200
‫Więc mamy tutaj naszą postać.

99
00:06:12,350 --> 00:06:13,520
‫Po prostu to nazwiemy.

100
00:06:14,000 --> 00:06:15,650
‫Podam to trochę zmiennej.

101
00:06:15,650 --> 00:06:23,900
‫Tak więc wskaźnik aktora będzie aktorem przeboju, a następnie przejdziemy dalej i zrobimy tutaj instrukcję if,

102
00:06:23,900 --> 00:06:31,700
‫mówiąc po prostu, że jeśli aktor przeboju nie jest równy wskaźnikowi zerowemu, to będziemy kontynuować

103
00:06:31,700 --> 00:06:37,700
‫z ten uderzający aktor, aby wywołać na nim funkcję obrażeń.

104
00:06:38,450 --> 00:06:42,800
‫I tutaj zrobimy wielkość szkód, to pierwsze argumenty.

105
00:06:43,160 --> 00:06:44,600
‫Jaka była druga?

106
00:06:44,600 --> 00:06:49,190
‫Po prostu cofnę się do zadania obrażeń i rzucę okiem.

107
00:06:49,190 --> 00:06:54,470
‫Więc następny jest strukturą, którą zebraliśmy razem z tym zdarzeniem uszkodzenia.

108
00:06:54,620 --> 00:06:56,300
‫Postawmy to za chwilę.

109
00:06:56,750 --> 00:07:00,740
‫Następnie przyjrzymy się kontrolerowi, który to stworzył.

110
00:07:00,740 --> 00:07:02,420
‫Cóż, to nasz kontroler.

111
00:07:02,420 --> 00:07:05,180
‫Sterownik broni jest tym, który wyrządza szkody.

112
00:07:05,180 --> 00:07:11,150
‫I to właśnie inicjator był ostatnim parametrem obrażeń od ataku.

113
00:07:11,150 --> 00:07:18,950
‫I prawdopodobnie chcemy skonstruować tę strukturę wewnątrz tego, jeśli aktor nie jest równy punktom zerowym, ponieważ nie jest to

114
00:07:18,950 --> 00:07:23,540
‫potrzebne, jeśli nie mamy aktora, któremu można zadać to uszkodzenie.

115
00:07:24,560 --> 00:07:28,490
‫Więc przejdźmy i skompilujmy i zobaczmy, czy to zadziała.

116
00:07:28,850 --> 00:07:30,230
‫Więc mam błąd w moim logu.

117
00:07:30,260 --> 00:07:31,790
‫Zobaczmy, co się dzieje.

118
00:07:31,790 --> 00:07:33,440
‫Och, po prostu brakuje mi średnika.

119
00:07:33,650 --> 00:07:34,760
‫Cóż, to całkiem proste.

120
00:07:34,760 --> 00:07:37,010
‫Jeden do naprawienia po zdobyciu drugiego aktu.

121
00:07:37,010 --> 00:07:38,060
‫Chodźmy i spróbujmy jeszcze raz.

122
00:07:38,840 --> 00:07:39,230
‫Fajny.

123
00:07:39,230 --> 00:07:45,920
‫Wszystko skompilowało się pomyślnie i możemy po prostu grać i po prostu sprawdzić ten zestaw.

124
00:07:46,070 --> 00:07:51,950
‫Strzelanie nie da nam żadnych zerowych błędów ani nie spowoduje awarii silnika.

125
00:07:52,360 --> 00:07:53,660
‫Wygląda na to, że wszystko w porządku.

126
00:07:54,140 --> 00:08:00,740
‫Przejdziemy więc do następnego wykładu, w którym spróbujemy otrzymać obrażenia od tego aktora,

127
00:08:00,740 --> 00:08:03,350
‫którego umieściliśmy na poziomie C.

