‫Hallo en welkom.
‫Het onderwerp van deze lezing wordt de schade-functie van de acteur en hoe we die noemen.
‫Laten we erin duiken en er alles over te weten komen.
‫Dus om schade aan iets te kunnen toebrengen, moeten we iets hebben dat we
‫kunnen raken.
‫Dus laten we naar onze inhoudbrowserroute gaan en een van de BP-shooter-personages binnenhalen.
‫Want wat er eigenlijk gebeurt, is dat als je een personage in de scène brengt, Unreal dit personage
‫automatisch luchtgestuurd maakt en degenen die spawnen bij het begin van de speler, worden door de
‫speler bestuurd.
‫Dus dat is geweldig.
‫Dat is precies het gedrag dat we willen.
‫Als ik doorga en op alt p druk, zul je merken dat ik in het verkeerde spawn-punt zit, dus misschien
‫wil ik deze start van de tweede speler verwijderen.
‫Als ik nu op LP druk, staat het op de juiste locatie.
‫Daar is mijn vijand.
‫Ik kan op de vijand schieten.
‫Ik krijg het treffers effect, maar uiteraard richt ik geen schade aan.
‫Nog niet in ieder geval.
‫En schade aanrichten is een proces dat uit twee delen bestaat.
‫Het eerste deel is het verzenden van de schade en het tweede deel is het ontvangen.
‫In deze lezing gaan we het hebben over het verzenden van schade aan de speler en de functieaanroepen die
‫daarbij horen.
‫Dus de belangrijkste waar we naar gaan kijken, is de acteur Dot H en we zijn op zoek naar
‫een functieaanroep genaamd schade nemen.
‫En je kunt hier zien dat dit deze virtuele functie is, hier wordt een float geretourneerd.
‫Wat het teruggeeft, is de werkelijke schade die aan de acteur is toegebracht, het werkelijke bedrag dat echt is toegepast.
‫En wat erin gaat is het schadebedrag, een schadegebeurtenis, die ons daar meer informatie over geeft, de schade die
‫is ontstaan.
‫We hebben een aanstichter.
‫Dus dat wil zeggen wie de controller was die verantwoordelijk was voor het veroorzaken van deze schade?
‫En dan de veroorzaakte schade, waarvoor was de acteur verantwoordelijk?
‫Dus in dit geval kan het een pistool zijn.
‫Of zegt het hier het projectiel dat explodeerde, de rots die op je landde?
‫In dit geval zal het pistool waarmee je werd neergeschoten de acteur zijn die verantwoordelijk was.
‫Dus dat is schade in een notendop.
‫Het meeste daarvan zou voor u vrij eenvoudig moeten zijn om samen te stellen, met uitzondering
‫van deze schadegebeurtenisstructuur.
‫En dat is een beetje ingewikkelder.
‫Dus laten we eens kijken naar deze schadegebeurtenisstructuur en kijken wat we kunnen doen?
‫Hoe gaat het worden samengesteld?
‫Hoe gaan we dit combineren?
‫Nu is het niet meteen duidelijk, maar er zijn eigenlijk twee subtypes voor deze schadegebeurtenis.
‫In de praktijk ga je niet echt een EF-schadegebeurtenis
‫creëren, maar eerder een EF-puntschadegebeurtenis, of je zou een EF radiale schadegebeurtenis creëren.
‫Dat zijn de twee belangrijkste soorten schade die in Unreal voorkomen.
‫Je kunt meer verschillende soorten schade maken voor je eigen aangepaste spullen.
‫Zoals je misschien een brandschade hebt met verschillende parameters, maar in ons geval zijn we
‫geïnteresseerd in de EF radiale radiale en puntschade.
‫Dus weer radiaal zou zoiets zijn als een granaat die afgaat, in welk geval je wilt zeggen, oké, waar
‫is de straal, wat is de val?
‫Al dat soort dingen waar de puntschade is, omdat het veel geschikter klinkt voor dingen als
‫geweren.
‫Dus we gaan een EF-puntschadegebeurtenis creëren en we gaan op zoek naar de constructor, hier is de
‫constructor ervoor, en we kunnen zien wat het inhoudt.
‫Het neemt het schadebedrag weer op.
‫Dus dat is een beetje herhaling daar.
‫We hebben het trefferresultaat waardoor deze puntschade is ontstaan.
‫Dan hebben we de in schot richting.
‫Super goed.
‫Dat hebben we al uitgerekend.
‫Ik dacht een beetje vooruit toen we dat deden in de vorige lezing en dan deze
‫subklasse van schadetype.
‫Dit kan nu worden gebruikt om meer informatie door te geven.
‫Dus eigenlijk, in plaats van een ander type schadegebeurtenis te creëren, zou je waarschijnlijk een ander
‫schadetype creëren.
‫Dus misschien heb je een brandtype of iets dergelijks.
‫In ons geval, omdat we geen enkele vorm van schade nodig hebben, doen we geen brandschade of
‫iets extra's zoals die gifschade.
‫Wat we dan gaan doen, is in plaats daarvan een nulpunt doorgeven aan hier.
‫Dus laten we proberen een van deze samen te bouwen en dan zal ik je die schade-gebeurtenis laten
‫afkoelen.
‫Dus het eerste wat je moet doen is het type plakken, we gaan het de schadegebeurtenis noemen en dan
‫gaan we het construeren.
‫Dus ten eerste, de schade bedraagt, nou, we hebben er nog geen voor het wapen.
‫We weten niet hoeveel schade het aanricht.
‫Dus we kunnen doorgaan en wat informatie creëren.
‫Ze hebben al een max bereik.
‫We willen hier wat meer eigendommen.
‫Het wordt overal een bewerking, wat ons in staat zal stellen om float-schade te zeggen.
‫Hoeveel schade richten we aan?
‫Ik ga het schade van tien doen en dan kunnen we dit gebruiken in de C++.
‫Dus schade is wat we als eerste argument doorgeven.
‫De tweede is dat hitresultaat?
‫Gelukkig hebben we de resultaten die hit genoemd worden.
‫Het volgende is de opnamerichting die we al hebben berekend voor onze zender op
‫locatie.
‫Dan gaan we kijken naar de subklasse, die gewoon een null-pointer zal zijn.
‫Oké, dat is dus gedaan.
‫Het volgende zou zijn om de acteur te pakken te krijgen die we proberen te beschadigen.
‫Dat is vrij eenvoudig van de hit die je doet.
‫Hit dot, krijg acteur hier.
‫Maar je moet controleren of dit niet null is, want we willen niet eindigen met een null-acteur
‫waaraan we schade proberen toe te brengen, anders crashen we.
‫Dus je uitdaging zal zijn om die functie-check voor schade aan te roepen voor de acteur die nul is.
‫Ten eerste willen we niet dat een null-acteur belt om schade op te lopen en te kijken of je het kunt compileren.
‫Trekt de video en probeer het.
‫Oké.
‫Welkom terug.
‫Dus we hebben ons karakter hier.
‫Ik ga dit gewoon bellen.
‫Ik ga dit een kleine variabele geven.
‫Dus een acteur-aanwijzer wordt de hit-acteur en we gaan dan verder en doen hier een if-statement, in
‫feite zeggend dat als de hit-acteur niet gelijk is aan een nul-aanwijzer, dan gaan we verder
‫met deze hit-acteur om de take damage-functie erop aan te roepen.
‫En we gaan het schadebedrag doen, hier zijn de eerste argumenten.
‫Wat was de tweede?
‫Ik ga gewoon terug naar de schade nemen en een kijkje nemen.
‫Dus de volgende is de structuur die we hebben samengesteld voor deze schadegebeurtenis.
‫Laten we dat even zeggen.
‫Dan gaan we kijken naar de controller die dit heeft gemaakt.
‫Dat is onze controller.
‫De wapencontroller is degene die de schade aanricht.
‫En dan is dit de aanstichter was de laatste parameter in aanvalsschade.
‫En we willen deze struct waarschijnlijk alleen hierin construeren als de actor niet gelijk is aan nulpunten, omdat het niet nodig is
‫als we geen actor hebben om deze schade op toe te passen.
‫Dus laten we het gaan compileren en kijken of dit gaat werken.
‫Ik heb dus een fout in mijn log.
‫Laten we kijken wat er aan de hand is.
‫Oh, ik mis alleen een puntkomma.
‫Nou, dat is vrij eenvoudig.
‫Een om op te lossen na de tweede act.
‫Laten we gaan en het opnieuw proberen.
‫Stoer.
‫Alles is succesvol gecompileerd en we kunnen gewoon doorgaan en spelen en die set gewoon controleren.
‫Schieten zal ons geen nulfouten geven of proberen de motor te laten crashen.
‫Het lijkt in orde.
‫Dus we gaan door naar de volgende lezing waar we gaan proberen de schade op deze acteur hier te ontvangen die
‫we in het niveau C hebben geplaatst.