#pragma once #include "../Include/KSGNetwork.h" #include namespace KSGClient { // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden // Kann nur von eingeloggten Clients verwendet werden class MinigameClient : public MinigameServerClient { private: Framework::Text ip; unsigned short port; int cId; Network::Klient* k; char* key; unsigned char keyLen; Framework::Critical cs; Framework::Text err; public: // Konstruktor MinigameClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen); // Destruktor ~MinigameClient(); // verbindet sich mit dem zugewiesenen Minigame Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst bool verbinde() override; // Gibt die Id des aktuell spielenden Accounts zurück int getAccountId() override; // Gibt eine geheime zeichenkette die nur der client kennt zurück (ist bei spielstart) Text* getSecret() override; // Gibt den Anzeigenamen eines bestimmten Accounts zurück // id: Die id des Accounts Text* getAccountName(int id) override; // Ermittelt die liste mit allen Optionen zu einem Minigame zurück, zu denen es Welt beste Scores gibt // mName: Der Name des Minigames // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen // Gibt die Anzahl der Optionen zurück int getMinigameOptionList(const char* mName, Framework::RCArray< Framework::Text >* zOptionList) override; // Ermittelt eine Liste mit den Weltbesten Scores zurück // mName: Der Name des Minigames // zScore: Enthält nach erfolgreichem Aufruf eine Liste mit Scores // zPlayerList: Enthält nach erfolgreichem Aufruf eine Liste mit angezeigten Account Namen, die die Scores erreicht haben. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen, die beim erreichen der Scores aktiv waren. // Gibt die Anzahl der Bestscores zurück int getMinigameBestscoreList(const char* mName, Framework::Array< int >* zScore, Framework::RCArray< Framework::Text >* zPlayerList, Framework::RCArray< Framework::Text >* zOptionList) override; // Gibt den Welt bestscore zu einem Bestimmten Minigame mit bestimmten Optionen zurück. // mName: Der Name des Minigames // oName: Die Optionen // zPlayer: Enthält nach erfolgreichem Aufruf den Angezeigten Namen des Accounts, der den Score erreicht hat int getMinigameOptionBestscore(const char* mName, const char* oName, Framework::Text* zPlayer) override; // Meldet die Beendigung eines Minigames // mName: Der Name des Minigames // oName: Die Optionen mit denen gespielt wurde // score: Der Erreichte Score // zCapture: Ein Zeiger auf eine Datei mit der Spielaufzeichnung // Gibt 0 zurück wenn eines Fehler aufgetreten ist, 1 wenn der Forgang erfolgreich war bool reportEndOfGame(const char* mName, const char* oName, int score, Framework::Datei* zCapture) override; // Lädt ein Game Capture herunter und speichert sie unter data/tmp/minigames/wb.mgc // mName: Der Name des Minigames // oName: Die Optionen // Gibt die Datei mit dem Capture zurück Framework::Datei* downloadGameCapture(const char* mName, const char* oName) override; // Erhält die Verbindung aufrecht // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt bool keepAlive() override; // Trennt die Verbindung zum Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden bool trenne(bool abmelden) override; // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst bool istVerbunden() const override; // gibt den Letzten Fehlertext zuück // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist const char* getLetzterFehler() const override; }; }