Schadensberechnung. Bin ich Johannes Kepler?

  • Also Spaß beiseite, aber aktuell fühle ich mich wie Herr Kepler.

    Zum Glück gibt es im Internet hilfreiche Ressourcen, die einem zur Seite stehen.


    Ich hatte folgendes Problem:


    Ich habe diesen Beitrag hier im Forum entdeckt: RE: [MZ] Änderungen von Zauber.

    Ich dachte mir, verdammt, das muss ich auch noch machen, zumindest eine anständige Formel zur Schadenberechnung entwickeln.

    Ich habe mir den Kopf zerbrochen und mir etwas ausgedacht.

    Ich wollte generell von der Community wissen, ob ich das so machen kann, wie ich es im nachstehenden Text beschreibe.


    Vorweg: Ich wollte nichts von irgendjemandem kopieren, sondern eine eigene Formel entwickeln, damit ich genau weiß, wenn etwas falsch skaliert ist, wo ich ansetzen muss, damit nichts OP oder UP ist.


    Wie gesagt, ich habe darüber nachgedacht und bin auf die Idee gekommen, dass ich es ähnlich wie in World of Warcraft machen möchte (in abgewandelter Form). Zumindest glaube ich, dass es so war. Es ist schon lange her, seit ich es gespielt habe.


    Und zwar wollte ich für jede Klasse eine eigene Formel haben, die je nachdem, um welche Klasse es sich handelt, unterschiedliche Vorteile oder Nachteile bringt (wir reden hier nur vom Standardangriff).

    Das heißt, ein Magier sollte den Angriff mit Magieschaden machen, der Krieger mit Stärke und der Jäger mit Geschicklichkeit.


    Ich hatte dann das Problem, dass der Standardangriff sich nicht einfach entfernen ließ, obwohl ich den Standardangriffs-Skill aus der Skillliste entfernt und dem Charakter den Standardangriff verboten habe. Der Eintrag im Kampf tauchte trotzdem auf (nur ausgegraut).

    Daher habe ich nach einem Plugin gesucht, das den Eintrag löscht. Ich habe ein kleines Plugin gefunden, das genau diese Änderung vornimmt.

    Perfekt. :thumbup:


    Also habe ich zunächst für den Krieger einen Standardangriff erstellt und alles eingestellt.

    Ich hatte dann noch ein paar Probleme, die ich durch Ausprobieren lösen konnte.


    Das einzige, was zumindest am Anfang gestört hat, ist, dass das Auswahlmenü jetzt ein Untermenü hat.

    Aber dafür habe ich bereits eine Verwendung. Ich werde wahrscheinlich verschiedene Angriffe für den Standardangriff anbieten, wie zum Beispiel leichten Angriff, schweren Angriff usw., die alle Vor- und Nachteile haben, wie eine höhere Trefferchance, mehr Schaden oder eine höhere Fehlerrate.

    Das Besondere daran ist, dass bei jedem Charakter nicht nur "Angriff" steht, sondern zum Beispiel bei Selene als Schwertkämpferin "Schwertangriff" und bei Gabriel als Jäger werde ich wohl "Schießen" oder "Schuss" nehmen, etwas in der Richtung.

    Das bringt noch einmal extra Abwechslung. :thumbup:


    Dann ging es an die Formel. Mit Hilfe von ChatGPT (ein Kumpel, mit dem ich jeden Tag übers Handy labere) hat mir den Tipp gegeben, die KI als Unterstützung zu benutzen.

    Das habe ich auch gemacht und es war eine gute Entscheidung.

    Vorher habe ich nicht viel damit gemacht, nur vor ein paar Monaten ein bisschen aus Spaß geguckt, ob ich die KI austricksen kann.


    Dabei habe ich folgende Formel entwickelt und wollte mal fragen, ob man das so lassen kann:


    (50 + a.atk + (a.agi / 2) + (a.mat / 5)) / (2 + (a.luk / 200)) - (15 + b.def + (b.agi / 2) + (b.mdf / 5)) / (1.8 + (b.luk / 200))


    und diese


    (50 + a.mat + (a.atk / 5) + (a.agi / 5)) / (2 + (a.luk / 200)) - (15 + b.mdf + (b.def / 5) + (b.agi / 2)) / (1.8 + (b.luk / 200))


    und diese


    (50 + a.agi + (a.atk / 2.5) + (a.mat / 5)) / (2 +(a.luk / 200)) - (15 + b.agi + (b.def / 2.5) + (b.mdf / 5)) / (1.8 + (b.luk / 200))


    *edit ergänzung erste formel für krieger zweite für magier und dritte für jägerklasse.

    *deit2 Die Formel ahtte einen fehler habe ich korrigiert danke an MAttos313


    Der Hintergrund ist, dass eine Magierklasse mit einem normalen Angriff besser mit Magieangriff skaliert als mit Stärke. Das ist logisch. Man könnte vielleicht als Funfact auch einen Stabangriff einbauen, der jedoch sehr schwach ist.


    Bei den Standardeinstellungen ist halt für den normalen Angriff nur eine Formel möglich, daher kann ich jeder Klasse eine eigene Formel geben. Ich habe keine Ahnung, ob es auch anders gelöst werden könnte. Auf die Schnelle habe ich nichts gefunden.


    Weiterhin habe ich auch eingebaut, dass zum Beispiel ein Magier auch von Stärke und Geschicklichkeit profitiert, jedoch eher in geringerem Maße.


    Ich habe die Formel nur grob getestet, eventuell muss ich noch etwas feinjustieren, aber die groben Züge sollten erkennbar sein und in den Testkämpfen passt auch erstmal alles.


    Es wäre nett, wenn ihr eure Meinung dazu teilen könntet.

  • Bei den Standardeinstellungen ist halt für den normalen Angriff nur eine Formel möglich, daher kann ich jeder Klasse eine eigene Formel geben. Ich habe keine Ahnung, ob es auch anders gelöst werden könnte. Auf die Schnelle habe ich nichts gefunden.

    Das ist möglich, wenn bei der Schadensformel "if else" verwendet wird :)


    Und die Formeln schauen extrem kompliziert aus :P aber solange sie Funktionieren passt es ja :)

  • Wakudien

    Hat den Titel des Themas von „Scahdensberechnung. Bin ich Johannes Kepler?“ zu „Schadensberechnung. Bin ich Johannes Kepler?“ geändert.
  • Das ist möglich, wenn bei der Schadensformel "if else" verwendet wird :)


    Und die Formeln schauen extrem kompliziert aus :P aber solange sie Funktionieren passt es ja :)


    Ja das dachte ich mir das es sowas gibt, aber bei 11 klassen wird es ne ganz schön lange Formel =O
    Man muss ja bedenken das die Beispiele die ich oben gennant habe quasi Gruüppen sind.

    Beispielsweise Kriegerklasse dazu gehören die Klassen : Schwertkämpfer Soldat Ritter u.s.w.

    das war einer der Gründe warum ich das so gemacht habe.

  • Man muss ja bedenken das die Beispiele die ich oben gennant habe quasi Gruüppen sind.

    Beispielsweise Kriegerklasse dazu gehören die Klassen : Schwertkämpfer Soldat Ritter u.s.w.

    Kein Problem dies zu dementsprechend zu kürzen:

    Code
    if (a._classId == 1 || a._classId == 3) {
    a.atk * 3 - b.def
    } else if (a._classId == 2) {
    a.agi - b.def 
    } else if (a._classId == 5 || a._classId = 6) {
    a.mat * 3 - b.mdf 
    }

    In diesem Beispiel werden die Klassen 1&3 zusammengefasst sowie die Klassen 5&6 :)

  • Zu den Formel allgemein kann ich leider keine Meinung geben, da ich mich mit diesen nie befasst habe.

    Ich muss aber sagen, ich mag die Idee der individuellen Standardangriffe sehr für deine Klassen, sowas mag ich zum Beispiel auch sehr in Rollenspielen in denen der Spieler ein eigenes Skillsystem besitzt und seine Klasse frei wählen darf, da man so sein ganz eigenes persönliches Kampfsystem anpassen kann, wie man es selber am besten findet.

    Da ich nicht weiss wie dein Level, Skill und Kampfsystem komplett aufgebaut ist, finde ich aber auch das kleine I-Tüpfelchen sehr ansprechend, dass du bereits erwähnt hast: Die Rede ist von den individuellen Namensgebungen der Angriffe im Kampf. Auch wenn nicht alle Spieler solche Kleinigkeiten bemerken oder schätzen, mag ich es lieber wenn z.B. ein Zauberangriff auch den passenden Namen hat und die dazu gehörige Animation, auch ist es angenehmer als immer nur "Angriff" zu lesen. ;) Gerade wenn es viele Kämpfe geben soll.


    Auf jeden Fall echt toll, dass du dir da so viele Gedanken gemacht hast wegen den Kampfsystem. Finde es auch mal Klasse die Gedanken und Arbeitsschritte diesbezüglich mal lesen zu können, weil ich selber mich ja wie gesagt noch nie damit auseinander gesetzt habe.

  • (50 + a.atk + (a.agi / 2) + (a.mat / 5)) / (2 + (a.luk / 200)) - (15 + b.def + (b.agi / 2) + (b.mdf / 5)) / (1.8 - (b.luk / 200))

    Vielleicht lese ich es nur falsch, aber wird durch den Teil der Formel:


    / (2 + (a.luk / 200))


    nicht der erteilte Schaden reduziert, je mehr Glück man hat?

    Zwar nur in recht geringem Maße, aber fände ich trotzdem ein bisschen komisch :/

  • Stimmt du hast recht.

    Danke


    Ich wollte der Formel bisschen mehr individuallität geben damit Glück auch zumindest kleinen Stellennwert hat deshalb durch 200 Geteilt damit die Zahl nicht so sehr ins Gewicht fällt.

    Womöglich hat ChatGPT beim umwandeln der fertigen Formel entweder was falsch verstanden oder keine Ahnung wie das passiert ist aber ja es sollte minus sein nicht plus.

    Zu den Formel allgemein kann ich leider keine Meinung geben, da ich mich mit diesen nie befasst habe.

    Ich muss aber sagen, ich mag die Idee der individuellen Standardangriffe sehr für deine Klassen, sowas mag ich zum Beispiel auch sehr in Rollenspielen in denen der Spieler ein eigenes Skillsystem besitzt und seine Klasse frei wählen darf, da man so sein ganz eigenes persönliches Kampfsystem anpassen kann, wie man es selber am besten findet.

    Da ich nicht weiss wie dein Level, Skill und Kampfsystem komplett aufgebaut ist, finde ich aber auch das kleine I-Tüpfelchen sehr ansprechend, dass du bereits erwähnt hast: Die Rede ist von den individuellen Namensgebungen der Angriffe im Kampf. Auch wenn nicht alle Spieler solche Kleinigkeiten bemerken oder schätzen, mag ich es lieber wenn z.B. ein Zauberangriff auch den passenden Namen hat und die dazu gehörige Animation, auch ist es angenehmer als immer nur "Angriff" zu lesen. ;) Gerade wenn es viele Kämpfe geben soll.


    Auf jeden Fall echt toll, dass du dir da so viele Gedanken gemacht hast wegen den Kampfsystem. Finde es auch mal Klasse die Gedanken und Arbeitsschritte diesbezüglich mal lesen zu können, weil ich selber mich ja wie gesagt noch nie damit auseinander gesetzt habe.

    Danke auf jedenfall für deine Einschätzung.


    JA ich gehöre auch zu den Spielern die auf kleine Details achten egal ob indi oder Die normalen Games.


    Als Beispiel, als ich das erste mal Witcher 3 gespielt habe und ich das erste mal in der Großstadt war bin ich 1 Stunde nur durch die Stadt gelaufen um mir alle animationen und geschehnisse anzuschauen egal ob es die Prostituirten waren die auf der Straße nach freiern gesucht haben oder irgendwelche Halunken die in der Ecke sich rumgetrieben haben, oder nur mal 10 minuten auf dem Marktplatz stehen und die interkationen der NPC's angeschaut habe.


    Wenn mir ein Spiel gefällt tauche ich sehr schnell ein und so kleinigkeiten tragen mit dazu bei.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!