Yep Itemcore Fehler

  • Das Problem ist, dass die Eigenschaft 'expParams' einer Instanz abgefragt wird, diese Instanz aber undefined ist, daher nicht existiert. Ich habe den Code mal zurückverfolgt, und bin auf folgende Abschnitte gelandet:

    Code
    1. Game_Actor.prototype.expForLevel = function(level) {
    2. var c = this.currentClass(); // Diese Instanz c ist undefined
    3. var basis = c.expParams[0]; // Hier wird versucht auf c.expParams zuzugreifen
    4. var extra = c.expParams[1];
    5. var acc_a = c.expParams[2];
    6. var acc_b = c.expParams[3];
    7. return Math.round(basis*(Math.pow(level-1, 0.9+acc_a/250))*level*
    8. (level+1)/(6+Math.pow(level,2)/50/acc_b)+(level-1)*extra);
    9. };

    und dadurch dann auch auf

    Code
    1. Game_Actor.prototype.currentClass = function() {
    2. return $dataClasses[this._classId]; // Dieses return liefert undefined zurück
    3. };

    Wenn man sich $dataClasses genauer anschaut, sieht man, dass dort alle Klassen der Database gespeichert sind:



    Daher gehe ich davon aus, dass du keine einzige Klasse in der Database festgelegt hast, dieses Plugin scheint das nicht zu berücksichtigen.

    Die Lösung wäre also mindestens eine Klasse zu haben, auch wenn du sie nicht verwendest.


  • Es gibt mehrere mögliche Ursachen für "undefined" fehler.


    1) Das laden eines inkompatiblen Spielstandes

    Fast alle Plugins speichern Daten in den Spielständen. Eine Änderung im Plugin Manager führt daher zu 90% dazu, dass ein älteres savegame inkompatibel wird, da es entweder Daten enthält die von den aktuallen Plugins nicht verarbeitet werden können oder Daten fehlen die zu den aktuellen Plugins gehören.

    Aus diesem Grunde erfordert jede Änderung im Plugin Manager ein New-Game im nächsten Playtest. Wird stattdessen "Continue" gewählt und ein alter Spielstand geladen, dann kann dies zu zufälligen "undefined" errors führen, sobald die entsprechenden Daten abgefragt werden - nicht direkt nach dem Laden, sondern oft erst wenn bestimmte Funktionen aufgerufen werden.


    Also: taucht der Fehler auch bei einem "newgame" auf? wenn nicht dann ist das die Lösung


    2) Fehlende Daten

    Die meisten Plugins erfordern, dass sie korrekt konfiguriert sind. Je komplexer ein Plugin ist umso mehr Fehler können durch falsche Konfiguration verursacht werden.

    Das können sowohl fehlende Datenbank einträge sein alsauch Plugin-Parameter die auf nicht existente Einträge verweisen.

    Um das zu verhindern, sollte man jedes Plugin direkt bei seiner Installation konfigurieren, d.h. man muss die Hilfe des Plugins durcharbeiten um jeden einzelnen Plugin-Parameter korrekt zu setzen und auch eventuell notwendige Notetags zu setzen.

    Leute, die Plugins einfach laden ohne sie komplett zu konfigurieren, enden oft mit fragwürdigen Fehlermeldungen wesentlich später.

    Und das einzige was dagegen hilft ist von oben jedes einzelne Plugin durchzugehen und jede option zu vergleichen um zu sehen, was man in der Konfiguration vergessen hat.


    3) Falsche Plugin-Reihenfolge

    Ja, die Plugin Reihenfolge ist extrem wichtig und kann ebenfalls "undefineds" oder unzählige andere Fehler verursachen.

    Das Problem ist das viele Plugins bestehende Funktionen verändern. Und das zuletzt eingetragene Plugin ist das, dessen Änderungen den höchsten Rang haben - und sie können insbesondere bei ungenauer Programmierung frühere Plugins zerstören.

    Insbesondere Yanfly's Plugins sind extrem anfällig gegenüber falscher Reihenfolge - Wie Yanfly selber auf seiner Pluginlist zugibt und ausdrücklich empfiehlt, die Plugins nur in der vorgeschriebenen Reihenfolge zu installieren.

    Du kannst fremde Plugins zwischen Yanfly Plugins einfügen abhängig davon wo sie für ihre eigene Kompatibilität stehen müssen (das erfordert experimente mit unterschiedlicher Plugin-Reihenfolge).

    Yanfly's Plugins MÜSSEN in der Reihenfolge seiner Liste auf seiner Webseite installiert werden. Bitte vergleiche dass.

    Und beachte Punkt 1 oben für jede Änderung in der Reihenfolge der Plugins...


    4) Illegale Charaktere im Datenpfad

    HTML5-Programmer haben bestimmte Anforderungen an Verzeichnis- und Dateinamen. Sie erlauben nur eine bestimmte art von Zeichen wie lateinische Buchstaben.

    Windows versucht die Browser mit einem Override dazu zu bringen, normalerweise verbotene Zeichen anzunehmen - aber das funktioniert nicht immer.

    Falsche Zeichen im Verzeichnispfad können dazu führen, das Dateien nicht geladen werden können -> "undefined data" oder "failed to load".

    Glücklicherweise ist das sehr einfach zu bestimmen: sobald der Browser ein Zeichen nicht verarbeiten kann, wird es selbst in Fehlermeldungen durch ein % gefolgt von einer Zahl ersetzt.


    Oder in anderen Worten: Entferne die Leerzeichen aus Deinen Verzeichnisnamen, die im Screenshot mit %20 ersetzt wurden!!!!

    allerdings ist das wahrscheinlich nicht die aktuelle Fehlerursache, aber es wird später zu anderen Fehlern führen.


    Wenn das nicht hilft, bitte komplette Screenshots des Plugin Managers mit allen Plugins und ihrer Reihenfolge hier posten.