KSGNetwork.h 84 KB

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