KSGNetwork.h 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  1. #pragma once
  2. #include <Array.h>
  3. namespace Framework
  4. {
  5. class Text;
  6. }
  7. namespace Network
  8. {
  9. class Klient;
  10. }
  11. namespace KSGClient
  12. {
  13. // Enthält die Daten eines Spielers zu einem vergangenen Spiel
  14. struct SpielHistorieSpielerDaten
  15. {
  16. protected:
  17. int ref; // Reference Counter
  18. public:
  19. Framework::Text *name; // Der Sichtabe Name des Spielers
  20. int punkte; // Die Punkte, die der Spieler in dem Spiel gewonnen / verloren hat
  21. Framework::Text *status; // Der Status des Spielers in dem Spiel (verloren, gewonnen, nicht anwesend, beobachter, unentschieden)
  22. int farbe; // Die Farbe des Spielers
  23. // Erhöht den Reference Counter um 1 un gibt this zurück
  24. virtual SpielHistorieSpielerDaten *getThis() = 0;
  25. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  26. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  27. virtual SpielHistorieSpielerDaten *release() = 0;
  28. };
  29. // Enthält die Datein eines Teams zu einem vergangenen Spiel
  30. struct SpielHistorieTeamDaten
  31. {
  32. protected:
  33. int ref; // Reference Counter
  34. public:
  35. Framework::Text *name; // Der Sichtabe Name des Teams
  36. int sAnzahl; // Die Anzahl der Spieler im Team
  37. Framework::Text *status; // Der Status des Teams (verloren, gewonnen, beobachter, unentschieden)
  38. int farbe; // Die Farbe des Teams
  39. Framework::RCArray< SpielHistorieSpielerDaten > *spieler; // Eine Liste mit den Spielerdaten zu den Spielern aus dem Team
  40. // Erhöht den Reference Counter um 1 un gibt this zurück
  41. virtual SpielHistorieTeamDaten *getThis() = 0;
  42. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  43. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  44. virtual SpielHistorieTeamDaten *release() = 0;
  45. };
  46. // Enthält Daten zu einem vergangenen Spiel
  47. struct SpielHistorieDaten
  48. {
  49. protected:
  50. int ref; // Reference Counter
  51. public:
  52. int id; // Die Id des vergangenen Spiels
  53. int karteId; // Die Id der Karte, welche gespielt wurde
  54. Framework::Text *spiel; // Der Name des Spiels, welches gespielt wurde
  55. Framework::Text *karte; // Der Name der Karte, welche gespielt wurde
  56. Framework::Text *datum; // Der Zeitpunkt, an dem das Spiel Statfand
  57. Framework::Text *status; // Der Status des Spielers, über welchen die Statistik angefragt wurde
  58. Framework::Text *dauer; // Die Dater des Spiels
  59. Framework::Text *spielStatus; // Der Status des Spiels (beginnt, läuft, abgebrochen, fehlerhaft, beendet, unbewertet)
  60. Framework::Text *gewinner; // Der Name des Gewinners
  61. int sAnzahl; // Die Anzahl der Spieler
  62. Framework::RCArray< SpielHistorieTeamDaten > *teams; // Die Daten der Teams des Spiels
  63. // Erhöht den Reference Counter um 1 un gibt this zurück
  64. virtual SpielHistorieDaten *getThis() = 0;
  65. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  66. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  67. virtual SpielHistorieDaten *release() = 0;
  68. };
  69. // Enthält eine Liste von Spiel Daten aus vergangenen Spielen
  70. struct SpielHistorieListe
  71. {
  72. protected:
  73. int ref; // Reference Counter
  74. public:
  75. Framework::RCArray< SpielHistorieDaten > *spiele; // Eine Liste mit den Daten zu vergangenen Spielen
  76. // Erhöht den Reference Counter um 1 un gibt this zurück
  77. virtual SpielHistorieListe *getThis() = 0;
  78. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  79. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  80. virtual SpielHistorieListe *release() = 0;
  81. };
  82. struct AccountInfo
  83. {
  84. protected:
  85. int ref; // Reference Counter
  86. public:
  87. int id; // Die Id des Accounts
  88. Framework::Text *name; // Der angezeigte Name des Accounts
  89. Framework::Text zuletztOnline; // Der Zeitpunkt, zu dem der Account zuletzt online war
  90. Framework::Text letztesSpiel; // Der Name des zuletzt gespielten online Spiels
  91. Framework::Text letzteKarte; // Der Name der zuletzt gespielten Karte
  92. Framework::Text punkte; // Die Punkte des Spielers in dem Spiel
  93. // Erhöht den Reference Counter um 1 un gibt this zurück
  94. virtual AccountInfo *getThis() = 0;
  95. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  96. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  97. virtual AccountInfo *release() = 0;
  98. };
  99. struct AccountActivityInfo
  100. {
  101. protected:
  102. int ref; // Reference Counter
  103. public:
  104. Framework::Text datum; // Das Datum für das die Werte gillt
  105. double stOnline; // Die Anzahl der Stunden, die der Account Online war
  106. double stGespielt; // Die Anzahl der Stunden, die der Account in online Spielen verbracht hat
  107. int anzSpiele; // Die Anzahl der gespielten online Spiele
  108. int anzGewonnen; // Die Anzahl der gewonnenen online Spiele
  109. // Erhöht den Reference Counter um 1 un gibt this zurück
  110. virtual AccountActivityInfo *getThis() = 0;
  111. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  112. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  113. virtual AccountActivityInfo *release() = 0;
  114. };
  115. // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
  116. class ErhaltungServerClient
  117. {
  118. };
  119. // Wird benutzt, um aktualisierte Spieldateien herunterzuladen
  120. class PatchServerClient
  121. {
  122. };
  123. // Wird verwendet um News Oberflächen abzufragen (KSG Script Seiten)
  124. class NewsServerClient
  125. {
  126. };
  127. // Wird benutzt, um Accounts zu erstellen zu ändern oder zu löschen
  128. class RegisterServerClient
  129. {
  130. public:
  131. // verbindet ich mit dem Register Server
  132. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  133. virtual bool verbinde() = 0;
  134. // Sendet eine Anfrage auf Erstellung eines neuen Accounts. Ein neuer Account kann erst verwendet werden, wenn ein Link in der Bestätigungsemail angeklickt wurde.
  135. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  136. // name: Der Login Name des Accounts
  137. // pass: Das Login Passwort des Accounts
  138. // geheim: Das Geheimnis des Accounts
  139. // eMail: Die EMail Adresse an die die bestätigungs EMail gesendet werden soll
  140. // jahr: Das Jahr des Geburtsdatums
  141. // monat: Der Monat des Geburtstages
  142. // tag: Der Tag des Geburtstages
  143. virtual bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ) = 0;
  144. // 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.
  145. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  146. // name: Der Login Name des Accounts
  147. // pass: Das Login Passwort des Accounts
  148. // geheim: Das Geheimnis des Accounts
  149. virtual bool accountLöschen( const char *name, const char *pass, const char *geheim ) = 0;
  150. // Ändert das Passwort eines Accounts
  151. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  152. // name: Der Login Name des Accounts
  153. // pass: Das Login Passwort des Accounts
  154. // geheim: Das Geheimnis des Accounts
  155. // nPass: Das neue Passwort des Accounts
  156. virtual bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ) = 0;
  157. // Ändert die EMail Adresse eines Accounts
  158. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  159. // name: Der Login Name des Accounts
  160. // pass: Das Login Passwort des Accounts
  161. // geheim: Das Geheimnis des Accounts
  162. // nEMail: Die neue EMail Adresse
  163. virtual bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ) = 0;
  164. // Ändert das Geheimnis eines Accounts
  165. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  166. // name: Der Login Name des Accounts
  167. // pass: Das Login Passwort des Accounts
  168. // geheim: Das Geheimnis des Accounts
  169. // nGeheim: Das neue Geheimnis
  170. virtual bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ) = 0;
  171. // Sendet eine Anfrage auf Name Vergessen. Der Name wird an die angegebene EMail Adresse gesendet
  172. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  173. // pass: Das Login Passwort des Accounts
  174. // geheim: Das Geheimnis des Accounts
  175. virtual bool nameVergessen( const char *pass, const char *geheim ) = 0;
  176. // Sendet eine Anfrage auf Passwort Vergessen. Es wird ein Link an die angegebene Email Adresse gesendet, über den ein neues Passwort vergeben werden kann
  177. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  178. // name: Der Login Name des Accounts
  179. // geheim: Das Geheimnis des Accounts
  180. virtual bool passwortVergessen( const char *name, const char *geheim ) = 0;
  181. // Sendet eine Anfrage auf Geheimnis Vergessen. Das Geheimnis wird an die angegebene EMail Adresse gesendet
  182. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  183. // name: Der Login Name des Accounts
  184. // pass: Das Login Passwort des Accounts
  185. virtual bool geheimnisVergessen( const char *name, const char *pass ) = 0;
  186. // Sendet eine Anfrage auf EMail Vergessen. Die EMail Adresse wird direkt vom Server zurückgegeben
  187. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  188. // name: Der Login Name des Accounts
  189. // pass: Das Login Passwort des Accounts
  190. // geheim: Das Geheimnis des Accounts
  191. // 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
  192. virtual bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ) = 0;
  193. // Erhält die Verbindung aufrecht
  194. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  195. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  196. virtual bool keepAlive() = 0;
  197. // Trennt die Verbindung zum Server
  198. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  199. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  200. virtual bool trenne() = 0;
  201. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  202. virtual bool istVerbunden() const = 0;
  203. // gibt den Letzten Fehlertext zuück
  204. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  205. virtual char *getLetzterFehler() const = 0;
  206. // Erhöht den Reference Counter um 1 un gibt this zurück
  207. virtual RegisterServerClient *getThis() = 0;
  208. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  209. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  210. virtual RegisterServerClient *release() = 0;
  211. };
  212. // Wird verwendet um sich einzuloggen oder auszuloggen
  213. class LoginServerClient
  214. {
  215. public:
  216. // verbindet sich mit dem zugewiesenen Login Server
  217. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  218. virtual bool verbinde() = 0;
  219. // Der Client wird beim Serversystem in einen Account eingeloggt
  220. // gibt bei Erfolg 1 zurück
  221. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  222. virtual int login( const char *name, const char *pass ) = 0;
  223. // 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.
  224. virtual bool kick( const char *geheim ) = 0;
  225. // logt den Account aus
  226. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  227. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  228. virtual bool logout() = 0;
  229. // Erhält die Verbindung aufrecht
  230. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  231. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  232. virtual bool keepAlive() = 0;
  233. // Trennt die Verbindung zum Server
  234. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  235. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  236. virtual bool trenne() = 0;
  237. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  238. virtual bool istVerbunden() const = 0;
  239. // Gibt die Id des Accounts zurück, in den sich der Client eingeloggt hat.
  240. // sollte erst aufgerufen werden, nachdem ein erfolgreicher Aufruf von login erfolg ist
  241. virtual int getAccountId() const = 0;
  242. // gibt den Letzten Fehlertext zuück
  243. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  244. virtual char *getLetzterFehler() const = 0;
  245. // Erhöht den Reference Counter um 1 un gibt this zurück
  246. virtual LoginServerClient *getThis() = 0;
  247. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  248. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  249. virtual LoginServerClient *release() = 0;
  250. };
  251. // Wird verwendet um informationen über Accounts abzufragen
  252. // Kann nur von eingeloggten Clients verwendet werden
  253. class InformationServerClient
  254. {
  255. public:
  256. // verbindet ich mit dem zugewiesenen Informaion Server
  257. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  258. virtual bool verbinde() = 0;
  259. // fragt nach dem Informationstext
  260. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  261. // txt: Ein Zeiger auf ein Text Objekt, welches bei einem erfolgreichen Aufruf den Informationstext enthält
  262. // typ: ein Zeieger auf ein Integer, welches bei einem erfolgreichen Aufruf den Typ der Information enthält
  263. virtual bool getInformationText( Framework::Text *txt, int *typ ) = 0;
  264. // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  265. // spielId: Die Id des Spiels
  266. // Gibt 1 zurück, falls das Spiel gespielt werden darf, 0 sonnst
  267. virtual bool istSpielErlaubt( int spielId ) = 0;
  268. // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  269. // karteId: Die Id der Karte
  270. // Gibt 1 zurück, falls die Karte gespielt werden darf, 0 sonnst
  271. virtual bool istKarteErlaubt( int karteId ) = 0;
  272. // Ermittelt die Id einer Karte
  273. // name: Der Name der Karte
  274. // Gibt bei misserfolg 0 zurück
  275. virtual int getKarteId( char *name ) = 0;
  276. // Fragt nach der Id eines Spiels
  277. // name: Der Name des Spiels
  278. // Gibt bei misserfolg 0 zurück
  279. virtual int getSpielId( char *name ) = 0;
  280. // fragt nach dem Namen eines Accounts
  281. // accountId: Die Id des Accounts
  282. // Gibt bei misserfolg 0 zurück
  283. virtual Framework::Text *getSpielerName( int accountId ) = 0;
  284. // fragt nach der Spiel Statistik eines Accounts
  285. // accountId: Die Id des Accounts
  286. // spielId: Die Id des Spiels
  287. // werte: Nach erfolgreichem Aufruf enthält die Liste die Statistik werte (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  288. virtual bool getSpielStatistik( int accountId, int spielId, Framework::Array< int > *werte ) = 0;
  289. // fragt nach dem Namen einer Karte
  290. // karteId: Die id der Karte
  291. // Gibt bei misserfolg 0 zurück
  292. virtual Framework::Text *getKarteName( int karteId ) = 0;
  293. // fragt nach dem Namen eines Spiels
  294. // spielId: Die id des Spiels
  295. // Gibt bei misserfolg 0 zurück
  296. virtual Framework::Text *getSpielName( int spielId ) = 0;
  297. // fragt nach dem Namen eines Chatrooms
  298. // chatroomId: Die id des Chatrooms
  299. // Gibt bei misserfolg 0 zurück
  300. virtual Framework::Text *getChatroomName( int chatroomId ) = 0;
  301. // fragt zu welcher Spielart die Karte gehört
  302. // karteId: Die id der Karte
  303. // Gibt bei misserfolg 0 zurück
  304. virtual int getSpielId( int karteId ) = 0;
  305. // gibt die Id eines Accounts zurück
  306. // name: Der Angezeigte Name des Accounts
  307. // Gibt bei misserfolg 0 zurück
  308. virtual int getAccountId( char *name ) = 0;
  309. // gibt die Id des Chatrooms zurück
  310. // name: Der name des Chatrooms
  311. // Gibt bei misserfolg 0 zurück
  312. virtual int getChatroomId( char *name ) = 0;
  313. // gibt die karten Id zurück, zu dem eine Gruppe erstellt wurde
  314. // gruppenId: Die id der Gruppe
  315. // Gibt bei misserfolg 0 zurück
  316. virtual int getGruppenKarteId( int gruppenId ) = 0;
  317. // gibt 1 zurück, wenn zu einer Gruppe Spieler hinzugefügt werden können, 0 sonnst
  318. // gruppeId: Die id der Gruppe
  319. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) = 0;
  320. // gibt die Account Id des Gruppen Administrators zurück
  321. // gruppeId: Die Id der Gruppe
  322. // Gibt bei misserfolg 0 zurück
  323. virtual int getGruppeAdminId( int gruppeId ) = 0;
  324. // gibt die Punkte eines Spielers zurück
  325. // accountId: Die Accont Id des Spielers
  326. // spielId: Die Id des Spiels
  327. // Gibt bei misserfolg 0 zurück
  328. virtual int getSpielerPunkte( int accountId, int spielId ) = 0;
  329. // gibt eine Liste mit Ids von gekauften Spielen zurück
  330. // Gibt bei misserfolg 0 zurück
  331. virtual Framework::Array< int > *getAccountSpielArtListe() = 0;
  332. // gibt die neuste Version eines Spiels zurück
  333. // spielId: Die Id des Spiels
  334. // Gibt bei misserfolg 0 zurück
  335. virtual int getSpielVersion( int spielId ) = 0;
  336. // gibt das Kupfer des Accounts zurück
  337. // Gibt bei misserfolg 0 zurück
  338. virtual int getKupfer() = 0;
  339. // Gibt die Dateigruppem Id eines Spieles zurück
  340. // spielId: Die Id des Spiels
  341. // Gibt bei misserfolg 0 zurück
  342. virtual int getDateiGruppeIdVonSpiel( int spielId ) = 0;
  343. // Gibt den Dateigruppen Pfad zurück
  344. // dgId: Die Id der Dateigruppe
  345. // Gibt bei misserfolg 0 zurück
  346. virtual Framework::Text *getDateiGruppePfad( int dgId ) = 0;
  347. // gibt eine Liste mit gekauften Karten zurück
  348. // spielId: Die Spiel Id zu der die Karten gehören sollen
  349. // Gibt bei misserfolg 0 zurück
  350. virtual Framework::Array< int > *getAccountKarteListe( int spielId ) = 0;
  351. // Gibt die Dateigruppen Id eines Pfades zurück
  352. // pfad: Der Pfad der Dateigruppe
  353. // Gibt bei misserfolg 0 zurück
  354. virtual int getDateiGruppeIdVonPfad( char *pfad ) = 0;
  355. // gibt die neuste Version einer Dateigruppe zurück
  356. // dg: Die Dateigruppen Id
  357. // Gibt bei misserfolg 0 zurück
  358. virtual int getDateiGruppeVersion( int dg ) = 0;
  359. // Gibt eine Liste Mit Accounts zurück, die einen bestimmten Text im Namen haben und bestimmt Sortiert ist
  360. // suche: Der Text, der in den Namen enthalten sein soll
  361. // seite: Die gewünschte Seite der Tabelle (enthält nach einem Erfolgreichen Aufruf die korrekte Seite)
  362. // maxSeite: Enthält nach erfolgreichem Aufruf die Maximale Seite
  363. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  364. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  365. // accounts: Enthält nach erfolgreichem Aufruf die Daten der Accounts
  366. // Gibt die Anzahl der gefundenen Accounts zurück
  367. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  368. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts, Framework::RCArray< AccountInfo > *accounts ) = 0;
  369. // ermittelt die aktivität eines Spielers
  370. // accId: Die Id des Accounts
  371. // info: Enthält nach erfolgreichem Aufruf die Aktivitätsinformationen der letzten 30 Tage
  372. virtual bool getSpielerAktivität( int accId, Framework::RCArray< AccountActivityInfo > *info ) = 0;
  373. // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  374. // account: Die Id des Accounts
  375. // karte: Die Id der Karte
  376. virtual int getAccountKarteSpiele( int account, int karte ) = 0;
  377. // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  378. // account: Die Id des Accounts
  379. // karte: Die Id der Karte
  380. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) = 0;
  381. // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  382. // account: Die Id des Accounts
  383. // karte: Die Id der Karte
  384. virtual bool hatAccountKarte( int account, int karte ) = 0;
  385. // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  386. // account: Die Id des Accounts
  387. // spiel: Die Id des Spiels
  388. virtual bool hatAccountSpiel( int account, int spiel ) = 0;
  389. // gibt eine Liste mit Ids von Karten zurück, die von einem Spieler bereits gespielt wurden
  390. // account: Die Id des Accounts
  391. // spiel: Die Id des Spiels
  392. // Gibt bei misserfolg 0 zurück
  393. virtual Framework::Array< int > *getAccountKarteGespieltListe( int account, int spielId ) = 0;
  394. // gibt eine Liste mit Ids von Spielen zurück, die von einem Spieler bereits gespielt wurden
  395. // account: Die Id des Accounts
  396. // Gibt bei misserfolg 0 zurück
  397. virtual Framework::Array< int > *getAccountSpielGespieltListe( int account ) = 0;
  398. // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  399. // account: Die Id des Accounts
  400. // spieler: Enthält nach erfolgreichem Aufruf eine Liste mit Account Ids der Spiel Partner
  401. // karten: Enthält nach erfolgreichem Aufruf eine Liste mit den Ids der gespielten Karten
  402. // anzahl: Enthält nach erfolgreichem Aufruf eine Liste mit der Anzahl der Spiele
  403. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  404. virtual bool getSpielPartnerListe( int account, Framework::Array< int > *spieler, Framework::Array< int > *karten, Framework::Array< int > *anzahl ) = 0;
  405. // Gibt eine Liste mit Spiel Statistiken zurück
  406. // account: Die Id des Accounts zu dem die Statistik ermittelt werden soll
  407. // seite: Die gewünschte Seite. Enthält nach efolgreichem Aufruf die korrekte Seite
  408. // maxSeite: Enthält nach erfolgreichem Aufruf die Macimale Seite
  409. // sortSpalte: Die Spalte, nach der Sortiert werden soll
  410. // rückwärts: 1:=Rückwärtzt Sortierung, 0:=Vorwärts Sortierung
  411. // werte: Enthält nach erfolgreichem Aufruf eine Liste mit Statistik Werten (gespielt, gewonnen, verloren, punkte, bw0, bw1, bw2, bw3, bw4, bw5)
  412. // namen: Enthält nach erfolgreichem Aufruf die Namen der Spiele
  413. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  414. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  415. Framework::RCArray< Framework::Array< int > > *werte, Framework::RCArray< Framework::Text > *namen ) = 0;
  416. // Gibt eine Liste mit den Daten der letzten 20 Spiele von einem Account zurück
  417. // account: Die Id des Accounts
  418. // Gibt bei misserfolg 0 zurück
  419. virtual SpielHistorieListe *getSpielHistorieDaten( int account ) = 0;
  420. // Erzeugt einen Client zu dem Historie Server, welcher die Aufzeichnungen und Statistiken eines Bestimmten Spiels verwaltet
  421. // spielId: Die id des Spiels
  422. // Gibt bei misserfolg 0 zurück
  423. virtual HistorieServerClient *createHistorieServerClient( int spielId ) = 0; // sucht nach dem Historie Server von einem Spiel
  424. // Prüft, ob der Account bestimmte Berechtigungen besitzt
  425. // recht: Die Id der Berechtigungen
  426. virtual bool hatRecht( int recht ) = 0; // Prüft ob Berechtigung vorhanden
  427. // Gibt eine Liste mit Karten zurück, die einen bestimmten Text im Namen enthalten und bestimmt sortiert ist
  428. // filter: Die Zeichenkette, die im Namen Auftreten soll
  429. // sortSpalte: Der Index der Spalte, nach der sortiert werden soll
  430. // absteigend: 1:=absteigende sortierung,0:=aufsteigende Sortierung
  431. // kId: Eine Liste, welche nach einem erfolgreichen Aufruf die Ids der Karten enthält
  432. // kName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Karten enthält
  433. // sName: Eine Liste, welche nach einem erfolgreichen Aufruf die Namen der Spiele der Karten enthält
  434. // kupfer: Eine Liste, welche nach einem erfolgreichen Aufruf die Preise der Karten in Kupfer
  435. // verkauft: Eine Liste, welche nach einem erfolgreichen Aufruf die Anzahl der Verkäufe der Karten enthält
  436. // maxSpieler: Eine Liste, welche nach einem erfolgreichen Aufruf die Maximalen Spieleranzahlen der Karten enthält
  437. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Framework::Array< int > *kId, Framework::RCArray< Framework::Text > *kName, Framework::RCArray< Framework::Text > *sName,
  438. Framework::Array< int > *kupfer, Framework::Array< int > *verkauft, Framework::Array< int > *maxSpieler ) = 0;
  439. // Erzeugt einen Client zu dem Editor Server von der Karte mit einer bestimmten Id
  440. // karteId: Die Id der Karte
  441. // Gibt bei misserfolg 0 zurück
  442. virtual EditorServerClient *createEditorServerClient( int karteId ) = 0;
  443. // Erzeugt einen Client zu dem Karten Server von der Karte mit einer bestimmten Id
  444. // karteId: Die Id der Karte
  445. // Gibt bei misserfolg 0 zurück
  446. virtual KartenServerClient *createKartenServerClient( int karteId ) = 0;
  447. // Erhält die Verbindung aufrecht
  448. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  449. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  450. virtual bool keepAlive() = 0; // Erhält die Verbindung aufrecht
  451. // Trennt die Verbindung zum Server
  452. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  453. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  454. virtual bool trenne() = 0;
  455. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  456. virtual bool istVerbunden() const = 0;
  457. // gibt den Letzten Fehlertext zuück
  458. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  459. virtual char *getLetzterFehler() const = 0;
  460. // Erhöht den Reference Counter um 1 un gibt this zurück
  461. virtual InformationServerClient *getThis() = 0;
  462. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  463. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  464. virtual InformationServerClient *release() = 0;
  465. };
  466. // 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 ...)
  467. // Kann nur von eingeloggten Clients verwendet werden
  468. class ChatServerClient
  469. {
  470. };
  471. // Wird verwendet um Spiele oder Karten zu kaufen
  472. // Kann nur von eingeloggten Clients verwendet werden
  473. class ShopServerClient
  474. {
  475. };
  476. // Wird verwendet um sich für Spiele anzumelden
  477. // Kann nur von eingeloggten Clients verwendet werden
  478. class AnmeldungServerClient
  479. {
  480. };
  481. // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen
  482. // Kann nur von eingeloggten Clients verwendet werden
  483. class KartenServerClient
  484. {
  485. };
  486. // Wird zum Online Spielen verwendet
  487. // Kann nur von eingeloggten Clients verwendet werden
  488. class SpielServerClient
  489. {
  490. };
  491. // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen
  492. // Kann nur von eingeloggten Clients verwendet werden
  493. class HistorieServerClient
  494. {
  495. };
  496. // Wird verwendet um Minigame Bestscores abzufragen und Minigame Spielaufzeichnungen zu laden
  497. // Kann nur von eingeloggten Clients verwendet werden
  498. class MinigameServerClient
  499. {
  500. };
  501. // Wird verwendet um Karten für Spiele zu erstellen
  502. // Kann nur von eingeloggten Clients verwendet werden
  503. class EditorServerClient
  504. {
  505. };
  506. // Wird verwendet um Eine Verbindung mit dem Serversystem herzustellen
  507. class MainServerClient
  508. {
  509. public:
  510. // 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
  511. virtual bool registerSSL( Framework::Text *ip, unsigned short port ) = 0;
  512. // Verbindet den Client mit dem Server
  513. // Wird automatisch aufgerufen, falls eine Methode aufgerufen wird, die eine Verbindung erfordert. In diesem Fall wird die Verbindung auch automatisch wieder getrennt.
  514. virtual bool connect() = 0;
  515. // Erzeugt einen Erhaltungs Server Client
  516. // Gibt bei misserfolg 0 zurück
  517. virtual ErhaltungServerClient *createErhaltungServerClient() = 0;
  518. // Erzeugt einen Patch Server Client
  519. // Gibt bei misserfolg 0 zurück
  520. virtual PatchServerClient *createPatchServerClient() = 0;
  521. // Erzeugt einen News Server Client
  522. // Gibt bei misserfolg 0 zurück
  523. virtual NewsServerClient *createNewsServerClient() = 0;
  524. // Erzeugt einen Register Server Client
  525. // Gibt bei misserfolg 0 zurück
  526. virtual RegisterServerClient *createRegisterServerClient() = 0;
  527. // Erzeugt einen Login Server Client
  528. // Gibt bei misserfolg 0 zurück
  529. virtual LoginServerClient *createLoginServerClient() = 0;
  530. // Erzeugt einen Information Server Client
  531. // Gibt bei misserfolg 0 zurück
  532. virtual InformationServerClient *createInformationServerClient() = 0;
  533. // Erzeugt einen Chat Server Client
  534. // Gibt bei misserfolg 0 zurück
  535. virtual ChatServerClient *createChatServerClient() = 0;
  536. // Erzeugt einen Shop Server Client
  537. // Gibt bei misserfolg 0 zurück
  538. virtual ShopServerClient *createShopServerClient() = 0;
  539. // Erzeugt einen Anmeldung Server Client
  540. // Gibt bei misserfolg 0 zurück
  541. virtual AnmeldungServerClient *createAnmeldungServerClient() = 0;
  542. // Erzeugt einen Minigame Server Client
  543. // Gibt bei misserfolg 0 zurück
  544. virtual MinigameServerClient *createMinigameServerClient() = 0;
  545. // Trennt die Verbindung zum Server. Muss nur aufgerufen werden, wenn vorher manuell connect aufgerufen wurde
  546. virtual bool disconnect() = 0;
  547. // Meldet den Client vom Server ab. Alle zuvor von diesem Client erzeugten Clients werden durch diesen Vorgang unbrauchbar
  548. virtual bool unregister() = 0;
  549. // Gibt die dem Client zugewiesene Id zurück.
  550. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  551. virtual int getClientId() const = 0;
  552. // Gibt die Ip Adresse des dem Client zugewiesenen Main Servers zurück.
  553. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  554. virtual Framework::Text *getServerIp() const = 0;
  555. // Gibt den Port des dem Client zugewiesenen Main Servers zurück.
  556. // sollte erst nach dem Aufruf von registerSSL verwendet werden.
  557. virtual unsigned short getServerPort() const = 0;
  558. };
  559. extern "C"
  560. {
  561. // Einstiegspunkte in die Bibliothek
  562. // Erzeugt einen neuen Client beim Serversystem.
  563. // registerSSL Methode muss aufgerufen werden um den Client beim Serversystem anzumelden
  564. MainServerClient *createMainServerClient();
  565. // Erzeugt einen Client, der bereits beim Serversystem angemeldet ist
  566. // ip: Die Ip des Main Servers für angemeldete Clients
  567. // port: Der Port des Main Servers für angemeldete Clients
  568. // klientId: Die Id die der Client durch das Anmelden bekommen hat
  569. MainServerClient *createMainServerClient( char *ip, unsigned short port, int klientId );
  570. }
  571. }