Level Editor Problem

  • Level Editor Problem

    Mein Problem ist folgendes:

    Ich hab mir den einen Map editor runtergeladen, doch irgendwie funktioniert dieser nicht. Ich hab ihn im Anhang. Ich hoffe ihr könnt mir weiter helfen.
    Der Fehler liegt nur beim Laden, der Rest funktioniert eigentlich.

    Danke im Vorrhinein.

    LG Afroman

    EDIT: Ich wollte noch kurz sagen, was das Problem ist. Ich hab grad ein zweiten level editor probiert und da kommt der gleiche fehler. Da steht immer: error reading real. Warum?
    Dateien

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

  • Hi... Ja ich hab den Lade Save Code bei mir mal übernommen..

    Vielleicht kann ich das problem lösen..

    Wo genau funktioniert er nicht... Bei mir ist es so das er meinen net Lädt und die gespeicherten Sachen nicht wiederholt.. Vom nem Error keine Spur...Ich glaube aber das man im Code einschreiben muss was er laden soll.: (Objekt, Map, Hintergrund.....)

    :D :D :D

    :P
    Di Dada die Bank ist da ...und ich bin weg
    Noobs reden zu viel. Könner sehen zu wenig.
    Ich sehe dich. Ha und darauf bist du reingefallen.
    Hey wie gehts. Warum liest du das? Nein warum das da rechts meine ich`?
  • Problem Lösung

    Ich weiß warum du nen Error hast...

    Um den zu beenden gehste auf Obj.Lord (Im Gamemaker) und dann auf Left Pressed.. Und den Code dort veränderst du : (Hier ist der Richtige Code):
    [i][i][i][i][i][i][i][i][i][i][i][i][i][i][i]

    GML-Quellcode

    1. //If this button is clicked, we need to load the file.
    2. fileloc = get_open_filename("Levels made with level editor (*.lee)|*.lee|"+"Level editor levels (*.lee)|*.lee|",0);
    3. //Now, to keep errors from appearing, we need to check if the file
    4. //exists before openingif(file_exists(fileloc)){
    5. //We must delete all the objects that are there already.
    6. //We can use obj_block1 because the other objects have that as their parent.with(Editor)
    7. {instance_destroy();
    8. }//Then we open itfile=file_text_open_read(fileloc);
    9. //Now...
    10. //We need to repeat reading the file and creating objects in their
    11. //correct spot until we reach the end of the file. To do that,
    12. //we will create a while loop the repeats until we reach the end of the file.while(file_text_eof(file)==false)
    13. {_obj=file_text_read_real(file);//Read the object value
    14. file_text_readln(file);//Go down a line
    15. _x=file_text_read_real(file);//Read the x value
    16. file_text_readln(file);//Go down a line
    17. _y=file_text_read_real(file);//Read the y value
    18. file_text_readln(file);//Go down a line
    19. instance_create(_x+16,_y+16,_obj);//Create the object from the values we have read
    20. //The reason we add 16 is so that the objects snap to the correct positions.
    21. }file_text_close(file);//IMPORTANT. DO NOT LEAVE THIS LINE OUT.
    22. }
    Alles anzeigen


    :D :D :D :D
    [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
    Di Dada die Bank ist da ...und ich bin weg
    Noobs reden zu viel. Könner sehen zu wenig.
    Ich sehe dich. Ha und darauf bist du reingefallen.
    Hey wie gehts. Warum liest du das? Nein warum das da rechts meine ich`?

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

  • Also ich weiß ja nicht so Recht, aber @Xero: :fresse:
    Außerdem nervt es langsam, dass du jeden deiner Posts mit sinnlosen Smileys füllst. Das kommt echt unseriös rüber.
    Du hast aus dem Code einfach nur die Leerzeichen / Tabs etc. entfernt und zudem ist dein "überarbeiteter" Code auch noch total falsch.

    Dein Problem ist, dass in der Textdatei, die vermeintlichen Reals mit einem Komma (,) geschrieben sind. Jedoch müsste es ja (da Englische Sprache) eigentlich ein Punkt (.) sein. Das Ladeskript ist völlig in Ordnung. Du könntest die Werte eigentlich Abrunden, sodass keine Kommas in der Datei stehen. Jedoch ist der gesamte Editor wirklich verbesserungswürdig.

    Irrenhaus3 hat ein sehr nützliches Tutorial geschrieben, um diesen Fehler zu umgehen.

    Edit's: Wow - mal wieder 3 Versuche gebraucht, um nen Link ordentlich zu posten X(
    mfg Crit

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Critical ()

  • ja er funktioniert noch nicht ganz das er lädt.. Aber der Error ist weg...

    Und ich hab mehr verändert ... :cursing: .

    Und :fresse: mit den Smilys
    Di Dada die Bank ist da ...und ich bin weg
    Noobs reden zu viel. Könner sehen zu wenig.
    Ich sehe dich. Ha und darauf bist du reingefallen.
    Hey wie gehts. Warum liest du das? Nein warum das da rechts meine ich`?
  • ich weis das der Editor nicht gerade der beste ist, jedoch brauch ich ihn ja nur zum platzieren einzelner Türme. Ich werde es ausprobieren sobald ich meine Tastatur wieder bekommen habe. :D
    Es funktioniert, danke :thumbsup: :thumbsup: :thumbsup:

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

  • Xero schrieb:

    ja er funktioniert noch nicht ganz das er lädt.. Aber der Error ist weg...

    Und ich hab mehr verändert ... :cursing: .

    Und :fresse: mit den Smilys




    Kleinkindreaktion...

    Der Fehler kann nicht weg sein, weil er nichts mit dem Ladeskript zu tun hatte. Es war schlichtweg die Sache mit dem Komma und nichts anderes. OK ich gebs ja zu, du hast noch ein paar Klammern entfernt und ein paar sehr wichtige Zeilen auskommentiert. ;) - jedoch nichts, was zur Lösung des Problems beigetragen hat. Den eigentlichen Fehler hast du nur mit anderen Fehlermeldungen überblendet. Der Fehler wird aber spätestens wiederkommen, wenn das Skript wieder korrigiert wurde. Ich frag mich, warum du dich mit deinen sinnlosen Beiträgen hier überhaupt noch frei rumbewegen kannst. Also um eins Klarzustellen: Sein Code ist völlig in Ordnung - deiner nicht.
    Bevor du hier versuchst, anderen zu helfen, wenn du selber keine Ahnung hast, würde ich mir zuerst Grundlagenwissen anschaffen sonst wird das nichts.

    Sorry wenn das jetzt ein bissn off Topic war, jedoch wollte ich nur klarstellen, dass sein Code eben nicht in Ordnung ist, so wie er behauptet (und ich glaube, dass jeder Mittelklasseprogrammierer das an dem Code erkennen kann).

    mfg Crit
  • Oha, ich wollte nochmal sagen, das es doch nicht funzt. Ich hab jetzt alles mit file_text_write_string file_text_read_string
    gemacht, aber es funzt noch immer nicht. Es ist zwar jetzto, dass kein Komma mehr ist, jedoch werden nach dem Laden die Objekte nicht angezeigt, da daucht immer eine Fehlermeldung auf. Ich habs mal angehängt:
    Dateien
    • Level_editor.zip

      (6,31 kB, 139 mal heruntergeladen, zuletzt: )
  • Du hast das string(); mit real(); verwechselt. Du speicherst ne Zeichenfolge innen String und wandelst ihn in einen String um und übergibst den an eine Funktion, die als 1. und 2. Argument real Datentyp erfordert ;)

    Also die letzte Zeile in der while schleife im Ladeskript ersetzen mit:

    GML-Quellcode

    1. instance_create(real(_x)+16,real(_y)+16,_obj);


    Das wirkliche Problem ist jedoch, dass du im 3. Argument (_obj) übergibst und die hat ja nur ne "1". instance_create braucht aber die Ressourcen-Id des Objektes. Also würde ich mir ne switchabfrage oder so einbauen:

    GML-Quellcode

    1. //An den Anfang des Skripts----\\
    2. var _obj2;
    3. //
    4. while(file_text_eof(file)==false)
    5. {
    6. _obj=real(file_text_read_string(file));//Read the object value
    7. file_text_readln(file);//Go down a line
    8. _x=file_text_read_string(file);//Read the x value
    9. file_text_readln(file);//Go down a line
    10. _y=file_text_read_string(file);//Read the y value
    11. file_text_readln(file);//Go down a line
    12. switch(_obj)
    13. {
    14. case 1: _obj2 = obj_block1; break;
    15. case 2: _obj2 = obj_block2; break;
    16. default: show_message("Objektnummer "+string(_obj)+" nicht erkannt!");
    17. }
    18. instance_create(real(_x)+16,real(_y)+16,_obj2);
    19. }
    20. file_text_close(file);//IMPORTANT. DO NOT LEAVE THIS LINE OUT.
    Alles anzeigen


    Bei mir läufts einwandfrei. Wiegesagt, speicher nicht _obj in die Datei und lade sie somit wieder aus. Da kommt es später zu komplikationen. Lieber ne switch-Abfrage.

    mfg Crit