in Online Game speichern???

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

  • Prinzipiell könntest du für jeden Benutzer auf dem Server (dein PC in dem Fall) einen Ordner anlegen lassen, in dem eine Datei mit allen Variablen gespeichert wird (zum Beispiel Energie, Position, Items, etc.).
    Diese Datei lässt du dann, falls die Benutzerdaten des Clientes mit einem existierenden Benutzer übereinstimmen, aus dem entsprechenden Ordner auslesen und die Werte daraus übergibst du dem Clienten.
    So müsste es eigentlich funktionieren.
  • oder du speicherst es als datei die der normale mensch mit dem normalen editor nicht lesen kann beim client ab (eine meeenge sonderzeichen sind gut für sowas) oder du nutzt gleich die registry funktionen des GM (die kann der normale mensch auch nicht so leicht ändern)
    @Prustel: Ich bin auch C :sauf:
    Oha, die Danksagungen häufen sich... <(o.O)> <(^.^)>
    PM me.
  • nix registrieren XD
    die sogenannte registry ist sozusagen eine mega-datenbank in deinem computer. da wird fast alles drin gespeichert, und du kannst halt auch vars aus dem spiel darin speichern. dazu gibts folgende Funktionen:

    GML-Quellcode

    1. //nur in der Pro/Registrierten Version
    2. registry_write_string(name,str) //Erstellt einen Eintrag in der Registry mit dem gegebenen Namen und einem String-Wert.
    3. registry_write_real(name,x) //Erstellt einen Eintrag in der Registry mit dem gegebenen Namen und einem Zahlenwert.
    4. registry_read_string(name) //Gibt den String zurück, der im Eintrag name steht. (Falls der Eintrag nicht existiert, wird ein Leerstring zurückgegeben)
    5. registry_read_real(name) //Gibt den Zahlenwert zurück, der im Eintrag name steht. (Falls der Eintrag nicht existiert, wird 0 zurückgegeben)
    6. registry_exists(name) //Gibt zurück, ob der gegebene Name existiert.
    7. /*Aus dem dt. .chm file für den GM*/
    @Prustel: Ich bin auch C :sauf:
    Oha, die Danksagungen häufen sich... <(o.O)> <(^.^)>
    PM me.
  • nein, eben nicht mit ordnern...
    mit registry...
    und du hast keine platzverschwendung auf deinem server, sondern der client wird praktisch unsichtbar zugemüllt.
    @Prustel: Ich bin auch C :sauf:
    Oha, die Danksagungen häufen sich... <(o.O)> <(^.^)>
    PM me.
  • GML-Quellcode

    1. //Code für obj_frucht_apfel. Muss ins entsprechende Event (z.B. wenn die Frucht destroyed wird wenn sie gepflückt wird ins destroy-event
    2. current_apfel = registry_read_real("apfel") //liest die anzahl der äpfel a.d. reg.
    3. if (current_apfel == 0 ) { //prüft ob eintrag existiert
    4. registry_write_real("apfel", 0) // wenn er nicht existiert wird er erstellt
    5. }
    6. registry_write_real("apfel", current_apfel + 1) //schreibt in jedem fall die neue apfelzahl
    @Prustel: Ich bin auch C :sauf:
    Oha, die Danksagungen häufen sich... <(o.O)> <(^.^)>
    PM me.
  • die registry (inkl. einträge) ist solange da bis du mit einem starken magneten über die festplatte gehst (aber das ist sowieso der extremste extremfall)
    die einträge für das spiel werden nur gelöscht wenn das spiel nicht vorgefunden wird (z.B. bei deinstallation) und dann die registry gecleant wird (formatierung usw.)
    @Prustel: Ich bin auch C :sauf:
    Oha, die Danksagungen häufen sich... <(o.O)> <(^.^)>
    PM me.
  • Du solltest nur darauf achten, dass der Client die Daten jedesmal übertragen bekommt, da man ja sonst in der Registry rumpfuschen könnte und somit den Spielverlauf beinflussen könnte.

    © 2008 by Teamgrill Productions
  • schon mal was von "regedit" gehört? damit lässt sich leicht in der Registry "rumpfuschen". Muss ich sogar manchmal, um die Informationen von unnützen längst deinstallierten Programmen zu löschen^^
    Ich habe gemeint, dass jedesmal, wenn sich ein PC zum Server verbindet, er vom Server die Daten erhält (Beispiel: wie viele Äpfel usw noch auf der Karte/im Spiel sind und wie viele der Spieler hat), also dass das mit der Registry nur noch nebensächlich wird. Weil dass der Server die Spielerdaten speichert ist viel sicherer als wenn das der Client tut.

    Stell dir mal vor, ein etwas mehr als normaler Spieler weiß, wo die einstellungen sind, und dein Spiel ist zb ein Rollenspiel. Was hält ihn nun davon ab, seine Manapunke, HP und sontige Werte hinaufzutricksen? Nicht viel.

    © 2008 by Teamgrill Productions
  • Jetzt hab ich ne Fehlermeldung:
    ___________________________________________
    ERROR in
    action number 1
    of Create Event
    for object objPlayer:

    Error in code at line 5:
    if registry_exists(ix) {

    at position 21: Unknown variable ix



    Ich hab nur dies gemacht:

    Im create event:

    GML-Quellcode

    1. if registry_exists(ix) {
    2. x = registry_read_string(ix)
    3. }
    4. if registry_exists(iy) {
    5. y = registry_read_string(iy)
    6. }


    im game end event:

    GML-Quellcode

    1. registry_write_string(ix,x)registry_write_string(iy,y)


    er sagt mir es gibt die registry ix oder iy nich obwohl ich ja frage ob es sie nicht gebt häää..

  • Natürlich, aber darum brauchst du im Grunde die Registry ja nicht für den Client. Wenn dan müsste sie nur am Server existieren und die Einstellungen speichern.
    EDIT: Wenn du das als String fragen musst gehören ix und iy noch in "" also "ix"
    sonst musst du natürlich die Variable festlegen.

    © 2008 by Teamgrill Productions
  • Du fragst da nach dem Inhalt der Variablen ix. Wenn du nach dem Key ix fragen willst, schreibe das ix in Anführungszeichen.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum