1 registered members (degenerate_762),
1,128
guests, and 7
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Datenmanagement/Dateihandling
[Re: CHaP]
#341483
09/17/10 09:27
09/17/10 09:27
|
Joined: Jun 2006
Posts: 2,640 Earth
Germanunkol
Expert
|
Expert
Joined: Jun 2006
Posts: 2,640
Earth
|
Das hört sich gut an. Theoretisch könntest du auch eine Datei senden, wenn das alles auf dem HDD sitzt und sowieso in einer Datei, aber (ich glaube) das wäre anfälliger für das Versenden von Viren und desswegen ist deine Lösung besser. Da ich mein Spiel schon fast fertig hatte, bevor das Schicken von Structs mit ANet problemlos möglich war, schicke ich einfach per enet_send_var und enet_send_array/string die Daten, die der Benutzer braucht um den richtigen Level zu richtigen Zeit und mit dem richtigen Gamemode zu laden. Das funktioniert auch, aber generell würde ich die Struct empfehlen.
~"I never let school interfere with my education"~ -Mark Twain
|
|
|
Re: Datenmanagement/Dateihandling
[Re: Germanunkol]
#341504
09/17/10 15:39
09/17/10 15:39
|
Joined: Aug 2003
Posts: 127 Berlin, Germany
CHaP
OP
Member
|
OP
Member
Joined: Aug 2003
Posts: 127
Berlin, Germany
|
Sehr schön. Wo finde ich denn bitte die Befehle ENET_SEND_VAR und ENET_SEND_ARRAY/STRING? Gehören diese zu ANet? Und wie kann ich eine ganze Datei versenden? Würde der Inhalt dabei nur der Engine bekannt sein und nicht irgendwie auf der HDD ausgelagert, wäre das eigentlich schon genau das, was ich erreichen wollte.
Im Grunde genommen geht es einfach nur darum, dass es eine Accountverwaltung ist und die Clients sollen nicht an sensible Daten geraten können.
-------------- Die erste Frage habe ich mir gerade selber beantworten können. Es stammt aus dem ANet.
Last edited by CHaP; 09/17/10 16:31.
|
|
|
Re: Datenmanagement/Dateihandling
[Re: CHaP]
#341597
09/18/10 13:34
09/18/10 13:34
|
Joined: Jun 2006
Posts: 2,640 Earth
Germanunkol
Expert
|
Expert
Joined: Jun 2006
Posts: 2,640
Earth
|
Hm, also bis jetzt habe ich Dateien immer nur direkt von der HDD geschickt. Sie liegt irgendwo im Verzeichnis auf PC 1 und wird zu einem bestimmten Verzeichnis auf PC 2 geschickt, der sie dann öffnet und damit arbeitet - so mache ich das. Ob aus dem RAM eine Datei geschickt werden kann, weiß ich nicht, das würde heißen, 3dgs muss eine Datei erstellen, die es nicht speichert. Keine Ahnung, nie gemacht.
Für das was du brauchst, wenn ich es richtig verstanden habe, würde ich aber das verschicken einer struct empfehlen, unter anderem weil du dann nicht aufpassen musst, wer grade an wen Dateien verschickt; es geht nämlich immer nur eine Datei auf einmal, pro client.
Theoretisch kann man an alle Daten gelangen, die der PC einmal bekommen hat, sie können ja irgendwo "mitgehört" werden, auf dem eigenen PC, selbst wenn sie nie auf die Harddrive gespeichert werden. Ich weiß nicht genau, was alles bei deiner Accountverwaltung geschickt wird, aber ich verstehe das so: Client sendet Benutzername und Passwort an Server und bekommt den momentanten Status des eigenen Spielers zurück: Level, Geld, Inventar, etc. Für so ein Setup würde ich das ganze "einfach" per Struct (oder bei mehreren Spielern vielleicht eine Array von structs, nacheinander?) und um mogeln zu verhindern immer die Werte, die zum Beispiel mit dem Level zu tun haben (Damage, Health, Stärke etc) auf dem Server zu überprüfen, immer dann, wenn der Client etwas damit macht. Beispiel: Client schickt "ich habe einen Eisenhelm, den setzte ich jetzt auf" und Server prüft, ob bei ihm dieser Eisenhelm auch wirklich im Inventar des Nutzers ist, und nur wenn das der Fall ist, schickt er zurück "ok, setz ihn auf", woraufhin der client jetzt mit Helm auf dem Kopf rumläuft.
Das wäre mein spontaner Ansatz, es gibt eventuell bessere, aber so sicherst du dich gleich gegen alle Client-Side Möglichkeiten des Mogelns.
Last edited by Germanunkol; 09/18/10 13:35.
~"I never let school interfere with my education"~ -Mark Twain
|
|
|
Re: Datenmanagement/Dateihandling
[Re: Germanunkol]
#341608
09/18/10 16:16
09/18/10 16:16
|
Joined: Jul 2005
Posts: 1,930 Austria
Dark_samurai
Serious User
|
Serious User
Joined: Jul 2005
Posts: 1,930
Austria
|
Wo finde ich denn bitte die Befehle ENET_SEND_VAR und ENET_SEND_ARRAY/STRING? Gehören diese zu ANet? Und wie kann ich eine ganze Datei versenden? Würde der Inhalt dabei nur der Engine bekannt sein und nicht irgendwie auf der HDD ausgelagert, wäre das eigentlich schon genau das, was ich erreichen wollte. enet_send_var/array/string() gehören zu ANet und können im ANet Manual nachgelesen werden. Eine ganze Datei kannst du mit ANet's Dateifunktionen (File Transfer) verschicken (siehe Manual). Dazu gibt es auch ein fix fertiges Beispiel auf der Downloadseite: http://www.anet-plugin.com/downloads_eng.htmAber es ist wahrscheinlich intelligenter nicht die gesamte Datei zu senden, da diese eben dann auch auf der Festplatte gespeichert wird. Durch Senden eines Structs bleibt der Inhalt nur im Ram.
ANet - A stable and secure network plugin with multi-zone, unlimited players, voip, server-list features,... (for A7/A8)! get free version
|
|
|
Re: Datenmanagement/Dateihandling
[Re: Dark_samurai]
#341890
09/21/10 13:53
09/21/10 13:53
|
Joined: Aug 2003
Posts: 127 Berlin, Germany
CHaP
OP
Member
|
OP
Member
Joined: Aug 2003
Posts: 127
Berlin, Germany
|
Cool! Danke für die ausführliche Antwort! Ich denke das Hilft mir weiter. An dieser Stelle beschäftigt mich jetzt noch eine weitere Frage.
|
|
|
|