#pragma once #include <Array.h> #include <Thread.h> namespace Framework { class Text; class Datei; class KSGTDatei; class FBalken; class Zeit; class Bild; class Model2DData; } namespace GSL { class GSLSoundV; } namespace Network { class Klient; } namespace KSGClient { // Enth�lt die Daten eines Spielers zu einem vergangenen Spiel class SpielHistorieSpielerDaten { protected: int ref; // Reference Counter public: Framework::Text *name; // Der Sichtabe Name des Spielers int punkte; // Die Punkte, die der Spieler in dem Spiel gewonnen / verloren hat Framework::Text *status; // Der Status des Spielers in dem Spiel (verloren, gewonnen, nicht anwesend, beobachter, unentschieden) int farbe; // Die Farbe des Spielers // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual SpielHistorieSpielerDaten *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual SpielHistorieSpielerDaten *release() = 0; }; // Enth�lt die Datein eines Teams zu einem vergangenen Spiel class SpielHistorieTeamDaten { protected: int ref; // Reference Counter public: Framework::Text *name; // Der Sichtabe Name des Teams int sAnzahl; // Die Anzahl der Spieler im Team Framework::Text *status; // Der Status des Teams (verloren, gewonnen, beobachter, unentschieden) int farbe; // Die Farbe des Teams Framework::RCArray< SpielHistorieSpielerDaten > *spieler; // Eine Liste mit den Spielerdaten zu den Spielern aus dem Team // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual SpielHistorieTeamDaten *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual SpielHistorieTeamDaten *release() = 0; }; // Enth�lt Daten zu einem vergangenen Spiel class SpielHistorieDaten { protected: int ref; // Reference Counter public: int id; // Die Id des vergangenen Spiels int karteId; // Die Id der Karte, welche gespielt wurde Framework::Text *spiel; // Der Name des Spiels, welches gespielt wurde Framework::Text *karte; // Der Name der Karte, welche gespielt wurde Framework::Text *datum; // Der Zeitpunkt, an dem das Spiel Statfand Framework::Text *status; // Der Status des Spielers, �ber welchen die Statistik angefragt wurde Framework::Text *dauer; // Die Dater des Spiels Framework::Text *spielStatus; // Der Status des Spiels (beginnt, l�uft, abgebrochen, fehlerhaft, beendet, unbewertet) Framework::Text *gewinner; // Der Name des Gewinners int sAnzahl; // Die Anzahl der Spieler Framework::RCArray< SpielHistorieTeamDaten > *teams; // Die Daten der Teams des Spiels // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual SpielHistorieDaten *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual SpielHistorieDaten *release() = 0; }; // Enth�lt eine Liste von Spiel Daten aus vergangenen Spielen class SpielHistorieListe { protected: int ref; // Reference Counter public: Framework::RCArray< SpielHistorieDaten > *spiele; // Eine Liste mit den Daten zu vergangenen Spielen // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual SpielHistorieListe *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual SpielHistorieListe *release() = 0; }; // Enth�lt Informationen zu einem Account class AccountInfo { protected: int ref; // Reference Counter public: int id; // Die Id des Accounts Framework::Text *name; // Der angezeigte Name des Accounts Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte Framework::Text punkte; // Die Punkte des Spielers in dem Spiel // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual AccountInfo *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual AccountInfo *release() = 0; }; // Enth�lt Informationen zur Aktivit�t eines Accounts an einem bestimmten Tag class AccountActivityInfo { protected: int ref; // Reference Counter public: Framework::Text datum; // Das Datum f�r das die Werte gillt double stOnline; // Die Anzahl der Stunden, die der Account Online war double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat int anzSpiele; // Die Anzahl der gespielten online Spiele int anzGewonnen; // Die Anzahl der gewonnenen online Spiele // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual AccountActivityInfo *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual AccountActivityInfo *release() = 0; }; // Enth�lt eine Nachricht, die von Chat Server gesendet wurde struct ChatServerNachricht { char type; // Typ der Nachricht Framework::Text message; // Text der Nachricht int account; // Beteiligter Account int gruppe; // Beteiligte Gruppe int chatroom; // Beteiligter Chatraum Framework::Array< int > ids; // Liste mit Account Ids }; // Enth�lt alle Daten zur Team - Spieler Konstalation einer Karte class SpielerTeamStruktur { protected: int ref; // Reference Counter public: int spielerAnzahl; // Die Anzahl der Spieler int teamAnzahl; // Die Anzahl der Teams Framework::Array< int > *spielerFarbe; // Eine Liste mit den Farben f�r jeden Spieler Framework::Array< int > *teamFarbe; // Eine Liste mit Farben f�r jedes Team Framework::RCArray< Framework::Text > *teamName; // Eine Liste mit namen f�r jedes Team Framework::Array< int > *teamGr��e; // Eine Liste Mit Spieleranzahlen f�r jedes Team // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual SpielerTeamStruktur *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual SpielerTeamStruktur *release() = 0; }; // Enth�lt eine Nachricht von dem Spiel Server class SpielServerNachricht { protected: int ref; // Reference Counter public: char type; // Typ der Nachricht char sekunden; // Mit der Nachricht zusammenh�ngende Sekunden char minuten; // Mit der Nachricht zusammenh�ngende Minuten char stunden; // Mit der Nachricht zusammenh�ngende Stunden Framework::Text *message; // Text der Nachricht SpielerTeamStruktur *sts; // Die Spieler Team Struktur eines Spiels int accountId; // Id des Accounts int spielerNummer; // Die Spielernummer des Accounts int karteId; // Die Id der Karte int prozent; // Der Prozentuale Ladefortschritt int ping; // Der Ping des Accounts (1000 = 1 Sekunde) short l�n; // L�nge der gesendeten Daten char *data; // Die gesendeten Daten // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual SpielServerNachricht *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual SpielServerNachricht *release() = 0; }; // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet class ErhaltungServerClient : protected virtual Framework::Thread { protected: // DBeantwortet Ping - Anfragen des Servers. Falls diese 60 Sekunden lang unbeantwortet bleiben, wird der Client vom Serversystem abgemeldet virtual void thread() = 0; public: // verbindet ich mit dem Erhaltung Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // Meldet sich beim Server ab und trennt die Verbindung virtual void abmelden() = 0; // 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 virtual bool trenne() = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual ErhaltungServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual ErhaltungServerClient *release() = 0; }; // Wird benutzt, um aktualisierte Spieldateien herunterzuladen class PatchServerClient { public: // verbindet ich mit dem Patch Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // Gibt eine Tabelle von Dateigruppen zur�ck. // Gibt bei misserfolg 0 zur�ck virtual Framework::KSGTDatei *getDateiGruppenListe() = 0; // Gibt eine Tabelle von Dateien zur�ck. // gruppe: Die Id der Dateigruppe, zu der die Dateien geh�hren sollen // Gibt bei misserfolg 0 zur�ck virtual Framework::KSGTDatei *getDateiListe( int gruppe ) = 0; // Gibt die Gr��e einer Datei in bytes zur�ck // gruppe: Die Id der Dateigruppe der Datei // pfad: Der Pfad der Datei virtual __int64 getDateiGr��e( int gruppe, const char *pfad ) = 0; // L�dt eine Datei herunter // gruppe: Die Dateigruppe der Datei // start: Der Index des bytes, bei dem der download begonnen werden soll (Enth�lt im Falle eines Abbruchs die Position, von welcher aus als n�chstes heruntergeladen werden muss) // pfad: Der Pfad der Datei // zielPfad: Der Pfad, an den die Datei gespeichert werden soll // zFb: Ein Fortschrittsbalken, der automatisch aktualisiert wird // abbruch: Wenn diese Variable w�hrend des Vorgangs auf 1 gesetzt wird, so wird das Herunterladen abgebrochen. // maxbps: Die Anzahl der bytes pro Sekunde, die maximal �bertragen werden sollen virtual bool downloadDatei( int gruppe, __int64 *start, const char *pfad, const char *zielPfad, Framework::FBalken *zFb, bool *abbruch, int maxbps ) = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // Gibt die Anzahl von �bertragenen Bytes seit dem letzten Aufruf zur�ck virtual int getDownload() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual PatchServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual PatchServerClient *release() = 0; }; // Wird verwendet um News Oberfl�chen abzufragen (KSG Script Seiten) class NewsServerClient { public: // verbindet ich mit dem News Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // L�dt eine KSG-Script Seite herunter uns speichert sie unter data/tmp/news/{name} // name: Der Name der Seite // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeSeite( char *name ) = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual NewsServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual NewsServerClient *release() = 0; }; // Wird benutzt, um Accounts zu erstellen zu �ndern oder zu l�schen class RegisterServerClient { public: // verbindet ich mit dem Register Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Best�tigungsemail angeklickt wurde. // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // eMail: Die EMail Adresse an die die best�tigungs EMail gesendet werden soll // jahr: Das Jahr des Geburtsdatums // monat: Der Monat des Geburtstages // tag: Der Tag des Geburtstages virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0; // Sendet eine Anfrage auf L�schung eines neuen Accounts. Ein neuer Account kann erst gel�scht werden, wenn ein Link in der Best�tigungsemail angeklickt wurde. // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts virtual bool accountL�schen( const char *name, const char *pass, const char *geheim ) = 0; // �ndert das Passwort eines Accounts // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // nPass: Das neue Passwort des Accounts virtual bool passwort�ndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0; // �ndert die EMail Adresse eines Accounts // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // nEMail: Die neue EMail Adresse virtual bool eMail�ndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0; // �ndert das Geheimnis eines Accounts // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // nGeheim: Das neue Geheimnis virtual bool geheimnis�ndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0; // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts virtual bool nameVergessen( const char *pass, const char *geheim ) = 0; // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, �ber den ein neues Passwort vergeben werden kann // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // geheim: Das Geheimnis des Accounts virtual bool passwortVergessen( const char *name, const char *geheim ) = 0; // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0; // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zur�ckgegeben // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // name: Der Login Name des Accounts // pass: Das Login Passwort des Accounts // geheim: Das Geheimnis des Accounts // eMail: Ein Zeiger auf eine Zeichenkette. Diese wird bei einem Erfolgreichen Aufruf auf die EMail Adresse gesetzt und muss manuell mit delete[] gel�scht werden virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual RegisterServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual RegisterServerClient *release() = 0; }; // Wird verwendet um sich einzuloggen oder auszuloggen class LoginServerClient { public: // verbindet sich mit dem zugewiesenen Login Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // Der Client wird beim Serversystem in einen Account eingeloggt // Gibt bei Erfolg 1 zur�ck, 2 falls en anderer Client in dem Account eingeloggt ist, 0 sonnst // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden virtual int login( const char *name, const char *pass ) = 0; // Diese Funktion wird in der Zukunft mal implementiert werden. Mit dem Geheimnis des Accounts k�nnen so andere Clients, welche bereits in dem Account eingeloggt werden rausgeschmissen werden. virtual bool kick( const char *name, const char *pass, const char *geheim ) = 0; // logt den Account aus // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist virtual bool logout() = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // Gibt die Id des Accounts zur�ck, in den sich der Client eingeloggt hat. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist virtual int getAccountId() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual LoginServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual LoginServerClient *release() = 0; }; class EditorServerClient; class KartenServerClient; class HistorieServerClient; // Wird verwendet um informationen �ber Accounts abzufragen // Kann nur von eingeloggten Clients verwendet werden class InformationServerClient { public: // verbindet ich mit dem zugewiesenen Informaion Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // fragt nach dem Informationstext // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enth�lt // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enth�lt virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0; // fragt, ob das entsprechende Spiel vom Server gesperrt wurde // spielId: Die Id des Spiels // Gibt 1 zur�ck, falls das Spiel gespielt werden darf, 0 sonnst virtual bool istSpielErlaubt( int spielId ) = 0; // fragt, ob die entsprechende Karte vom Server gesperrt wurde // karteId: Die Id der Karte // Gibt 1 zur�ck, falls die Karte gespielt werden darf, 0 sonnst virtual bool istKarteErlaubt( int karteId ) = 0; // Ermittelt die Id einer Karte // name: Der Name der Karte // Gibt bei misserfolg 0 zur�ck virtual int getKarteId( char *name ) = 0; // Fragt nach der Id eines Spiels // name: Der Name des Spiels // Gibt bei misserfolg 0 zur�ck virtual int getSpielId( char *name ) = 0; // fragt nach dem Namen eines Accounts // accountId: Die Id des Accounts // Gibt bei misserfolg 0 zur�ck virtual Framework::Text *getSpielerName( int accountId ) = 0; // fragt nach der Spiel Statistik eines Accounts // accountId: Die Id des Accounts // spielId: Die Id des Spiels // werte: Nach erfolgreichem Aufruf enth�lt die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5) virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0; // fragt nach dem Namen einer Karte // karteId: Die id der Karte // Gibt bei misserfolg 0 zur�ck virtual Framework::Text *getKarteName( int karteId ) = 0; // fragt nach dem Namen eines Spiels // spielId: Die id des Spiels // Gibt bei misserfolg 0 zur�ck virtual Framework::Text *getSpielName( int spielId ) = 0; // fragt nach dem Namen eines Chatrooms // chatroomId: Die id des Chatrooms // Gibt bei misserfolg 0 zur�ck virtual Framework::Text *getChatroomName( int chatroomId ) = 0; // fragt zu welcher Spielart die Karte geh�rt // karteId: Die id der Karte // Gibt bei misserfolg 0 zur�ck virtual int getSpielId( int karteId ) = 0; // gibt die Id eines Accounts zur�ck // name: Der Angezeigte Name des Accounts // Gibt bei misserfolg 0 zur�ck virtual int getAccountId( char *name ) = 0; // gibt die Id des Chatrooms zur�ck // name: Der name des Chatrooms // Gibt bei misserfolg 0 zur�ck virtual int getChatroomId( char *name ) = 0; // gibt die karten Id zur�ck, zu dem eine Gruppe erstellt wurde // gruppenId: Die id der Gruppe // Gibt bei misserfolg 0 zur�ck virtual int getGruppenKarteId( int gruppenId ) = 0; // gibt 1 zur�ck, wenn zu einer Gruppe Spieler hinzugef�gt werden k�nnen, 0 sonnst // gruppeId: Die id der Gruppe virtual bool getGruppeSpielerHinzuf�gen( int gruppeId ) = 0; // gibt die Account Id des Gruppen Administrators zur�ck // gruppeId: Die Id der Gruppe // Gibt bei misserfolg 0 zur�ck virtual int getGruppeAdminId( int gruppeId ) = 0; // gibt die Punkte eines Spielers zur�ck // accountId: Die Accont Id des Spielers // spielId: Die Id des Spiels // Gibt bei misserfolg 0 zur�ck virtual int getSpielerPunkte( int accountId, int spielId ) = 0; // gibt eine Liste mit Ids von gekauften Spielen zur�ck // Gibt bei misserfolg 0 zur�ck virtual Framework::Array< int > *getAccountSpielArtListe() = 0; // gibt die neuste Version eines Spiels zur�ck // spielId: Die Id des Spiels // Gibt bei misserfolg 0 zur�ck virtual int getSpielVersion( int spielId ) = 0; // gibt das Kupfer des Accounts zur�ck // Gibt bei misserfolg 0 zur�ck virtual int getKupfer() = 0; // Gibt die Dateigruppem Id eines Spieles zur�ck // spielId: Die Id des Spiels // Gibt bei misserfolg 0 zur�ck virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0; // Gibt den Dateigruppen Pfad zur�ck // dgId: Die Id der Dateigruppe // Gibt bei misserfolg 0 zur�ck virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0; // gibt eine Liste mit gekauften Karten zur�ck // spielId: Die Spiel Id zu der die Karten geh�ren sollen // Gibt bei misserfolg 0 zur�ck virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0; // Gibt die Dateigruppen Id eines Pfades zur�ck // pfad: Der Pfad der Dateigruppe // Gibt bei misserfolg 0 zur�ck virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0; // gibt die neuste Version einer Dateigruppe zur�ck // dg: Die Dateigruppen Id // Gibt bei misserfolg 0 zur�ck virtual int getDateiGruppeVersion( int dg ) = 0; // Gibt eine Liste Mit Accounts zur�ck, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist // suche: Der Text, der in den Namen enthalten sein soll // seite: Die gew�nschte Seite der Tabelle (enth�lt nach einem Erfolgreichen Aufruf die korrekte Seite) // maxSeite: Enth�lt nach erfolgreichem Aufruf die Maximale Seite // sortSpalte: Die Spalte, nach der Sortiert werden soll // r�ckw�rts: 1:=R�ckw�rtzt Sortierung, 0:=Vorw�rts Sortierung // accounts: Enth�lt nach erfolgreichem Aufruf die Daten der Accounts // Gibt die Anzahl der gefundenen Accounts zur�ck // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char r�ckw�rts, Framework::RCArray< AccountInfo > *accounts ) = 0; // ermittelt die aktivit�t eines Spielers // accId: Die Id des Accounts // info: Enth�lt nach erfolgreichem Aufruf die Aktivit�tsinformationen der letzten 30 Tage virtual bool getSpielerAktivit�t( int accId, Framework::RCArray< AccountActivityInfo > *info ) = 0; // Gibt zur�ck, wie oft ein Spieler eine Karte schon gespielt hat // account: Die Id des Accounts // karte: Die Id der Karte virtual int getAccountKarteSpiele( int account, int karte ) = 0; // Gibt zur�ck, wie oft ein Spieler eine Karte schon gewonnen hat // account: Die Id des Accounts // karte: Die Id der Karte virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0; // Gibt zur�ck, ob ein Spieler die Karte im Besitz hat // account: Die Id des Accounts // karte: Die Id der Karte virtual bool hatAccountKarte( int account, int karte ) = 0; // Gibt zur�ck, ob ein Spieler ein Spiel im Besitz hat // account: Die Id des Accounts // spiel: Die Id des Spiels virtual bool hatAccountSpiel( int account, int spiel ) = 0; // gibt eine Liste mit Ids von Karten zur�ck, die von einem Spieler bereits gespielt wurden // account: Die Id des Accounts // spiel: Die Id des Spiels // Gibt bei misserfolg 0 zur�ck virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0; // gibt eine Liste mit Ids von Spielen zur�ck, die von einem Spieler bereits gespielt wurden // account: Die Id des Accounts // Gibt bei misserfolg 0 zur�ck virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0; // Gibt eine Liste von Spiel Partnern eines Spielers zur�ck // account: Die Id des Accounts // spieler: Enth�lt nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner // karten: Enth�lt nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten // anzahl: Enth�lt nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0; // Gibt eine Liste mit Spiel Statistiken zur�ck // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll // seite: Die gew�nschte Seite. Enth�lt nach efolgreichem Aufruf die korrekte Seite // maxSeite: Enth�lt nach erfolgreichem Aufruf die Macimale Seite // sortSpalte: Die Spalte, nach der Sortiert werden soll // r�ckw�rts: 1:=R�ckw�rtzt Sortierung, 0:=Vorw�rts Sortierung // werte: Enth�lt nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5) // namen: Enth�lt nach erfolgreichem Aufruf die Namen der Spiele // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char r�ckw�rts, Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0; // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zur�ck // account: Die Id des Accounts // Gibt bei misserfolg 0 zur�ck virtual SpielHistorieListe *getSpielHistorieDaten( int account ) = 0; // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet // spielId: Die id des Spiels // Gibt bei misserfolg 0 zur�ck virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel // Pr�ft, ob der Account bestimmte Berechtigungen besitzt // recht: Die Id der Berechtigungen virtual bool hatRecht( int recht ) = 0; // Pr�ft ob Berechtigung vorhanden // Gibt eine Liste mit Karten zur�ck, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist // filter: Die Zeichenkette, die im Namen Auftreten soll // sortSpalte: Der Index der Spalte, nach der sortiert werden soll // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enth�lt // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enth�lt // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enth�lt // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verk�ufe der Karten enth�lt // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enth�lt virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName, Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0; // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id // karteId: Die Id der Karte // Gibt bei misserfolg 0 zur�ck virtual EditorServerClient *createEditorServerClient( int karteId ) = 0; // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id // karteId: Die Id der Karte // Gibt bei misserfolg 0 zur�ck virtual KartenServerClient *createKartenServerClient( int karteId ) = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual InformationServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual InformationServerClient *release() = 0; }; // Wird verwendet um Chat nachrichten zu senden oder zu empfangen. Das Serversystem sendet au�erdem einiege Mitteilungen �ber den Chat (z.B. Gefundene Spiele, Gruppeneinladungen ...) // Kann nur von eingeloggten Clients verwendet werden class ChatServerClient { public: // verbindet sich mit dem zugewiesenen Chat Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // sendet eine Chat Nachricht zu einem Account // zuAccount: Id des Ziel Accounts // nachricht: Die Nachricht // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatNachricht( int zuAccount, const char *nachricht ) = 0; // �ndert den angezeigten Account Namen // name: der neue Name // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool accountName�ndern( const char *name ) = 0; // beendet die Freundschaft mit einem Account // accountId: Die Id des Accounts // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool freundschaftBeenden( int accountId ) = 0; // sendet eine Freundesanfragezu einem Account // accountId: Die Id des Accounts // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool freundesAnfrage( int accountId ) = 0; // beantwortet eine Freundesanfrage // accountId: Die Id des Accounts // ja: 1:=annehmen,0:=ablehnen // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool freundesAnfrageBeantworten( int accountId, bool ja ) = 0; // erstellt ein chatroom // name: Der Name des Chatrooms // Gibt bei erfolg die Id des Chatrooms zur�ck, 0 sonst virtual int chatroomErstellen( const char *name ) = 0; // Sendet eine Einladung zum Chatroom // accountId: Die Id des Accounts der eingeladen werden soll // chatroomId: Die Id des Chatrooms // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatroomEinladung( int accountId, int chatroomId ) = 0; // Einladung zum Chatroom wird abgelehnt // accountId: Die Id des Accounts // chatroomId: Die Id des Chatrooms // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatroomEinladungAblehnen( int accountId, int chatroomId ) = 0; // betritt ein chatroom // chatroomId: Die Id des Chatrooms // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatroomBetreten( int chatroomId ) = 0; // chatroom Nachricht senden // chatroomId: Die Id des Chatrooms // nachricht: Die Nachricht die gesendet werden soll // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatroomNachricht( int chatroomId, const char *nachricht ) = 0; // verl�sst chatroom // chatroomId: Die Id des Chatrooms // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatroomVerlassen( int chatroomId ) = 0; // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt) // chatroomId: Die Id des Chatrooms // accountId: Die Id des Accounts // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatroomKick( int chatroomId, int accountId ) = 0; // fragt nach allen freunden // Die Liste der Freunde kann �ber getNextMessage empfangen werden // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool freundesListeAnfragen() = 0; // fragt nach allen chatnachrichten, die gesendet wurden, w�hrend der Account in den der Client eingeloggt ist, offline war // Die einzelnen Nachrichten k�nnen �ber getNextMessage empfangen werden // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool chatNachrichtAnfrage() = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Wartet auf eine Nachricht vom Chatserver und gibt diese zur�ck. // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll virtual bool getNextMessage( ChatServerNachricht &nachricht) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual ChatServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual ChatServerClient *release() = 0; }; // Wird verwendet um Spiele oder Karten zu kaufen // Kann nur von eingeloggten Clients verwendet werden class ShopServerClient { public: // verbindet sich mit dem zugewiesenen Shop Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // Gibt eine Liste mit Spiel Ids zur�ck, mit Spielen, die einen Bestimten Text im Namen haben // suche: Der Text, der im Namen der Spiele vorkommen soll // Gibt bei misserfolg 0 zur�ck virtual Framework::Array< int > *suchSpiele( const char *suche ) = 0; // l�d Titelbild des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/titelbg.ltdb // id: Die Id des Spiels // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeSpielTitel( int id ) = 0; // l�d Shop Seite des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/seite.ksgs // id: Die Id des Spiels // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeSpielSeite( int id ) = 0; // Gibt den Besitz Status eines Spiels zur�ck (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft) // id: Die Id des Spiels virtual int getSpielBesitzStatus( int id ) = 0; // gibt die Anzahl der verbleibenden Spiele der Testversion zur�ck // id: Die Id des Spiels virtual int getSpielTestversion( int id ) = 0; // Gibt den Erwerbbarkeits Status eines Spiels zur�ck (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides) // id: Die Id des Spiels virtual int istSpielErwerbbar( int id ) = 0; // Gibt den Preis eines Spiels in Kupfer zur�ck // id: Die Id des Spiels // testVersion: 1:=Es wird der Preis der Testversion zur�ckgegeben, 0:=Es wird der Preis der Vollversion zur�ckgegeben virtual int getSpielPreis( int id, bool testVersion ) = 0; // Kauft ein Spiel // id: Die Id des Spiels // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben virtual bool spielErwerben( int spielId, bool testVersion ) = 0; // sucht nach Karten mit zu einem bestimmten Spiel // suche: Ein Text, der im Namen der Karte vorkommen soll // spielId: Die Id des Spiels // Gibt eine Liste Mit den Ids der gefundenen Karten zur�ck virtual Framework::Array< int > *suchKarten( const char *suche, int spielId ) = 0; // l�dt das Titelbild der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/titelbg.ltdb // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeKarteTitel( int id ) = 0; // l�dt die Shop Seite der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/seite.ksgs // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeKarteSeite( int id ) = 0; // Gibt den Besitz Status einer Karte zur�ck (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft) // id: Die Id der Karte virtual int getKarteBesitzStatus( int id ) = 0; // gibt die Anzahl der verbleibenden Spiele der Testversion zur�ck // id: Die Id der Karte virtual int getKarteTestversion( int id ) = 0; // Gibt den Erwerbbarkeits Status einer Karte zur�ck (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides) // id: Die Id der Karte virtual int istKarteErwerbbar( int id ) = 0; // Gibt den Preis einer Karte in Kupfer zur�ck // id: Die Id der Karte // testVersion: 1:=Es wird der Preis der Testversion zur�ckgegeben, 0:=Es wird der Preis der Vollversion zur�ckgegeben virtual int getKartePreis( int id, bool testVersion ) = 0; // Kauft eine Karte // id: Die Id der Karte // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben virtual bool karteErwerben( int karteId, bool testVersion ) = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual ShopServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual ShopServerClient *release() = 0; }; // Wird verwendet um sich f�r Spiele anzumelden // Kann nur von eingeloggten Clients verwendet werden class AnmeldungServerClient { public: // verbindet sich mit dem zugewiesenen Anmeldung Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // erstellt eine gruppe // karteId: Die Id der Karte f�r die die Gruppe erstellt werden soll // Gibt bei Erfolg die Id der Gruppe zur�ck. Bei misserfolg wird 0 zur�ckgegeben virtual int gruppeErstellen( int karteId ) = 0; // Betritt eine Gruppe // gruppeId: Die Id der Gruppe // mitglieder: Nach erfolgreichem Aufruf enth�lt diese Liste die Lister der Account Ids der Gruppenmitglieder // anzahl: Nach erfolgreichem Aufruf wird hier die Anzahl der Gruppenmitglieder gespeichert // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeBetreten( int gruppeId, Framework::Array< int > *mitglieder, int *anzahl ) = 0; // Verl�sst eine Gruppe // gruppeId: Die Id der Gruppe // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeVerlassen( int gruppeId ) = 0; // Tr�gt die Gruppe in die Warteschlange f�r die Karte ein (nur f�r den Gruppen Administrator) // gruppeId: Die Id der Gruppe // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeAnmelden( int gruppeId ) = 0; // Tr�gt die Gruppe aus der Warteschlange f�r die Karte aus (nur f�r den Gruppen Administrator) // gruppeId: Die Id der Gruppe // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeAbmelden( int gruppeId ) = 0; // l�ht Spieler ein die Gruppe zu betreten (nur f�r den Gruppen Administrator) // accountId: Die Id des Accounts // gruppeId: Die Id der Gruppe // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeSpielerEinladen( int accountId, int gruppeId ) = 0; // Zieht die Einladung eine Gruppe zu betreten zur�ck (nur f�r den Gruppen Administrator) // accountId: Die Id des Accounts // gruppeId: Die Id der Gruppe // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeEinladungAbbrechen( int accountId, int gruppeId ) = 0; // Einladung zur Gruppe ablehnen // gruppeId: Die Id der Gruppe // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeEinladungAblehnen( int gruppeId ) = 0; // wirft Spieler aus Gruppe (nur f�r den Gruppen Administrator) // accountId: Die Id des Accounts // gruppeId: Die Id der Gruppe // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool kickSpielerAusGruppe( int accountId, int gruppeId ) = 0; // Legt fest, ob die Spieler in der Gruppe alleine spielen wollen, oder ob weitere Spieler aus der Warteschlange hinzugef�gt werden sollen bis die Karte voll ist // gruppeId: Die Id der Gruppe // spielStarte: 1:=alleine spielen, 0:=auf volles Spiel warten // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeSpielStarten( int gruppeId, bool spielStarten ) = 0; // Sendet eine Nachricht an den Gruppen Chat // gruppeId: Die Id der Gruppe // nachricht: Die Nachricht, die gesendet werden soll // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool gruppeNachricht( int gruppeId, char *nachricht ) = 0; // Meldet den eingeloggten Account in der Warteschlange f�r eine Karte an // karteId: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool anmelden( int karteId ) = 0; // Meldet den eingeloggten Account aus der Warteschlange ab // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool abmelden() = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual AnmeldungServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual AnmeldungServerClient *release() = 0; }; // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen // Kann nur von eingeloggten Clients verwendet werden class KartenServerClient { public: // verbindet sich mit dem zugewiesenen Karten Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // l�dt eine Karte herunter und speichert sie unter data/tmp/Karten/{id}/spiel // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool downloadKarte( int id ) = 0; // l�dt das Titelbild Karte herunter und speichert es unter data/tmp/Karten/{id}/titel.ltdb // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool downloadKarteTitel( int id ) = 0; // l�dt die Beschreibung Karte herunter und speichert sie unter data/tmp/Karten/{id}/beschreibung.ksgs // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool downloadKarteBeschreibung( int id ) = 0; // l�dt die Minimap Karte herunter und speichert es unter data/tmp/Karten/{id}/minimap.ltdb // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool downloadKarteMinimap( int id ) = 0; // l�dt das Ladebild Karte herunter und speichert es unter data/tmp/Karten/{id}/ladebild.ltdb // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool downloadKarteLadebild( int id ) = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual KartenServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual KartenServerClient *release() = 0; }; // Wird zum Online Spielen verwendet // Kann nur von eingeloggten Clients verwendet werden class SpielServerClient { public: // verbindet sich mit dem zugewiesenen Karten Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // Betritt das Vorgeschlagene Spiel // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool spielErstelltAnnehmen() = 0; // Lehnt das Vorgeschlagene Spiel ab // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool spielErstelltAblehnen() = 0; // Wechselt zu einem bestimmten Team // team: Die Id des teams // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool spielErstelltTeamWechseln( int team ) = 0; // Best�tigt die Teamauswahl so dass das Spiel fr�her beginnen kann // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool spielErstelltTeamFertig() = 0; // sendet eine Chat Nachricht an die mitglieder des erstellten Spiels // nachricht: Die Nachricht // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool spielErstelltChatNachricht( char *nachricht ) = 0; // Teilt dem Server mit, dass der Client bereit ist das Spiel zu laden // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool bereitZumLaden() = 0; // Teilt dem Server mit, zu wie viel Prozent der Client das Spiel geladen hat // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool setLadenProzent( int prozent ) = 0; // Teilt dem Server mit, dass das Spiel fertig geladen wurde // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool bereitZumSpiel() = 0; // Sendet w�hrend des Spiels eine Nachricht an den Server // l�n: Die L�nge der Nachricht // bytes: Ein Zeiger auf die Nachricht // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool spielNachricht( short l�n, char *bytes ) = 0; // Sendet w�hrend der Statistik eine Nachricht an den Server // l�n: Die L�nge der Nachricht // bytes: Ein Zeiger auf die Nachricht // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool statistikNachricht( short l�n, char *bytes ) = 0; // Wartet auf eine Nachricht vom Spiel Servers und gibt diese zur�ck. virtual SpielServerNachricht *getNextMessage() = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual SpielServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual SpielServerClient *release() = 0; }; // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen // Kann nur von eingeloggten Clients verwendet werden class HistorieServerClient { protected: // verbindet sich mit dem zugewiesenen Historie Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde( char *ip, int port ) = 0; // 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 virtual bool trenne() = 0; public: // L�dt die Spiel Aufzeichnung eines Spiels herunter und speichert sie unter data/tmp/historie/{spielId} // Die Spielid wurde dem Objekt zum Zeitpunkt der Erstellung vom Information Server mitgegeben // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst // Diese Funktion verbindet sich selbstst�ndig mit dem Server und trennt die Verbindung nach Beendigung des Vorgangs virtual bool downloadSpielHistorie() = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual HistorieServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual HistorieServerClient *release() = 0; }; // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden // Kann nur von eingeloggten Clients verwendet werden class MinigameServerClient { public: // verbindet sich mit dem zugewiesenen Minigame Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // 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 virtual int getMinigameOptionList( char *mName, Framework::RCArray< Framework::Text > *zOptionList ) = 0; // 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 virtual int getMinigameBestscoreList( char *mName, Framework::Array< int > *zScore, Framework::RCArray< Framework::Text > *zPlayerList, Framework::RCArray< Framework::Text > *zOptionList ) = 0; // 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 virtual int getMinigameOptionBestscore( char *mName, char *oName, Framework::Text *zPlayer ) = 0; // Meldet die Beendigung eines Minigames // mName: Der Name des Minigames // oName: Die Optionen mit denen gespielt wurde // score: Der Erreichte Score // Gibt 0 zur�ck wenn eines Fehler aufgetreten ist, 1 wenn der Forgang erfolgreich war, 2 wenn ein Game Capture hochgeladen werden muss virtual int reportEndOfGame( char *mName, char *oName, int score ) = 0; // L�dt ein Game Capture hoch // zCapture: Ein Zeiger auf die Capture Datei // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool uploadGameCapture( Framework::Datei *zCapture ) = 0; // 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 virtual Framework::Datei *downloadGameCapture( char *mName, char *oName ) = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual MinigameServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual MinigameServerClient *release() = 0; }; // Wird verwendet um Karten f�r Spiele zu erstellen // Kann nur von eingeloggten Clients verwendet werden class EditorServerClient { public: // verbindet sich mit dem zugewiesenen Editor Server // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool verbinde() = 0; // Erstellt eine neue Karte // name: Der Name der Karte // spielArt: Die Id des Spiels // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool karteErstellen( char *name, int spielArt ) = 0; // l�dt eine bestimmte Karte // id: Die Id der Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeKarte( int id ) = 0; // gibt eine Liste mit Abbildern der geladenen Karte zur�ck // name: Enth�lt nach erfolgreichem Aufruf eine Liste mit Namen der Abbilder // datum: Enth�lt nach erfolgreichem Aufruf eine Liste mit dem Datum der Erstellung f�r jedes Abbild // Gibt die Anzahl der Abbilder zur�ck virtual int getAbbildListe( Framework::RCArray< Framework::Text > *name, Framework::RCArray< Framework::Zeit > *datum ) = 0; // Erstellt ein neues Abbild der geladenen Karte // name: Der Name des Abbildes // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool abbildErstellen( char *name ) = 0; // L�scht ein altes Abbild der geladenen Karte // name: Der Name des Abbildes // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool abbildL�schen( char *name ) = 0; // Stellt ein altes Abbild der geladenen Karte wieder her // name: Der Name des Abbildes // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool abbildHerstellen( char *name ) = 0; // Ver�ffentlich eine neue Version der geladenen Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ver�ffentlichen() = 0; // Ver�ffentlich eine neue Version der Shop Seite der geladenen Karte // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool shopSeiteVer�ffentlichen() = 0; // L�ht die Vorschau der Shop Seite der geladenen Karte herrunter und speichert sie unter data/tmp/ke/ssv // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeShopSeiteVorschau() = 0; // Erstellt eine neue Shop Seiten Datei // name: Der Name der Datei // typ: 0=Ordner, 1=Bild, 2=Text // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ssDateiErstellen( char *name, int typ ) = 0; // �ffnet einen Ordner der Shop Seite // name: Der Name des Ordners // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ssOrdner�ffnen( char *name ) = 0; // L�dt das ein Bild der Shop Seite und gibt es zur�ck // datei: Der Name der Bilddatei // bild: Der Name des Bildes // Gibt bei misserfolg 0 zur�ck virtual Framework::Bild *ssBildLaden( char *datei, char *bild ) = 0; // L�scht eine Datei der Shop Seite // name: Der Name der Datei // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ssDateiL�schen( char *name ) = 0; // L�d eine KSGS Datei der Shop Seite und gibt den Quellcode zur�ck // datei: Der Name der Datei // Gibt bei misserfolg 0 zur�ck virtual Framework::Text *ssTextLaden( char *datei ) = 0; // Spechert eine KSGS Datei der Shop Seite // datei: Der Name der Datei // zText: Ein Zeiger auf den neuen Quellcode (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ssTextSpeichern( char *datei, Framework::Text *zText ) = 0; // L�scht ein Bild der Shop Seite // datei: Der Name der Bilddatei // bild: Der Name des Bildes // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ssBildL�schen( char *datei, char *bild ) = 0; // Speichert ein Bild einer ShopSeite // datei: Der name der Bilddatei // name: Der Name des Bildes // zBild: Ein Zeiger auf das Bild (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ssBildSpeichern( char *datei, char *name, Framework::Bild *zBild ) = 0; // L�dt eine Liste mit Dateien von der Shop Seite // zList: Enth�lt nach erfolgreichem Aufruf die Liste mit Dateinamen // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual int ssGetDateiListe( Framework::RCArray< Framework::Text > *zList ) = 0; // L�dt die Bild Liste einer Bild Datei der Shop Seite // name: Der Name der Bilddatei // zList: Enth�lt nach erfolgreichem Aufruf eine Liste mit Bildnamen // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual int ssGetBildListe( char *name, Framework::RCArray< Framework::Text > *zList ) = 0; // L�dt die Shop Daten // es: Enth�lt nach erfolgreichem aufruf den Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides) // tp: Enth�lt nach erfolgreichem Aufruf den Preis der Testversion in Kupfer // vp: Enth�lt nach erfolgreichem Aufruf den Preis der Vollversion in Kupfer // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool getShopDaten( int &es, int &tp, int &vp ) = 0; // Setzt die Shop Daten // es: der Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides) // tp: der Preis der Testversion in Kupfer // vp: der Preis der Vollversion in Kupfer // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool setShopDaten( int es, int tp, int vp ) = 0; // gibt die Kartenbeschreibung als KSGScript Quellcode zur�ck // Gibt bei misserfolg 0 zur�ck virtual Framework::Text *beschreibungLaden() = 0; // gibt das Titelbild der Karte zur�ck // Gibt bei misserfolg 0 zur�ck virtual Framework::Bild *titelbildLaden() = 0; // gibt das Minimap Bild der Karte zur�ck // Gibt bei misserfolg 0 zur�ck virtual Framework::Bild *minimapLaden() = 0; // gibt das Ladebild der Karte zur�ck // Gibt bei misserfolg 0 zur�ck virtual Framework::Bild *ladebildLaden() = 0; // speichert den KSGScript Quellcode der Kartenbeschreibung // zText: Der KSGScript Quellcode (ohne erh�hten reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool beschreibungSpeichern( Framework::Text *zText ) = 0; // speichert das Titelbild der Karte // zBild: das neue Titelbild // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool titelbildSpeichern( Framework::Bild *zBild ) = 0; // speichert das Minimapbild der Karte // zBild: das neue Minimapbild // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool minimapSpeichern( Framework::Bild *zBild ) = 0; // speichert das Ladebild der Karte // zBild: das neue Ladebild // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladebildSpeichern( Framework::Bild *zBild ) = 0; // l�dt die Spieler Team Daten der Karte // sts: Enth�lt nach erfolgreichem Aufruf die Spieler Team Daten // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool ladeTeamDaten( SpielerTeamStruktur *sts ) = 0; // speichert die Team Daten // sts: die neuen Spieler Team Daten // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool speicherTeamDaten( SpielerTeamStruktur *sts ) = 0; // Erstellt neue Datei im Datei Editor // typ: 0=ordner 1=bild 2=modell2d 3=sound // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deNeueDatei( char typ, Framework::Text *zName ) = 0; // �ffnet Ordner im Datei Editor // zName: Der Name des Ordners // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deOrdner�ffnen( Framework::Text *zName ) = 0; // Gibt ein Bild aus dem Datei Editor zur�ck // zDatei: Der Name der Datei (ohne erh�hten Reference Counter) // zBild: Der Name des Bildes (ohne erh�hten Reference Counter) // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erh�hten Reference Counter) // Gibt bei misserfolg 0 zur�ck virtual Framework::Bild *deBildLaden( Framework::Text *zDatei, Framework::Text *zBild, Framework::FBalken *zF ) = 0; // L�scht eine Datei aus dem Datei Editor // zName: Der Name der Datei // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deDateiL�schen( Framework::Text *zName ) = 0; // L�scht Bild aus Datei im Datei Editor // zDatei: Der Name der Bilddatei (ohne erh�hten Reference Counter) // zBild: Der Name des Bildes (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deBildL�schen( Framework::Text *zDatei, Framework::Text *zBild ) = 0; // Speichert Bild in Datei im Datei Editor // zDatei: Der Name der Bilddatei (ohne erh�hten Reference Counter) // zName: Der Name des Bildes (ohne erh�hten Reference Counter) // zBild: Das neue Bild (ohne erh�hten Reference Counter) // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deBildSpeichern( Framework::Text *zDatei, Framework::Text *zName, Framework::Bild *zBild, Framework::FBalken *zF ) = 0; // DateienEditor: Speichert Bild // L�dt eine Liste mit Dateien im aktuellen Ordner des Datei Editors // zNamen: Enth�lt nach erfolgreichem Aufruf eine Liste mit Dateinamen (ohne erh�hten Reference Counter) // Gibt die Anzahl der Dateien zur�ck virtual int deGetDateiListe( Framework::RCArray< Framework::Text > *zNamen ) = 0; // L�dt eine Liste mit Bildern aus einer Bilddatei des Datei Editors // zNamen: Enth�lt nach erfolgreichem Aufruf eine Liste mit den Bildnamen (ohne erh�hten Reference Counter) // Gibt die Anzahl der Bilder zur�ck virtual int deGetBildListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0; // L�dt eine Liste mit 2D Modellen aus einer Modeldatei im Datei Editor // zDatei: Der Name der Modeldatei (ohne erh�hten Reference Counter) // zNamen: Enth�lt nach erfolgreichem Aufruf eine Liste mit den Modelnamen (ohne erh�hten Reference Counter) // Gibt die Anzahl der Modelle zur�ck virtual int deGetModelListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0; // L�dt eine Liste mit Sounds aus einer Sounddatei im Datei Editor // zDatei: Der Name der Sounddatei (ohne erh�hten Reference Counter) // zNamen: Enth�lt nach erfolgreichem Aufruf eine Liste mit den Soundnamen (ohne erh�hten Reference Counter) // Gibt die Anzahl der Sounds zur�ck virtual int deGetSoundListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0; // L�scht ein Model aus einer Modeldatei des Datei Editors // zDatei: Der Name der Modeldatei (ohne erh�hten Reference Counter) // zModel: Der Name des Models (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deModelL�schen( Framework::Text *zDatei, Framework::Text *zModel ) = 0; // L�scht einen Sound aus einer Sounddatei des Datei Editors // zDatei: Der Name der Sounddatei (ohne erh�hten Reference Counter) // zSound: Der Name des Sounds (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deSoundL�schen( Framework::Text *zDatei, Framework::Text *zSound ) = 0; // L�dt ein Model aus einer Modeldatei des Datei Editors // zDatei: Der Name der Modeldatei (ohne erh�hten Reference Counter) // zModel: Enth�lt nach erfolgreichem Aufruf das Model (ohne erh�hten Reference Counter) // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual Framework::Model2DData *deModelLaden( Framework::Text *zDatei, Framework::Text *zModel, Framework::FBalken *zF ) = 0; // L�dt einen Sound herunter und gibt ihn zur�ck // zDatei: Der Name der Sounddatei (ohne erh�hten Reference Counter) // zSound: Der Name des Sounds (ohne erh�hten Reference Counter) // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erh�hten Reference Counter) // Gibt bei misserfolg 0 zur�ck virtual GSL::GSLSoundV *deSoundLaden( Framework::Text *zDatei, Framework::Text *zSound, Framework::FBalken *zF ) = 0; // Speichert ein Model in eine Modeldatei des Datei Editors // zDatei: Der Name der Modeldatei (ohne erh�hten Reference Counter) // zModel: Der Name des Models (ohne erh�hten Reference Counter) // zData: Die Daten des Models (ohne erh�hten Reference Counter) // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deModelSpeichern( Framework::Text *zDatei, Framework::Text *zModel, Framework::Model2DData *zData, Framework::FBalken *zF ) = 0; // Speichert einen Sound in einer Sounddatei des Datei Editors // zDatei: Der Name der Modeldatei (ohne erh�hten Reference Counter) // zSound: Der Name des Sounds (ohne erh�hten Reference Counter) // zData: Die Daten des Sounts (ohne erh�hten Reference Counter) // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erh�hten Reference Counter) // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool deSoundSpeichern( Framework::Text *zDatei, Framework::Text *zSound, GSL::GSLSoundV *zData, Framework::FBalken *zF ) = 0; // L�dt die Kauf Statistik der geladenen Karte // verkauft: Enth�lt nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der K�ufe der Karte der letzten 30 Tage // einkommen: Enth�lt nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der verdinten Kupfer in den letzten 30 Tagen // gespielt: Enth�lt nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Spielen der letzten 30 Tage // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual int getVerkaufStatistik( Framework::Array< int > *verkauft, Framework::Array< int > *einkommen, Framework::Array< int > *gespielt ) = 0; // Startet den Editor Modus, welcher f�r jedes Spiel unterschiedlich funktioniert // Gibt 1 zur�ck, falls der Vorgang erfolgreich ist, 0 sonnst virtual bool initEditor() = 0; // 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 virtual bool keepAlive() = 0; // 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 virtual bool trenne( bool abmelden ) = 0; // Gibt 1 zur�ck, falls der Client verbunden ist, 0 sonst virtual bool istVerbunden() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual EditorServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual EditorServerClient *release() = 0; }; // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen class MainServerClient { public: // Meldet den neuen Client beim Serversystem an. Durch diesen Vorgang erh�lt der Client eine Id und den Port und die Ip Addresse des Main Servers virtual bool registerSSL( char *ip, unsigned short port ) = 0; // Verbindet den Client mit dem Server // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt. virtual bool connect() = 0; // Erzeugt einen Erhaltungs Server Client // Gibt bei misserfolg 0 zur�ck virtual ErhaltungServerClient *createErhaltungServerClient() = 0; // Erzeugt einen Patch Server Client // Gibt bei misserfolg 0 zur�ck virtual PatchServerClient *createPatchServerClient() = 0; // Erzeugt einen News Server Client // Gibt bei misserfolg 0 zur�ck virtual NewsServerClient *createNewsServerClient() = 0; // Erzeugt einen Register Server Client // Gibt bei misserfolg 0 zur�ck virtual RegisterServerClient *createRegisterServerClient() = 0; // Erzeugt einen Login Server Client // Gibt bei misserfolg 0 zur�ck virtual LoginServerClient *createLoginServerClient() = 0; // Erzeugt einen Information Server Client // Gibt bei misserfolg 0 zur�ck virtual InformationServerClient *createInformationServerClient() = 0; // Erzeugt einen Chat Server Client // Gibt bei misserfolg 0 zur�ck virtual ChatServerClient *createChatServerClient() = 0; // Erzeugt einen Shop Server Client // Gibt bei misserfolg 0 zur�ck virtual ShopServerClient *createShopServerClient() = 0; // Erzeugt einen Anmeldung Server Client // Gibt bei misserfolg 0 zur�ck virtual AnmeldungServerClient *createAnmeldungServerClient() = 0; // Erzeugt einen Minigame Server Client // Gibt bei misserfolg 0 zur�ck virtual MinigameServerClient *createMinigameServerClient() = 0; // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde virtual bool disconnect() = 0; // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar virtual bool unregister() = 0; // Gibt die dem Client zugewiesene Id zur�ck. // sollte erst nach dem Aufruf von registerSSL verwendet werden. virtual int getClientId() const = 0; // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zur�ck. // sollte erst nach dem Aufruf von registerSSL verwendet werden. virtual Framework::Text *getServerIp() const = 0; // Gibt den Port des dem Client zugewiesenen Main Servers zur�ck. // sollte erst nach dem Aufruf von registerSSL verwendet werden. virtual unsigned short getServerPort() const = 0; // Gibt den Zeiger auf den Schl�ssel zur�ck // sollte erst nach dem Aufruf von registerSSL verwendet werden. virtual char *zKey() const = 0; // Gibt die L�nge des Schl�ssels zur�ck // sollte erst nach dem Aufruf von registerSSL verwendet werden. virtual unsigned char getKeyLen() const = 0; // gibt den Letzten Fehlertext zu�ck // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist virtual char *getLetzterFehler() const = 0; // Erh�ht den Reference Counter um 1 un gibt this zur�ck virtual MainServerClient *getThis() = 0; // Verringert den Reference Counter um 1 und gibt 0 zur�ck. // Falls der Reference Counter nach dem Aufruf auf 0 ist l�scht sich das Objekt selbst virtual MainServerClient *release() = 0; }; }