Highscore die Xte

  • GM 8

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

  • Highscore die Xte

    Hallo liebe Game Maker Community,

    mal wieder schreibe ich in Verzweiflung und fange an zu weinen. Ok mache ich nicht, klingt aber gut ^^
    Also folgendes :

    Wir haben ein Jump&Run Game, wo es eine Highscore geben soll. Für die einzelnen Rooms, gibt es jeweils eine Score nur brauchen wir eine Highscore, die gespeichert wird, sei es eine Datei oder im Spiel, wobei ich denke, das das nicht möglich wäre eine Laufende Exe zu bearbeiten. Daher würde ich mich freuen, wenn Ihr mir mitteilen könntet, wie ich die Score extern speichern kann und das natürlich ein wenig verschlüsselt, damit man die Score extern nicht bearbeiten kann.

    Zum Post selber, habe das Forum durchsucht aber immer nur alte Threads gefunden die auf noch ältere verwiesen, wo der Link nicht mehr ging. Hoffe das ich von euch eine gute Lösung finde.

    Mit freundlichem Gruß


    Trodop
  • Hi,
    ich hab das so gelöst:
    Mit Xor Crypt von Bl@cksp@rk(im Anhang(einfach die .gml einbinden)):
    Erstmal das Passwort zu ent und verschlüsselung angeben:

    GML-Quellcode

    1. xor_crypt_init()
    2. xor_crypt_password("Dein Passwort")

    Das hier zum Highscore erstellen und laden:

    GML-Quellcode

    1. // Highscore anlegen oder lesen (Room-start)
    2. {
    3. var f_name, f_id, name, punkte; // Variablen anlegen
    4. f_name = "HI_score"+string(argument0)+".ini"; // Filenamen festlegen (hier argument0 als teil des Filenamens)
    5. highscore_clear(); // den alten Highscore (von anderen Rooms) brauchen wir nicht mehr....
    6. // Prüfen ob das File schon exestiert wenn ja lesen wenn nein anlegen
    7. xor_decrypt_all("HI_score"+string(argument0)+".pak",".")
    8. if ( file_exists(f_name))
    9. {
    10. f_id = file_text_open_read(f_name); // File zum lesen öffnen und File-id merken
    11. // Daten für Highscore 1 bis 10 einlesen
    12. repeat (10)
    13. {
    14. name = file_text_read_string(f_id); // Namen lesen
    15. file_text_readln(f_id); // Rest der Zeile weglassen
    16. punkte = file_text_read_string(f_id); // Punkte lesen
    17. file_text_readln(f_id); // nochmal Rest weglassen
    18. highscore_add(name,real(punkte)); // und in die highscoreliste eintragen (Punkte wieder als Zahl)
    19. }
    20. file_text_close(f_id); // Daten sind drin also schön das File wieder zumachen ^^
    21. }
    22. // File gibts noch nicht -> also erstmal eins anlegen ^^
    23. else
    24. {
    25. f_id = file_text_open_write(f_name); // Erstmal ein File zum schreiben anlegen und wieder File-id merken
    26. // 10 mal Dummy-Werte eintragen
    27. punkte = string(0); // is ja noch nicht gespielt worden also score = 0
    28. name = ""; // (Hier könnte Ihr Name stehen ^^)
    29. repeat (10)
    30. {
    31. file_text_write_string(f_id,name); // einen "Dummy"-Namen eintragen ^^
    32. file_text_writeln(f_id); // neue Zeile sonst gibts stress beim lesen ^^
    33. file_text_write_string(f_id,punkte); // und die Punkte....
    34. file_text_writeln(f_id); // nochmal ne neue Zeile....
    35. highscore_add(name,real(punkte)); // und gleich auch in die Highscore-liste von diesem Room eintragen
    36. }
    37. file_text_close(f_id); // und nicht vergessen das File wieder zu zu machen ^^
    38. }
    39. xor_encrypt_add(f_name)
    40. xor_encrypt_start("HI_score"+string(argument0)+".pak")
    41. file_delete(f_name)
    42. // den Code könnt ihr beim room-start ausführen....
    43. }
    Alles anzeigen

    Und das zum Speichern:

    GML-Quellcode

    1. //--------------------------------------------------------------------------------------------------------------------------------------------------------------
    2. // Highscore schreiben (Room-ende oder game-over)
    3. {
    4. var f_name, f_id, nr, name, punkte; // Variablen anlegen
    5. f_name = "HI_score"+string(argument0)+".ini"; // Filenamen festlegen (hier argument0 als teil des Filenamens)
    6. xor_decrypt_all("HI_score"+string(argument0)+".pak",".")
    7. f_id = file_text_open_write(f_name); // File neu anlegen
    8. // Plätze von 1 bis 10 holen und schreiben
    9. for ( nr = 1; nr <= 10; nr += 1)
    10. {
    11. name = highscore_name(nr); // Namen aus Highscore holen
    12. punkte = string (highscore_value(nr)); // Punkte holen als string
    13. file_text_write_string(f_id,name); // den neuen Namen eintragen
    14. file_text_writeln(f_id); // neue Zeile sonst gibts stress beim lesen ^^
    15. file_text_write_string(f_id,punkte); // und die Punkte....
    16. file_text_writeln(f_id); // nochmal ne neue Zeile....
    17. }
    18. file_text_close(f_id); // und nicht vergessen das File wieder zu zu machen ^^
    19. xor_encrypt_add(f_name)
    20. xor_encrypt_start("HI_score"+string(argument0)+".pak")
    21. file_delete(f_name)
    22. }
    Alles anzeigen


    Jeweils argument0 = Highscorename
    Um einen neuen Highscore einzutragen, erst den passenden Laden, dann highscore_add(...), und zuletzt wieder speichern.
    Zum anzeigen auch vorher den richtigen laden!

    Ich hoffe das hilft dir.
    FG
    andre111
    Dateien
    • Xor Crypt.zip

      (192,55 kB, 115 mal heruntergeladen, zuletzt: )

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