KSGNetwork.h 83 KB

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