KSGNetwork.h 71 KB

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