Update und Check - Frage

08/25/2014 21:08 RivathaX#1
Abend Leute,
ich hätte da zwei Fragen die ich gerne euch stellen möchte.

Vorher, derzeitig arbeite ich an einer API mit einigen Funktionen zur Vereinfachung des Spielens für ein Game.
Da ich kein Profi bin und dringend auf eure Hilfe hoffe, hoffe ich diese hier zu bekommen.

Jedoch möchte ich euch sagen, dass ich alles schon gesucht und durch geforstet habe, aber nichts finden konnte.

1. Server Check
Ich will in die API einbauen, dass wenn sich das Spiel Fenster öffnet die API sofort abcheckt ob die Server IP mit der IP übereinstimmt die ich vor definiert habe.

Dazu hätte ich schon in meiner API eine Funktion Namens "GetServerIP(char *&serverip)".
Ich möchte mit dieser Funktion beim Starten vom Spiel, testen ob die IP sozusagen auf der Whitelist steht.
Falls dieses der Fall ist soll er den Server auf "1" setzen und die API bleibt offen.
Sollte es jedoch der falsche Server sein, so wird es auf "0" gesetzt und die API bzw. das Game schließt sich.
Sollte sich jedoch das Game schließen so wird es ebenfalls auf 0 gesetzt und man kann Reloggen und die API checkt wieder von Anfang an ob alles in Ordnung ist.

Wie genau kann ich dieses machen?
Hab schon selber etwas versucht, aber ohne Erfolg.
Code:
char checkserverip[18] = {0};
char *checkip = (char*)checkserverip;
API_GetPlayerName(checkip);
-
2. Update
Ich möchte gerne in die API einbauen, dass es beim nutzen direkt gecheckt wird ob es eine neue Version gibt.
Falls dies der Fall sein sollte, soll das Update runtergeladen werden und das alte gelöscht und ersetzt werden.

Das wären auch meine Fragen.
Ich hoffe auf reichliche und hilfreiche Antworten.

Der C++ Newby
08/27/2014 00:38 Brendan Jordan#2
2. ist doch ein ganz normaler Patcher oder verstehe ich das falsch? Da sollte man bei Google viel zu finden. Theoretisch musst du dann nur vom Server die Version abfragen und gucken ob sie übereinstimmen. Wenn nicht -> neue runterladen.
08/27/2014 12:58 buFFy!#3
ne ip is idR. ein string, std::string.compare / strcmp schaffen hier abhilfe.
für den versionscheck kannst dus dir ganz simpel machen und einfach eine buildnummer als int auf den server laden. die saugst du runter und schaust ob currentBuild < serverBuild ist und lädst ggf. dein update
08/27/2014 21:47 RivathaX#4
Quote:
Originally Posted by buFFy! View Post
ne ip is idR. ein string, std::string.compare / strcmp schaffen hier abhilfe.
für den versionscheck kannst dus dir ganz simpel machen und einfach eine buildnummer als int auf den server laden. die saugst du runter und schaust ob currentBuild < serverBuild ist und lädst ggf. dein update
Das zweite verstanden soweit, aber das erste nicht wirklich.


Und hab noch eine Frage gibt es eine alternative zu einem Timer?
Ich will nicht unbedingt ein Timer haben der dauerhaft hoch und runter geht und dabei die API belastet.
08/28/2014 05:03 Brendan Jordan#5
Ich denke, dass buffy sowas in der Art meint
PHP Code:
bool CheckIP()
{
    
std::string checkIP GetServerIP("www.google.de");
    if (
checkIP.compare("127.0.0.1"))
        return 
true;
    return 
false;

08/28/2014 15:22 MrSm!th#6
Wofür nutzt du denn den Timer? Die sind eigentlich nicht wirklich belastend.
08/28/2014 17:04 RivathaX#7
Quote:
Originally Posted by MrSm!th View Post
Wofür nutzt du denn den Timer? Die sind eigentlich nicht wirklich belastend.
Das war nur eine Denkweise.
Wenn es so nicht ist, dann ist alles ok.

Hätte jetzt nur noch eine Frage. Wie kann ich nur beim nutzen der API.
Also wenn ich z.B. es eingebunden habe und das Programm starte connectet es sozusagen zur API.
Wie kann ich einstellen das es dann die Server Version mit der API Version vergleicht?
Wills nur einmalig beim nutzen/starten haben, ansonsten soll es nicht starten.
08/28/2014 18:31 Mostey#8
Und wie ist diese API implementiert?
08/29/2014 03:24 Hiris#9
Einfach festlegen welche Api Version mit welcher Serverversion kompatibel ist und dann vergleichen?
Ich glaub ich versteh irgendwas an der Frage falsch ~~