Problem beim Erstellen von Textdateien und Variablen

  • GM 8

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

  • Problem beim Erstellen von Textdateien und Variablen

    Hallo Community,

    ich habe mal wieder zwei Probleme.

    Erstens:

    Ich habe ein Script geschrieben was beim Start vom Spiel ausgeführt werden soll. In diesem sollen dateien aus einer Textdatei geladen werden und falls die Textdatei nicht existiert soll eine neue erstellt werden.

    Nun habe ich das Gefühl gehabt das da was nicht stimmt, da ich nie nach dem Namen gefragt wurde(Siehe im Script bei der Kommentierten Stelle).

    Dann habe ich ein show_message hinten ran gesetzt und es erscheint nicht.

    GML-Quellcode

    1. var file, save, name, Server1, Server2, Server3, Server4, Server5, Server6;
    2. save = "savegame.txt"
    3. if(file_exists(save)){
    4. file = file_text_open_read(save);
    5. global.Server1 = file_text_read_real(file);
    6. file_text_readln(file);
    7. global.Server2 = file_text_read_real(file);
    8. file_text_readln(file);
    9. global.Server3 = file_text_read_real(file);
    10. file_text_readln(file);
    11. global.Server4 = file_text_read_real(file);
    12. file_text_readln(file);
    13. global.Server5 = file_text_read_real(file);
    14. file_text_readln(file);
    15. global.Server6 = file_text_read_real(file);
    16. file_text_readln(file);
    17. score = file_text_read_real(file);
    18. file_text_readln(file);
    19. name = file_text_read_string(file);
    20. file_text_close(file);
    21. }
    22. else
    23. file_text_open_write(file);
    24. file_text_write_real(file, 0);
    25. file_text_writeln(file);
    26. file_text_write_real(file, 0);
    27. file_text_writeln(file);
    28. file_text_write_real(file, 0);
    29. file_text_writeln(file);
    30. file_text_write_real(file, 0);
    31. file_text_writeln(file);
    32. file_text_write_real(file, 0);
    33. file_text_writeln(file);
    34. file_text_write_real(file, 0);
    35. file_text_writeln(file);
    36. score = file_text_write_real(file, 0);
    37. file_text_writeln(file);
    38. name = get_string("Bitte gib deinen Namen ein: ", ""); //Hier sollte eigentlich eine Abfrage sein, ich bekomme aber keine
    39. file_text_write_string(file, name);
    40. file_text_close(file)
    41. show_message("Hallo " + name + "!#Willkommen bei *******!#Viel Spaß wünscht dir das Team!#www.********.de");
    Alles anzeigen


    Zweitens:

    In einem Script soll man auf einem bestimmten platz mit Linksklick etwas Kaufen können. Das ging auch, doch nun bekomme ich immer angezeigt, das die Variable "Server1" nicht bekannt ist.
    Zudem hat sich die Variable nicht verändert als es ging. (Man sollte es nur einmal kaufen können. Die Variable wurde eigentlich beim Kauf auf 1 gesetzt, man konnte aber es so oft kaufen wie man wollte.

    GML-Quellcode

    1. {
    2. var Server1;
    3. if(Server1 == 0)
    4. {
    5. show_message("Serverrig wurde mit einem Server bestückt!# Vielen dank für ihren Einkauf!");
    6. sprite_index = DEV_Server_Gekauft;
    7. Server1 = 1;
    8. score = score-500;
    9. }
    10. else
    11. {
    12. show_message("Serverrig ist bereits besetzt!");
    13. }
    14. }
    Alles anzeigen


    Ich hoffe ihr könnt mir da weiter helfen.

    Ich hab beides in einen Thread gepackt, da es ja miteinander zutun haben könnte ;)

    MfG,

    Headshot
  • Server1 muss am Anfang nicht nur initialisiert werden, sondern auch auf einen Wert gesetzt werden. In dem Fall wohl 0, dann erst kannst du die Abfrage ob Server1 0 ist machen. Du kannst aber auch in den Game Settings "Treat uninitialized Variables as 0" anhakeln.

    Zum ersten, probier mal name = get String unter save = save.txt zu setzen, vielleicht hilft das schon wenn du ihn nicht beim schreiben der Datei "störst" und eben schon vorher nach dem name fragst.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Ich habe zwei Fehler entdeckt. Erstens hast du nach else die Klammern vergessen. Zweitens hast du file_text_open_write falsch angewendet. Es müsste ja eigentlich in diesem Fall

    GML-Quellcode

    1. file = file_text_open_write(save)
    heißen.

    Edit: Achja, und in deinem Zweiten Script musst du das

    GML-Quellcode

    1. var Server1;
    wegmachen, sonst wird die Variable nur während der Ausführung des Skriptes gespeichert und danach wieder gelöscht bzw. freigegeben.
  • Hallo,

    ich hab nochmal ein Problem:

    Und zwar habe ich ein Menü aus dem ein anderes Menü aufgehen soll.

    Ich habe bereits etwas mit Variablen Gesehen aber das funktioniert leider nicht oder ich hab was falsch gemacht.

    Hoffe ihr könnt mir helfen:

    GML-Quellcode

    1. {
    2. var host1;
    3. switch (show_menu("Website hosten | Gameserver Hosten | FileSharing Hosten", -1)){
    4. case 1: global.host1 = 1; break;
    5. case 2: global.host1 = 2; break;
    6. case 3: global.host1 = 3; break;
    7. }
    8. if(host1 == 1){
    9. switch (show_menu("Server 1|Server 2|Server 3|Server 4|Server 5|Server6", -1)){
    10. case 1:
    11. if(global.server1belegt == 0){
    12. show_message("Auf Server 1 wird nun eine Website gehostet!# Du kannst nun nichts anderes mehr dort hosten!");
    13. global.server1belegt = 1
    14. global.income = global.income+19
    15. }
    16. else
    17. {
    18. show_message("Auf Server 1 wird bereits etwas gehostet!");
    19. }
    20. break;
    21. case 2:
    22. if(global.server2belegt == 0){
    23. show_message("Auf Server 2 wird nun eine Website gehostet!# Du kannst nun nichts anderes mehr dort hosten!");
    24. global.server2belegt = 1
    25. global.income = global.income+19
    26. }
    27. else
    28. {
    29. show_message("Auf Server 2 wird bereits etwas gehostet!");
    30. }
    31. break;
    32. case 3:
    33. if(global.server3belegt == 0){
    34. show_message("Auf Server 3 wird nun eine Website gehostet!# Du kannst nun nichts anderes mehr dort hosten!");
    35. global.server3belegt = 1
    36. global.income = global.income+19
    37. }
    38. else
    39. {
    40. show_message("Auf Server 3 wird bereits etwas gehostet!");
    41. }
    42. break;
    43. case 4:
    44. if(global.server4belegt == 0){
    45. show_message("Auf Server 4 wird nun eine Website gehostet!# Du kannst nun nichts anderes mehr dort hosten!");
    46. global.server4belegt = 1
    47. global.income = global.income+19
    48. }
    49. else
    50. {
    51. show_message("Auf Server 4 wird bereits etwas gehostet!");
    52. }
    53. break;
    54. case 5:
    55. if(global.server5belegt == 0){
    56. show_message("Auf Server 5 wird nun eine Website gehostet!# Du kannst nun nichts anderes mehr dort hosten!");
    57. global.server5belegt = 1
    58. global.income = global.income+19
    59. }
    60. else
    61. {
    62. show_message("Auf Server 5 wird bereits etwas gehostet!");
    63. }
    64. break;
    65. case 6:
    66. if(global.server6belegt == 0){
    67. show_message("Auf Server 6 wird nun eine Website gehostet!# Du kannst nun nichts anderes mehr dort hosten!");
    68. global.server6belegt = 1
    69. global.income = global.income+19
    70. }
    71. else
    72. {
    73. show_message("Auf Server 6 wird bereits etwas gehostet!");
    74. }
    75. break;
    76. }
    77. }
    78. }
    Alles anzeigen