Zusammenspiel von .js-Variablen und MV-Variablen

  • Heyo.


    Mehr eine allgemeine Frage hier... Und zwar dachte ich, dass es eventuell einfacher ist, einige Variablen "auszulagern", also als Variablen in einem .js zu nutzen. Es geht mir dabei hauptsächlich um mein Kampfsystem, ich war bei meinem Testsystem beim 2k3 auf ca. 3.400 Variablen, die ich dafür nutzen musste. Zugegeben, ich wage zu bezweifeln, dass man die restlichen 1.600 Variablen für den "Rest" des Spiels überhaupt voll bekommt, vor allem weil man ja die meisten Variablen ja auch mit was anderem belegen kann, wenn man weiß, dass man sie nicht mehr braucht (Beispielsweise für Sidequest A muss man X Monster töten, bei der nachfolgenden Quest B muss man Y Monster töten, da könnte man einfach die gleiche Variable dafür nutzen). Außerdem kann ich für viele Dinge einfach die Daten in Excel/Access erstellen und dann in das .js "exportieren", womit ich große Massen gleichzeitig bearbeiten kann.


    Nun bin ich in .js (noch) nicht bewandert und wollte fragen: Gibt es etwas, was ich besonders beachten muss, wenn ich die Variablen von .js nutze? Wie werden die gespeichert, wenn ich das Spiel verlasse? Sollte ich vorsichtshalber alle Variablen beim Neustart auf 0 setzen um Probleme zu vermeiden?

  • Genau die meinte ich. Die Berechnungen zwischen MV-Variablen und den .js-Variablen stelle ich mir ja eher weniger schlimm vor, aber Variablen sind ja auch da, um Daten zu speichern und das alles. Deswegen würde ich gerne, bevor ich damit anfange, wissen, welche Besonderheiten und Limits es gibt, wenn man beide oft gemischt nutzt (ungeachtet der Übersichtssache, das kriege ich schon gebacken). Bei Java weiß ich beispielsweise, dass der Speicherplatz für eine Variable schon im Vorfeld belegt wird, was bei 3.4k Variablen etwas viel sein kann, nur ist JavaScript doch etwas anders...

  • Ganz so einfach ist es dann doch nicht. Du musst zum einen überlegen, wie du die Variablen ansprechen willst und wie sie gespeichert werden.


    EDIT: Speichern meint hier, speichern in deinem Spiel, wenn das Spiel in-game gespeichert wird.


    Ich hab hier mal schnell ein Plugin gemacht, was dir Variablen zur Verfügung stellt. Das ganze ist angelehnt an das normale Game Variablen System.



    Es gibt 2 Scriptcalls:

    JavaScript
    1. $variables.setValue(variableId, value);
    2. $variables.value(variableID)
  • Es geht mir ehrlich gesagt mehr um die Programmierung im .js selber, nicht ob ich .js-Variablen erstelle um die per Scriptcalls genau so zu nutzen wie die MV-Variablen. Wenn ich jetzt sagen würde ich schmeiße alle Variablen, die ich für das Kampfsystem brauche, in die .js, die ich für das Kampfsystem zusammenbastle, kann ich dann beispielsweise Rechenergebnisse (aka Schaden, Heilung, Zustände,...) ohne großes Umherbasteln abfragen und zur Not in eine MV-Variable schmeißen? Für diese Variablen wäre es ja im Endeffekt egal, ob die nun mit jedem Speichern des Spiels mit gespeichert werden oder nach jedem Schließen wieder auf 0 gesetzt werden, da die sowieso immer wieder neu angesteuert werden müssen.

  • So wie ich das verstehe, willst du einfach Scriptvariablen (also Variablen die nicht durch das Variablensystem vom Maker her kommen) nutzen und fragst dich was es zu beachten gibt, richtig?


    1) Scriptvariablen sind eigentlich nur ein Vorteil, wenn du mit sowas wie Arrays oder Kommazahlen arbeiten willst/musst

    2) Wenn du Variablen global anlegst (also die nicht innerhalb eines Scripts mit "var" laufen), musst du darauf aufpassen, dass die Variable nicht in anderen Plugins oder sonstigen Bereichen bereits verwendet wird.

    3) Du musst die Variablen ans $gameSystem dranhängen (also z.B. $gameSystem.baum_x), wenn du willst, dass die Variablen beim Speichern mit abgespeichert werden.


    Um den Wert der Scriptvariablen wieder auf die Makervariablen zu übertragen machst du einfach $gameVariables.setValue(ID, $gameSystem.baum_x); Achtung: Der Maker rundet den Wert dann automatisch!



    Ich hoffe ich konnte helfen,


    Grandro

  • Ah, das sieht schonmal gut aus. Das mit den Kommazahlen ist für mich sogar ideal, da ich viel mit Prozenten rechnen werde (und ich lieber mit Dezimalen rechne als mit /100). Das ganze macht es für mich "übersichtlicher" mein Kampfsystem zu strukturieren, da ich dann mit Namen arbeiten kann und nicht alles 10 mal irgendwo ausschreiben muss, welche Variablennummer für was da ist x)


    Ich werde womöglich noch einen .js-Kurs oder so belegen, bei dem ich dem Lehrer mit Fragen nerven kann, aber das ist schonmal etwas, womit ich gedanklich weiterarbeiten kann^^