Denn Gewinner für einen "Winner Screen" bekommen.

  • Moin,


    ich bin zwar in meinem Projekt erst bei dem Schritt das die Charaktere sich gegenseitig Schaden zufügen, aber immer wenn ich mal grade nicht dran arbeite denke ich über spätere Schritte nach, so im Hinterkopf.

    Der Standard Modus in meinem Spiel soll eine Art "Auto-Battle-Royal" sein. Also brauche ich am ende auch einen Winner Screen.


    Jetzt hab ich darüber ab und an nachgedacht wie ich das machen könnte. Irgendwie war das alles sehr kompliziert gedacht.

    Bis mir gestern Abend im Bett eine relativ einfache Lösung gekommen ist. Allerdings weiß ich nicht ob das Sinn macht bzw. so überhaupt gehen würde.


    Kurze Erklärung:

    Sagen wir ich habe 10 Spieler auf dem Feld. Jeder mit einem einzigartigen Namen, die in einem Array abgespeichert sind.

    Die Idee war jetzt einfach, immer wenn ein Charakter stirbt, schaue ich nach welchen Namen er hatte und lösche diesen aus dem Array.

    Immer wenn ein Charakter gestorben ist. Schaue ich, nachdem der Name gelöscht wurde, wie viele Namen noch im Array sind. Ist es nur einer, erzeuge ich ein Widget mit dem Gewinner Namen.


    Kann man das so machen? oder gibt es Gründe es anders zu machen?

  • Dein Ansatz würde funktionieren.:thumbup:;)


    Alternativ würde ich vorschlagen, wenn in dem Array der Playercontroller von den Spielern gespeichert wird. Der Playercontroller hat eine bool-variable death. Du prüfst wie viele Playercontroller die Variable death == true gesetzt sind. Gibt es nur noch einen mit death == false, dann gibt es einen Gewinner :)

    Der Vorteil vom Playercontroller ist, das auch andere Eingenschaften vom Spieler abfragen werden kann (z.B. wie viele Kills, Hits, Damage, Position, Healthpoints, Name, Wohnort ...).:D

  • Dein Ansatz würde funktionieren.:thumbup:;)


    Alternativ würde ich vorschlagen, wenn in dem Array der Playercontroller von den Spielern gespeichert wird. Der Playercontroller hat eine bool-variable death. Du prüfst wie viele Playercontroller die Variable death == true gesetzt sind. Gibt es nur noch einen mit death == false, dann gibt es einen Gewinner :)

    Der Vorteil vom Playercontroller ist, das auch andere Eingenschaften vom Spieler abfragen werden kann (z.B. wie viele Kills, Hits, Damage, Position, Healthpoints, Name, Wohnort ...).:D



    Könntest du genauer erklären was ein PlayerController ist?

    Hab bisher gedacht das wäre der einfach der Spieler.

    Der Spieler bin ja ich, der Rest, der sich im Spiel abschlachtet sind so gesehen ja nur NPC's.


    EDIT: Ok Habs grade durch das Wiki hier gelesen.

    Also die "Spieler" wo die Namen aus dem Array kommen, haben erstmal keine Kontrolle was die NPC's machen, das läuft alles über AI.

    • Offizieller Beitrag

    Sagen wir ich habe 10 Spieler auf dem Feld. Jeder mit einem einzigartigen Namen, die in einem Array abgespeichert sind.

    Die Idee war jetzt einfach, immer wenn ein Charakter stirbt, schaue ich nach welchen Namen er hatte und lösche diesen aus dem Array.

    Immer wenn ein Charakter gestorben ist. Schaue ich, nachdem der Name gelöscht wurde, wie viele Namen noch im Array sind. Ist es nur einer, erzeuge ich ein Widget mit dem Gewinner Nam

    Die Frage ist wie die Namen in das Array reinkommen ? Muss man sich Einloggen und da seinen Namen angeben oder wie Läuft das?

    Wenn das ein Multiplayer ist, kommt ja immer ein Name dazu wenn sich jemand neu einloggt ? Warum also in einem Array speichern ?

    Ich würde Informationen auch eher im Player selber speichern du kannst dann auch den Namen, wie oft jemand gestorben ist, wie lange er überlebt hat oder wie viele er getötet hat speichern.

  • Die Frage ist wie die Namen in das Array reinkommen ? Muss man sich Einloggen und da seinen Namen angeben oder wie Läuft das?

    Wenn das ein Multiplayer ist, kommt ja immer ein Name dazu wenn sich jemand neu einloggt ? Warum also in einem Array speichern ?

    Ich würde Informationen auch eher im Player selber speichern du kannst dann auch den Namen, wie oft jemand gestorben ist, wie lange er überlebt hat oder wie viele er getötet hat speichern.

    Der Name kommt durch einen Chat.

    Ich spiele das Spiel und die User im Chat nehmen daran teil und geben einem NPC ihren Namen durch einen Command.

    Diesen Command erkennt UE4 und nimmt den Namen und fügt diesem einem NPC zu der dann gespawned wird.

    Dazu benutze ich einen Third Person Character.

    Ich weiß nicht den Unterschied zwischen dem Third Person Character und PlayerController nicht.

    So wie ich das verstanden habe ist der PlayerController derjenige der das Spiel spielt.

    Die User im Chat spielen das Spiel ja nicht. Sie haben auch keine Spiel auf ihrem PC laufen. Nur ich.




    EDIT: Von dem was ich grade online gelesen habe. Ist eine PlayerController etwa das selbe wie eine AIController.

    Das eine für den Spieler und das andere für die NPC.

    Denn AI.Controller benutze ich bereits.


    EDIT2:

    Das Spiel ist Rundenbasierd. Das heißt wenn der Gewinner fest steht, geht alles von vorne los. Also das Array mit den Namen wird gelöscht und die User im Chat müssen erneut teilnehmen.
    Es gibt bestimmt einen anderen weg das zu lösen als mit einem Array für die Namen, aber so habe ich es mit meinem Wissen erstmal zum laufen gebracht.

    • Offizieller Beitrag

    Ich weiß nicht den Unterschied zwischen dem Third Person Character und PlayerController nicht.

    Ein Charakter besteht grob aus diesen Teilen:


    1.Das Mesh (Das ist die Hülle)

    2.Dem Rigg (Das ist das Innere des Meshes und definiert die Funktionsweise)

    3.Der Kamera

    4.Dem Player Controller


    zu 1.Egal ob NPC, Shooter aus der Ego Thirdperson einen Charakter brauchst du immer. Notfalls reichen auch ne Spielfigur.


    2. Mit dem Rigg definierst du wie ein Charakter funktionieren soll. Am ehsten kannst du dir das an einem Roboter vorstellen, dieser hat vielleicht Scharniere die nur Linksrum aufgehen soll. Du willst nicht das man den Kopf um 720 Grad drehen kann. (Sowas macht dir auch das Mesh kaputt) bei einem Menschen würde es tötlich enden :)


    3.Die Kamera definiert ob First Person oder Third person ist. Er ist die Schnittstelle zwischen deiner Tastatur und der Ausführung in Unreal.


    4.Der Player Controller ist dass was bei einem Puppen Theater die Schnüre der Puppe wären sind.

    (Interface zwischen Spieler und Charakter)


    Um rum zu latschen braucht du im Prinzip nur den Player Controller und eine Kamera.

    Du könnest auch eine Waffe an den Player Kontroller befestigen dann wäre alles was ein anderer Spieler sehen würde, eine fliegende Waffe. (Reicht ja auch wenn man nicht in den Spiegelschauen kann und für ein nicht Multiplayer.


    Dein Player Controller besteht bereits aus einem Blueprint in dem beispielsweise die Tastatur aktiviert werden muss damit überhaupt Tastatur befehle erkannt werden können.


    Die Maussteuerung also was passieren soll wenn du die Maus nach oben bewegst usw findest du dort ebenfalls.


    Das Mesh und Waffen und dann rigg werden im Prinzip dem Player Controller untergeordnet ohne den Player Controller gehts nicht.



    Ich hab keine Ahnung wie du dir das vorgestellt hast aber du solltest dich erstmal mit den Basics beschäftigen.

    • Offizieller Beitrag

    Ok, aber ich brauche ja keinen Charakter denn ich bewege.

    Nur eine Kamera, die ich mit der Tastatur bewege.

    Dann brauchst du einen Charakter Controller und eine Kamera oder auch mehre Kamera. Du könntest das man von First auf Thirdperson umschalten kann. Dann dann Controller eben zwei Kameras.

    Die Charaktere die dann im Spiel miteinander kämpfen brauche ich ja nicht bewegen. Das machen die von alleine.

    Man sieht den Kampf oder ? Dann braucht du doch auch zwei Charakter die sich die Birne einschlagen.

    Von alleine machen die das sicherlich nicht.

  • Dann brauchst du einen Charakter Controller und eine Kamera oder auch mehre Kamera. Du könntest das man von First auf Thirdperson umschalten kann. Dann dann Controller eben zwei Kameras.

    Man sieht den Kampf oder ? Dann braucht du doch auch zwei Charakter die sich die Birne einschlagen.

    Von alleine machen die das sicherlich nicht.


    Ich meine das wie in einem RTS Game. Da greifen sich die NPC auch gegenseitig an ohne das ein Spieler ihnen den Befehl dazu gibt.