KSGNetwork.h 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128
  1. #pragma once
  2. #include <Array.h>
  3. namespace Framework
  4. {
  5. class Text;
  6. class Datei;
  7. }
  8. namespace Network
  9. {
  10. class Klient;
  11. }
  12. namespace KSGClient
  13. {
  14. // Enthält die Daten eines Spielers zu einem vergangenen Spiel
  15. struct SpielHistorieSpielerDaten
  16. {
  17. protected:
  18. int ref; // Reference Counter
  19. public:
  20. Framework::Text *name; // Der Sichtabe Name des Spielers
  21. int punkte; // Die Punkte, die der Spieler in dem Spiel gewonnen / verloren hat
  22. Framework::Text *status; // Der Status des Spielers in dem Spiel (verloren, gewonnen, nicht anwesend, beobachter, unentschieden)
  23. int farbe; // Die Farbe des Spielers
  24. // Erhöht den Reference Counter um 1 un gibt this zurück
  25. virtual SpielHistorieSpielerDaten *getThis() = 0;
  26. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  27. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  28. virtual SpielHistorieSpielerDaten *release() = 0;
  29. };
  30. // Enthält die Datein eines Teams zu einem vergangenen Spiel
  31. struct SpielHistorieTeamDaten
  32. {
  33. protected:
  34. int ref; // Reference Counter
  35. public:
  36. Framework::Text *name; // Der Sichtabe Name des Teams
  37. int sAnzahl; // Die Anzahl der Spieler im Team
  38. Framework::Text *status; // Der Status des Teams (verloren, gewonnen, beobachter, unentschieden)
  39. int farbe; // Die Farbe des Teams
  40. Framework::RCArray< SpielHistorieSpielerDaten > *spieler; // Eine Liste mit den Spielerdaten zu den Spielern aus dem Team
  41. // Erhöht den Reference Counter um 1 un gibt this zurück
  42. virtual SpielHistorieTeamDaten *getThis() = 0;
  43. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  44. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  45. virtual SpielHistorieTeamDaten *release() = 0;
  46. };
  47. // Enthält Daten zu einem vergangenen Spiel
  48. struct SpielHistorieDaten
  49. {
  50. protected:
  51. int ref; // Reference Counter
  52. public:
  53. int id; // Die Id des vergangenen Spiels
  54. int karteId; // Die Id der Karte, welche gespielt wurde
  55. Framework::Text *spiel; // Der Name des Spiels, welches gespielt wurde
  56. Framework::Text *karte; // Der Name der Karte, welche gespielt wurde
  57. Framework::Text *datum; // Der Zeitpunkt, an dem das Spiel Statfand
  58. Framework::Text *status; // Der Status des Spielers, über welchen die Statistik angefragt wurde
  59. Framework::Text *dauer; // Die Dater des Spiels
  60. Framework::Text *spielStatus; // Der Status des Spiels (beginnt, läuft, abgebrochen, fehlerhaft, beendet, unbewertet)
  61. Framework::Text *gewinner; // Der Name des Gewinners
  62. int sAnzahl; // Die Anzahl der Spieler
  63. Framework::RCArray< SpielHistorieTeamDaten > *teams; // Die Daten der Teams des Spiels
  64. // Erhöht den Reference Counter um 1 un gibt this zurück
  65. virtual SpielHistorieDaten *getThis() = 0;
  66. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  67. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  68. virtual SpielHistorieDaten *release() = 0;
  69. };
  70. // Enthält eine Liste von Spiel Daten aus vergangenen Spielen
  71. struct SpielHistorieListe
  72. {
  73. protected:
  74. int ref; // Reference Counter
  75. public:
  76. Framework::RCArray< SpielHistorieDaten > *spiele; // Eine Liste mit den Daten zu vergangenen Spielen
  77. // Erhöht den Reference Counter um 1 un gibt this zurück
  78. virtual SpielHistorieListe *getThis() = 0;
  79. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  80. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  81. virtual SpielHistorieListe *release() = 0;
  82. };
  83. // Enthält Informationen zu einem Account
  84. struct AccountInfo
  85. {
  86. protected:
  87. int ref; // Reference Counter
  88. public:
  89. int id; // Die Id des Accounts
  90. Framework::Text *name; // Der angezeigte Name des Accounts
  91. Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war
  92. Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels
  93. Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte
  94. Framework::Text punkte; // Die Punkte des Spielers in dem Spiel
  95. // Erhöht den Reference Counter um 1 un gibt this zurück
  96. virtual AccountInfo *getThis() = 0;
  97. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  98. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  99. virtual AccountInfo *release() = 0;
  100. };
  101. // Enthält Informationen zur Aktivität eines Accounts an einem bestimmten Tag
  102. struct AccountActivityInfo
  103. {
  104. protected:
  105. int ref; // Reference Counter
  106. public:
  107. Framework::Text datum; // Das Datum für das die Werte gillt
  108. double stOnline; // Die Anzahl der Stunden, die der Account Online war
  109. double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat
  110. int anzSpiele; // Die Anzahl der gespielten online Spiele
  111. int anzGewonnen; // Die Anzahl der gewonnenen online Spiele
  112. // Erhöht den Reference Counter um 1 un gibt this zurück
  113. virtual AccountActivityInfo *getThis() = 0;
  114. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  115. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  116. virtual AccountActivityInfo *release() = 0;
  117. };
  118. // Enthält eine Nachricht, die von Chat Server gesendet wurde
  119. struct ChatServerNachricht
  120. {
  121. protected:
  122. int ref; // Reference Counter
  123. public:
  124. char type; // Typ der Nachricht
  125. Framework::Text *message; // Text der Nachricht
  126. int account; // Beteiligter Account
  127. int gruppe; // Beteiligte Gruppe
  128. int chatroom; // Beteiligter Chatraum
  129. Framework::Array< int > *ids; // Liste mit Account Ids
  130. // Erhöht den Reference Counter um 1 un gibt this zurück
  131. virtual ChatServerNachricht *getThis() = 0;
  132. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  133. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  134. virtual ChatServerNachricht *release() = 0;
  135. };
  136. // Enthält alle Daten zur Team - Spieler Konstalation einer Karte
  137. struct SpielerTeamStruktur
  138. {
  139. protected:
  140. int ref; // Reference Counter
  141. public:
  142. int spielerAnzahl; // Die Anzahl der Spieler
  143. int teamAnzahl; // Die Anzahl der Teams
  144. Framework::Array< int > *spielerFarbe; // Eine Liste mit den Farben für jeden Spieler
  145. Framework::Array< int > *teamFarbe; // Eine Liste mit Farben für jedes Team
  146. Framework::RCArray< Framework::Text > *teamName; // Eine Liste mit namen für jedes Team
  147. Framework::Array< int > *teamGröße; // Eine Liste Mit Spieleranzahlen für jedes Team
  148. // Erhöht den Reference Counter um 1 un gibt this zurück
  149. virtual SpielerTeamStruktur *getThis() = 0;
  150. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  151. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  152. virtual SpielerTeamStruktur *release() = 0;
  153. };
  154. // Enthält eine Nachricht von dem Spiel Server
  155. struct SpielServerNachricht
  156. {
  157. protected:
  158. int ref; // Reference Counter
  159. public:
  160. char type; // Typ der Nachricht
  161. char sekunden; // Mit der Nachricht zusammenhängende Sekunden
  162. char minuten; // Mit der Nachricht zusammenhängende Minuten
  163. char stunden; // Mit der Nachricht zusammenhängende Stunden
  164. Framework::Text *message; // Text der Nachricht
  165. SpielerTeamStruktur *sts; // Die Spieler Team Struktur eines Spiels
  166. int accountId; // Id des Accounts
  167. int spielerNummer; // Die Spielernummer des Accounts
  168. int karteId; // Die Id der Karte
  169. int prozent; // Der Prozentuale Ladefortschritt
  170. int ping; // Der Ping des Accounts (1000 = 1 Sekunde)
  171. short län; // Länge der gesendeten Daten
  172. char *data; // Die gesendeten Daten
  173. // Erhöht den Reference Counter um 1 un gibt this zurück
  174. virtual SpielServerNachricht *getThis() = 0;
  175. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  176. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  177. virtual SpielServerNachricht *release() = 0;
  178. };
  179. // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
  180. class ErhaltungServerClient
  181. {
  182. };
  183. // Wird benutzt, um aktualisierte Spieldateien herunterzuladen
  184. class PatchServerClient
  185. {
  186. };
  187. // Wird verwendet um News Oberflächen abzufragen (KSG Script Seiten)
  188. class NewsServerClient
  189. {
  190. public:
  191. // verbindet ich mit dem News Server
  192. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  193. virtual bool verbinde() = 0;
  194. // Lädt eine KSG-Script Seite herunter uns speichert sie unter data/tmp/news/{name}
  195. // name: Der Name der Seite
  196. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  197. virtual bool ladeSeite( char *name ) = 0;
  198. // Erhält die Verbindung aufrecht
  199. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  200. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  201. virtual bool keepAlive() = 0;
  202. // Trennt die Verbindung zum Server
  203. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  204. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  205. virtual bool trenne() = 0;
  206. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  207. virtual bool istVerbunden() const = 0;
  208. // gibt den Letzten Fehlertext zuück
  209. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  210. virtual char *getLetzterFehler() const = 0;
  211. // Erhöht den Reference Counter um 1 un gibt this zurück
  212. virtual NewsServerClient *getThis() = 0;
  213. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  214. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  215. virtual NewsServerClient *release() = 0;
  216. };
  217. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  218. class RegisterServerClient
  219. {
  220. public:
  221. // verbindet ich mit dem Register Server
  222. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  223. virtual bool verbinde() = 0;
  224. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  225. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  226. // name: Der Login Name des Accounts
  227. // pass: Das Login Passwort des Accounts
  228. // geheim: Das Geheimnis des Accounts
  229. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  230. // jahr: Das Jahr des Geburtsdatums
  231. // monat: Der Monat des Geburtstages
  232. // tag: Der Tag des Geburtstages
  233. virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0;
  234. // 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.
  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. virtual bool accountLöschen( const char *name, const char *pass, const char *geheim ) = 0;
  240. // Ändert das Passwort eines Accounts
  241. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  242. // name: Der Login Name des Accounts
  243. // pass: Das Login Passwort des Accounts
  244. // geheim: Das Geheimnis des Accounts
  245. // nPass: Das neue Passwort des Accounts
  246. virtual bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0;
  247. // Ändert die EMail Adresse eines Accounts
  248. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  249. // name: Der Login Name des Accounts
  250. // pass: Das Login Passwort des Accounts
  251. // geheim: Das Geheimnis des Accounts
  252. // nEMail: Die neue EMail Adresse
  253. virtual bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0;
  254. // Ändert das Geheimnis eines Accounts
  255. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  256. // name: Der Login Name des Accounts
  257. // pass: Das Login Passwort des Accounts
  258. // geheim: Das Geheimnis des Accounts
  259. // nGeheim: Das neue Geheimnis
  260. virtual bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0;
  261. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  262. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  263. // pass: Das Login Passwort des Accounts
  264. // geheim: Das Geheimnis des Accounts
  265. virtual bool nameVergessen( const char *pass, const char *geheim ) = 0;
  266. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  267. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  268. // name: Der Login Name des Accounts
  269. // geheim: Das Geheimnis des Accounts
  270. virtual bool passwortVergessen( const char *name, const char *geheim ) = 0;
  271. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  272. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  273. // name: Der Login Name des Accounts
  274. // pass: Das Login Passwort des Accounts
  275. virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0;
  276. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  277. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  278. // name: Der Login Name des Accounts
  279. // pass: Das Login Passwort des Accounts
  280. // geheim: Das Geheimnis des Accounts
  281. // 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
  282. virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0;
  283. // Erhält die Verbindung aufrecht
  284. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  285. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  286. virtual bool keepAlive() = 0;
  287. // Trennt die Verbindung zum Server
  288. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  289. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  290. virtual bool trenne() = 0;
  291. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  292. virtual bool istVerbunden() const = 0;
  293. // gibt den Letzten Fehlertext zuück
  294. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  295. virtual char *getLetzterFehler() const = 0;
  296. // Erhöht den Reference Counter um 1 un gibt this zurück
  297. virtual RegisterServerClient *getThis() = 0;
  298. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  299. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  300. virtual RegisterServerClient *release() = 0;
  301. };
  302. // Wird verwendet um sich einzuloggen oder auszuloggen
  303. class LoginServerClient
  304. {
  305. public:
  306. // verbindet sich mit dem zugewiesenen Login Server
  307. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  308. virtual bool verbinde() = 0;
  309. // Der Client wird beim Serversystem in einen Account eingeloggt
  310. // gibt bei Erfolg 1 zurück
  311. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  312. virtual int login( const char *name, const char *pass ) = 0;
  313. // 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.
  314. virtual bool kick( const char *geheim ) = 0;
  315. // logt den Account aus
  316. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  317. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  318. virtual bool logout() = 0;
  319. // Erhält die Verbindung aufrecht
  320. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  321. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  322. virtual bool keepAlive() = 0;
  323. // Trennt die Verbindung zum Server
  324. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  325. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  326. virtual bool trenne() = 0;
  327. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  328. virtual bool istVerbunden() const = 0;
  329. // Gibt die Id des Accounts zurück, in den sich der Client eingeloggt hat.
  330. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  331. virtual int getAccountId() const = 0;
  332. // gibt den Letzten Fehlertext zuück
  333. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  334. virtual char *getLetzterFehler() const = 0;
  335. // Erhöht den Reference Counter um 1 un gibt this zurück
  336. virtual LoginServerClient *getThis() = 0;
  337. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  338. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  339. virtual LoginServerClient *release() = 0;
  340. };
  341. // Wird verwendet um informationen über Accounts abzufragen
  342. // Kann nur von eingeloggten Clients verwendet werden
  343. class InformationServerClient
  344. {
  345. public:
  346. // verbindet ich mit dem zugewiesenen Informaion Server
  347. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  348. virtual bool verbinde() = 0;
  349. // fragt nach dem Informationstext
  350. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  351. // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält
  352. // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält
  353. virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0;
  354. // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  355. // spielId: Die Id des Spiels
  356. // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst
  357. virtual bool istSpielErlaubt( int spielId ) = 0;
  358. // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  359. // karteId: Die Id der Karte
  360. // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst
  361. virtual bool istKarteErlaubt( int karteId ) = 0;
  362. // Ermittelt die Id einer Karte
  363. // name: Der Name der Karte
  364. // Gibt bei misserfolg 0 zurück
  365. virtual int getKarteId( char *name ) = 0;
  366. // Fragt nach der Id eines Spiels
  367. // name: Der Name des Spiels
  368. // Gibt bei misserfolg 0 zurück
  369. virtual int getSpielId( char *name ) = 0;
  370. // fragt nach dem Namen eines Accounts
  371. // accountId: Die Id des Accounts
  372. // Gibt bei misserfolg 0 zurück
  373. virtual Framework::Text *getSpielerName( int accountId ) = 0;
  374. // fragt nach der Spiel Statistik eines Accounts
  375. // accountId: Die Id des Accounts
  376. // spielId: Die Id des Spiels
  377. // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  378. virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0;
  379. // fragt nach dem Namen einer Karte
  380. // karteId: Die id der Karte
  381. // Gibt bei misserfolg 0 zurück
  382. virtual Framework::Text *getKarteName( int karteId ) = 0;
  383. // fragt nach dem Namen eines Spiels
  384. // spielId: Die id des Spiels
  385. // Gibt bei misserfolg 0 zurück
  386. virtual Framework::Text *getSpielName( int spielId ) = 0;
  387. // fragt nach dem Namen eines Chatrooms
  388. // chatroomId: Die id des Chatrooms
  389. // Gibt bei misserfolg 0 zurück
  390. virtual Framework::Text *getChatroomName( int chatroomId ) = 0;
  391. // fragt zu welcher Spielart die Karte gehört
  392. // karteId: Die id der Karte
  393. // Gibt bei misserfolg 0 zurück
  394. virtual int getSpielId( int karteId ) = 0;
  395. // gibt die Id eines Accounts zurück
  396. // name: Der Angezeigte Name des Accounts
  397. // Gibt bei misserfolg 0 zurück
  398. virtual int getAccountId( char *name ) = 0;
  399. // gibt die Id des Chatrooms zurück
  400. // name: Der name des Chatrooms
  401. // Gibt bei misserfolg 0 zurück
  402. virtual int getChatroomId( char *name ) = 0;
  403. // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
  404. // gruppenId: Die id der Gruppe
  405. // Gibt bei misserfolg 0 zurück
  406. virtual int getGruppenKarteId( int gruppenId ) = 0;
  407. // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
  408. // gruppeId: Die id der Gruppe
  409. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0;
  410. // gibt die Account Id des Gruppen Administrators zurück
  411. // gruppeId: Die Id der Gruppe
  412. // Gibt bei misserfolg 0 zurück
  413. virtual int getGruppeAdminId( int gruppeId ) = 0;
  414. // gibt die Punkte eines Spielers zurück
  415. // accountId: Die Accont Id des Spielers
  416. // spielId: Die Id des Spiels
  417. // Gibt bei misserfolg 0 zurück
  418. virtual int getSpielerPunkte( int accountId, int spielId ) = 0;
  419. // gibt eine Liste mit Ids von gekauften Spielen zurück
  420. // Gibt bei misserfolg 0 zurück
  421. virtual Framework::Array< int > *getAccountSpielArtListe() = 0;
  422. // gibt die neuste Version eines Spiels zurück
  423. // spielId: Die Id des Spiels
  424. // Gibt bei misserfolg 0 zurück
  425. virtual int getSpielVersion( int spielId ) = 0;
  426. // gibt das Kupfer des Accounts zurück
  427. // Gibt bei misserfolg 0 zurück
  428. virtual int getKupfer() = 0;
  429. // Gibt die Dateigruppem Id eines Spieles zurück
  430. // spielId: Die Id des Spiels
  431. // Gibt bei misserfolg 0 zurück
  432. virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0;
  433. // Gibt den Dateigruppen Pfad zurück
  434. // dgId: Die Id der Dateigruppe
  435. // Gibt bei misserfolg 0 zurück
  436. virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0;
  437. // gibt eine Liste mit gekauften Karten zurück
  438. // spielId: Die Spiel Id zu der die Karten gehören sollen
  439. // Gibt bei misserfolg 0 zurück
  440. virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0;
  441. // Gibt die Dateigruppen Id eines Pfades zurück
  442. // pfad: Der Pfad der Dateigruppe
  443. // Gibt bei misserfolg 0 zurück
  444. virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0;
  445. // gibt die neuste Version einer Dateigruppe zurück
  446. // dg: Die Dateigruppen Id
  447. // Gibt bei misserfolg 0 zurück
  448. virtual int getDateiGruppeVersion( int dg ) = 0;
  449. // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist
  450. // suche: Der Text, der in den Namen enthalten sein soll
  451. // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite)
  452. // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite
  453. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  454. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  455. // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts
  456. // Gibt die Anzahl der gefundenen Accounts zurück
  457. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  458. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts, Framework::RCArray< AccountInfo > *accounts ) = 0;
  459. // ermittelt die aktivität eines Spielers
  460. // accId: Die Id des Accounts
  461. // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
  462. virtual bool getSpielerAktivität( int accId, Framework::RCArray< AccountActivityInfo > *info ) = 0;
  463. // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  464. // account: Die Id des Accounts
  465. // karte: Die Id der Karte
  466. virtual int getAccountKarteSpiele( int account, int karte ) = 0;
  467. // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  468. // account: Die Id des Accounts
  469. // karte: Die Id der Karte
  470. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0;
  471. // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  472. // account: Die Id des Accounts
  473. // karte: Die Id der Karte
  474. virtual bool hatAccountKarte( int account, int karte ) = 0;
  475. // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  476. // account: Die Id des Accounts
  477. // spiel: Die Id des Spiels
  478. virtual bool hatAccountSpiel( int account, int spiel ) = 0;
  479. // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden
  480. // account: Die Id des Accounts
  481. // spiel: Die Id des Spiels
  482. // Gibt bei misserfolg 0 zurück
  483. virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0;
  484. // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden
  485. // account: Die Id des Accounts
  486. // Gibt bei misserfolg 0 zurück
  487. virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0;
  488. // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  489. // account: Die Id des Accounts
  490. // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner
  491. // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten
  492. // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele
  493. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  494. virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0;
  495. // Gibt eine Liste mit Spiel Statistiken zurück
  496. // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll
  497. // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite
  498. // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite
  499. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  500. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  501. // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  502. // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele
  503. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  504. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  505. Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0;
  506. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  507. // account: Die Id des Accounts
  508. // Gibt bei misserfolg 0 zurück
  509. virtual SpielHistorieListe *getSpielHistorieDaten( int account ) = 0;
  510. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  511. // spielId: Die id des Spiels
  512. // Gibt bei misserfolg 0 zurück
  513. virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel
  514. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  515. // recht: Die Id der Berechtigungen
  516. virtual bool hatRecht( int recht ) = 0; // Prüft ob Berechtigung vorhanden
  517. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  518. // filter: Die Zeichenkette, die im Namen Auftreten soll
  519. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  520. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  521. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  522. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  523. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  524. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  525. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  526. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  527. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName,
  528. Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0;
  529. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  530. // karteId: Die Id der Karte
  531. // Gibt bei misserfolg 0 zurück
  532. virtual EditorServerClient *createEditorServerClient( int karteId ) = 0;
  533. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  534. // karteId: Die Id der Karte
  535. // Gibt bei misserfolg 0 zurück
  536. virtual KartenServerClient *createKartenServerClient( int karteId ) = 0;
  537. // Erhält die Verbindung aufrecht
  538. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  539. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  540. virtual bool keepAlive() = 0;
  541. // Trennt die Verbindung zum Server
  542. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  543. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  544. virtual bool trenne() = 0;
  545. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  546. virtual bool istVerbunden() const = 0;
  547. // gibt den Letzten Fehlertext zuück
  548. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  549. virtual char *getLetzterFehler() const = 0;
  550. // Erhöht den Reference Counter um 1 un gibt this zurück
  551. virtual InformationServerClient *getThis() = 0;
  552. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  553. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  554. virtual InformationServerClient *release() = 0;
  555. };
  556. // 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 ...)
  557. // Kann nur von eingeloggten Clients verwendet werden
  558. class ChatServerClient
  559. {
  560. public:
  561. // verbindet sich mit dem zugewiesenen Chat Server
  562. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  563. virtual bool verbinde() = 0;
  564. // sendet eine Chat Nachricht zu einem Account
  565. // zuAccount: Id des Ziel Accounts
  566. // nachricht: Die Nachricht
  567. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  568. virtual bool chatNachricht( int zuAccount, const char *nachricht ) = 0;
  569. // ändert den angezeigten Account Namen
  570. // name: der neue Name
  571. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  572. virtual bool accountNameÄndern( const char *name ) = 0;
  573. // beendet die Freundschaft mit einem Account
  574. // accountId: Die Id des Accounts
  575. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  576. virtual bool freundschaftBeenden( int accountId ) = 0;
  577. // sendet eine Freundesanfragezu einem Account
  578. // accountId: Die Id des Accounts
  579. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  580. virtual bool freundesAnfrage( int accountId ) = 0;
  581. // beantwortet eine Freundesanfrage
  582. // accountId: Die Id des Accounts
  583. // ja: 1:=annehmen,0:=ablehnen
  584. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  585. virtual bool freundesAnfrageBeantworten( int accountId, bool ja ) = 0;
  586. // erstellt ein chatroom
  587. // name: Der Name des Chatrooms
  588. // Gibt bei erfolg die Id des Chatrooms zurück, 0 sonst
  589. virtual int chatroomErstellen( const char *name ) = 0;
  590. // Sendet eine Einladung zum Chatroom
  591. // accountId: Die Id des Accounts der eingeladen werden soll
  592. // chatroomId: Die Id des Chatrooms
  593. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  594. virtual bool chatroomEinladung( int accountId, int chatroomId ) = 0;
  595. // Einladung zum Chatroom wird abgelehnt
  596. // accountId: Die Id des Accounts
  597. // chatroomId: Die Id des Chatrooms
  598. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  599. virtual bool chatroomEinladungAblehnen( int accountId, int chatroomId ) = 0;
  600. // betritt ein chatroom
  601. // chatroomId: Die Id des Chatrooms
  602. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  603. virtual bool chatroomBetreten( int chatroomId ) = 0;
  604. // chatroom Nachricht senden
  605. // chatroomId: Die Id des Chatrooms
  606. // nachricht: Die Nachricht die gesendet werden soll
  607. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  608. virtual bool chatroomNachricht( int chatroomId, const char *nachricht ) = 0;
  609. // verlässt chatroom
  610. // chatroomId: Die Id des Chatrooms
  611. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  612. virtual bool chatroomVerlassen( int chatroomId ) = 0;
  613. // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt)
  614. // chatroomId: Die Id des Chatrooms
  615. // accountId: Die Id des Accounts
  616. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  617. virtual bool chatroomKick( int chatroomId, int accountId ) = 0;
  618. // fragt nach allen freunden
  619. // Die Liste der Freunde kann über getNextMessage empfangen werden
  620. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  621. virtual bool freundesListeAnfragen() = 0;
  622. // fragt nach allen chatnachrichten, die gesendet wurden, während der Account in den der Client eingeloggt ist, offline war
  623. // Die einzelnen Nachrichten können über getNextMessage empfangen werden
  624. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  625. virtual bool chatNachrichtAnfrage() = 0;
  626. // Erhält die Verbindung aufrecht
  627. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  628. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  629. virtual bool keepAlive() = 0;
  630. // Trennt die Verbindung zum Server
  631. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  632. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  633. virtual bool trenne() = 0;
  634. // Wartet auf eine Nachricht vom Chatserver und gibt diese zurück.
  635. virtual ChatServerNachricht *getNextMessage() = 0;
  636. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  637. virtual bool istVerbunden() const = 0;
  638. // gibt den Letzten Fehlertext zuück
  639. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  640. virtual char *getLetzterFehler() const = 0;
  641. // Erhöht den Reference Counter um 1 un gibt this zurück
  642. virtual ChatServerClient *getThis() = 0;
  643. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  644. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  645. virtual ChatServerClient *release() = 0;
  646. };
  647. // Wird verwendet um Spiele oder Karten zu kaufen
  648. // Kann nur von eingeloggten Clients verwendet werden
  649. class ShopServerClient
  650. {
  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() = 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() = 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() = 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 Servers und gibt diese zurück.
  909. virtual SpielServerNachricht *getNextMessage() = 0;
  910. // Erhält die Verbindung aufrecht
  911. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  912. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  913. virtual bool keepAlive() = 0;
  914. // Trennt die Verbindung zum Server
  915. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  916. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  917. virtual bool trenne() = 0;
  918. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  919. virtual bool istVerbunden() const = 0;
  920. // gibt den Letzten Fehlertext zuück
  921. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  922. virtual char *getLetzterFehler() const = 0;
  923. // Erhöht den Reference Counter um 1 un gibt this zurück
  924. virtual SpielServerClient *getThis() = 0;
  925. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  926. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  927. virtual SpielServerClient *release() = 0;
  928. };
  929. // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen
  930. // Kann nur von eingeloggten Clients verwendet werden
  931. class HistorieServerClient
  932. {
  933. protected:
  934. // verbindet sich mit dem zugewiesenen Historie Server
  935. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  936. virtual bool verbinde( char *ip, int port ) = 0;
  937. // Trennt die Verbindung zum Server
  938. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  939. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  940. virtual bool trenne() = 0;
  941. public:
  942. // Lädt die Spiel Aufzeichnung eines Spiels herunter und speichert sie unter data/tmp/historie/{spielId}
  943. // Die Spielid wurde dem Objekt zum Zeitpunkt der Erstellung vom Information Server mitgegeben
  944. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  945. // Diese Funktion verbindet sich selbstständig mit dem Server und trennt die Verbindung nach Beendigung des Vorgangs
  946. virtual bool downloadSpielHistorie() = 0;
  947. // gibt den Letzten Fehlertext zuück
  948. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  949. virtual char *getLetzterFehler() const = 0;
  950. // Erhöht den Reference Counter um 1 un gibt this zurück
  951. virtual HistorieServerClient *getThis() = 0;
  952. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  953. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  954. virtual HistorieServerClient *release() = 0;
  955. };
  956. // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden
  957. // Kann nur von eingeloggten Clients verwendet werden
  958. class MinigameServerClient
  959. {
  960. public:
  961. // verbindet sich mit dem zugewiesenen Minigame Server
  962. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  963. virtual bool verbinde() = 0;
  964. // Ermittelt die liste mit allen Optionen zu einem Minigame zurück, zu denen es Welt beste Scores gibt
  965. // mName: Der Name des Minigames
  966. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen
  967. // Gibt die Anzahl der Optionen zurück
  968. virtual int getMinigameOptionList( char *mName, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  969. // Ermittelt eine Liste mit den Weltbesten Scores zurück
  970. // mName: Der Name des Minigames
  971. // zScore: Enthält nach erfolgreichem Aufruf eine Liste mit Scores
  972. // zPlayerList: Enthält nach erfolgreichem Aufruf eine Liste mit angezeigten Account Namen, die die Scores erreicht haben.
  973. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen, die beim erreichen der Scores aktiv waren.
  974. // Gibt die Anzahl der Bestscores zurück
  975. virtual int getMinigameBestscoreList( char *mName, Framework::Array< int > *zScore, Framework::RCArray< Framework::Text > *zPlayerList, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  976. // Gibt den Welt bestscore zu einem Bestimmten Minigame mit bestimmten Optionen zurück.
  977. // mName: Der Name des Minigames
  978. // oName: Die Optionen
  979. // zPlayer: Enthält nach erfolgreichem Aufruf den Angezeigten Namen des Accounts, der den Score erreicht hat
  980. virtual int getMinigameOptionBestscore( char *mName, char *oName, Framework::Text *zPlayer ) = 0;
  981. // Meldet die Beendigung eines Minigames
  982. // mName: Der Name des Minigames
  983. // oName: Die Optionen mit denen gespielt wurde
  984. // score: Der Erreichte Score
  985. // Gibt 0 zurück wenn eines Fehler aufgetreten ist, 1 wenn der Forgang erfolgreich war, 2 wenn ein Game Capture hochgeladen werden muss
  986. virtual int reportEndOfGame( char *mName, char *oName, int score ) = 0;
  987. // Lädt ein Game Capture hoch
  988. // zCapture: Ein Zeiger auf die Capture Datei
  989. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  990. virtual bool uploadGameCapture( Framework::Datei *zCapture ) = 0;
  991. // Lädt ein Game Capture herunter und speichert sie unter data/tmp/minigames/wb.mgc
  992. // mName: Der Name des Minigames
  993. // oName: Die Optionen
  994. // Gibt die Datei mit dem Capture zurück
  995. virtual Framework::Datei *downloadGameCapture( char *mName, char *oName ) = 0;
  996. // Erhält die Verbindung aufrecht
  997. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  998. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  999. virtual bool keepAlive() = 0;
  1000. // Trennt die Verbindung zum Server
  1001. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  1002. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  1003. virtual bool trenne() = 0;
  1004. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  1005. virtual bool istVerbunden() const = 0;
  1006. // gibt den Letzten Fehlertext zuück
  1007. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  1008. virtual char *getLetzterFehler() const = 0;
  1009. // Erhöht den Reference Counter um 1 un gibt this zurück
  1010. virtual MinigameServerClient *getThis() = 0;
  1011. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  1012. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  1013. virtual MinigameServerClient *release() = 0;
  1014. };
  1015. // Wird verwendet um Karten für Spiele zu erstellen
  1016. // Kann nur von eingeloggten Clients verwendet werden
  1017. class EditorServerClient
  1018. {
  1019. };
  1020. // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen
  1021. class MainServerClient
  1022. {
  1023. public:
  1024. // 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
  1025. virtual bool registerSSL( Framework::Text *ip, unsigned short port ) = 0;
  1026. // Verbindet den Client mit dem Server
  1027. // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt.
  1028. virtual bool connect() = 0;
  1029. // Erzeugt einen Erhaltungs Server Client
  1030. // Gibt bei misserfolg 0 zurück
  1031. virtual ErhaltungServerClient *createErhaltungServerClient() = 0;
  1032. // Erzeugt einen Patch Server Client
  1033. // Gibt bei misserfolg 0 zurück
  1034. virtual PatchServerClient *createPatchServerClient() = 0;
  1035. // Erzeugt einen News Server Client
  1036. // Gibt bei misserfolg 0 zurück
  1037. virtual NewsServerClient *createNewsServerClient() = 0;
  1038. // Erzeugt einen Register Server Client
  1039. // Gibt bei misserfolg 0 zurück
  1040. virtual RegisterServerClient *createRegisterServerClient() = 0;
  1041. // Erzeugt einen Login Server Client
  1042. // Gibt bei misserfolg 0 zurück
  1043. virtual LoginServerClient *createLoginServerClient() = 0;
  1044. // Erzeugt einen Information Server Client
  1045. // Gibt bei misserfolg 0 zurück
  1046. virtual InformationServerClient *createInformationServerClient() = 0;
  1047. // Erzeugt einen Chat Server Client
  1048. // Gibt bei misserfolg 0 zurück
  1049. virtual ChatServerClient *createChatServerClient() = 0;
  1050. // Erzeugt einen Shop Server Client
  1051. // Gibt bei misserfolg 0 zurück
  1052. virtual ShopServerClient *createShopServerClient() = 0;
  1053. // Erzeugt einen Anmeldung Server Client
  1054. // Gibt bei misserfolg 0 zurück
  1055. virtual AnmeldungServerClient *createAnmeldungServerClient() = 0;
  1056. // Erzeugt einen Minigame Server Client
  1057. // Gibt bei misserfolg 0 zurück
  1058. virtual MinigameServerClient *createMinigameServerClient() = 0;
  1059. // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde
  1060. virtual bool disconnect() = 0;
  1061. // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar
  1062. virtual bool unregister() = 0;
  1063. // Gibt die dem Client zugewiesene Id zurück.
  1064. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1065. virtual int getClientId() const = 0;
  1066. // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück.
  1067. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1068. virtual Framework::Text *getServerIp() const = 0;
  1069. // Gibt den Port des dem Client zugewiesenen Main Servers zurück.
  1070. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  1071. virtual unsigned short getServerPort() const = 0;
  1072. };
  1073. extern "C"
  1074. {
  1075. // Einstiegspunkte in die Bibliothek
  1076. // Erzeugt einen neuen Client beim Serversystem.
  1077. // registerSSL Methode muss aufgerufen werden um den Client beim Serversystem anzumelden
  1078. MainServerClient *createMainServerClient();
  1079. // Erzeugt einen Client, der bereits beim Serversystem angemeldet ist
  1080. // ip: Die Ip des Main Servers für angemeldete Clients
  1081. // port: Der Port des Main Servers für angemeldete Clients
  1082. // klientId: Die Id die der Client durch das Anmelden bekommen hat
  1083. MainServerClient *createMainServerClient( char *ip, unsigned short port, int klientId );
  1084. }
  1085. }