KSGNetwork.h 56 KB

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