Pokemon Smaragt Eng Schadensberechnung über Lv. 100

  • Hey,


    ich hab auf meine ROM einen +LV.100 Patch gezogen und mir ist aufgefallen, dass man echt lange zum leveln braucht, mann aber fast garnicht stärker wird. Mit einem guten legendären Lv.100 Pkmn kann man problemlos gegen Lv. 170+ kämpfen. Deswegen hatte ich mir folgendes gedacht:


    Ist es möglich (Ist nicht eigentlich alles möglich?) die Schadensberechnung zu verändern und das Level mit einzubeziehen?

    Ich dachte mir das Pokemon ab Lv. 100 für jedes Level über dem Gegner 1% mehr schaden bzw für jedes Level unter dem gegner 0,5% weniger schaden bekommt. Bsp:


    Lv. 150 gegen Lv. 100 ==> Normal: 100 Schaden. Geändert: 150 Schaden.

    Lv. 150 gegen Lv. 80 ==> Normal: 100 Schaden. Geändert: 150 Schaden.

    Lv. 150 gegen Lv. 120 ==> Normal: 100 Schaden. Geändert: 130 Schaden.

    Lv. 150 gegen Lv. 150 ==> Normal: 100 Schaden. Geändert: 100 Schaden.

    Lv 150 gegen Lv. 170 ==> Normal: 100 Schaden. Geändert: 90 Schaden.

    Lv. 150 gegen Lv. 200 ==> Normal: 100 Schaden. Geändert: 75 Schaden.

    Lv. 80 gegen Lv. 110 ==> Normal: 100 Schaden. Geändert: 95 Schaden.

    Lv. 120 gegen Lv. 80 ==> Normal: 100 Schaden. Geändert: 120 Schaden.


    Aber nicht bei:


    Lv. 70 gegen Lv. 50 bleibt der normale Schaden.


    Ich hab dabei etwas pseudocode:



    Kann man das umsetzten ohne das ganze Spiel auf dem Kopf zu stellen?

  • Erhalten die Pokémon denn regulär Status-Upgrades (also +XY auf den Stats beim Level-Up)? Falls ja, sollte die Schadensberechnung eigentlich funktionieren. Falls nein, würde ich da ansetzten.


    Die Schadensberechnungsroutine (ich kenne sie nur in Feuerrot) ist prinzipiell zwar komplex, es ist aber kein Problem ans Ende einen Multiplikator zu setzten. Allerdings würde ich dir, Zwecks Balancing, erst einmal empfehlen, zu schauen, ob denn die normalen Werte auch weiter ansteigen bei > Level 100.

  • Ja die Werte steigen mit. Nur konnte ich mit einem Lv. 100 rayquaza und einmal Wutanfall ganze 3 Lv. 170+ erlegen ohne Probleme. Deswegen wollte ich damit mal experimentieren, ob es so besser ist wenn das Endgame stärker Level abhängig ist. Damit man mit 20-30 Level unterschied schon hart knabbern muss um den Gegner zu besiegen. Lv. 20 gg Lv. 50 ist echt hart, aber Lv. 100 gg Lv. 130 ist eigentlich recht ausgeglichen.

  • Ja die Werte steigen mit. Nur konnte ich mit einem Lv. 100 rayquaza und einmal Wutanfall ganze 3 Lv. 170+ erlegen ohne Probleme. Deswegen wollte ich damit mal experimentieren, ob es so besser ist wenn das Endgame stärker Level abhängig ist. Damit man mit 20-30 Level unterschied schon hart knabbern muss um den Gegner zu besiegen. Lv. 20 gg Lv. 50 ist echt hart, aber Lv. 100 gg Lv. 130 ist eigentlich recht ausgeglichen.

    Hm, probier es doch mal mit "normalen" Pokemon. Wie schlägt sich ein durchschnittliches Lv. 100 Pkmn gegen ein durchschnittliches Lv. 170 Pokemon? Rayquaza ist natürlich auch eine Nummer für sich. Du musst dir halt überlegen, 70 Level sind bei Pokemon im Schnitt vielleicht zwischen 140 und 210 mehr auf einem Statuswert. So eine Diskrepanz hast du auch zwischen einem Uber wie Rayquaza auf Lv. 100 und einem eher schwächeren Pokemon auf Lv. 100. Oder anders - wie sieht Rayquqza gegen Rayquaza (100 vs 170) aus?

  • Ebernacher Ich weiß nicht ob es sowas auch für andere Editionen gibt. Hier hab ich den Patch her, aber er funktioniert nur für Feuerrot und Smaragd.


    Wodka Eines der Gegner Pokemon war aufjedenfall ein Mewtwo. Aber abgesehen davon, wüsstest du oder jemand anders wo genau ich diesen Multiplikator einstellen kann in der Emerald version? Ich wüsste jetzt nicht wie ich zur der stelle mit der Schadensberechnung kommen soll.

  • Der Schaden skaliert linear zum Level, das gleiche gilt für alle Stats, also ergibt es zumindest Überschlagsmäßig gerechnet Sinn, dass der Schaden bei so hohen Leveln ein bisschen eskaliert, v.a. bei sehr starken Angriffen wie Wutanfall. Je nach Effektivität kann es dir da aber auch passieren, dass Pokémon auf niedrigerem Level sich mit zumindest ordentlich viel Schaden machen. Hinzu kommt, dass die Base Stats von so Legendären Pokémon nochmal ein bisschen härter sind, bei Rayquaza vs. Mewtu hast du eine Differenz von ~60 zwischen den Base Stats(!) von Angriff und Verteidigung, was bei einem so hohen Level für einen gigantischen Modifier im Schaden sorgt.


    Prinzipiell würde ich sagen, dass alle Formeln für einen Bereich 1-100 konzipiert wurden, und man damit arbeiten sollte. Wenn dein Spiel so lange wird, dass Level 100 nicht genug ist, würde ich entweder die XP Skalierung so tweaken, dass das eben wieder passt, man levelt dann halt langsamer. Wenn du unbedingt die hohen Level willst, könntest du schauen, wie du die ganzen Kurven mathematisch so modellieren/skalieren kannst, dass deine Werte annehmbare Größen annehmen. Die einfachste Lösung wäre vermutlich alles über die 200 Level einfach zu strecken, wenn du die Funktionen für bestimmte Bereiche tweakst, wird mit an Sicherheit grenzende Warscheinlichkeit das Balancing drunter leiden.


    Wo die Routine, v.a. in Smaragd rumgeistert, kann ich dir nicht sagen, weil ich kein Smaragd (mehr) hacke.


    ~Sturmvogel


    Let the old ways live and prosper in the hearts of our young