Ini wird nicht erstellt.

  • Allgemein

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ini wird nicht erstellt.

    So endlich habe ich den dreh mit den INI speichern raus...das dachte ich zumindestens.

    Ich sehe den fehler nicht GAME MAKER erstellt die INI datei einfach nicht.

    Also bevor man ins game menü kommt gibt es einen Raum in dessen CREATE event liegt folgendes:

    Quellcode

    1. //Erstellt die Variable
    2. global.currentroom = 0
    3. //checkt den Fortschritt____
    4. ini_open("savegame.ini");
    5. global.currentroom = ini_read_real("Progress","currentroom",0);
    6. ini_close()


    Normalerweise sollte ich direkt nach diesem code eine INI DATEI auffinden aber sie ist nicht da.
    Game Maker spuckt auch keine Fehlermeldung aus.
    Was mache ich hier falsch?
  • Momento...ich habe gelesen das ich sie einfach nur öffnen müsse und wenn er sie nicht findet erstellt er die einfach ?(

    (Da wenn ich sie ja jedes mal beim Spielstart schreibe er ja jeglichen Fortschritt ersetzen würde.)
  • GML-Quellcode

    1. /******************************
    2. Prüft, ob INI-Datei existiert und checkt den Fortschritt.
    3. Wenn keine vorhanden, starte erstes Level.
    4. ******************************/
    5. if (file_exists("savegame.ini"))
    6. {
    7. ini_open("savegame.ini");
    8. global.currentroom = ini_read_real("Progress","currentroom",0);
    9. ini_close();
    10. } else global.currentroom = 0;

    Es wird nicht automatisch eine INI-Datei erstellt, wenn keine vorhanden ist. Das musst alles mit GML selber machen, Zeile für Zeile und Wert für Wert.

    GML-Quellcode

    1. if ! (freedom) { instance_destroy(gamemaker); instance_create(x, y, html5); }
  • Und erstellen tut er sie ganz einfach mit ini write?

    HALT STOP JETZT REDE ICH ^^
    GMStudio erstellt garkeine sondern stored die in der "data.win" kann das sein?
    Habe gerade alles durchgeguckt und er speichert das ist sicher trotz das die INI nicht erstellt wird.
  • Sasula schrieb:

    Und erstellen tut er sie ganz einfach mit ini write?
    Musst du selber gucken. Ich hab selbst erst vor kurzem angefangen, mit INIs zu experimentieren.
    wiki.yoyogames.com/index.php/GML_Advanced:_INI_Files

    Sasula schrieb:

    GMStudio erstellt garkeine sondern stored die in der "data.win" kann das sein?
    Habe gerade alles durchgeguckt und er speichert das ist sicher trotz das die INI nicht erstellt wird.
    Es wäre hilfreich wenn du in deinem Profil eine Selbsteinschätzung angeben würdest und welche GM-Version du benutzt. Dann wüsste man gleich, woran man ist.

    Sasula schrieb:

    HALT STOP JETZT REDE ICH ^_^
    8|

    GML-Quellcode

    1. if ! (freedom) { instance_destroy(gamemaker); instance_create(x, y, html5); }
  • @Bonsaiheld: Wir sind hier im Studio-unterforum, von daher muss er es nicht in sein Profil schreiben damit wir wissen dass er das Studio verwendet.

    @Sansula: Hab vorhin unsinn geschrieben. Erstellt wird wohl per ini_open.

    Deine Vermutung ist fast richtig. Wegen dem "sandboxing" darfst du nicht einfach so Pfade angeben denn er erstellt die Datei dann irgendwo versteckt und wahrscheinlich wird sie auch bei jedem neuen kompilieren gelöscht.
    Sowas wie ein working_directory das Dateien direkt neben der Exe erstellen lies (im normalen GM), gibt es im Studio nicht mehr. Stattdessen muss man Pfade _immer_ mittels file_open_save (oder sowas aehnliches) vom User auswählen lassen damit man etwas ausserhalb dieses Temp-ordners speichern kann...
    Das ist aus sicherheitsgründen so. Unter Windows liese sich das über extensions umgehen, allerdings geht dann die Kompatibilität verloren.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Also leider erstellt er diese pro Compile nicht immer neu...
    Deswegen scheint auch meine komplett EXPORTIERTE EXE die save file zu finden....
    Also gut nun müsste ich herausfinden wie ich es schaffe den pfad dafür zu ändern.

    Das Projekt soll letzlich auf Android landen ....
  • Also Ick habs ^^,

    alle dateien von GM werden im APPDATA LOCAL gespeichert da war auch die INI.
    Habe es vorhin aufm Handy getestet und funktioniert auch da einwandfrei ;).
    Also alles cool ^^ trotzdem danke an euch beide :thumbsup: .
  • SOLVED

    So ich melde mich dann nochmal.

    Das erstellen und bearbeiten einer INI geht ohne Probleme ob bei Windows oder Android (;.
    ABER nun habe ich erneut ein ANDROID DATEI Erstellung bezogenes Problem.

    Also:
    1.Finde ich die INI datei nicht auf meinem Handy aber sie ist ja da LADEN/SPEICHERN klappt ja ;).
    2.Nun möchte ich aber eine DATEI ERSTELLEN die jeder User sehen kann (GM scheint alles iwie zu verstecken).
    also muss ich iwie aus der WORKING_DIRECTORY rauskommen da diese ja Unsichtbar ist.

    Quellcode

    1. directory_create('/emmc/Gametest/newtest')


    hat leider nix gebracht das Spiel startet aber letzlich finde ich ich den Ordner und oder Datei nicht.
    Ich drehe langsam durch im Englischsprachigen Forum konnte mir leider bisher auch keiner helfen.


    Change the User Permission:AppData\Roaming\GameMaker-Studio\Android\runner

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    Then create a file in "/sdcard/test/file.txt" using GM file writing commands

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sasula ()

  • Darüber haben wir doch oben schon gesprochen...
    Du kannst nur dann etwas auf dem Gerät des Users machen wenn er den Ort selbstständig gewählt hat! Damit wird verhindert dass du z.B. Viren einschleusen oder Systemdateien verändern kannst.
    D.h. du musst den User einen Pfad mittels get_save_filename auswählen lassen und dann kannst du mit dem Pfad arbeiten..


    Sorry, Unsinn. Wie es aussieht habe ich das auch falsch verstanden und bin grad sehr negativ überrascht. Laut der Hilfe ist die get_save_filename nämlich nur für Windows und Mac!

    Zitat aus der Hilfe:
    The first (and most important) thing to note about the file functions is that they are limited (in general) to the sandbox. What this means is that GameMaker:Studio cannot save or load files from anywhere that is not part of the game bundle or the local storage for the device without explicit input from the user, and even then this input is limited to only Windows and Mac target platforms.


    D.h. es gibt keinerlei Möglichkeit auf einem Smartphone auf das Dateisystem zuzugreifen.
    Da frag ich mich grade wieso das so ist, denn am Betriebsystem (z.B. Android) liegt das ja nicht. Jede App kann nach Zustimmung des Users auf die SD Karte zugreifen...

    Im GM wird man das ganze wohl vermeiden müssen.
    Naja, genau genommen braucht man das ja auch nicht. Z.B. savegames will niemand auf einem Smartphone irgendwo an nen besonderen Ort sepichern sondern hat es lieber wenn er sie alle automatisch angezeigt bekommt.
    Aber trotzdem.. wenn eine Software wie das Studio professionell sein soll (wie YY es beabsichtigt) dann sollte man den Entwicklern nicht unnötig Funktionen vorenthalten finde ich.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Wollte keine Verwirrung Stiften es funktioniert ohne Probleme habe ja raus gefunden wie es geht ;).

    Schritt 1:
    Ändere die Android User Permition öffne:AppData\Roaming\GameMaker-Studio\Android\runner\AndroidManifest.xml

    Schritt 2:
    Füge folgendes hinzu:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    Schritt 3: benutze den pfad "sdcard" um extern auf files zuzugreifen.
    Beispiele:
    directory_create("/sdcard/test567/newtest")
    file_text_open_write("/sdcard/test/file.txt")

    Dies eröffnet MIR zu mindestens neue Möglichkeiten hoffe das es auch euch ein wenig hilft habe mir dafür 5 Stunden die Zähne an meiner Tastatur ausgebissen ^_^.
  • Oh, okey!
    Hatt das wad du dort oben fett geschrieben hattest, garnicht beachtet.
    Sowas sollte vieleicht in der Hilfe beschrieben werden. Sie ist aber wohl noch recht unvollständig.

    Beachte aber trotzdem ob es wirklich Sinn macht irgendwas auf dem Handy des Users zu schreiben denn die Sandbox ist schon eine sinnvolle Lösung und ermöglicht es auch z.B. eine App vollständig zu entfernen usw...

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()

  • Also in meinen FALL ist es "sinnvoll"....

    Es geht halt einfach darum das dort ein paar Dummie,Normal Files erstellt werden.
    Der User soll dann halt einfach die Files durch seine Austauschen können (wenn er will (Musik halt)).

    Versuche mich schon dadran die Included .wav Files in einen Externen Ordner zu platzieren dies gelingt mir jedoch bisher nicht ^^ vllt. komme ich gegen die Sandbox nicht an ?! o.0.

    Quellcode

    1. file_copy(working_directory+"\test.wav","\sdcard\test\test.wav");