Ergebnis 1 bis 7 von 7

Thema: Text- und rundenbasiertes Kampfsystem

  1. #1

    Text- und rundenbasiertes Kampfsystem

    Textbasierte Kampfsimulation mit vielen Variablen und "if-then-else" Funktionen

    Achtung: dies ist an erfahrene RPG Maker gerichtet, weils vielleicht etwas kompliziert aber im Maker auf jeden Fall umsetzbar ist. Nur für die, die vielleicht etwas Zeit zum tüfteln haben oder sogar viel Ahnung von den folgenden Funktionen haben.
    Hilfe brauche ich in Variablen, der "if-then-else"-Funktion und vielleicht auch Schleifen erstellen.


    Hallo RPG Maker Community!
    Ich habe vor ein paar Jahren schon mal mit dem RPG Maker gearbeitet, aber nicht so sehr mit den oben genannten Funktionen. Deswegen könnte ich Hilfe gebrauchen.
    Ich habe vor, ein text- und rundenbasiertes Kampfsystem zu erschaffen (für 2 Spieler, also keine KI, kein "2 Player-Input").
    Das System basiert auf ein Kartenspiel, was ich mal erstellt habe (das RPG Maker Spiel wird aber kein Kartenspiel sein!!!)
    Da ich nicht alles auf einmal machen will (hab ich schon mal versucht, ging voll daneben), möchte ich dieses System schrittweise erstellen. Wenn ein Schritt fertig programmiert ist, möchte ich das System um weitere Features erweitern.

    Schritt 1: Kämpferdaten erstellen
    Schritt 2: (simples) Kampfsystem erstellen
    Schritt 3: ...

    Schritt 1:
    Kämpferdaten erstellen

    ... und genau da brauche ich auch schon eure Hilfe!
    Am Anfang des Spiels soll jeder Spieler 1 Kämpfer (später bis zu 3) auswählen können. Der Maker muss also auf ein paar Daten zugreifen können.
    Da weiß ich nicht genau, wo und wie ich das machen kann, dass auch alles übersichtlich bleibt.

    Die Werte, die jeder Kämpfer hat:
    Health (muss ich wohl nich erklären ^^)
    Power (bei einem Treffer wird Health in Höhe des Powerwerts abgezogen)
    Attacke (Wert zwischen 1 und 20)
    Verteidgung (Wert zwischen 1 und 20)
    Speed (der Kämpfer mit dem höheren Speedwert beginnt; zwischen 1 und 100)

    Schritt 2:
    Kampfsystem erstellen

    Ich erkläre euch erstmal, wie genau das System funktionieren soll.

    Jeder Spieler wählt ein Kämpfer aus.
    Bei 2 Kämpfern werden zB 2 Bilder erstellt, die jeweils 1 Kämpfer hervorheben. Zuerst ist Kämpfer A ausgewählt, wenn man Pfeiltaste Rechts drückt, wird zum nächsten Bild gewechselt und Kämpfer B ist ausgewählt.

    Zuerst werden die Speedwerte jedes Kämpfers verglichen. Wer den größeren Wert hat, hat sozusagen den ersten Zug bzw. darf anfangen.
    Da könnte man vielleicht mit einer if-then Funktion arbeiten, um die Werte zu vergleichen.

    Nehmen wir an, Kämpfer A beginnt. Kämpfer A führ nun eine Attacke aus. Dazu soll eine zufällige Zahl zwischen 1 und 20 generiert werden. Ist diese Zahl < oder = des Attackenwerts des Kämpfers, ist die Attacke erfolgreich. Nun wird wieder eine zufällige Zahl wischen 1 und 20 generiert, es wird aber jetzt der Verteidigungswert des anderen Kämpfers verglichen. Ist diese Zahl < oder =, wird die Attacke abgewehrt und Kämpfer B ist dran. Ist die Zahl aber >, dann ist der ganze Angriff erfolgreich, Health von Kämpfer B wird in Höhe des Werts von Power von Kämpfer A abgezogen. Kämpfer A ist nochmal dran. Wenn die zufällig generiert Zahl aber von Anfang an beim Attackenversuch > ist, ist Kämpfer B sofort dran.
    Wenn Health eines Kämpfers auf 0 oder drunter sinkt, gewinnt der andere Kämpfer.

    Eigentlich sehr simpel, ist bestimmt auch machbar aber ist auch ne Tüftelei ^^

    Hier mal ein Plan, wie ich das machen würde:
    Wenn man im Spiel zB Start drückt, werden 2 Bilder von Kämpfern angezeigt, die Pfeiltasten ausgewählt werden können.
    Ist die erste Eingabe getätigt, kann Spieler 2 einen Kämpfer auswählen. Natürlich weiß der Maker nicht, dass das nun Spieler 2 ist. (da bräuchte ich Hilfe, wie man das machen könnte, dass das Spiel erkennt, dass das nun der Gegner des ersten ausgewählten Kämpfers ist.)
    Der Maker vergleicht nun zb mit einer if-then Funktion die Speedwerte beider Kämpfer. Eine Textbox soll ausgegeben werden wie zb: "Kämpfer A ist schneller, Kämpfer A ist zuerst an der Reihe. Der Kämpfer kann nun eine Attacke ausführen.
    Immer der Kämpfer, der gerade dran ist, von dem wird ein Bild angezeigt mit den Werten (würde ich wie eine Sammelkarte gestalten, ist nur was optisches).
    Wenn man nun mit zb der Taste A bestätigt, dass man angreift, wird wie oben beschrieben, eine zufällige Zahl von 1 bis 20 generiert. Jetzt wird das Bild des Gegners angezeigt und eine Textbox, in der steht, ob die Attacke erfolgreich wahr oder abgewehrt wurde.
    Wenn die Attacke abgewehrt wurde, ist nun Kämpfer B dran und das gleiche wie oben passiert wieder. Wenn die Attacke erfolgreich war, wird in einer Textbox angezeigt, wieviel HP abgezogen wurde und wieviel man noch hat.
    Das geht dann immer so weiter, bis jemand HP 0 hat. Dann wird wieder eine Textbox ausgegeben, wo das Ergebnis drinn steht und es wird wieder zum Hauptmenü gewechselt.

    Am Ende soll dabei ein System herauskommen, bei dem jeder Spieler zuerst 3 Kämpfer von zB 10 verschiedenen Kämpfer aussuchen kann. Jeder Kämpfer soll dann aber bis zu 3 Attacken mit verschiedenen Att- und Powerwerten haben. Wenn ein Kämpfer besiegt ist, wird sofort ein Kämpfer nachgeschickt. Aber wie gesagt, erst Schritt 1 und 2, dann mal sehn

  2. #2
    Hast du eine Frage? Brauchst du bei etwas Hilfe? Wofür ist dieser Thread gut?

  3. #3
    Zitat Zitat von Cornix Beitrag anzeigen
    Hast du eine Frage? Brauchst du bei etwas Hilfe? Wofür ist dieser Thread gut?
    Ich würde Ihm zwar gerne helfen aber ich bin nicht wirklich erfahren in den makern:
    Zitat Zitat
    Hilfe brauche ich in Variablen, der "if-then-else"-Funktion und vielleicht auch Schleifen erstellen.

    allerdings macht er sicherlich klar das er Hilfe wünscht.

  4. #4
    Zitat Zitat von Lord of Riva Beitrag anzeigen
    Ich würde Ihm zwar gerne helfen aber ich bin nicht wirklich erfahren in den makern:



    allerdings macht er sicherlich klar das er Hilfe wünscht.
    Das ist aber nicht wirklich eine "nützlich" Aussage. Hilfe mit Variablen und Schleifen ist sehr sehr schwammig. Man kann dem Thread-Ersteller keine Hilfestellung leisten wenn keine konkrete Frage gestellt wird. Ich versuche nur darauf aufmerksam zu machen. Allerdings hätte ich das wohl auch einfach sofort so schreiben können.

  5. #5
    Hallo
    hm ja um es klarer zu machen, habe ich Probleme, die oben genannten Werte jedes Kämpfers so in den Maker zu integrieren, dass der Maker darauf zugreifen und verarbeiten kann.
    Stichwort: Common Event mit Variablen vielleicht?!

    Also z.B. dass, wenn ein Kämpfer angreift, der Maker weiß, welchen Wert dieser Kämpfer in Attacke hat (1 bis 20) und diesen dann durch eine zufällig generierte Zahl vergleichen kann.
    Hmm ist n bisschen schwer zu erklären und auch zu lösen, ich weiß :/

  6. #6
    Welchen RPG-Maker verwendest du denn? Ich würde dir lieber ein fertiges, kommentiertes Skript zuschicken, das du nach Belieben erweitern kannst, als mir hier die Finger blutig zu schreiben.
    Grundsätzlich ist es ja das alte DSA-System. Soll auch Rüstung berücksichtigt werden?

  7. #7
    Für mich hört es sich so an, als könntest du das ganze durchaus selbst bewältigen, weil es eben doch relativ simpel ist. Dazu musst du natürlich viel ausprobieren, vielleicht auch hier im Forum nachfragen, aber dazu ist das Forum ja auch da.
    Falls du das nicht eh vor hattest, kannst du auch gut mit dem 2k3 arbeiten, da dessen Funktionen dafür durchaus ausreichend sind.

    Allein schonmal zu wissen, was eine Variable ist, sollte dich auch befähigen die von dir beschriebenen Dinge zu Skripten. Mit Set Variable kannst du zB einfach deine Datenbank mit den verschiedenen Statuswerten anlegen. Das kannst es aber auch machen, wenn der jeweilige Charakter ausgewählt ist. Dann brauchst du 10 Variablen für die Stats(5 für jeden Spieler).
    Eine Zahl zwischen 1-20 lässt sich auch ganz leicht ausgeben, einfach set Variable random 1-20.
    Anzeigen lassen kannst du die Werte auch ganz leicht über eine Message Box mit dem Befehl \v[n] (n = ID Variable)

    Das ganze müsstest du dann tatsächlich in einem common event oder auch Map event, das scheint mir nicht wichtig, in die richtige Reihenfolge bringen. Mit vielen "if-then-else"-Funktion natürlich. Aber da ist es ja auch nicht schwierig, abzufragen, ob eine Variable größer/kleiner/etc ist.

    Ich bin nicht sicher, ob das jetzt eine Hilfe war, weil ich das Gefühl hab, dass du das alles schon weißt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •