KSGNetwork.h 83 KB

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