Ruby-Variable definieren und nach Scene_Load.new abrufen
Hey Leute.
Ich bin ein absoluter Scripting-Schwachmat, kann mir nur ein paar Sachen selbst erklären und durch Ausprobieren zusammenfummeln (und nunja, die Scriptsprache hab ich mir auch noch nie wirklich ernsthaft angeschaut). Ich bin mir aber ziemlich sicher, dass man Folgendes nur über ein Script lösen kann, wenn das überhaupt funktionieren sollte:
Gibt es eine Möglichkeit, vor dem Laden festzulegen, was nach dem Ladevorgang passieren soll?
Ganz konkret: Der Spieler kommt über einen Show-Choices-Dialog, in dem er seine Sprache auswählt, auf den üblichen Start-Laden-Zurück-Screen. Nun will ich, dass wenn der Spieler das Spiel bereits in einer anderen Sprache begonnen hat, er durch die Auswahl vor dem Ladebildschirm seinen Spielstand in der gewählten Sprache fortsetzen kann. Um welche Sprache es sich handelt, hängt dabei von Switches ab. Der Spielstand soll also geladen werden und dann der entsprechende vor dem Ladebildschirm relevant gemachte Switch auf ON und die anderen Sprach-Switches auf OFF gesetzt werden.
Hat jemand eine Idee?
--
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون
wenn ein Speicherstand geladen wird, werden gewiss alle GameSwitches und GameVaribales mit jenem aus dem SaveGame überschrieben, aber die Ruby-Variablen sollten nicht resettet werden, denke ich. Lege deine Auswahl also in einer globalen Variable ($name) fest, und lasse nach jedem Ladevorgang den Wert dieser Variable in eine GameVariable schreiben ($game_variables[1] = $name), damit du damit schöner im Event-Editor arbeiten kannst.
Vielen Dank!
Das ist schonmal um einiges vielversprechender und dürfte glaube ich genau das machen, was ich haben möchte.
Ein Problem besteht aber noch: Ich bin irgendwie zu doof, der Ruby-Variable einen festen Wert zu geben.
Momentan habe ich eigentlich folgendes vor ...
Über den Scriptbefehl:
dann eben
Auf der jeweiligen Eventpage soll es dann eine Condition geben:
Zitat
Variable "0001: game language" is
_______"value" or above
...
Allerdings ruft er mit dieser Methode leidglich die Eventpage mit dem höchsten Wert auf,
ich gebe also beispielsweise an
kommt beim Aktivieren des Events die Eventpage mit der Bedingung
Zitat
Variable "0001: game language" is
_______"5" or above
...
und nicht etwa die, wo die Variable den Wert "2" hat.
Oh Gott, ich hoffe, man kann verstehen, worauf ich hinaus will. .____."
--
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون
§ ? ^^
Ist ggf. dieser Tippfehler dein Problem, oder hast du den nur beim Erstellen von diesem Beitrag gemacht?
Wenn das nicht dein Problem ist, schaue ich heute Abend noch einmal wie dir da weiter geholfen werden kann. Oder auch nicht, falls jemand anderes schneller ist. Bis später.
Nope, der Tippfehler ist mir auch grad aufgefallen, den hab ich nur hier im Thread gemacht. ^^"
Dann setze ich mich mal brav hin und warte auf weitere Hilfe, vielen Dank. =3
--
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون
Eigentlich sehe ich keinen Fehler (von dem Tippfehler mal abgesehen), daher ist erstmal Fehlersuche angesagt.
1. Überprüfe mal im Spiel (über den Maker starten) mittels F9 mal welchen Wert die Variable 1 tatsächlich hat. Falls dort tatsächlich 2 steht, liegt der Fehler im Event.
2. Sicher, daß die Variable "$language" nirgendwo anders verwendet wird? Ersetz testweise an beiden Stellen mal die Variable durch eine garantiert neue Variable
3. Falls das auch nichts hilft füge im zweiten Teil (wo du den Wert der Sprach-Variable in einer Game-Variable speicherst) mal folgendes ein:
Wenn du das jetzt ausführst, solltest du ein einfaches Windows-Popup kriegen, in dem der Wert der $language-Variable steht.
Am sichersten testet du sowas in der Regel erstmal in einem leeren/neuen Testprojekt aus, bevor du es in ein bestehendes Projekt integrierst.
Also den Wert der globalen Variable definiert es auf jeden Fall richtig und setzt dann den Befehl "$game_variables[1] = language" auch richtig um, beim Ausgeben über \v[1] zeigt er mir nämlich den für $language definierten Wert richtig an (und mit p($language) wird dieselbe Zahl angezeigt).
Danach aber passiert irgendwie mit dem Event nichts, das die Werte der Variable als Condition hat. Wenn ich mich von der Map teleportiere und dann wieder auf die Map zurück, hat das Event offenbar gemerkt, dass sich die Variable verändert hat.
Wie kann ich dem Teil sagen, dass es die Information zu diesem einen bestimmten Zeitpunkt, wenn ich die globale Variable in eine game_variable geschrieben habe, aktualisieren soll, sodass das Event mitbekommt, dass die Bedingung nun erfüllt ist?
--
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون
Oh, sorry, völlig vergessen. Bitte füge mal das hier ein, nach dem die GameVariable definiert wird:
$game_map.need_refresh = true
...
Supi, das wirkt, vielen Dank!
Nun da alles funktioniert, gibt es nur noch ein Problem: die globalen Variablen werden nicht über den Ladebildschirm hinweg übernommen, nach dem Laden wird der Wert der Variable aus dem Spielstand wiederhergestellt.
Sprich ich weiß jetzt zwar, wie das alles so gehen kann, allerdings passiert nicht wirklich das, was ich wollte. XD
Oh Mann.
--
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون
Bist du dir sicher? Ich war mir eigentlich ziemlich sicher, dass ausschließlich die GameVariablen in den Savegames festgehalten werden, und nicht die Ruby-Variablen. Sprichst du von der $language, von $game_variables[1], oder von beidem, wenn du sagst, dass sie überschrieben werden?
Bist du dir sicher? Ich war mir eigentlich ziemlich sicher, dass ausschließlich die GameVariablen in den Savegames festgehalten werden, und nicht die Ruby-Variablen.
...
Und du hast völlig recht, weil ich einfach nur ein Trottel bin. Ich hatte vergessen, den Wert von $language nach dem Laden im Testprojekt wieder in $game_variables[1] zu übernehmen, deswegen hat es für mich den (völlig falschen) Anschein gemacht, als hätte es nicht funktioniert.
Ich bedanke mich riesig bei dir für die Hilfe und Geduld. Es klappt nun dank dir genau so wie ich es haben will. Yay!
--
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون