KSGNetwork.h 82 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380
  1. #pragma once
  2. #include <Array.h>
  3. #include <Thread.h>
  4. #include "../../Include/StrukturenV.h"
  5. namespace Framework
  6. {
  7. class Text;
  8. class Datei;
  9. class KSGTDatei;
  10. class FBalken;
  11. class Zeit;
  12. class Bild;
  13. class Model2DData;
  14. }
  15. namespace GSL
  16. {
  17. class GSLSoundV;
  18. class GSLDateiV;
  19. }
  20. namespace Network
  21. {
  22. class Klient;
  23. }
  24. #define KSGNETWORK_CREATE_MAIN "createMainServerClient"
  25. #define KSGNETWORK_CREATE_REGISTERD_MAIN "createRegisterdMainServerClient"
  26. namespace KSGClient
  27. {
  28. class MainServerClient;
  29. // Entry Point Functions
  30. typedef MainServerClient *( *KSGNetworkCreateMain )( );
  31. typedef MainServerClient *( *KSGNetworkCreateRegisterdMain )( char *ip, unsigned short port, int clientId, char *key, unsigned char keyLen );
  32. // Enthält die Daten eines Spielers zu einem vergangenen Spiel
  33. struct SpielHistorieSpielerDaten
  34. {
  35. Framework::Text name; // Der Sichtabe Name des Spielers
  36. int punkte; // Die Punkte, die der Spieler in dem Spiel gewonnen / verloren hat
  37. Framework::Text status; // Der Status des Spielers in dem Spiel (verloren, gewonnen, nicht anwesend, beobachter, unentschieden)
  38. int farbe; // Die Farbe des Spielers
  39. };
  40. // Enthält die Datein eines Teams zu einem vergangenen Spiel
  41. struct SpielHistorieTeamDaten
  42. {
  43. Framework::Text name; // Der Sichtabe Name des Teams
  44. int sAnzahl; // Die Anzahl der Spieler im Team
  45. Framework::Text status; // Der Status des Teams (verloren, gewonnen, beobachter, unentschieden)
  46. int farbe; // Die Farbe des Teams
  47. Framework::Array< SpielHistorieSpielerDaten > spieler; // Eine Liste mit den Spielerdaten zu den Spielern aus dem Team
  48. };
  49. // Enthält Daten zu einem vergangenen Spiel
  50. struct SpielHistorieDaten
  51. {
  52. int id; // Die Id des vergangenen Spiels
  53. int karteId; // Die Id der Karte, welche gespielt wurde
  54. Framework::Text spiel; // Der Name des Spiels, welches gespielt wurde
  55. Framework::Text karte; // Der Name der Karte, welche gespielt wurde
  56. Framework::Text datum; // Der Zeitpunkt, an dem das Spiel Statfand
  57. Framework::Text status; // Der Status des Spielers, über welchen die Statistik angefragt wurde
  58. Framework::Text dauer; // Die Dater des Spiels
  59. Framework::Text spielStatus; // Der Status des Spiels (beginnt, läuft, abgebrochen, fehlerhaft, beendet, unbewertet)
  60. Framework::Text gewinner; // Der Name des Gewinners
  61. int sAnzahl; // Die Anzahl der Spieler
  62. Framework::Array< SpielHistorieTeamDaten > teams; // Die Daten der Teams des Spiels
  63. };
  64. // Enthält Informationen zu einem Account
  65. struct AccountInfo
  66. {
  67. int id; // Die Id des Accounts
  68. Framework::Text name; // Der angezeigte Name des Accounts
  69. Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war
  70. Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels
  71. Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte
  72. Framework::Text punkte; // Die Punkte des Spielers in dem Spiel
  73. };
  74. // Enthält Informationen zur Aktivität eines Accounts an einem bestimmten Tag
  75. struct AccountActivityInfo
  76. {
  77. Framework::Text datum; // Das Datum für das die Werte gillt
  78. double stOnline; // Die Anzahl der Stunden, die der Account Online war
  79. double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat
  80. int anzSpiele; // Die Anzahl der gespielten online Spiele
  81. int anzGewonnen; // Die Anzahl der gewonnenen online Spiele
  82. };
  83. class SpielServerClient;
  84. // Enthält eine Nachricht, die von Chat Server gesendet wurde
  85. struct ChatServerNachricht
  86. {
  87. char type; // Typ der Nachricht
  88. Framework::Text message; // Text der Nachricht
  89. int account; // Beteiligter Account
  90. int gruppe; // Beteiligte Gruppe
  91. int chatroom; // Beteiligter Chatraum
  92. Framework::Array< int > ids; // Liste mit Account Ids
  93. SpielServerClient *client; // ein Client zum zugewiesenen Spiel Server
  94. };
  95. // Enthält eine Nachricht von dem Spiel Server
  96. struct SpielServerNachricht
  97. {
  98. char type; // Typ der Nachricht
  99. char sekunden; // Mit der Nachricht zusammenhängende Sekunden
  100. char minuten; // Mit der Nachricht zusammenhängende Minuten
  101. char stunden; // Mit der Nachricht zusammenhängende Stunden
  102. Framework::Text message; // Text der Nachricht
  103. SpielerTeamStrukturV *sts; // Die Spieler Team Struktur eines Spiels
  104. int accountId; // Id des Accounts
  105. int spielerNummer; // Die Spielernummer des Accounts
  106. int karteId; // Die Id der Karte
  107. int prozent; // Der Prozentuale Ladefortschritt
  108. int ping; // Der Ping des Accounts (1000 = 1 Sekunde)
  109. short län; // Länge der gesendeten Daten
  110. char *data; // Die gesendeten Daten
  111. };
  112. // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
  113. class ErhaltungServerClient : protected virtual Framework::Thread
  114. {
  115. protected:
  116. // DBeantwortet Ping - Anfragen des Servers. Falls diese 60 Sekunden lang unbeantwortet bleiben, wird der Client vom Serversystem abgemeldet
  117. virtual void thread() = 0;
  118. public:
  119. // verbindet ich mit dem Erhaltung Server
  120. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  121. virtual bool verbinde() = 0;
  122. // Meldet sich beim Server ab und trennt die Verbindung
  123. virtual void abmelden() = 0;
  124. // Trennt die Verbindung zum Server
  125. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  126. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  127. virtual bool trenne() = 0;
  128. // gibt den Letzten Fehlertext zuück
  129. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  130. virtual char *getLetzterFehler() const = 0;
  131. // Erhöht den Reference Counter um 1 un gibt this zurück
  132. virtual Thread *getThis() = 0;
  133. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  134. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  135. virtual Thread *release() = 0;
  136. };
  137. // Wird benutzt, um aktualisierte Spieldateien herunterzuladen
  138. class PatchServerClient
  139. {
  140. public:
  141. // verbindet ich mit dem Patch Server
  142. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  143. virtual bool verbinde() = 0;
  144. // Gibt eine Tabelle von Dateigruppen zurück.
  145. // Gibt bei misserfolg 0 zurück
  146. virtual Framework::KSGTDatei *getDateiGruppenListe() = 0;
  147. // Gibt eine Tabelle von Dateien zurück.
  148. // gruppe: Die Id der Dateigruppe, zu der die Dateien gehöhren sollen
  149. // Gibt bei misserfolg 0 zurück
  150. virtual Framework::KSGTDatei *getDateiListe( int gruppe ) = 0;
  151. // Gibt die Größe einer Datei in bytes zurück
  152. // gruppe: Die Id der Dateigruppe der Datei
  153. // pfad: Der Pfad der Datei
  154. virtual __int64 getDateiGröße( int gruppe, const char *pfad ) = 0;
  155. // Lädt eine Datei herunter
  156. // gruppe: Die Dateigruppe der Datei
  157. // 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)
  158. // pfad: Der Pfad der Datei
  159. // zielPfad: Der Pfad, an den die Datei gespeichert werden soll
  160. // zFb: Ein Fortschrittsbalken, der automatisch aktualisiert wird
  161. // abbruch: Wenn diese Variable während des Vorgangs auf 1 gesetzt wird, so wird das Herunterladen abgebrochen.
  162. // maxbps: Die Anzahl der bytes pro Sekunde, die maximal übertragen werden sollen
  163. virtual bool downloadDatei( int gruppe, __int64 *start, const char *pfad, const char *zielPfad, Framework::FBalken *zFb, bool *abbruch, int maxbps ) = 0;
  164. // Trennt die Verbindung zum Server
  165. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  166. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  167. virtual bool trenne( bool abmelden ) = 0;
  168. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  169. virtual bool istVerbunden() const = 0;
  170. // Gibt die Anzahl von übertragenen Bytes seit dem letzten Aufruf zurück
  171. virtual int getDownload() const = 0;
  172. // gibt den Letzten Fehlertext zuück
  173. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  174. virtual char *getLetzterFehler() const = 0;
  175. // Erhöht den Reference Counter um 1 un gibt this zurück
  176. virtual PatchServerClient *getThis() = 0;
  177. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  178. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  179. virtual PatchServerClient *release() = 0;
  180. };
  181. // Wird verwendet um News Oberflächen abzufragen (KSG Script Seiten)
  182. class NewsServerClient
  183. {
  184. public:
  185. // verbindet ich mit dem News Server
  186. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  187. virtual bool verbinde() = 0;
  188. // Lädt eine KSG-Script Seite herunter uns speichert sie unter data/tmp/news/{name}
  189. // name: Der Name der Seite
  190. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  191. virtual bool ladeSeite( char *name ) = 0;
  192. // Erhält die Verbindung aufrecht
  193. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  194. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  195. virtual bool keepAlive() = 0;
  196. // Trennt die Verbindung zum Server
  197. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  198. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  199. virtual bool trenne( bool abmelden ) = 0;
  200. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  201. virtual bool istVerbunden() const = 0;
  202. // gibt den Letzten Fehlertext zuück
  203. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  204. virtual char *getLetzterFehler() const = 0;
  205. // Erhöht den Reference Counter um 1 un gibt this zurück
  206. virtual NewsServerClient *getThis() = 0;
  207. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  208. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  209. virtual NewsServerClient *release() = 0;
  210. };
  211. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  212. class RegisterServerClient
  213. {
  214. public:
  215. // verbindet ich mit dem Register Server
  216. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  217. virtual bool verbinde() = 0;
  218. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  219. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  220. // name: Der Login Name des Accounts
  221. // pass: Das Login Passwort des Accounts
  222. // geheim: Das Geheimnis des Accounts
  223. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  224. // jahr: Das Jahr des Geburtsdatums
  225. // monat: Der Monat des Geburtstages
  226. // tag: Der Tag des Geburtstages
  227. virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0;
  228. // 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.
  229. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  230. // name: Der Login Name des Accounts
  231. // pass: Das Login Passwort des Accounts
  232. // geheim: Das Geheimnis des Accounts
  233. virtual bool accountLöschen( const char *name, const char *pass, const char *geheim ) = 0;
  234. // Ändert das Passwort eines Accounts
  235. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  236. // name: Der Login Name des Accounts
  237. // pass: Das Login Passwort des Accounts
  238. // geheim: Das Geheimnis des Accounts
  239. // nPass: Das neue Passwort des Accounts
  240. virtual bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0;
  241. // Ändert die EMail Adresse eines Accounts
  242. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  243. // name: Der Login Name des Accounts
  244. // pass: Das Login Passwort des Accounts
  245. // geheim: Das Geheimnis des Accounts
  246. // nEMail: Die neue EMail Adresse
  247. virtual bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0;
  248. // Ändert das Geheimnis eines Accounts
  249. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  250. // name: Der Login Name des Accounts
  251. // pass: Das Login Passwort des Accounts
  252. // geheim: Das Geheimnis des Accounts
  253. // nGeheim: Das neue Geheimnis
  254. virtual bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0;
  255. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  256. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  257. // pass: Das Login Passwort des Accounts
  258. // geheim: Das Geheimnis des Accounts
  259. virtual bool nameVergessen( const char *pass, const char *geheim ) = 0;
  260. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  261. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  262. // name: Der Login Name des Accounts
  263. // geheim: Das Geheimnis des Accounts
  264. virtual bool passwortVergessen( const char *name, const char *geheim ) = 0;
  265. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  266. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  267. // name: Der Login Name des Accounts
  268. // pass: Das Login Passwort des Accounts
  269. virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0;
  270. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  271. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  272. // name: Der Login Name des Accounts
  273. // pass: Das Login Passwort des Accounts
  274. // geheim: Das Geheimnis des Accounts
  275. // 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
  276. virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0;
  277. // Erhält die Verbindung aufrecht
  278. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  279. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  280. virtual bool keepAlive() = 0;
  281. // Trennt die Verbindung zum Server
  282. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  283. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  284. virtual bool trenne( bool abmelden ) = 0;
  285. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  286. virtual bool istVerbunden() const = 0;
  287. // gibt den Letzten Fehlertext zuück
  288. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  289. virtual char *getLetzterFehler() const = 0;
  290. // Erhöht den Reference Counter um 1 un gibt this zurück
  291. virtual RegisterServerClient *getThis() = 0;
  292. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  293. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  294. virtual RegisterServerClient *release() = 0;
  295. };
  296. // Wird verwendet um sich einzuloggen oder auszuloggen
  297. class LoginServerClient
  298. {
  299. public:
  300. // verbindet sich mit dem zugewiesenen Login Server
  301. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  302. virtual bool verbinde() = 0;
  303. // Der Client wird beim Serversystem in einen Account eingeloggt
  304. // Gibt bei Erfolg 1 zurück, 2 falls en anderer Client in dem Account eingeloggt ist, 0 sonnst
  305. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  306. virtual int login( const char *name, const char *pass ) = 0;
  307. // 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.
  308. virtual bool kick( const char *name, const char *pass, const char *geheim ) = 0;
  309. // logt den Account aus
  310. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  311. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  312. virtual bool logout() = 0;
  313. // Erhält die Verbindung aufrecht
  314. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  315. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  316. virtual bool keepAlive() = 0;
  317. // Trennt die Verbindung zum Server
  318. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  319. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  320. virtual bool trenne( bool abmelden ) = 0;
  321. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  322. virtual bool istVerbunden() const = 0;
  323. // Gibt die Id des Accounts zurück, in den sich der Client eingeloggt hat.
  324. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  325. virtual int getAccountId() const = 0;
  326. // gibt den Letzten Fehlertext zuück
  327. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  328. virtual char *getLetzterFehler() const = 0;
  329. // Erhöht den Reference Counter um 1 un gibt this zurück
  330. virtual LoginServerClient *getThis() = 0;
  331. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  332. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  333. virtual LoginServerClient *release() = 0;
  334. };
  335. class EditorServerClient;
  336. class KartenServerClient;
  337. class HistorieServerClient;
  338. // Wird verwendet um informationen über Accounts abzufragen
  339. // Kann nur von eingeloggten Clients verwendet werden
  340. class InformationServerClient
  341. {
  342. public:
  343. // verbindet ich mit dem zugewiesenen Informaion Server
  344. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  345. virtual bool verbinde() = 0;
  346. // fragt nach dem Informationstext
  347. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  348. // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält
  349. // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält
  350. virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0;
  351. // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  352. // spielId: Die Id des Spiels
  353. // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst
  354. virtual bool istSpielErlaubt( int spielId ) = 0;
  355. // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  356. // karteId: Die Id der Karte
  357. // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst
  358. virtual bool istKarteErlaubt( int karteId ) = 0;
  359. // Ermittelt die Id einer Karte
  360. // name: Der Name der Karte
  361. // Gibt bei misserfolg 0 zurück
  362. virtual int getKarteId( char *name ) = 0;
  363. // Fragt nach der Id eines Spiels
  364. // name: Der Name des Spiels
  365. // Gibt bei misserfolg 0 zurück
  366. virtual int getSpielId( char *name ) = 0;
  367. // fragt nach dem Namen eines Accounts
  368. // accountId: Die Id des Accounts
  369. // Gibt bei misserfolg 0 zurück
  370. virtual Framework::Text *getSpielerName( int accountId ) = 0;
  371. // fragt nach der Spiel Statistik eines Accounts
  372. // accountId: Die Id des Accounts
  373. // spielId: Die Id des Spiels
  374. // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  375. virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0;
  376. // fragt nach dem Namen einer Karte
  377. // karteId: Die id der Karte
  378. // Gibt bei misserfolg 0 zurück
  379. virtual Framework::Text *getKarteName( int karteId ) = 0;
  380. // fragt nach dem Namen eines Spiels
  381. // spielId: Die id des Spiels
  382. // Gibt bei misserfolg 0 zurück
  383. virtual Framework::Text *getSpielName( int spielId ) = 0;
  384. // fragt nach dem Namen eines Chatrooms
  385. // chatroomId: Die id des Chatrooms
  386. // Gibt bei misserfolg 0 zurück
  387. virtual Framework::Text *getChatroomName( int chatroomId ) = 0;
  388. // fragt zu welcher Spielart die Karte gehört
  389. // karteId: Die id der Karte
  390. // Gibt bei misserfolg 0 zurück
  391. virtual int getSpielId( int karteId ) = 0;
  392. // gibt die Id eines Accounts zurück
  393. // name: Der Angezeigte Name des Accounts
  394. // Gibt bei misserfolg 0 zurück
  395. virtual int getAccountId( char *name ) = 0;
  396. // gibt die Id des Chatrooms zurück
  397. // name: Der name des Chatrooms
  398. // Gibt bei misserfolg 0 zurück
  399. virtual int getChatroomId( char *name ) = 0;
  400. // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
  401. // gruppenId: Die id der Gruppe
  402. // Gibt bei misserfolg 0 zurück
  403. virtual int getGruppenKarteId( int gruppenId ) = 0;
  404. // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
  405. // gruppeId: Die id der Gruppe
  406. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0;
  407. // gibt die Account Id des Gruppen Administrators zurück
  408. // gruppeId: Die Id der Gruppe
  409. // Gibt bei misserfolg 0 zurück
  410. virtual int getGruppeAdminId( int gruppeId ) = 0;
  411. // gibt die Punkte eines Spielers zurück
  412. // accountId: Die Accont Id des Spielers
  413. // spielId: Die Id des Spiels
  414. // Gibt bei misserfolg 0 zurück
  415. virtual int getSpielerPunkte( int accountId, int spielId ) = 0;
  416. // gibt eine Liste mit Ids von gekauften Spielen zurück
  417. // Gibt bei misserfolg 0 zurück
  418. virtual Framework::Array< int > *getAccountSpielArtListe() = 0;
  419. // gibt die neuste Version eines Spiels zurück
  420. // spielId: Die Id des Spiels
  421. // Gibt bei misserfolg 0 zurück
  422. virtual int getSpielVersion( int spielId ) = 0;
  423. // gibt das Kupfer des Accounts zurück
  424. // Gibt bei misserfolg 0 zurück
  425. virtual int getKupfer() = 0;
  426. // Gibt die Dateigruppem Id eines Spieles zurück
  427. // spielId: Die Id des Spiels
  428. // Gibt bei misserfolg 0 zurück
  429. virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0;
  430. // Gibt den Dateigruppen Pfad zurück
  431. // dgId: Die Id der Dateigruppe
  432. // Gibt bei misserfolg 0 zurück
  433. virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0;
  434. // gibt eine Liste mit gekauften Karten zurück
  435. // spielId: Die Spiel Id zu der die Karten gehören sollen
  436. // Gibt bei misserfolg 0 zurück
  437. virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0;
  438. // Gibt die Dateigruppen Id eines Pfades zurück
  439. // pfad: Der Pfad der Dateigruppe
  440. // Gibt bei misserfolg 0 zurück
  441. virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0;
  442. // gibt die neuste Version einer Dateigruppe zurück
  443. // dg: Die Dateigruppen Id
  444. // Gibt bei misserfolg 0 zurück
  445. virtual int getDateiGruppeVersion( int dg ) = 0;
  446. // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist
  447. // suche: Der Text, der in den Namen enthalten sein soll
  448. // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite)
  449. // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite
  450. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  451. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  452. // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts
  453. // Gibt die Anzahl der gefundenen Accounts zurück
  454. // Gibt die Anzahl der Spieler zurück, -1 bei fehler
  455. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts, Framework::Array< AccountInfo > *accounts ) = 0;
  456. // ermittelt die aktivität eines Spielers
  457. // accId: Die Id des Accounts
  458. // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
  459. virtual bool getSpielerAktivität( int accId, Framework::Array< AccountActivityInfo > *info ) = 0;
  460. // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  461. // account: Die Id des Accounts
  462. // karte: Die Id der Karte
  463. virtual int getAccountKarteSpiele( int account, int karte ) = 0;
  464. // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  465. // account: Die Id des Accounts
  466. // karte: Die Id der Karte
  467. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0;
  468. // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  469. // account: Die Id des Accounts
  470. // karte: Die Id der Karte
  471. virtual bool hatAccountKarte( int account, int karte ) = 0;
  472. // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  473. // account: Die Id des Accounts
  474. // spiel: Die Id des Spiels
  475. virtual bool hatAccountSpiel( int account, int spiel ) = 0;
  476. // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden
  477. // account: Die Id des Accounts
  478. // spiel: Die Id des Spiels
  479. // Gibt bei misserfolg 0 zurück
  480. virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0;
  481. // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden
  482. // account: Die Id des Accounts
  483. // Gibt bei misserfolg 0 zurück
  484. virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0;
  485. // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  486. // account: Die Id des Accounts
  487. // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner
  488. // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten
  489. // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele
  490. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  491. virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0;
  492. // Gibt eine Liste mit Spiel Statistiken zurück
  493. // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll
  494. // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite
  495. // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite
  496. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  497. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  498. // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  499. // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele
  500. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  501. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  502. Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0;
  503. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  504. // account: Die Id des Accounts
  505. // Gibt bei misserfolg 0 zurück
  506. virtual Array< SpielHistorieDaten > *getSpielHistorieDaten( int account ) = 0;
  507. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  508. // spielId: Die id des Spiels
  509. // Gibt bei misserfolg 0 zurück
  510. virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel
  511. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  512. // recht: Die Id der Berechtigungen
  513. virtual bool hatRecht( int recht ) = 0; // Prüft ob Berechtigung vorhanden
  514. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  515. // filter: Die Zeichenkette, die im Namen Auftreten soll
  516. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  517. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  518. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  519. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  520. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  521. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  522. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  523. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  524. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName,
  525. Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0;
  526. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  527. // karteId: Die Id der Karte
  528. // Gibt bei misserfolg 0 zurück
  529. virtual EditorServerClient *createEditorServerClient( int karteId ) = 0;
  530. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  531. // karteId: Die Id der Karte
  532. // Gibt bei misserfolg 0 zurück
  533. virtual KartenServerClient *createKartenServerClient( int karteId ) = 0;
  534. // Erhält die Verbindung aufrecht
  535. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  536. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  537. virtual bool keepAlive() = 0;
  538. // Trennt die Verbindung zum Server
  539. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  540. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  541. virtual bool trenne( bool abmelden ) = 0;
  542. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  543. virtual bool istVerbunden() const = 0;
  544. // gibt den Letzten Fehlertext zuück
  545. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  546. virtual char *getLetzterFehler() const = 0;
  547. // Erhöht den Reference Counter um 1 un gibt this zurück
  548. virtual InformationServerClient *getThis() = 0;
  549. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  550. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  551. virtual InformationServerClient *release() = 0;
  552. };
  553. // 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 ...)
  554. // Kann nur von eingeloggten Clients verwendet werden
  555. class ChatServerClient
  556. {
  557. public:
  558. // verbindet sich mit dem zugewiesenen Chat Server
  559. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  560. virtual bool verbinde() = 0;
  561. // sendet eine Chat Nachricht zu einem Account
  562. // zuAccount: Id des Ziel Accounts
  563. // nachricht: Die Nachricht
  564. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  565. virtual bool chatNachricht( int zuAccount, const char *nachricht ) = 0;
  566. // ändert den angezeigten Account Namen
  567. // name: der neue Name
  568. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  569. virtual bool accountNameÄndern( const char *name ) = 0;
  570. // beendet die Freundschaft mit einem Account
  571. // accountId: Die Id des Accounts
  572. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  573. virtual bool freundschaftBeenden( int accountId ) = 0;
  574. // sendet eine Freundesanfragezu einem Account
  575. // accountId: Die Id des Accounts
  576. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  577. virtual bool freundesAnfrage( int accountId ) = 0;
  578. // beantwortet eine Freundesanfrage
  579. // accountId: Die Id des Accounts
  580. // ja: 1:=annehmen,0:=ablehnen
  581. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  582. virtual bool freundesAnfrageBeantworten( int accountId, bool ja ) = 0;
  583. // erstellt ein chatroom
  584. // name: Der Name des Chatrooms
  585. // Gibt bei erfolg die Id des Chatrooms zurück, 0 sonst
  586. virtual int chatroomErstellen( const char *name ) = 0;
  587. // Sendet eine Einladung zum Chatroom
  588. // accountId: Die Id des Accounts der eingeladen werden soll
  589. // chatroomId: Die Id des Chatrooms
  590. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  591. virtual bool chatroomEinladung( int accountId, int chatroomId ) = 0;
  592. // Einladung zum Chatroom wird abgelehnt
  593. // accountId: Die Id des Accounts
  594. // chatroomId: Die Id des Chatrooms
  595. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  596. virtual bool chatroomEinladungAblehnen( int accountId, int chatroomId ) = 0;
  597. // betritt ein chatroom
  598. // chatroomId: Die Id des Chatrooms
  599. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  600. virtual bool chatroomBetreten( int chatroomId ) = 0;
  601. // chatroom Nachricht senden
  602. // chatroomId: Die Id des Chatrooms
  603. // nachricht: Die Nachricht die gesendet werden soll
  604. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  605. virtual bool chatroomNachricht( int chatroomId, const char *nachricht ) = 0;
  606. // verlässt chatroom
  607. // chatroomId: Die Id des Chatrooms
  608. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  609. virtual bool chatroomVerlassen( int chatroomId ) = 0;
  610. // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt)
  611. // chatroomId: Die Id des Chatrooms
  612. // accountId: Die Id des Accounts
  613. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  614. virtual bool chatroomKick( int chatroomId, int accountId ) = 0;
  615. // fragt nach allen freunden
  616. // Die Liste der Freunde kann über getNextMessage empfangen werden
  617. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  618. virtual bool freundesListeAnfragen() = 0;
  619. // fragt nach allen chatnachrichten, die gesendet wurden, während der Account in den der Client eingeloggt ist, offline war
  620. // Die einzelnen Nachrichten können über getNextMessage empfangen werden
  621. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  622. virtual bool chatNachrichtAnfrage() = 0;
  623. // Erhält die Verbindung aufrecht
  624. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  625. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  626. virtual bool keepAlive() = 0;
  627. // Trennt die Verbindung zum Server
  628. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  629. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  630. virtual bool trenne( bool abmelden ) = 0;
  631. // Wartet auf eine Nachricht vom Chatserver.
  632. // Gibt bei Erfolg 1 zurück, 0 sonnst
  633. // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
  634. virtual bool getNextMessage( ChatServerNachricht &nachricht) = 0;
  635. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  636. virtual bool istVerbunden() const = 0;
  637. // gibt den Letzten Fehlertext zuück
  638. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  639. virtual char *getLetzterFehler() const = 0;
  640. // Erhöht den Reference Counter um 1 un gibt this zurück
  641. virtual ChatServerClient *getThis() = 0;
  642. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  643. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  644. virtual ChatServerClient *release() = 0;
  645. };
  646. // Wird verwendet um Spiele oder Karten zu kaufen
  647. // Kann nur von eingeloggten Clients verwendet werden
  648. class ShopServerClient
  649. {
  650. public:
  651. // verbindet sich mit dem zugewiesenen Shop Server
  652. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  653. virtual bool verbinde() = 0;
  654. // Gibt eine Liste mit Spiel Ids zurück, mit Spielen, die einen Bestimten Text im Namen haben
  655. // suche: Der Text, der im Namen der Spiele vorkommen soll
  656. // Gibt bei misserfolg 0 zurück
  657. virtual Framework::Array< int > *suchSpiele( const char *suche ) = 0;
  658. // läd Titelbild des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/titelbg.ltdb
  659. // id: Die Id des Spiels
  660. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  661. virtual bool ladeSpielTitel( int id ) = 0;
  662. // läd Shop Seite des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/seite.ksgs
  663. // id: Die Id des Spiels
  664. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  665. virtual bool ladeSpielSeite( int id ) = 0;
  666. // Gibt den Besitz Status eines Spiels zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  667. // id: Die Id des Spiels
  668. virtual int getSpielBesitzStatus( int id ) = 0;
  669. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  670. // id: Die Id des Spiels
  671. virtual int getSpielTestversion( int id ) = 0;
  672. // Gibt den Erwerbbarkeits Status eines Spiels zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  673. // id: Die Id des Spiels
  674. virtual int istSpielErwerbbar( int id ) = 0;
  675. // Gibt den Preis eines Spiels in Kupfer zurück
  676. // id: Die Id des Spiels
  677. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  678. virtual int getSpielPreis( int id, bool testVersion ) = 0;
  679. // Kauft ein Spiel
  680. // id: Die Id des Spiels
  681. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  682. virtual bool spielErwerben( int spielId, bool testVersion ) = 0;
  683. // sucht nach Karten mit zu einem bestimmten Spiel
  684. // suche: Ein Text, der im Namen der Karte vorkommen soll
  685. // spielId: Die Id des Spiels
  686. // Gibt eine Liste Mit den Ids der gefundenen Karten zurück
  687. virtual Framework::Array< int > *suchKarten( const char *suche, int spielId ) = 0;
  688. // lädt das Titelbild der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/titelbg.ltdb
  689. // id: Die Id der Karte
  690. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  691. virtual bool ladeKarteTitel( int id ) = 0;
  692. // lädt die Shop Seite der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/seite.ksgs
  693. // id: Die Id der Karte
  694. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  695. virtual bool ladeKarteSeite( int id ) = 0;
  696. // Gibt den Besitz Status einer Karte zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  697. // id: Die Id der Karte
  698. virtual int getKarteBesitzStatus( int id ) = 0;
  699. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  700. // id: Die Id der Karte
  701. virtual int getKarteTestversion( int id ) = 0;
  702. // Gibt den Erwerbbarkeits Status einer Karte zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  703. // id: Die Id der Karte
  704. virtual int istKarteErwerbbar( int id ) = 0;
  705. // Gibt den Preis einer Karte in Kupfer zurück
  706. // id: Die Id der Karte
  707. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  708. virtual int getKartePreis( int id, bool testVersion ) = 0;
  709. // Kauft eine Karte
  710. // id: Die Id der Karte
  711. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  712. virtual bool karteErwerben( int karteId, bool testVersion ) = 0;
  713. // Erhält die Verbindung aufrecht
  714. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  715. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  716. virtual bool keepAlive() = 0;
  717. // Trennt die Verbindung zum Server
  718. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  719. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  720. virtual bool trenne( bool abmelden ) = 0;
  721. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  722. virtual bool istVerbunden() const = 0;
  723. // gibt den Letzten Fehlertext zuück
  724. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  725. virtual char *getLetzterFehler() const = 0;
  726. // Erhöht den Reference Counter um 1 un gibt this zurück
  727. virtual ShopServerClient *getThis() = 0;
  728. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  729. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  730. virtual ShopServerClient *release() = 0;
  731. };
  732. // Wird verwendet um sich für Spiele anzumelden
  733. // Kann nur von eingeloggten Clients verwendet werden
  734. class AnmeldungServerClient
  735. {
  736. public:
  737. // verbindet sich mit dem zugewiesenen Anmeldung Server
  738. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  739. virtual bool verbinde() = 0;
  740. // erstellt eine gruppe
  741. // karteId: Die Id der Karte für die die Gruppe erstellt werden soll
  742. // Gibt bei Erfolg die Id der Gruppe zurück. Bei misserfolg wird 0 zurückgegeben
  743. virtual int gruppeErstellen( int karteId ) = 0;
  744. // Betritt eine Gruppe
  745. // gruppeId: Die Id der Gruppe
  746. // mitglieder: Nach erfolgreichem Aufruf enthält diese Liste die Lister der Account Ids der Gruppenmitglieder
  747. // anzahl: Nach erfolgreichem Aufruf wird hier die Anzahl der Gruppenmitglieder gespeichert
  748. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  749. virtual bool gruppeBetreten( int gruppeId, Framework::Array< int > *mitglieder, int *anzahl ) = 0;
  750. // Verlässt eine Gruppe
  751. // gruppeId: Die Id der Gruppe
  752. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  753. virtual bool gruppeVerlassen( int gruppeId ) = 0;
  754. // Trägt die Gruppe in die Warteschlange für die Karte ein (nur für den Gruppen Administrator)
  755. // gruppeId: Die Id der Gruppe
  756. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  757. virtual bool gruppeAnmelden( int gruppeId ) = 0;
  758. // Trägt die Gruppe aus der Warteschlange für die Karte aus (nur für den Gruppen Administrator)
  759. // gruppeId: Die Id der Gruppe
  760. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  761. virtual bool gruppeAbmelden( int gruppeId ) = 0;
  762. // läht Spieler ein die Gruppe zu betreten (nur für den Gruppen Administrator)
  763. // accountId: Die Id des Accounts
  764. // gruppeId: Die Id der Gruppe
  765. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  766. virtual bool gruppeSpielerEinladen( int accountId, int gruppeId ) = 0;
  767. // Zieht die Einladung eine Gruppe zu betreten zurück (nur für den Gruppen Administrator)
  768. // accountId: Die Id des Accounts
  769. // gruppeId: Die Id der Gruppe
  770. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  771. virtual bool gruppeEinladungAbbrechen( int accountId, int gruppeId ) = 0;
  772. // Einladung zur Gruppe ablehnen
  773. // gruppeId: Die Id der Gruppe
  774. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  775. virtual bool gruppeEinladungAblehnen( int gruppeId ) = 0;
  776. // wirft Spieler aus Gruppe (nur für den Gruppen Administrator)
  777. // accountId: Die Id des Accounts
  778. // gruppeId: Die Id der Gruppe
  779. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  780. virtual bool kickSpielerAusGruppe( int accountId, int gruppeId ) = 0;
  781. // 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
  782. // gruppeId: Die Id der Gruppe
  783. // spielStarte: 1:=alleine spielen, 0:=auf volles Spiel warten
  784. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  785. virtual bool gruppeSpielStarten( int gruppeId, bool spielStarten ) = 0;
  786. // Sendet eine Nachricht an den Gruppen Chat
  787. // gruppeId: Die Id der Gruppe
  788. // nachricht: Die Nachricht, die gesendet werden soll
  789. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  790. virtual bool gruppeNachricht( int gruppeId, char *nachricht ) = 0;
  791. // Meldet den eingeloggten Account in der Warteschlange für eine Karte an
  792. // karteId: Die Id der Karte
  793. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  794. virtual bool anmelden( int karteId ) = 0;
  795. // Meldet den eingeloggten Account aus der Warteschlange ab
  796. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  797. virtual bool abmelden() = 0;
  798. // Erhält die Verbindung aufrecht
  799. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  800. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  801. virtual bool keepAlive() = 0;
  802. // Trennt die Verbindung zum Server
  803. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  804. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  805. virtual bool trenne( bool abmelden ) = 0;
  806. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  807. virtual bool istVerbunden() const = 0;
  808. // gibt den Letzten Fehlertext zuück
  809. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  810. virtual char *getLetzterFehler() const = 0;
  811. // Erhöht den Reference Counter um 1 un gibt this zurück
  812. virtual AnmeldungServerClient *getThis() = 0;
  813. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  814. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  815. virtual AnmeldungServerClient *release() = 0;
  816. };
  817. // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen
  818. // Kann nur von eingeloggten Clients verwendet werden
  819. class KartenServerClient
  820. {
  821. public:
  822. // verbindet sich mit dem zugewiesenen Karten Server
  823. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  824. virtual bool verbinde() = 0;
  825. // lädt eine Karte herunter und speichert sie unter data/tmp/Karten/{id}/spiel
  826. // id: Die Id der Karte
  827. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  828. virtual bool downloadKarte( int id ) = 0;
  829. // lädt das Titelbild Karte herunter und speichert es unter data/tmp/Karten/{id}/titel.ltdb
  830. // id: Die Id der Karte
  831. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  832. virtual bool downloadKarteTitel( int id ) = 0;
  833. // lädt die Beschreibung Karte herunter und speichert sie unter data/tmp/Karten/{id}/beschreibung.ksgs
  834. // id: Die Id der Karte
  835. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  836. virtual bool downloadKarteBeschreibung( int id ) = 0;
  837. // lädt die Minimap Karte herunter und speichert es unter data/tmp/Karten/{id}/minimap.ltdb
  838. // id: Die Id der Karte
  839. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  840. virtual bool downloadKarteMinimap( int id ) = 0;
  841. // lädt das Ladebild Karte herunter und speichert es unter data/tmp/Karten/{id}/ladebild.ltdb
  842. // id: Die Id der Karte
  843. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  844. virtual bool downloadKarteLadebild( int id ) = 0;
  845. // Erhält die Verbindung aufrecht
  846. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  847. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  848. virtual bool keepAlive() = 0;
  849. // Trennt die Verbindung zum Server
  850. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  851. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  852. virtual bool trenne( bool abmelden ) = 0;
  853. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  854. virtual bool istVerbunden() const = 0;
  855. // gibt den Letzten Fehlertext zuück
  856. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  857. virtual char *getLetzterFehler() const = 0;
  858. // Erhöht den Reference Counter um 1 un gibt this zurück
  859. virtual KartenServerClient *getThis() = 0;
  860. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  861. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  862. virtual KartenServerClient *release() = 0;
  863. };
  864. // Wird zum Online Spielen verwendet
  865. // Kann nur von eingeloggten Clients verwendet werden
  866. class SpielServerClient
  867. {
  868. public:
  869. // verbindet sich mit dem zugewiesenen Karten Server
  870. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  871. virtual bool verbinde() = 0;
  872. // Betritt das Vorgeschlagene Spiel
  873. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  874. virtual bool spielErstelltAnnehmen() = 0;
  875. // Lehnt das Vorgeschlagene Spiel ab
  876. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  877. virtual bool spielErstelltAblehnen() = 0;
  878. // Wechselt zu einem bestimmten Team
  879. // team: Die Id des teams
  880. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  881. virtual bool spielErstelltTeamWechseln( int team ) = 0;
  882. // Bestätigt die Teamauswahl so dass das Spiel früher beginnen kann
  883. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  884. virtual bool spielErstelltTeamFertig() = 0;
  885. // sendet eine Chat Nachricht an die mitglieder des erstellten Spiels
  886. // nachricht: Die Nachricht
  887. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  888. virtual bool spielErstelltChatNachricht( char *nachricht ) = 0;
  889. // Teilt dem Server mit, dass der Client bereit ist das Spiel zu laden
  890. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  891. virtual bool bereitZumLaden() = 0;
  892. // Teilt dem Server mit, zu wie viel Prozent der Client das Spiel geladen hat
  893. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  894. virtual bool setLadenProzent( int prozent ) = 0;
  895. // Teilt dem Server mit, dass das Spiel fertig geladen wurde
  896. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  897. virtual bool bereitZumSpiel() = 0;
  898. // Sendet während des Spiels eine Nachricht an den Server
  899. // län: Die Länge der Nachricht
  900. // bytes: Ein Zeiger auf die Nachricht
  901. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  902. virtual bool spielNachricht( short län, char *bytes ) = 0;
  903. // Sendet während der Statistik eine Nachricht an den Server
  904. // län: Die Länge der Nachricht
  905. // bytes: Ein Zeiger auf die Nachricht
  906. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  907. virtual bool statistikNachricht( short län, char *bytes ) = 0;
  908. // Wartet auf eine Nachricht vom Spiel Server.
  909. // Gibt bei Erfolg 1 zurück, 0 sonnst
  910. // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
  911. virtual bool getNextMessage( SpielServerNachricht &nachricht ) = 0;
  912. // Erhält die Verbindung aufrecht
  913. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  914. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  915. virtual bool keepAlive() = 0;
  916. // Trennt die Verbindung zum Server
  917. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  918. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  919. virtual bool trenne() = 0;
  920. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  921. virtual bool istVerbunden() const = 0;
  922. // gibt den Letzten Fehlertext zuück
  923. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  924. virtual char *getLetzterFehler() const = 0;
  925. // Erhöht den Reference Counter um 1 un gibt this zurück
  926. virtual SpielServerClient *getThis() = 0;
  927. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  928. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  929. virtual SpielServerClient *release() = 0;
  930. };
  931. // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen
  932. // Kann nur von eingeloggten Clients verwendet werden
  933. class HistorieServerClient
  934. {
  935. protected:
  936. // verbindet sich mit dem zugewiesenen Historie Server
  937. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  938. virtual bool verbinde() = 0;
  939. // Trennt die Verbindung zum Server
  940. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  941. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  942. virtual bool trenne( bool abmelden ) = 0;
  943. public:
  944. // Lädt die Spiel Aufzeichnung eines Spiels herunter und speichert sie unter data/tmp/historie/{spielId}
  945. // Die Spielid wurde dem Objekt zum Zeitpunkt der Erstellung vom Information Server mitgegeben
  946. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  947. // Diese Funktion verbindet sich selbstständig mit dem Server und trennt die Verbindung nach Beendigung des Vorgangs
  948. virtual bool downloadSpielHistorie() = 0;
  949. // gibt den Letzten Fehlertext zuück
  950. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  951. virtual char *getLetzterFehler() const = 0;
  952. // Erhöht den Reference Counter um 1 un gibt this zurück
  953. virtual HistorieServerClient *getThis() = 0;
  954. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  955. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  956. virtual HistorieServerClient *release() = 0;
  957. };
  958. // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden
  959. // Kann nur von eingeloggten Clients verwendet werden
  960. class MinigameServerClient
  961. {
  962. public:
  963. // verbindet sich mit dem zugewiesenen Minigame Server
  964. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  965. virtual bool verbinde() = 0;
  966. // Gibt die Id des aktuell spielenden Accounts zurück
  967. virtual int getAccountId() = 0;
  968. // Gibt den Anzeigenamen eines bestimmten Accounts zurück
  969. // id: Die id des Accounts
  970. virtual Text *getAccountName( int id ) = 0;
  971. // Gibt eine geheime zeichenkette die nur der client kennt zurück (ist bei spielstart)
  972. virtual Text *getSecret() = 0;
  973. // Ermittelt die liste mit allen Optionen zu einem Minigame zurück, zu denen es Welt beste Scores gibt
  974. // mName: Der Name des Minigames
  975. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen
  976. // Gibt die Anzahl der Optionen zurück
  977. virtual int getMinigameOptionList( char *mName, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  978. // Ermittelt eine Liste mit den Weltbesten Scores zurück
  979. // mName: Der Name des Minigames
  980. // zScore: Enthält nach erfolgreichem Aufruf eine Liste mit Scores
  981. // zPlayerList: Enthält nach erfolgreichem Aufruf eine Liste mit angezeigten Account Namen, die die Scores erreicht haben.
  982. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen, die beim erreichen der Scores aktiv waren.
  983. // Gibt die Anzahl der Bestscores zurück
  984. virtual int getMinigameBestscoreList( char *mName, Framework::Array< int > *zScore, Framework::RCArray< Framework::Text > *zPlayerList, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  985. // Gibt den Welt bestscore zu einem Bestimmten Minigame mit bestimmten Optionen zurück.
  986. // mName: Der Name des Minigames
  987. // oName: Die Optionen
  988. // zPlayer: Enthält nach erfolgreichem Aufruf den Angezeigten Namen des Accounts, der den Score erreicht hat
  989. virtual int getMinigameOptionBestscore( char *mName, char *oName, Framework::Text *zPlayer ) = 0;
  990. // Meldet die Beendigung eines Minigames
  991. // mName: Der Name des Minigames
  992. // oName: Die Optionen mit denen gespielt wurde
  993. // score: Der Erreichte Score
  994. // zCapture: Ein Zeiger auf eine Datei mit der Spielaufzeichnung
  995. // Gibt 0 zurück wenn eines Fehler aufgetreten ist, 1 wenn der Forgang erfolgreich war
  996. virtual bool reportEndOfGame( char *mName, char *oName, int score, Framework::Datei *zCapture ) = 0;
  997. // Lädt ein Game Capture herunter und speichert sie unter data/tmp/minigames/wb.mgc
  998. // mName: Der Name des Minigames
  999. // oName: Die Optionen
  1000. // Gibt die Datei mit dem Capture zurück
  1001. virtual Framework::Datei *downloadGameCapture( char *mName, char *oName ) = 0;
  1002. // Erhält die Verbindung aufrecht
  1003. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1004. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  1005. virtual bool keepAlive() = 0;
  1006. // Trennt die Verbindung zum Server
  1007. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1008. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  1009. virtual bool trenne( bool abmelden ) = 0;
  1010. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  1011. virtual bool istVerbunden() const = 0;
  1012. // gibt den Letzten Fehlertext zuück
  1013. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  1014. virtual char *getLetzterFehler() const = 0;
  1015. // Erhöht den Reference Counter um 1 un gibt this zurück
  1016. virtual MinigameServerClient *getThis() = 0;
  1017. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  1018. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  1019. virtual MinigameServerClient *release() = 0;
  1020. };
  1021. // Wird verwendet um Karten für Spiele zu erstellen
  1022. // Kann nur von eingeloggten Clients verwendet werden
  1023. class EditorServerClient
  1024. {
  1025. public:
  1026. // verbindet sich mit dem zugewiesenen Editor Server
  1027. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1028. virtual bool verbinde() = 0;
  1029. // Erstellt eine neue Karte
  1030. // name: Der Name der Karte
  1031. // spielArt: Die Id des Spiels
  1032. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1033. virtual bool karteErstellen( char *name, int spielArt ) = 0;
  1034. // lädt eine bestimmte Karte
  1035. // id: Die Id der Karte
  1036. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1037. virtual bool ladeKarte( int id ) = 0;
  1038. // gibt eine Liste mit Abbildern der geladenen Karte zurück
  1039. // name: Enthält nach erfolgreichem Aufruf eine Liste mit Namen der Abbilder
  1040. // datum: Enthält nach erfolgreichem Aufruf eine Liste mit dem Datum der Erstellung für jedes Abbild
  1041. // Gibt die Anzahl der Abbilder zurück
  1042. virtual int getAbbildListe( Framework::RCArray< Framework::Text > *name, Framework::RCArray< Framework::Zeit > *datum ) = 0;
  1043. // Erstellt ein neues Abbild der geladenen Karte
  1044. // name: Der Name des Abbildes
  1045. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1046. virtual bool abbildErstellen( char *name ) = 0;
  1047. // Löscht ein altes Abbild der geladenen Karte
  1048. // name: Der Name des Abbildes
  1049. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1050. virtual bool abbildLöschen( char *name ) = 0;
  1051. // Stellt ein altes Abbild der geladenen Karte wieder her
  1052. // name: Der Name des Abbildes
  1053. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1054. virtual bool abbildHerstellen( char *name ) = 0;
  1055. // Verüffentlich eine neue Version der geladenen Karte
  1056. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1057. virtual bool veröffentlichen() = 0;
  1058. // Veröffentlich eine neue Version der Shop Seite der geladenen Karte
  1059. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1060. virtual bool shopSeiteVeröffentlichen() = 0;
  1061. // Läht die Vorschau der Shop Seite der geladenen Karte herrunter und speichert sie unter data/tmp/ke/ssv
  1062. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1063. virtual bool ladeShopSeiteVorschau() = 0;
  1064. // Erstellt eine neue Shop Seiten Datei
  1065. // name: Der Name der Datei
  1066. // typ: 0=Ordner, 1=Bild, 2=Text
  1067. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1068. virtual bool ssDateiErstellen( char *name, int typ ) = 0;
  1069. // Öffnet einen Ordner der Shop Seite
  1070. // name: Der Name des Ordners
  1071. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1072. virtual bool ssOrdnerÖffnen( char *name ) = 0;
  1073. // Lädt das ein Bild der Shop Seite und gibt es zurück
  1074. // datei: Der Name der Bilddatei
  1075. // bild: Der Name des Bildes
  1076. // Gibt bei misserfolg 0 zurück
  1077. virtual Framework::Bild *ssBildLaden( char *datei, char *bild ) = 0;
  1078. // Löscht eine Datei der Shop Seite
  1079. // name: Der Name der Datei
  1080. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1081. virtual bool ssDateiLöschen( char *name ) = 0;
  1082. // Läd eine KSGS Datei der Shop Seite und gibt den Quellcode zurück
  1083. // datei: Der Name der Datei
  1084. // Gibt bei misserfolg 0 zurück
  1085. virtual Framework::Text *ssTextLaden( char *datei ) = 0;
  1086. // Spechert eine KSGS Datei der Shop Seite
  1087. // datei: Der Name der Datei
  1088. // zText: Ein Zeiger auf den neuen Quellcode (ohne erhöhten Reference Counter)
  1089. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1090. virtual bool ssTextSpeichern( char *datei, Framework::Text *zText ) = 0;
  1091. // Löscht ein Bild der Shop Seite
  1092. // datei: Der Name der Bilddatei
  1093. // bild: Der Name des Bildes
  1094. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1095. virtual bool ssBildLöschen( char *datei, char *bild ) = 0;
  1096. // Speichert ein Bild einer ShopSeite
  1097. // datei: Der name der Bilddatei
  1098. // name: Der Name des Bildes
  1099. // zBild: Ein Zeiger auf das Bild (ohne erhöhten Reference Counter)
  1100. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1101. virtual bool ssBildSpeichern( char *datei, char *name, Framework::Bild *zBild ) = 0;
  1102. // Lädt eine Liste mit Dateien von der Shop Seite
  1103. // zList: Enthält nach erfolgreichem Aufruf die Liste mit Dateinamen
  1104. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1105. virtual int ssGetDateiListe( Framework::RCArray< Framework::Text > *zList ) = 0;
  1106. // Lädt die Bild Liste einer Bild Datei der Shop Seite
  1107. // name: Der Name der Bilddatei
  1108. // zList: Enthält nach erfolgreichem Aufruf eine Liste mit Bildnamen
  1109. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1110. virtual int ssGetBildListe( char *name, Framework::RCArray< Framework::Text > *zList ) = 0;
  1111. // Lädt die Shop Daten
  1112. // es: Enthält nach erfolgreichem aufruf den Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  1113. // tp: Enthält nach erfolgreichem Aufruf den Preis der Testversion in Kupfer
  1114. // vp: Enthält nach erfolgreichem Aufruf den Preis der Vollversion in Kupfer
  1115. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1116. virtual bool getShopDaten( int &es, int &tp, int &vp ) = 0;
  1117. // Setzt die Shop Daten
  1118. // es: der Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  1119. // tp: der Preis der Testversion in Kupfer
  1120. // vp: der Preis der Vollversion in Kupfer
  1121. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1122. virtual bool setShopDaten( int es, int tp, int vp ) = 0;
  1123. // gibt die Kartenbeschreibung als KSGScript Quellcode zurück
  1124. // Gibt bei misserfolg 0 zurück
  1125. virtual Framework::Text *beschreibungLaden() = 0;
  1126. // gibt das Titelbild der Karte zurück
  1127. // Gibt bei misserfolg 0 zurück
  1128. virtual Framework::Bild *titelbildLaden() = 0;
  1129. // gibt das Minimap Bild der Karte zurück
  1130. // Gibt bei misserfolg 0 zurück
  1131. virtual Framework::Bild *minimapLaden() = 0;
  1132. // gibt das Ladebild der Karte zurück
  1133. // Gibt bei misserfolg 0 zurück
  1134. virtual Framework::Bild *ladebildLaden() = 0;
  1135. // speichert den KSGScript Quellcode der Kartenbeschreibung
  1136. // zText: Der KSGScript Quellcode (ohne erhöhten reference Counter)
  1137. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1138. virtual bool beschreibungSpeichern( Framework::Text *zText ) = 0;
  1139. // speichert das Titelbild der Karte
  1140. // zBild: das neue Titelbild
  1141. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1142. virtual bool titelbildSpeichern( Framework::Bild *zBild ) = 0;
  1143. // speichert das Minimapbild der Karte
  1144. // zBild: das neue Minimapbild
  1145. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1146. virtual bool minimapSpeichern( Framework::Bild *zBild ) = 0;
  1147. // speichert das Ladebild der Karte
  1148. // zBild: das neue Ladebild
  1149. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1150. virtual bool ladebildSpeichern( Framework::Bild *zBild ) = 0;
  1151. // lädt die Spieler Team Daten der Karte
  1152. // sts: Enthält nach erfolgreichem Aufruf die Spieler Team Daten
  1153. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1154. virtual bool ladeTeamDaten( SpielerTeamStrukturV *sts ) = 0;
  1155. // speichert die Team Daten
  1156. // sts: die neuen Spieler Team Daten
  1157. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1158. virtual bool speicherTeamDaten( SpielerTeamStrukturV *sts ) = 0;
  1159. // Erstellt neue Datei im Datei Editor
  1160. // typ: 0=ordner 1=bild 2=modell2d 3=sound
  1161. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1162. virtual bool deNeueDatei( char typ, Framework::Text *zName ) = 0;
  1163. // Öffnet Ordner im Datei Editor
  1164. // zName: Der Name des Ordners
  1165. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1166. virtual bool deOrdnerÖffnen( Framework::Text *zName ) = 0;
  1167. // Gibt ein Bild aus dem Datei Editor zurück
  1168. // zDatei: Der Name der Datei (ohne erhöhten Reference Counter)
  1169. // zBild: Der Name des Bildes (ohne erhöhten Reference Counter)
  1170. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1171. // Gibt bei misserfolg 0 zurück
  1172. virtual Framework::Bild *deBildLaden( Framework::Text *zDatei, Framework::Text *zBild, Framework::FBalken *zF ) = 0;
  1173. // Löscht eine Datei aus dem Datei Editor
  1174. // zName: Der Name der Datei
  1175. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1176. virtual bool deDateiLöschen( Framework::Text *zName ) = 0;
  1177. // Löscht Bild aus Datei im Datei Editor
  1178. // zDatei: Der Name der Bilddatei (ohne erhöhten Reference Counter)
  1179. // zBild: Der Name des Bildes (ohne erhöhten Reference Counter)
  1180. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1181. virtual bool deBildLöschen( Framework::Text *zDatei, Framework::Text *zBild ) = 0;
  1182. // Speichert Bild in Datei im Datei Editor
  1183. // zDatei: Der Name der Bilddatei (ohne erhöhten Reference Counter)
  1184. // zName: Der Name des Bildes (ohne erhöhten Reference Counter)
  1185. // zBild: Das neue Bild (ohne erhöhten Reference Counter)
  1186. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1187. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1188. virtual bool deBildSpeichern( Framework::Text *zDatei, Framework::Text *zName, Framework::Bild *zBild, Framework::FBalken *zF ) = 0;
  1189. // Lädt eine Liste mit Dateien im aktuellen Ordner des Datei Editors
  1190. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit Dateinamen (ohne erhöhten Reference Counter)
  1191. // Gibt die Anzahl der Dateien zurück
  1192. virtual int deGetDateiListe( Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1193. // Lädt eine Liste mit Bildern aus einer Bilddatei des Datei Editors
  1194. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Bildnamen (ohne erhöhten Reference Counter)
  1195. // Gibt die Anzahl der Bilder zurück
  1196. virtual int deGetBildListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1197. // Lädt eine Liste mit 2D Modellen aus einer Modeldatei im Datei Editor
  1198. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1199. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Modelnamen (ohne erhöhten Reference Counter)
  1200. // Gibt die Anzahl der Modelle zurück
  1201. virtual int deGetModelListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1202. // Lädt eine Liste mit Sounds aus einer Sounddatei im Datei Editor
  1203. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  1204. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Soundnamen (ohne erhöhten Reference Counter)
  1205. // Gibt die Anzahl der Sounds zurück
  1206. virtual int deGetSoundListe( Framework::Text *zDatei, Framework::RCArray< Framework::Text > *zNamen ) = 0;
  1207. // Löscht ein Model aus einer Modeldatei des Datei Editors
  1208. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1209. // zModel: Der Name des Models (ohne erhöhten Reference Counter)
  1210. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1211. virtual bool deModelLöschen( Framework::Text *zDatei, Framework::Text *zModel ) = 0;
  1212. // Löscht einen Sound aus einer Sounddatei des Datei Editors
  1213. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  1214. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  1215. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1216. virtual bool deSoundLöschen( Framework::Text *zDatei, Framework::Text *zSound ) = 0;
  1217. // Lädt ein Model aus einer Modeldatei des Datei Editors
  1218. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1219. // zModel: Enthält nach erfolgreichem Aufruf das Model (ohne erhöhten Reference Counter)
  1220. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1221. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1222. virtual Framework::Model2DData *deModelLaden( Framework::Text *zDatei, Framework::Text *zModel, Framework::FBalken *zF ) = 0;
  1223. // Lädt einen Sound herunter und gibt ihn zurück
  1224. // file: Ein Zeiger auf die GSLDatei, in der der Sound gespeichert werden soll
  1225. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  1226. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  1227. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1228. // Gibt bei misserfolg 0 zurück
  1229. virtual GSL::GSLSoundV *deSoundLaden( GSL::GSLDateiV *file, Framework::Text *zDatei, Framework::Text *zSound, Framework::FBalken *zF ) = 0;
  1230. // Speichert ein Model in eine Modeldatei des Datei Editors
  1231. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1232. // zModel: Der Name des Models (ohne erhöhten Reference Counter)
  1233. // zData: Die Daten des Models (ohne erhöhten Reference Counter)
  1234. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1235. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1236. virtual bool deModelSpeichern( Framework::Text *zDatei, Framework::Text *zModel, Framework::Model2DData *zData, Framework::FBalken *zF ) = 0;
  1237. // Speichert einen Sound in einer Sounddatei des Datei Editors
  1238. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  1239. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  1240. // zData: Die Daten des Sounts (ohne erhöhten Reference Counter)
  1241. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  1242. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1243. virtual bool deSoundSpeichern( Framework::Text *zDatei, Framework::Text *zSound, GSL::GSLSoundV *zData, Framework::FBalken *zF ) = 0;
  1244. // Setzt das arbeitsverzeichnis auf den obersten ordner
  1245. virtual bool deResetPath() = 0;
  1246. // Lädt die Kauf Statistik der geladenen Karte
  1247. // verkauft: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Käufe der Karte der letzten 30 Tage
  1248. // einkommen: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der verdinten Kupfer in den letzten 30 Tagen
  1249. // gespielt: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Spielen der letzten 30 Tage
  1250. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1251. virtual int getVerkaufStatistik( Framework::Array< int > *verkauft, Framework::Array< int > *einkommen, Framework::Array< int > *gespielt ) = 0;
  1252. // Startet den Editor Modus, welcher für jedes Spiel unterschiedlich funktioniert
  1253. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1254. virtual bool initEditor() = 0;
  1255. // Erhält die Verbindung aufrecht
  1256. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1257. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  1258. virtual bool keepAlive() = 0;
  1259. // Trennt die Verbindung zum Server
  1260. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1261. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  1262. virtual bool trenne( bool abmelden ) = 0;
  1263. // Beginnt eine individuelle Editor Nachricht
  1264. // Gibt den Klient zurück, über den mit dem Server kommuniziert werden kann. Im Fehlerfall wird 0 zurückgegeben
  1265. virtual Network::Klient *beginEditorMessage() = 0;
  1266. // Beendet eine Editor Nachricht
  1267. // sollte nur nach dem erfolgreichem Aufrufen von beginEditorMessage aufgerufen werden
  1268. // Der Thread, der diese Methode aufgerufen hat, sollte nach dem Erfolgreichen Aufruf am Ende der Kommunikation mit dem Server endEditorMessage aufrufen
  1269. virtual void endEditorMessage() = 0;
  1270. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  1271. virtual bool istVerbunden() const = 0;
  1272. // gibt den Letzten Fehlertext zuück
  1273. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist (vom selben Thread)
  1274. virtual char *getLetzterFehler() const = 0;
  1275. // Erhöht den Reference Counter um 1 un gibt this zurück
  1276. virtual EditorServerClient *getThis() = 0;
  1277. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  1278. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  1279. virtual EditorServerClient *release() = 0;
  1280. };
  1281. // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen
  1282. class MainServerClient
  1283. {
  1284. public:
  1285. // 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
  1286. virtual bool registerSSL( char *ip, unsigned short port ) = 0;
  1287. // Verbindet den Client mit dem Server
  1288. // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt.
  1289. virtual bool connect() = 0;
  1290. // Erzeugt einen Erhaltungs Server Client
  1291. // Gibt bei misserfolg 0 zurück
  1292. virtual ErhaltungServerClient *createErhaltungServerClient() = 0;
  1293. // Erzeugt einen Patch Server Client
  1294. // Gibt bei misserfolg 0 zurück
  1295. virtual PatchServerClient *createPatchServerClient() = 0;
  1296. // Erzeugt einen News Server Client
  1297. // Gibt bei misserfolg 0 zurück
  1298. virtual NewsServerClient *createNewsServerClient() = 0;
  1299. // Erzeugt einen Register Server Client
  1300. // Gibt bei misserfolg 0 zurück
  1301. virtual RegisterServerClient *createRegisterServerClient() = 0;
  1302. // Erzeugt einen Login Server Client
  1303. // Gibt bei misserfolg 0 zurück
  1304. virtual LoginServerClient *createLoginServerClient() = 0;
  1305. // Erzeugt einen Information Server Client
  1306. // Gibt bei misserfolg 0 zurück
  1307. virtual InformationServerClient *createInformationServerClient() = 0;
  1308. // Erzeugt einen Chat Server Client
  1309. // Gibt bei misserfolg 0 zurück
  1310. virtual ChatServerClient *createChatServerClient() = 0;
  1311. // Erzeugt einen Shop Server Client
  1312. // Gibt bei misserfolg 0 zurück
  1313. virtual ShopServerClient *createShopServerClient() = 0;
  1314. // Erzeugt einen Anmeldung Server Client
  1315. // Gibt bei misserfolg 0 zurück
  1316. virtual AnmeldungServerClient *createAnmeldungServerClient() = 0;
  1317. // Erzeugt einen Minigame Server Client
  1318. // Gibt bei misserfolg 0 zurück
  1319. virtual MinigameServerClient *createMinigameServerClient() = 0;
  1320. // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde
  1321. virtual bool disconnect() = 0;
  1322. // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar
  1323. virtual bool unregister() = 0;
  1324. // Gibt die dem Client zugewiesene Id zurück.
  1325. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1326. virtual int getClientId() const = 0;
  1327. // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück.
  1328. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1329. virtual char *getServerIp() const = 0;
  1330. // Gibt den Port des dem Client zugewiesenen Main Servers zurück.
  1331. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1332. virtual unsigned short getServerPort() const = 0;
  1333. // Gibt den Zeiger auf den Schlüssel zurück
  1334. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1335. virtual char *zKey() const = 0;
  1336. // Gibt die Länge des Schlüssels zurück
  1337. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1338. virtual unsigned char getKeyLen() const = 0;
  1339. // gibt den Letzten Fehlertext zuück
  1340. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  1341. virtual char *getLetzterFehler() const = 0;
  1342. // Erhöht den Reference Counter um 1 un gibt this zurück
  1343. virtual MainServerClient *getThis() = 0;
  1344. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  1345. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  1346. virtual MainServerClient *release() = 0;
  1347. };
  1348. }