KSGNetwork.h 84 KB

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