Hallo, Leute.^^
Ich habe vor, ein Kampfsystem zu basteln und habe mir einige Gedanken über die Trefferwahrscheinlichkeit, usw. gemacht. Ich habe eine logische Formel für die Berechnung gefunden, doch da muss man Wurzeln ziehen und der RPG Maker 2003 hat dafür kein Befehl. Gibt es vielleicht eine logische Lösung ohne Wurzeln zu ziehen oder gibt es einen Patch, um Wurzeln zu ziehen?( Rm2k3 v.1.08 )
Man kann die Wurzel wohl auch per Hand ohne Wurzelfunktion ziehen, aber das wäre vermutlich zu aufwändig. Aber ist das Teilen nicht sogar ein größeres Problem? Wenn A < Z, dann ist das Ergebnis immer 0 und erst ab A = Z * 2 ist der Wert größer 1. Gut, man könnte A und Z natürlich vorher noch mit großen Zahlen multiplizieren.
Hmm... Ich glaube du hast recht o.o
Die Formel habe ich als Tipp beim RPG Maker 2009 Ultimate bekommen, also dachte ich alles würde reibungslos funktionieren.
Whatever, hier ist eine rückwärts angegangene Wurzelfunktion:
Zitat von EasyEventExporterEdit
<> Change Variable: [0021: A/Z] = [?]
<> Comment: Input "A/Z" von sqrt(A/Z) in Var[0021] eingeben. x100 für die Berechnung einer Nachkommastelle.
<> Change Variable: [0021: A/Z] * 100
<> Change Variable: [0022:guess] = V[0021]'s value
<> Change Variable: [0022:guess] / 10
<> Comment: / 10 für die Berechnung einer Nachkommastelle.
<> Change Variable: [0022:guess] + 1
<> Change Variable: [0022:guess] / 2
<> Change Variable: [0024:iterations] = 5
<> Comment: Hier Anzahl an Wiederholungen angeben, um ein genaueres Ergebnis zu erhalten.
<> Label: 1
<> Change Variable: [0023:calc] = V[0022]'s value
<> Comment: Var[0023] merkt sich die Näherung des letzten Durchlaufes.
<> Change Variable: [0022:guess] = V[0021]'s value
<> Change Variable: [0022:guess] / V[0023]'s value
<> Change Variable: [0022:guess] + V[0023]'s value
<> Change Variable: [0022:guess] / 2
<> Change Variable: [0024:iterations] - 1
<> Fork Condition: If Variable [0024] not 0
<> Jump To Label: 1
<>
: End
<> Comment: In Var[0022] liegt die Schätzung des Ergebnisses aus sqrt(A/Z) mal 10 vor (enthält eine Nachkommastelle).
...
Hat zwar ein Problem mit dem Aufrunden, aber es erfüllt seinen Zweck. (Lässt sich sicher noch optimieren)
Erstmal Lob für die hübsche Formel. Hab die grad mal in Excel gebaut und mit Werten rumprobiert. Da hast du dir eine gelungene Formel ausgesucht. Hast du dich dabei von irgendwas inspirieren lassen oder wie bist du darauf gekommen?
Neben der Tatsache, dass ich die Formel für ihren Zweck sehr gelungen finde, halte ich Trefferchancen allgemein in rundenbasierten Systemen für keine Sache, die Spass oder Taktik fördert, aber das ist eine angedere Geschichte.
@bugmenot
Zu aufwändig aus der Perspektive von jemanden, der kein mathematisches Verständnis hat.
@Corti
Die andere Geschichte ist aber das Wichtigste, da muss noch viel Überzeugungsarbeit geleistet werden! Mir fallen bei der Trefferchance auf Anhieb keine spielerischen Vorteile ein, nur Nachteile. Der Spieler verliert ohne Schuld einen Zug.
Wenn du ein eigenes Kampfsystem verwendest, solltest du evtl. neue Charakterwerte wie Reflex und Treffer verwenden, wie es in FFX der Fall ist.
Hier mal ein Link, musst ein bisschen runterscrollen, wie es in FFX implementiert ist.
Ich möchte auf Raildex' Anregung reagieren, indem ich dazu anrege genau das nicht zu tun. Es bringt nichts neue Stats und noch komplexere Formeln zu implementieren, wenn es die einfache Formel genau so tut, und zudem die Mechanik ansich ein Relikt ist. Final Fantasy 13 hat überhaupt keine Hitformal mehr.
Im Spieldesign bedeudet es Frustration, wenn ein Misserfolg nicht vom Spieler hätte verhindert werden können. Ausgewürfeltes Versagen ist genau das.
@Kyuu
Ich bin Künstler, mich überfordert schon der Dreisatz! Aber mal ernsthaft, das was ich gestern auf die Schnelle gefunden hab, sah ziemlich lang und kompliziert aus (war denke ich nicht das Heron-Verfahren).
Mir ist überhaupt nicht klar, was das mit dem wurzelziehen eigentlich soll. Einen Hit-Roll kann man wie in jedem X-beliebigen Pen-and-paper RPG ganz simpel über einen Zufallswert bestimmen. Der Gegner hat eine Ausweichchance von 5%, also würfelst du 1w100 und wenn das Ergebniss größer ist als 5, trifft der Angriff. Fertig.
Wenn du Basis-Trefferchancen mit einbeziehen willst, machste das ganze Anders rum:
Ein Charakter hat eine Basis-Trefferchance von 90% und der Gegner eine Ausweichchance von 5%. Also subtrahierst du 5 von 90, ergibt dann 85%. Dann würfelst du 1w100 und das Ergebniss muss kleiner sein, als 85.
Problem gelöst.
Ansonsten sehe ich das wie Corti. Einen Grund dazu, im Jahre 2014 noch Hitchancen in einem RPG zu verwenden, nur weil FF die bis vor 10 Jahren hatte, sehe ich nicht.
Macht es doch dem armen Mann nicht so schwer, dass er die Wurzel per Event Code ziehen muss :P Das wird doch voll unübersichtlich xD
Du hattest auch gefragt, ob es einen Patch gibt um Wurzeln zu ziehen, ja den gibt es, gerade wenn du den RPG Maker 2k3 v1.08 nutzt! --> DYNRPG mit dem Mathplugin
Zumal, wenn du gerade bei der Gestaltung des KS bist, du dir damit sicherlich vieles erleichtern kannst bzw. das Ganze auch noch aufmotzen kannst ^^
Sollte auch nicht zu schwer sein, herauszufinden wie man DynRPG und das Plugin verwendet, jedenfalls sollte es zig mal leichter sein, als ein eigenes KS zu basteln
@caesa_andy
Die Wurzel soll den Wert wohl entschärfen, damit das Verhältnis zwischen AGI-Angreifer und AGI-Verteidiger nicht so stark ins Gewicht fällt. Der Ursprung des Problems sind jedenfalls denke ich die typischen JRPG-Statuswerte, bei denen die Zahlenwerte für sich genommen kaum eine Aussagekraft haben. Eine Trefferchance von 90% versteht man natürlich eher als AGI 127.
Ja, ohne Wurzel ist es sicher einfacher. Und statt Hitchance bei einem Schlag kann man einfach alles als 100 oder 1000 Schläge sich vorstellen, bei denen(wegen großer Anzahl) x Prozent der Schläge treffen. Man macht also einfach weniger Schaden. Irgendwie kann man das also schon verbauen, aber das mit dem "einen Zug verlieren" ist schon recht schlecht, da es stark zufallsabhängig macht. Wenn man einfach weniger Schaden macht, dann ist das besser.
@caesa_andy
Die Wurzel soll den Wert wohl entschärfen, damit das Verhältnis zwischen AGI-Angreifer und AGI-Verteidiger nicht so stark ins Gewicht fällt. Der Ursprung des Problems sind jedenfalls denke ich die typischen JRPG-Statuswerte, bei denen die Zahlenwerte für sich genommen kaum eine Aussagekraft haben. Eine Trefferchance von 90% versteht man natürlich eher als AGI 127.
...
Auch dafür muss man keine Wurzel ziehen
Ich kann nur nochmal raten, sich das D&D Regelwerk zu gemüte zu führen, insbesondere wie dort die Trefferwürfe ausgeführt werden. Das System ist ziemlich einfach, weil der Angreifer schlicht mit seinem Angriffswert + einem erwürfelten Zufallswert den Verteidigungswert des Gegners übertreffen muss. Fertig.
Das System lässt sich problemlos an JRPGs anpassen, es muss lediglich die Höhe des Zufallswurfes modifiziert werden. Ein "relativ" geringer Zufallswurf wie in D&D (1w20) resultiert natürlich in einer eher geringen Trefferchance. Höhere Zufallswürfe, wie 3w10, 2w20 oder 1w100 passen das Verhältniss zu Gunsten des Angreifers an.
Im Übrigen ist es ziemlicher Nonsense, Trefferchancen im JRPG an den AGI-Wert zu koppeln, weil langsame Charaktere damit über gebühr bestraft werden. Ein langsamer Charakter kann noch so viel schaden machen, er wird letztlich doch zu einem Papiertiger, wenn er sein Ziel einfach nicht trifft.
Entweder einen eigenen Statuswert, oder Fixe Chance. 95 - 97% Hit und 3 - 5% Ausweichen, varriierend je nach Charakter und Gegner sind das maximum was ein JRPG verkraftet, ohne dass sich das ewige "Miss" negativ auf die Spielerfahrung auswirkt.
Idealerweise verzichtet man aber trotzdem ganz drauf.