Ergebnis 1 bis 13 von 13

Thema: [RmVX] Scripter für RosaArts gesucht (Save-Menü-Änderung)

  1. #1

    [RmVX] Scripter für RosaArts gesucht (Save-Menü-Änderung)

    Oh Gott, so tief musste ich schon sinken... XD

    Eigentlich bin ich jemand, der alles absolut 100% selber macht und nur musikalisch auf die fantastische Arbeit meines Musikers setzt, aber jetzt bin ich doch an meine Grenzen gestoßen.
    Nach einiger Herumprobiererei habe ich das Savemenü jederzeit während eines Noveltextes aufrufbar bekommen. Das war ein großer Fortschritt, aber das normale Savemenü des RmVX ist
    einfach unübersichtlich und hässlich bei Visual Noveln.

    Mein erster Gedanke war ein Internet-Script, dass quasi alles brachte, was ich wollte. Ich baute mit einem weinenden Auge das Fremdscript "Neo Save System" von Woratana und Helladen ein
    und war schnell damit zufrieden. Goldanzahl wurde in %-Fertigstellung geändert, Ortsname in Abschnittsnamen und das Heldenface ergab einen schönen Platz für die Kapitel-Info... dazu der
    hübsche Screenshoot in der Mitte. Im Prinzip war das System perfekt... bis ich merkte, dass die Spielstände dann zwar noch "Save.X.rvdata" hießen, aber irgendwie anders gespeichert wurden
    und daher von mir nicht mehr ausgelesen werden konnten.
    Einen halben Tag später habe ich alles durchprobiert und das Script tausendmal mit meinen rudimentären Kenntnissen verändert... ohne Erfolg.


    Jetzt gäbe es also zwei Möglichkeiten... mein Auslese-Snippet so umändern, dass es mit Neo Save System 6 funktioniert oder das Standard-Savemenü so umschreiben , dass es diverse Werte ausliest
    und anzeigt (Screenshot wäre dabei gar nicht mal so wichtig...).


    Ich gebe mal Links zu den Systemen und meinem Code-Snippet:
    Das hier ist das Neo Save System 6:
    Link zum Script
    Und das hier ist mein Code-Snippet, mit dem ich Switch-Stati auslese, um speicherübergreifend CGs und andere Dinge freischaltbar zu machen:


    Belohnung:
    Für den netten Scripter, der mir das Snippet so umändern kann, dass es die Switches in den - anscheinend irgendwie anders gespeicherten - NeoSaves ausliest oder mir ein Savemenü schreibt, dass
    die nötigen Werte übersichtlich ausliest und anzeigt, werde ich - falls gewollt - eine PDF-Version einer meiner beiden Bücher (nach Wahl) schenken. Gerne auch mit Widmung und so ^^


    Ich denke mal, dass für einen geübten Scripter das Umschreiben des Snippets keinerlei Probleme darstellt. Mir wurde es damals von hellminor in wenigen Minuten erstellt (wenn nicht gar Sekunden XD) und
    sollte daher eigentlich recht einfach passend umzuändern sein... denke ich.

  2. #2
    Ich will das richtig verstehen, du willst alle Speicherstände von 1 bis 99 hintereinander laden, dann die 7 Datei aus dem Savefile auslesen und aus dieser dann alle switches von 101 bis 200 setzen lassen?

    Also sozusagen wahrscheinlich alle Speicherstände welche es von deinem Projekt gibt nacheinander laden lassen, dann hoffentlich die Game_Switch-Instanz laden und die Switchwerte auf den derzeitigen Speicherstand übertragen lassen?

  3. #3
    Kurz und einfach ausgedrückt:

    Ich will Switches aus den vorhanden Spielständen lesen lassen (am besten konfigurierbar, welche Switches genau... das kann ich in dem Snippet ja einfach umändern ^^) und sie entsprechend
    im aktuellen Spiel ON oder OFF gesetzt haben.
    Es müssen keine 99 sein (ich komm auch mit weniger Savegames zurecht, das Script hat halt standardmäßig 99)... hauptsache es funktioniert zusammen :/
    Im Standardsavemenü funktioniert nämlich das Snippet ohne Probleme. KA, was das Savesystem anders macht (zumal die Datei auch Save.rvdata heißt), aber die Switches lassen sich nicht
    auslesen.

  4. #4
    Diese Funktion
    Code:
    check_extras
    hast du diese selbst geschrieben oder hat dir jemand dabei geholfen?

  5. #5
    Das Snippet stammte damals von einem User namens hellminor... Ich weiß nicht, ob dir das etwas bringt oder ob es nötig ist, es zu wissen... aber hellminor war derjenige, der mir anfangs mit meinen Noveln scripttechnisch aushalf.
    Von ihm stammte das Snippet und verschiedene kleine, kaum merkbare Dinge in meinen Noveln, die über Events einfach unlösbar waren (z.B. Wetter über Bildern, Bilder mitshaken lassen... diese Dinge halt). Ist ja dafür auch immer
    credited worden ^^

  6. #6
    Man kann bereits ziemlich einfach an der Struktur des Scriptes erkennen was möglicherweise zu einem Fehler führen sollte.
    Außerdem bringt die Art und Weise wie das Script gemacht ist ein paar Probleme mit sich.

    Zum einen ist es natürlich zu bedenken, dass es wirklich sehr sehr lange dauern könnte über 99 Speicherstände (falls diese existieren) zu iterieren und alle komplett zu laden und die Switches zu überprüfen.

    Was für eine Art von Fehlermeldung bekommst du wenn du es mit dem derzeitigen Script versuchst? Oder gibt es überhaupt keine Fehlermeldung?

  7. #7
    Ich hab die Save-Anzahl mal auf 20 beschränkt... mehr braucht man auch im Maximalfall eh nicht.
    Das sollte Problem A, welches bis jetzt noch nicht auftauchte (lange Ladezeit der Spielstände, wie du geschrieben hast) beheben.


    Im Moment passiert einfach gar nichts. Ich mach meinen check_extras-Befehl, wie immer... und es passiert absolut gar nichts.

  8. #8
    Zuallererst muss ich dir leider sagen, das Script welches du verlinkt hast, sollte eigentlich keinerlei Einfluss haben auf die Funktionalität deines zweiten Scriptes.

    Denn die Funktion in welcher das eigentliche Erstellen eines Save-Files geschieht, wo also die Struktur mit welcher die Dateien in dem File angelegt werden festgelegt wird, ist in dem Script garnicht definiert.
    Die Funktion lautet:
    Code:
    write_save_data(file)
    Und in dem angegebenen Script ist sie nicht zu finden.
    Das heist, sie wurde nicht überschrieben und sollte daher auch noch genauso arbeiten wie zuvor. (wenn wir davon ausgehen, dass du keine anderen Scripte hast welche diese Funktion vielleicht überschreiben könnten)

    Da du keine Fehlermeldung bekommst kann man auch davon ausgehen, dass dein Script die Save-files auch immernoch korrekt lädt. Zumindest besitzt die Klasseninstanz an siebter Stelle im File (eben die welche in deinem Script geladen wird) die benötigte Funktion
    Code:
    []
    .

    Könnte es vielleicht sein, dass du vielleicht an einer anderen Stelle kürzlich etwas an dem System geändert hast und es dadurch nichtmehr korrekt arbeiten könnte?

  9. #9
    Also ich habe es noch einmal durchgetestet und es kommt definitiv vom Neo Save System VI.

    Folgende Situation:
    Ich erstell auf einer leeren Map einen Spielstand, bei dem mein Switch 101 [Savegame vorhanden] AN ist. Dieser Switch wird auch angeschaltet, sobald man Speichern kann.
    Anschließend lade ich meinen Titelscreen, welcher bei check_extras "Conditional Branch IF Switch 101 AN" die Möglichkeit bietet das Introzeug zu überspringen und im eigenen
    Titelbild zu landen (alles auf der gleichen Map).

    WENN der Spielstand im Neo Save System erstellt wurde (kein Save-Ordner definiert, Spielstände noch immer im Standardverzeichnis mit der Standardbezeichnung), dann wird der
    Switch durch check_extras NIE angeschaltet.
    ABER wenn der Switch im Standard-Savemenü erstellt wurde, dann wird der Switch korrekt angeschaltet, sobald man check_extras aufruft.
    Dabei ist es vollkommen egal, ob das Neo Save Script importiert ist, oder nicht... es scheint nur darauf anzukommen, womit der Spielstand gespeichert wurde - was wiederum bedeutet,
    dass es am Savesystem liegen muss.

    Irgendwas... vielleicht ist es nur eine Kleinigkeit, macht das SaveSystem beim Speichern anders...


    Edit:
    Neo Save System:
    Code:
    def do_save
    	if SCREENSHOT_IMAGE
    	  File.rename(SAVE_PATH + 'temp' + IMAGE_FILETYPE,
    	  make_filename(@last_slot_index).gsub(/\..*$/){ '_ss' } + IMAGE_FILETYPE)  
    	end  
    	
    	file = File.open(make_filename(@last_slot_index), "wb")
    	write_save_data(file)
    	file.close
    VX-Save-Art:
    Code:
      def do_save
        file = File.open(@savefile_windows[@index].filename, "wb")
        write_save_data(file)
        file.close
        return_scene
      end

    Es funktioniert, wenn ich das Screenshotfeature deaktiviere!
    Damit hätten wir den Fehlerbereich schon einmal eingegrenzt

    Geändert von Rosa Canina (28.05.2012 um 22:33 Uhr)

  10. #10
    Der von dier zitierte Bereich zeigt bereits, die Art und Weise wie das Save-File angelegt wird ist in dem Script nicht geändert.
    Der einzige Unterschied liegt daran, wie sich der Name des Files zusammen setzt. Hast du einmal geschaut ob die Namen der Save-Files anders lauten falls sie mit dem Script gespeichert werden?
    Das wäre nämlich dann ein ziemlich einfacher Schluss worauf es hinausläuft.

  11. #11
    Du hast Recht... bei einem ist ein Leerzeichen zwischen Save und ID-Nummer und beim anderen nicht >_<

    Das heißt also, ich muss nur irgendwo ein Leerzeichen weg/dazufügen und es sollte gehen... *anfängt rumzuprobieren*


    Edit:

    Manchmal hasse ich RUBY echt... das Leerzeichen war im Explorer nicht wirklich zu sehen und wenn ich jetzt den Code vom Snippet von dem hier:
    Code:
            if File.exist?("Save"+i.to_s+".rvdata")      
            file = File.open("Save"+i.to_s+".rvdata", "rb")
    auf das hier ändere:
    Code:
            if File.exist?("Save "+i.to_s+".rvdata")      
            file = File.open("Save "+i.to_s+".rvdata", "rb")
    scheint es zu funktionieren >_>

    Und ich hab jetzt den kompletten Nachmittag und Abend damit vergeudet da rumzuprobieren >_<

    Geändert von Rosa Canina (28.05.2012 um 22:49 Uhr)

  12. #12
    Das hat mit Ruby nichts zu tun.
    Wenn die Datei den falschen Namen hat dann funktioniert es nunmal nicht sie zu öffnen.
    Daher ist es immer sehr hilfreich Debug-Nachrichten in seine Scripte einzubauen um auf ungewöhnliches Verhalten des Programms hinzuweisen. Diese kann man dann für die Veröffentlichung des Projekts relativ leicht wieder entfernen.

    In solch einer Situation würde es sich zum Beispiel lohnen eine Debug-Message einzufügen welche dir sagt ob überhaupt mindestens ein File gefunden wurde. Bei deinen Tests sollte es wohl fast immer der Fall sein, also eine Fehlernachricht auszugeben falls keines gefunden sein sollte würde hier schon enorm helfen und nur selten stören.

  13. #13
    Ja, da hast du schon Recht. Ich scripte im Normalfall ja gar nicht und kenn mich daher fast 0 mit dem Zeug aus (ich könnte nicht einmal "Hello World" anzeigen lassen XD)...
    Meine größte Errungenschaft in Ruby, war es... nach 100 Fehlschlägen... einen Switch bei Messagestart an und beim Erreichen des Endes (bevor man sie schließt - also, wenn
    sie nur dasteht) wieder auf aus zu setzen. XD

    Und ganz ehrlich... ich habe sogar die Dateinamen der Saves umbenannt, in der Hoffnung, dass es dann funktionieren würde. Aber mir ist nie das eine dumme Leerzeichen aufgefallen. :/
    Das ist noch ein Grund, warum ich lieber mit dem Maker einen Novel mache, als mit Renpy... jeder Mensch verschreibt sich halt mal oder übersieht so winzige Minifehlerchen XD

    Aber danke für deine Hilfe, cornix.
    Dank dir läuft meine Visual Novel-Engine nun so perfekt, wie noch nie. Von einem kommerziellen Novel unterscheidet sie jetzt nur noch die fehlende Textlog-Funktion. :3

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •