Ergebnis 1 bis 8 von 8

Thema: Ursprünglichen Schadenswert speichern \\\\\\\\(((O)))/////////

  1. #1

    Ursprünglichen Schadenswert speichern \\\\\\\\(((O)))/////////

    Hallochen, ihr RPG-Makeronauten. *****:



    Ich schildere kurz, was ich schon seit längerem vorhabe:
    Bestimmte Waffen in Eheb Saga machen Elementarschaden.
    Jeder Gegner im Spiel soll zu einer Elementarklasse gehören.
    Es gibt sechs Elementarschadensklassen: Licht, Arkan, Feuer, Wasser, Gift, Verderbtheit.

    So sieht die Berechnung des höheren Schadens aus:
    Code:
    @> Wait: 0.0 seconds
    @> Conditional Branch: [Witch] has [Water Magic] learned
      @> Conditional Branch: Switch [0495:h dmg water] is ON
        @> Control Variables: [0284:ATK normal ID] = [Witch]'s ATK
        @> Change Parameters: Entire Party, ATK + 100
        @> End Event Processing
        @>
       : Else
        @> Control Variables: [0284:ATK normal ID] -= 100 
        @> End Event Processing
        @>
       : Branch End
      @>
     : Else
      @> Control Variables: [0284:ATK normal ID] = [Witch]'s ATK
      @>
     : Branch End
    @> Wait: 0.0 seconds
    So sieht der Code im Moment aus, aber ich habe schon viele verschiedene Varianten durch...

    'High Damage Water' wird angeschaltet, sobald der Held einen Gegner angreift, der zustätzlichen Schaden durch Wasser erleidet.
    Ansonsten soll bei diesem Gegner nur der ursprüngliche Schaden verursacht werden.

    Wie würdet ihr das umsetzen?
    Wie könnte ich Gegner-Events am besten als eine bestimmte Elementarklasse markieren?

    Irgendwie ist bei mir immer der Wurm drin...

  2. #2
    Zum Einen würde ich das gar nicht mit Switches machen, sondern mit Variablen - so kannst du eine Variable nehmen und die Elementaffinitäten als Parameter dort speichern (1=Wasser, 2 =Feuer, etc.) und sparst dir so, für jedes Element einen Switch erstellen zu müssen, bzw. für jeden Gegner Switches für alle Elemente. So isses eine Variable pro Gegner und eine pro spielbarer Charakter, die du dann nur gegeneinander abgleichen musst.

    Zum Anderen würde ich grundsätzlich erst einmal nur mit dem Grundschaden arbeiten und denn einfach je nach Fall Multiplizieren - bspw. bei einem sehr effektiven Angriff mit x2 etwa. Der Sinn dahinter, erst den erhöhten Schaden zu berechnen und dann daraus den Grundschaden bekommen zu wollen, erschließt sich mir nicht - aber ehrlich gesagt bin ich generell nicht ganz sicher ob ich verstehe, was deine Frage ist. Du legst den Schaden doch selbst fest, warum musst du ihn dann hinterher irgendwie herausfinden? (Und warum rechnest du am Angriffs-Wert herum, wenn es dir um einen Situationsabhängig Schaden geht?)

  3. #3
    @BDraw:
    Ich bin einfach nich so kluch. ;P
    Nee, das ist einfach mein jetziger Stand der Dinge, nachdem ich sehr viel rumgedoktort habe... n_n

    Wie meinst du das genau mit beide Variablen abgleichen.
    Also, wenn der Held einen Waterwand angelegt hat, ist die Variable "Elementarklasse" (oder so) auf 1 & im Gegnerevent wird dann abgefragt, ob die "Elementarklasse" gleich 1 ist?
    So in etwa? *Thinking Smiley*

    Irgendwie habe ich es bisher nie richtig hinbekommen, dass wenn ich - zum Beispiel - den Schaden als erhöhten Schaden verdoppel & ihn dann wieder zurücksetzen will, der gleiche Schaden herauskommt, der dem Ursprungswert entspricht.
    Als Beispiel:
    Mein Held hatte einen Lightwand angelegt.
    Hat vier Schläge gebraucht, um einen Schleim zu töten, der gegen Wasser empfindlich ist.
    Dann hat er einen Waterwand angelegt & brauchte nur zwei Schläge für den nächsten Schleim.
    So weit, so gut.
    Dann habe ich ihm wieder einen Lightwand angelegt & der Held brauchte nur noch zwei Schläge für einen baugleichen Schleim.

  4. #4
    Nutzt du ein eigenes Kampfsystem oder das Standard-KS? Und falls letzteres, von welchem Maker?

  5. #5
    Das AKS von Kazesui, falls dir das was sagen tut. <:

    Aber ich will versuchen, die Waffentypen, die ich habe (eigentlich AGI-Wert des jeweiligen Helden) noch zu unterteilen in Elementarschadensklassen.
    & bei den Gegnerevents dann eine Abfrage machen.
    Aber wie setze ich den erhöhten Schaden dann am besten um, ohne dass der Ursprungswert verloren geht...
    * Change Parameters ATK +100 (oder so) & dann, wenn's nicht zutrifft -100
    * oder den HP-Wert des Gegners sofort auf 100 Punkte weniger setzen (was blöd ist, wenn man mitten im Kampf die Elementarschadensklasse wechselt...)

    Wie würdet ihr es machen?


    Den 2003er benutze ich.

  6. #6
    Ne, das AKS sagt mir nichts - aber dann verstehe ich umso weniger das Problem. Du rechnest den Schaden ja irgendwo aus - und meistens hat man noch irgendwo einen leichten Random-Effekt, damit es nicht immer exakt dieselbe Zahl ist. Sprich, du berechnest den Schaden jedes Mal, wenn du angreifst - und danach, nach der Verrechnung mit dem Gegner, brauchst du ihn ja nicht mehr.

    An deiner Stelle würde ich mir einmal anschauen, wie der Schaden überhaupt zustande kommt. Der wird ja anhand irgendeiner Formel berechnet, was weiß ich, (ATK - DEF) * Effektivität oder so. Die wendest du jedes Mal an, wenn dein Held angreift (und trifft). Vorab bestimmst du den Wert des Parameters "Effektivität", indem du vergleichst, mit welchem Element der Held angreift und wie gut der Gegner das abkann. Das kannst du über Variablen machen, über Switches, egal - wichtig ist, dass du hier nur am Ende einen Parameter rausbekommst. Du doktorst nicht an irgendwelchen Statuswerten herum, denn was du willst, hat mit den Statuswerten ja gar nichts zu tun - die bleiben ja konstant. Damit handelst du dir nur das Problem ein, dass du irgendwann mit völlig veränderten Statuswerten darstehst und nicht mehr weißt, was der Ursprungswert war, oder die irgendwo anders die Schadensberechnung um die Ohren fliegt.

    Sagen wir mal, der Held hat eine Variable "Element Waffe", mit 1=Wasser, 2 =Feuer, etc. Ebenso hat jeder Gegner eine Variable "Elementschwäche". Sagen wir du greifst mit einer Wasserwaffe an, dann setzt du die Helden-Variable auf 1. Ist der Gegner gegen Wasser empfindlich, setzt du auch diese Variable auf 1 (für Feuer auf 2, etc.). Nun kannst du abfragen "Ist Variable A = Variable B?" und wenn ja - okay, dann ist das ein sehr effektiver Angriff und du setzt die Variable, die den Parameter für die Effektivität enthält auf 2, damit das Ergebnis deiner Schadensberechnung am Ende verdoppelt wird.

  7. #7
    Das AKS verwendet die den Standard-Attack-Wert des Makers.

    Also ich wollte das jetzt so machen:
    Die verschiedenen Elementarschadenswerte, sind als Agility-Werte gespeichert.
    Bei Event-Touch mit dem Gegner wird der AGI-Wert abgefragt & wenn's zur Schadensklasse passt, wird ein State 'Elementary-Damage' aktiviert, der den Attack-Wert verdoppelt.

    Nur weiß ich noch nicht, wann ich den State wieder abziehen soll.
    Sobald der gegner nicht mehr berührt wird?
    Aber wie mache ich das?

  8. #8
    Du, das kann ich dir nicht sagen, das kommt ganz darauf an, wie dieses AKS funktioniert. Ich halte es bloß für eine sehr gewagte Idee, an den Stats rumzuschrauben, wenn man nicht wirklich die Stats auch permanent verändern will. Dennoch beantwortet das ja nun nicht, wie der Schaden berechnet wird - außer, der Angriffswert des Charakters entspricht dem Schaden 1:1. In diesem Fall spräche aber immer noch nichts dagegen es so abzuändern, dass der Angriffswert in einer Variable gespeichert wird und die verdoppelt und dann zur weiteren Schadensberechnung verwendet wird. Das wäre weitaus sauberer.

Stichworte

Berechtigungen

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