KSGNetwork.h 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953
  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. struct AccountInfo
  84. {
  85. protected:
  86. int ref; // Reference Counter
  87. public:
  88. int id; // Die Id des Accounts
  89. Framework::Text *name; // Der angezeigte Name des Accounts
  90. Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war
  91. Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels
  92. Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte
  93. Framework::Text punkte; // Die Punkte des Spielers in dem Spiel
  94. // Erhöht den Reference Counter um 1 un gibt this zurück
  95. virtual AccountInfo *getThis() = 0;
  96. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  97. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  98. virtual AccountInfo *release() = 0;
  99. };
  100. struct AccountActivityInfo
  101. {
  102. protected:
  103. int ref; // Reference Counter
  104. public:
  105. Framework::Text datum; // Das Datum für das die Werte gillt
  106. double stOnline; // Die Anzahl der Stunden, die der Account Online war
  107. double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat
  108. int anzSpiele; // Die Anzahl der gespielten online Spiele
  109. int anzGewonnen; // Die Anzahl der gewonnenen online Spiele
  110. // Erhöht den Reference Counter um 1 un gibt this zurück
  111. virtual AccountActivityInfo *getThis() = 0;
  112. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  113. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  114. virtual AccountActivityInfo *release() = 0;
  115. };
  116. struct ChatServerNachricht
  117. {
  118. protected:
  119. int ref; // Reference Counter
  120. public:
  121. char type; // Typ der Nachricht
  122. Framework::Text *message; // Text der Nachricht
  123. int account; // Beteiligter Account
  124. int gruppe; // Beteiligte Gruppe
  125. int chatroom; // Beteiligter Chatraum
  126. Framework::Array< int > *ids; // Liste mit Account Ids
  127. // Erhöht den Reference Counter um 1 un gibt this zurück
  128. virtual ChatServerNachricht *getThis() = 0;
  129. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  130. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  131. virtual ChatServerNachricht *release() = 0;
  132. };
  133. // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
  134. class ErhaltungServerClient
  135. {
  136. };
  137. // Wird benutzt, um aktualisierte Spieldateien herunterzuladen
  138. class PatchServerClient
  139. {
  140. };
  141. // Wird verwendet um News Oberflächen abzufragen (KSG Script Seiten)
  142. class NewsServerClient
  143. {
  144. };
  145. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  146. class RegisterServerClient
  147. {
  148. public:
  149. // verbindet ich mit dem Register Server
  150. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  151. virtual bool verbinde() = 0;
  152. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  153. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  154. // name: Der Login Name des Accounts
  155. // pass: Das Login Passwort des Accounts
  156. // geheim: Das Geheimnis des Accounts
  157. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  158. // jahr: Das Jahr des Geburtsdatums
  159. // monat: Der Monat des Geburtstages
  160. // tag: Der Tag des Geburtstages
  161. virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0;
  162. // 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.
  163. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  164. // name: Der Login Name des Accounts
  165. // pass: Das Login Passwort des Accounts
  166. // geheim: Das Geheimnis des Accounts
  167. virtual bool accountLöschen( const char *name, const char *pass, const char *geheim ) = 0;
  168. // Ändert das Passwort eines Accounts
  169. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  170. // name: Der Login Name des Accounts
  171. // pass: Das Login Passwort des Accounts
  172. // geheim: Das Geheimnis des Accounts
  173. // nPass: Das neue Passwort des Accounts
  174. virtual bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0;
  175. // Ändert die EMail Adresse eines Accounts
  176. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  177. // name: Der Login Name des Accounts
  178. // pass: Das Login Passwort des Accounts
  179. // geheim: Das Geheimnis des Accounts
  180. // nEMail: Die neue EMail Adresse
  181. virtual bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0;
  182. // Ändert das Geheimnis eines Accounts
  183. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  184. // name: Der Login Name des Accounts
  185. // pass: Das Login Passwort des Accounts
  186. // geheim: Das Geheimnis des Accounts
  187. // nGeheim: Das neue Geheimnis
  188. virtual bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0;
  189. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  190. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  191. // pass: Das Login Passwort des Accounts
  192. // geheim: Das Geheimnis des Accounts
  193. virtual bool nameVergessen( const char *pass, const char *geheim ) = 0;
  194. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  195. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  196. // name: Der Login Name des Accounts
  197. // geheim: Das Geheimnis des Accounts
  198. virtual bool passwortVergessen( const char *name, const char *geheim ) = 0;
  199. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  200. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  201. // name: Der Login Name des Accounts
  202. // pass: Das Login Passwort des Accounts
  203. virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0;
  204. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  205. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  206. // name: Der Login Name des Accounts
  207. // pass: Das Login Passwort des Accounts
  208. // geheim: Das Geheimnis des Accounts
  209. // 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
  210. virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0;
  211. // Erhält die Verbindung aufrecht
  212. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  213. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  214. virtual bool keepAlive() = 0;
  215. // Trennt die Verbindung zum Server
  216. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  217. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  218. virtual bool trenne() = 0;
  219. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  220. virtual bool istVerbunden() const = 0;
  221. // gibt den Letzten Fehlertext zuück
  222. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  223. virtual char *getLetzterFehler() const = 0;
  224. // Erhöht den Reference Counter um 1 un gibt this zurück
  225. virtual RegisterServerClient *getThis() = 0;
  226. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  227. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  228. virtual RegisterServerClient *release() = 0;
  229. };
  230. // Wird verwendet um sich einzuloggen oder auszuloggen
  231. class LoginServerClient
  232. {
  233. public:
  234. // verbindet sich mit dem zugewiesenen Login Server
  235. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  236. virtual bool verbinde() = 0;
  237. // Der Client wird beim Serversystem in einen Account eingeloggt
  238. // gibt bei Erfolg 1 zurück
  239. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  240. virtual int login( const char *name, const char *pass ) = 0;
  241. // 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.
  242. virtual bool kick( const char *geheim ) = 0;
  243. // logt den Account aus
  244. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  245. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  246. virtual bool logout() = 0;
  247. // Erhält die Verbindung aufrecht
  248. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  249. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  250. virtual bool keepAlive() = 0;
  251. // Trennt die Verbindung zum Server
  252. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  253. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  254. virtual bool trenne() = 0;
  255. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  256. virtual bool istVerbunden() const = 0;
  257. // Gibt die Id des Accounts zurück, in den sich der Client eingeloggt hat.
  258. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  259. virtual int getAccountId() const = 0;
  260. // gibt den Letzten Fehlertext zuück
  261. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  262. virtual char *getLetzterFehler() const = 0;
  263. // Erhöht den Reference Counter um 1 un gibt this zurück
  264. virtual LoginServerClient *getThis() = 0;
  265. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  266. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  267. virtual LoginServerClient *release() = 0;
  268. };
  269. // Wird verwendet um informationen über Accounts abzufragen
  270. // Kann nur von eingeloggten Clients verwendet werden
  271. class InformationServerClient
  272. {
  273. public:
  274. // verbindet ich mit dem zugewiesenen Informaion Server
  275. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  276. virtual bool verbinde() = 0;
  277. // fragt nach dem Informationstext
  278. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  279. // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält
  280. // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält
  281. virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0;
  282. // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  283. // spielId: Die Id des Spiels
  284. // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst
  285. virtual bool istSpielErlaubt( int spielId ) = 0;
  286. // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  287. // karteId: Die Id der Karte
  288. // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst
  289. virtual bool istKarteErlaubt( int karteId ) = 0;
  290. // Ermittelt die Id einer Karte
  291. // name: Der Name der Karte
  292. // Gibt bei misserfolg 0 zurück
  293. virtual int getKarteId( char *name ) = 0;
  294. // Fragt nach der Id eines Spiels
  295. // name: Der Name des Spiels
  296. // Gibt bei misserfolg 0 zurück
  297. virtual int getSpielId( char *name ) = 0;
  298. // fragt nach dem Namen eines Accounts
  299. // accountId: Die Id des Accounts
  300. // Gibt bei misserfolg 0 zurück
  301. virtual Framework::Text *getSpielerName( int accountId ) = 0;
  302. // fragt nach der Spiel Statistik eines Accounts
  303. // accountId: Die Id des Accounts
  304. // spielId: Die Id des Spiels
  305. // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  306. virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0;
  307. // fragt nach dem Namen einer Karte
  308. // karteId: Die id der Karte
  309. // Gibt bei misserfolg 0 zurück
  310. virtual Framework::Text *getKarteName( int karteId ) = 0;
  311. // fragt nach dem Namen eines Spiels
  312. // spielId: Die id des Spiels
  313. // Gibt bei misserfolg 0 zurück
  314. virtual Framework::Text *getSpielName( int spielId ) = 0;
  315. // fragt nach dem Namen eines Chatrooms
  316. // chatroomId: Die id des Chatrooms
  317. // Gibt bei misserfolg 0 zurück
  318. virtual Framework::Text *getChatroomName( int chatroomId ) = 0;
  319. // fragt zu welcher Spielart die Karte gehört
  320. // karteId: Die id der Karte
  321. // Gibt bei misserfolg 0 zurück
  322. virtual int getSpielId( int karteId ) = 0;
  323. // gibt die Id eines Accounts zurück
  324. // name: Der Angezeigte Name des Accounts
  325. // Gibt bei misserfolg 0 zurück
  326. virtual int getAccountId( char *name ) = 0;
  327. // gibt die Id des Chatrooms zurück
  328. // name: Der name des Chatrooms
  329. // Gibt bei misserfolg 0 zurück
  330. virtual int getChatroomId( char *name ) = 0;
  331. // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
  332. // gruppenId: Die id der Gruppe
  333. // Gibt bei misserfolg 0 zurück
  334. virtual int getGruppenKarteId( int gruppenId ) = 0;
  335. // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
  336. // gruppeId: Die id der Gruppe
  337. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0;
  338. // gibt die Account Id des Gruppen Administrators zurück
  339. // gruppeId: Die Id der Gruppe
  340. // Gibt bei misserfolg 0 zurück
  341. virtual int getGruppeAdminId( int gruppeId ) = 0;
  342. // gibt die Punkte eines Spielers zurück
  343. // accountId: Die Accont Id des Spielers
  344. // spielId: Die Id des Spiels
  345. // Gibt bei misserfolg 0 zurück
  346. virtual int getSpielerPunkte( int accountId, int spielId ) = 0;
  347. // gibt eine Liste mit Ids von gekauften Spielen zurück
  348. // Gibt bei misserfolg 0 zurück
  349. virtual Framework::Array< int > *getAccountSpielArtListe() = 0;
  350. // gibt die neuste Version eines Spiels zurück
  351. // spielId: Die Id des Spiels
  352. // Gibt bei misserfolg 0 zurück
  353. virtual int getSpielVersion( int spielId ) = 0;
  354. // gibt das Kupfer des Accounts zurück
  355. // Gibt bei misserfolg 0 zurück
  356. virtual int getKupfer() = 0;
  357. // Gibt die Dateigruppem Id eines Spieles zurück
  358. // spielId: Die Id des Spiels
  359. // Gibt bei misserfolg 0 zurück
  360. virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0;
  361. // Gibt den Dateigruppen Pfad zurück
  362. // dgId: Die Id der Dateigruppe
  363. // Gibt bei misserfolg 0 zurück
  364. virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0;
  365. // gibt eine Liste mit gekauften Karten zurück
  366. // spielId: Die Spiel Id zu der die Karten gehören sollen
  367. // Gibt bei misserfolg 0 zurück
  368. virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0;
  369. // Gibt die Dateigruppen Id eines Pfades zurück
  370. // pfad: Der Pfad der Dateigruppe
  371. // Gibt bei misserfolg 0 zurück
  372. virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0;
  373. // gibt die neuste Version einer Dateigruppe zurück
  374. // dg: Die Dateigruppen Id
  375. // Gibt bei misserfolg 0 zurück
  376. virtual int getDateiGruppeVersion( int dg ) = 0;
  377. // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist
  378. // suche: Der Text, der in den Namen enthalten sein soll
  379. // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite)
  380. // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite
  381. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  382. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  383. // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts
  384. // Gibt die Anzahl der gefundenen Accounts zurück
  385. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  386. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts, Framework::RCArray< AccountInfo > *accounts ) = 0;
  387. // ermittelt die aktivität eines Spielers
  388. // accId: Die Id des Accounts
  389. // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
  390. virtual bool getSpielerAktivität( int accId, Framework::RCArray< AccountActivityInfo > *info ) = 0;
  391. // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  392. // account: Die Id des Accounts
  393. // karte: Die Id der Karte
  394. virtual int getAccountKarteSpiele( int account, int karte ) = 0;
  395. // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  396. // account: Die Id des Accounts
  397. // karte: Die Id der Karte
  398. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0;
  399. // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  400. // account: Die Id des Accounts
  401. // karte: Die Id der Karte
  402. virtual bool hatAccountKarte( int account, int karte ) = 0;
  403. // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  404. // account: Die Id des Accounts
  405. // spiel: Die Id des Spiels
  406. virtual bool hatAccountSpiel( int account, int spiel ) = 0;
  407. // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden
  408. // account: Die Id des Accounts
  409. // spiel: Die Id des Spiels
  410. // Gibt bei misserfolg 0 zurück
  411. virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0;
  412. // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden
  413. // account: Die Id des Accounts
  414. // Gibt bei misserfolg 0 zurück
  415. virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0;
  416. // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  417. // account: Die Id des Accounts
  418. // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner
  419. // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten
  420. // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele
  421. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  422. virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0;
  423. // Gibt eine Liste mit Spiel Statistiken zurück
  424. // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll
  425. // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite
  426. // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite
  427. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  428. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  429. // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  430. // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele
  431. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  432. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  433. Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0;
  434. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  435. // account: Die Id des Accounts
  436. // Gibt bei misserfolg 0 zurück
  437. virtual SpielHistorieListe *getSpielHistorieDaten( int account ) = 0;
  438. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  439. // spielId: Die id des Spiels
  440. // Gibt bei misserfolg 0 zurück
  441. virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel
  442. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  443. // recht: Die Id der Berechtigungen
  444. virtual bool hatRecht( int recht ) = 0; // Prüft ob Berechtigung vorhanden
  445. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  446. // filter: Die Zeichenkette, die im Namen Auftreten soll
  447. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  448. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  449. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  450. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  451. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  452. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  453. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  454. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  455. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName,
  456. Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0;
  457. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  458. // karteId: Die Id der Karte
  459. // Gibt bei misserfolg 0 zurück
  460. virtual EditorServerClient *createEditorServerClient( int karteId ) = 0;
  461. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  462. // karteId: Die Id der Karte
  463. // Gibt bei misserfolg 0 zurück
  464. virtual KartenServerClient *createKartenServerClient( int karteId ) = 0;
  465. // Erhält die Verbindung aufrecht
  466. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  467. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  468. virtual bool keepAlive() = 0;
  469. // Trennt die Verbindung zum Server
  470. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  471. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  472. virtual bool trenne() = 0;
  473. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  474. virtual bool istVerbunden() const = 0;
  475. // gibt den Letzten Fehlertext zuück
  476. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  477. virtual char *getLetzterFehler() const = 0;
  478. // Erhöht den Reference Counter um 1 un gibt this zurück
  479. virtual InformationServerClient *getThis() = 0;
  480. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  481. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  482. virtual InformationServerClient *release() = 0;
  483. };
  484. // 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 ...)
  485. // Kann nur von eingeloggten Clients verwendet werden
  486. class ChatServerClient
  487. {
  488. public:
  489. // verbindet sich mit dem zugewiesenen Chat Server
  490. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  491. virtual bool verbinde() = 0;
  492. // sendet eine Chat Nachricht zu einem Account
  493. // zuAccount: Id des Ziel Accounts
  494. // nachricht: Die Nachricht
  495. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  496. virtual bool chatNachricht( int zuAccount, const char *nachricht ) = 0;
  497. // ändert den angezeigten Account Namen
  498. // name: der neue Name
  499. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  500. virtual bool accountNameÄndern( const char *name ) = 0;
  501. // beendet die Freundschaft mit einem Account
  502. // accountId: Die Id des Accounts
  503. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  504. virtual bool freundschaftBeenden( int accountId ) = 0;
  505. // sendet eine Freundesanfragezu einem Account
  506. // accountId: Die Id des Accounts
  507. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  508. virtual bool freundesAnfrage( int accountId ) = 0;
  509. // beantwortet eine Freundesanfrage
  510. // accountId: Die Id des Accounts
  511. // ja: 1:=annehmen,0:=ablehnen
  512. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  513. virtual bool freundesAnfrageBeantworten( int accountId, bool ja ) = 0;
  514. // erstellt ein chatroom
  515. // name: Der Name des Chatrooms
  516. // Gibt bei erfolg die Id des Chatrooms zurück, 0 sonst
  517. virtual int chatroomErstellen( const char *name ) = 0;
  518. // Sendet eine Einladung zum Chatroom
  519. // accountId: Die Id des Accounts der eingeladen werden soll
  520. // chatroomId: Die Id des Chatrooms
  521. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  522. virtual bool chatroomEinladung( int accountId, int chatroomId ) = 0;
  523. // Einladung zum Chatroom wird abgelehnt
  524. // accountId: Die Id des Accounts
  525. // chatroomId: Die Id des Chatrooms
  526. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  527. virtual bool chatroomEinladungAblehnen( int accountId, int chatroomId ) = 0;
  528. // betritt ein chatroom
  529. // chatroomId: Die Id des Chatrooms
  530. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  531. virtual bool chatroomBetreten( int chatroomId ) = 0;
  532. // chatroom Nachricht senden
  533. // chatroomId: Die Id des Chatrooms
  534. // nachricht: Die Nachricht die gesendet werden soll
  535. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  536. virtual bool chatroomNachricht( int chatroomId, const char *nachricht ) = 0;
  537. // verlässt chatroom
  538. // chatroomId: Die Id des Chatrooms
  539. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  540. virtual bool chatroomVerlassen( int chatroomId ) = 0;
  541. // kickt Account aus Chatroom (nur wenn als admin des Chatrooms eingeloggt)
  542. // chatroomId: Die Id des Chatrooms
  543. // accountId: Die Id des Accounts
  544. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  545. virtual bool chatroomKick( int chatroomId, int accountId ) = 0;
  546. // fragt nach allen freunden
  547. // Die Liste der Freunde kann über getNextMessage empfangen werden
  548. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  549. virtual bool freundesListeAnfragen() = 0;
  550. // fragt nach allen chatnachrichten, die gesendet wurden, während der Account in den der Client eingeloggt ist, offline war
  551. // Die einzelnen Nachrichten können über getNextMessage empfangen werden
  552. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  553. virtual bool chatNachrichtAnfrage() = 0;
  554. // Erhält die Verbindung aufrecht
  555. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  556. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  557. virtual bool keepAlive() = 0;
  558. // Trennt die Verbindung zum Server
  559. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  560. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  561. virtual bool trenne() = 0;
  562. // Wartet auf eine Nachricht vom Chatserver und gibt diese zurück.
  563. virtual ChatServerNachricht *getNextMessage() = 0;
  564. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  565. virtual bool istVerbunden() const = 0;
  566. // gibt den Letzten Fehlertext zuück
  567. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  568. virtual char *getLetzterFehler() const = 0;
  569. // Erhöht den Reference Counter um 1 un gibt this zurück
  570. virtual ChatServerClient *getThis() = 0;
  571. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  572. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  573. virtual ChatServerClient *release() = 0;
  574. };
  575. // Wird verwendet um Spiele oder Karten zu kaufen
  576. // Kann nur von eingeloggten Clients verwendet werden
  577. class ShopServerClient
  578. {
  579. // verbindet sich mit dem zugewiesenen Shop Server
  580. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  581. virtual bool verbinde() = 0;
  582. // Gibt eine Liste mit Spiel Ids zurück, mit Spielen, die einen Bestimten Text im Namen haben
  583. // suche: Der Text, der im Namen der Spiele vorkommen soll
  584. // Gibt bei misserfolg 0 zurück
  585. virtual Framework::Array< int > *suchSpiele( const char *suche ) = 0;
  586. // läd Titelbild des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/titelbg.ltdb
  587. // id: Die Id des Spiels
  588. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  589. virtual bool ladeSpielTitel( int id ) = 0;
  590. // läd Shop Seite des Spieles herunter und speichert es unter data/tmp/shop/kazfen/spiele/{id}/seite.ksgs
  591. // id: Die Id des Spiels
  592. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  593. virtual bool ladeSpielSeite( int id ) = 0;
  594. // Gibt den Besitz Status eines Spiels zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  595. // id: Die Id des Spiels
  596. virtual int getSpielBesitzStatus( int id ) = 0;
  597. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  598. // id: Die Id des Spiels
  599. virtual int getSpielTestversion( int id ) = 0;
  600. // Gibt den Erwerbbarkeits Status eines Spiels zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  601. // id: Die Id des Spiels
  602. virtual int istSpielErwerbbar( int id ) = 0;
  603. // Gibt den Preis eines Spiels in Kupfer zurück
  604. // id: Die Id des Spiels
  605. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  606. virtual int getSpielPreis( int id, bool testVersion ) = 0;
  607. // Kauft ein Spiel
  608. // id: Die Id des Spiels
  609. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  610. virtual bool spielErwerben( int spielId, bool testVersion ) = 0;
  611. // sucht nach Karten mit zu einem bestimmten Spiel
  612. // suche: Ein Text, der im Namen der Karte vorkommen soll
  613. // spielId: Die Id des Spiels
  614. // Gibt eine Liste Mit den Ids der gefundenen Karten zurück
  615. virtual Framework::Array< int > *suchKarten( const char *suche, int spielId ) = 0;
  616. // lädt das Titelbild der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/titelbg.ltdb
  617. // id: Die Id der Karte
  618. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  619. virtual bool ladeKarteTitel( int id ) = 0;
  620. // lädt die Shop Seite der Karte herunter und speichert es unter data/tmp/shop/kaufen/karten/{id}/seite.ksgs
  621. // id: Die Id der Karte
  622. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  623. virtual bool ladeKarteSeite( int id ) = 0;
  624. // Gibt den Besitz Status einer Karte zurück (0 = nicht im Besitz, 1 = Testversion, 2 = gekauft)
  625. // id: Die Id der Karte
  626. virtual int getKarteBesitzStatus( int id ) = 0;
  627. // gibt die Anzahl der verbleibenden Spiele der Testversion zurück
  628. // id: Die Id der Karte
  629. virtual int getKarteTestversion( int id ) = 0;
  630. // Gibt den Erwerbbarkeits Status einer Karte zurück (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  631. // id: Die Id der Karte
  632. virtual int istKarteErwerbbar( int id ) = 0;
  633. // Gibt den Preis einer Karte in Kupfer zurück
  634. // id: Die Id der Karte
  635. // testVersion: 1:=Es wird der Preis der Testversion zurückgegeben, 0:=Es wird der Preis der Vollversion zurückgegeben
  636. virtual int getKartePreis( int id, bool testVersion ) = 0;
  637. // Kauft eine Karte
  638. // id: Die Id der Karte
  639. // testVersion: 1:=Es wird die Testversion erworben, 0:=Es wird die Vollversion erworben
  640. virtual bool karteErwerben( int karteId, bool testVersion ) = 0;
  641. // Erhält die Verbindung aufrecht
  642. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  643. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  644. virtual bool keepAlive() = 0;
  645. // Trennt die Verbindung zum Server
  646. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  647. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  648. virtual bool trenne() = 0;
  649. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  650. virtual bool istVerbunden() const = 0;
  651. // gibt den Letzten Fehlertext zuück
  652. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  653. virtual char *getLetzterFehler() const = 0;
  654. // Erhöht den Reference Counter um 1 un gibt this zurück
  655. virtual ShopServerClient *getThis() = 0;
  656. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  657. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  658. virtual ShopServerClient *release() = 0;
  659. };
  660. // Wird verwendet um sich für Spiele anzumelden
  661. // Kann nur von eingeloggten Clients verwendet werden
  662. class AnmeldungServerClient
  663. {
  664. public:
  665. // verbindet sich mit dem zugewiesenen Anmeldung Server
  666. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  667. virtual bool verbinde() = 0;
  668. // erstellt eine gruppe
  669. // karteId: Die Id der Karte für die die Gruppe erstellt werden soll
  670. // Gibt bei Erfolg die Id der Gruppe zurück. Bei misserfolg wird 0 zurückgegeben
  671. virtual int gruppeErstellen( int karteId ) = 0;
  672. // Betritt eine Gruppe
  673. // gruppeId: Die Id der Gruppe
  674. // mitglieder: Nach erfolgreichem Aufruf enthält diese Liste die Lister der Account Ids der Gruppenmitglieder
  675. // anzahl: Nach erfolgreichem Aufruf wird hier die Anzahl der Gruppenmitglieder gespeichert
  676. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  677. virtual bool gruppeBetreten( int gruppeId, Framework::Array< int > *mitglieder, int *anzahl ) = 0;
  678. // Verlässt eine Gruppe
  679. // gruppeId: Die Id der Gruppe
  680. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  681. virtual bool gruppeVerlassen( int gruppeId ) = 0;
  682. // Trägt die Gruppe in die Warteschlange für die Karte ein (nur für den Gruppen Administrator)
  683. // gruppeId: Die Id der Gruppe
  684. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  685. virtual bool gruppeAnmelden( int gruppeId ) = 0;
  686. // Trägt die Gruppe aus der Warteschlange für die Karte aus (nur für den Gruppen Administrator)
  687. // gruppeId: Die Id der Gruppe
  688. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  689. virtual bool gruppeAbmelden( int gruppeId ) = 0;
  690. // läht Spieler ein die Gruppe zu betreten (nur für den Gruppen Administrator)
  691. // accountId: Die Id des Accounts
  692. // gruppeId: Die Id der Gruppe
  693. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  694. virtual bool gruppeSpielerEinladen( int accountId, int gruppeId ) = 0;
  695. // Zieht die Einladung eine Gruppe zu betreten zurück (nur für den Gruppen Administrator)
  696. // accountId: Die Id des Accounts
  697. // gruppeId: Die Id der Gruppe
  698. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  699. virtual bool gruppeEinladungAbbrechen( int accountId, int gruppeId ) = 0;
  700. // Einladung zur Gruppe ablehnen
  701. // gruppeId: Die Id der Gruppe
  702. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  703. virtual bool gruppeEinladungAblehnen( int gruppeId ) = 0;
  704. // wirft Spieler aus Gruppe (nur für den Gruppen Administrator)
  705. // accountId: Die Id des Accounts
  706. // gruppeId: Die Id der Gruppe
  707. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  708. virtual bool kickSpielerAusGruppe( int accountId, int gruppeId ) = 0;
  709. // 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
  710. // gruppeId: Die Id der Gruppe
  711. // spielStarte: 1:=alleine spielen, 0:=auf volles Spiel warten
  712. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  713. virtual bool gruppeSpielStarten( int gruppeId, bool spielStarten ) = 0;
  714. // Sendet eine Nachricht an den Gruppen Chat
  715. // gruppeId: Die Id der Gruppe
  716. // nachricht: Die Nachricht, die gesendet werden soll
  717. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  718. virtual bool gruppeNachricht( int gruppeId, char *nachricht ) = 0;
  719. // Meldet den eingeloggten Account in der Warteschlange für eine Karte an
  720. // karteId: Die Id der Karte
  721. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  722. virtual bool anmelden( int karteId ) = 0;
  723. // Meldet den eingeloggten Account aus der Warteschlange ab
  724. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  725. virtual bool abmelden() = 0;
  726. // Erhält die Verbindung aufrecht
  727. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  728. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  729. virtual bool keepAlive() = 0;
  730. // Trennt die Verbindung zum Server
  731. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  732. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  733. virtual bool trenne() = 0;
  734. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  735. virtual bool istVerbunden() const = 0;
  736. // gibt den Letzten Fehlertext zuück
  737. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  738. virtual char *getLetzterFehler() const = 0;
  739. // Erhöht den Reference Counter um 1 un gibt this zurück
  740. virtual AnmeldungServerClient *getThis() = 0;
  741. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  742. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  743. virtual AnmeldungServerClient *release() = 0;
  744. };
  745. // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen
  746. // Kann nur von eingeloggten Clients verwendet werden
  747. class KartenServerClient
  748. {
  749. };
  750. // Wird zum Online Spielen verwendet
  751. // Kann nur von eingeloggten Clients verwendet werden
  752. class SpielServerClient
  753. {
  754. };
  755. // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen
  756. // Kann nur von eingeloggten Clients verwendet werden
  757. class HistorieServerClient
  758. {
  759. protected:
  760. // verbindet sich mit dem zugewiesenen Historie Server
  761. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  762. virtual bool verbinde( char *ip, int port ) = 0;
  763. // Trennt die Verbindung zum Server
  764. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  765. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  766. virtual bool trenne() = 0;
  767. public:
  768. // Lädt die Spiel Aufzeichnung eines Spiels herunter und speichert sie unter data/tmp/historie/{spielId}
  769. // Die Spielid wurde dem Objekt zum Zeitpunkt der Erstellung vom Information Server mitgegeben
  770. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  771. // Diese Funktion verbindet sich selbstständig mit dem Server und trennt die Verbindung nach Beendigung des Vorgangs
  772. virtual bool downloadSpielHistorie() = 0;
  773. // gibt den Letzten Fehlertext zuück
  774. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  775. virtual char *getLetzterFehler() const = 0;
  776. // Erhöht den Reference Counter um 1 un gibt this zurück
  777. virtual HistorieServerClient *getThis() = 0;
  778. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  779. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  780. virtual HistorieServerClient *release() = 0;
  781. };
  782. // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden
  783. // Kann nur von eingeloggten Clients verwendet werden
  784. class MinigameServerClient
  785. {
  786. public:
  787. // verbindet sich mit dem zugewiesenen Minigame Server
  788. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  789. virtual bool verbinde() = 0;
  790. // Ermittelt die liste mit allen Optionen zu einem Minigame zurück, zu denen es Welt beste Scores gibt
  791. // mName: Der Name des Minigames
  792. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen
  793. // Gibt die Anzahl der Optionen zurück
  794. virtual int getMinigameOptionList( char *mName, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  795. // Ermittelt eine Liste mit den Weltbesten Scores zurück
  796. // mName: Der Name des Minigames
  797. // zScore: Enthält nach erfolgreichem Aufruf eine Liste mit Scores
  798. // zPlayerList: Enthält nach erfolgreichem Aufruf eine Liste mit angezeigten Account Namen, die die Scores erreicht haben.
  799. // zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen, die beim erreichen der Scores aktiv waren.
  800. // Gibt die Anzahl der Bestscores zurück
  801. virtual int getMinigameBestscoreList( char *mName, Framework::Array< int > *zScore, Framework::RCArray< Framework::Text > *zPlayerList, Framework::RCArray< Framework::Text > *zOptionList ) = 0;
  802. // Gibt den Welt bestscore zu einem Bestimmten Minigame mit bestimmten Optionen zurück.
  803. // mName: Der Name des Minigames
  804. // oName: Die Optionen
  805. // zPlayer: Enthält nach erfolgreichem Aufruf den Angezeigten Namen des Accounts, der den Score erreicht hat
  806. virtual int getMinigameOptionBestscore( char *mName, char *oName, Framework::Text *zPlayer ) = 0;
  807. // Meldet die Beendigung eines Minigames
  808. // mName: Der Name des Minigames
  809. // oName: Die Optionen mit denen gespielt wurde
  810. // score: Der Erreichte Score
  811. // Gibt 0 zurück wenn eines Fehler aufgetreten ist, 1 wenn der Forgang erfolgreich war, 2 wenn ein Game Capture hochgeladen werden muss
  812. virtual int reportEndOfGame( char *mName, char *oName, int score ) = 0;
  813. // Lädt ein Game Capture hoch
  814. // zCapture: Ein Zeiger auf die Capture Datei
  815. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  816. virtual bool uploadGameCapture( Framework::Datei *zCapture ) = 0;
  817. // Lädt ein Game Capture herunter und speichert sie unter data/tmp/minigames/wb.mgc
  818. // mName: Der Name des Minigames
  819. // oName: Die Optionen
  820. // Gibt die Datei mit dem Capture zurück
  821. virtual Framework::Datei *downloadGameCapture( char *mName, char *oName ) = 0;
  822. // Erhält die Verbindung aufrecht
  823. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  824. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  825. virtual bool keepAlive() = 0;
  826. // Trennt die Verbindung zum Server
  827. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  828. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  829. virtual bool trenne() = 0;
  830. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  831. virtual bool istVerbunden() const = 0;
  832. // gibt den Letzten Fehlertext zuück
  833. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  834. virtual char *getLetzterFehler() const = 0;
  835. // Erhöht den Reference Counter um 1 un gibt this zurück
  836. virtual MinigameServerClient *getThis() = 0;
  837. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  838. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  839. virtual MinigameServerClient *release() = 0;
  840. };
  841. // Wird verwendet um Karten für Spiele zu erstellen
  842. // Kann nur von eingeloggten Clients verwendet werden
  843. class EditorServerClient
  844. {
  845. };
  846. // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen
  847. class MainServerClient
  848. {
  849. public:
  850. // 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
  851. virtual bool registerSSL( Framework::Text *ip, unsigned short port ) = 0;
  852. // Verbindet den Client mit dem Server
  853. // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt.
  854. virtual bool connect() = 0;
  855. // Erzeugt einen Erhaltungs Server Client
  856. // Gibt bei misserfolg 0 zurück
  857. virtual ErhaltungServerClient *createErhaltungServerClient() = 0;
  858. // Erzeugt einen Patch Server Client
  859. // Gibt bei misserfolg 0 zurück
  860. virtual PatchServerClient *createPatchServerClient() = 0;
  861. // Erzeugt einen News Server Client
  862. // Gibt bei misserfolg 0 zurück
  863. virtual NewsServerClient *createNewsServerClient() = 0;
  864. // Erzeugt einen Register Server Client
  865. // Gibt bei misserfolg 0 zurück
  866. virtual RegisterServerClient *createRegisterServerClient() = 0;
  867. // Erzeugt einen Login Server Client
  868. // Gibt bei misserfolg 0 zurück
  869. virtual LoginServerClient *createLoginServerClient() = 0;
  870. // Erzeugt einen Information Server Client
  871. // Gibt bei misserfolg 0 zurück
  872. virtual InformationServerClient *createInformationServerClient() = 0;
  873. // Erzeugt einen Chat Server Client
  874. // Gibt bei misserfolg 0 zurück
  875. virtual ChatServerClient *createChatServerClient() = 0;
  876. // Erzeugt einen Shop Server Client
  877. // Gibt bei misserfolg 0 zurück
  878. virtual ShopServerClient *createShopServerClient() = 0;
  879. // Erzeugt einen Anmeldung Server Client
  880. // Gibt bei misserfolg 0 zurück
  881. virtual AnmeldungServerClient *createAnmeldungServerClient() = 0;
  882. // Erzeugt einen Minigame Server Client
  883. // Gibt bei misserfolg 0 zurück
  884. virtual MinigameServerClient *createMinigameServerClient() = 0;
  885. // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde
  886. virtual bool disconnect() = 0;
  887. // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar
  888. virtual bool unregister() = 0;
  889. // Gibt die dem Client zugewiesene Id zurück.
  890. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  891. virtual int getClientId() const = 0;
  892. // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück.
  893. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  894. virtual Framework::Text *getServerIp() const = 0;
  895. // Gibt den Port des dem Client zugewiesenen Main Servers zurück.
  896. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  897. virtual unsigned short getServerPort() const = 0;
  898. };
  899. extern "C"
  900. {
  901. // Einstiegspunkte in die Bibliothek
  902. // Erzeugt einen neuen Client beim Serversystem.
  903. // registerSSL Methode muss aufgerufen werden um den Client beim Serversystem anzumelden
  904. MainServerClient *createMainServerClient();
  905. // Erzeugt einen Client, der bereits beim Serversystem angemeldet ist
  906. // ip: Die Ip des Main Servers für angemeldete Clients
  907. // port: Der Port des Main Servers für angemeldete Clients
  908. // klientId: Die Id die der Client durch das Anmelden bekommen hat
  909. MainServerClient *createMainServerClient( char *ip, unsigned short port, int klientId );
  910. }
  911. }