|
@@ -89,6 +89,97 @@ bool MinigameClient::verbinde()
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+// Gibt die Id des aktuell spielenden Accounts zurück
|
|
|
+int MinigameClient::getAccountId()
|
|
|
+{
|
|
|
+ cs.lock();
|
|
|
+ if( !k )
|
|
|
+ {
|
|
|
+ if( !verbinde() )
|
|
|
+ {
|
|
|
+ err = "Der Client ist nicht verbunden.";
|
|
|
+ cs.unlock();
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ k->sendeEncrypted( "\xB", 1 );
|
|
|
+ char ret = 0;
|
|
|
+ k->getNachrichtEncrypted( &ret, 1 );
|
|
|
+ if( ret == 1 )
|
|
|
+ {
|
|
|
+ int acc = 0;
|
|
|
+ k->getNachrichtEncrypted( (char*)&acc, 4 );
|
|
|
+ cs.unlock();
|
|
|
+ return acc;
|
|
|
+ }
|
|
|
+ if( ret == 3 )
|
|
|
+ {
|
|
|
+ char l = 0;
|
|
|
+ k->getNachrichtEncrypted( &l, 1 );
|
|
|
+ char *fehler = new char[ l + 1 ];
|
|
|
+ fehler[ l ] = 0;
|
|
|
+ k->getNachrichtEncrypted( fehler, l );
|
|
|
+ err = fehler;
|
|
|
+ delete[] fehler;
|
|
|
+ cs.unlock();
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ err = "Unbekannter Fehler";
|
|
|
+ cs.unlock();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+// Gibt den Anzeigenamen eines bestimmten Accounts zurück
|
|
|
+// id: Die id des Accounts
|
|
|
+Text *MinigameClient::getAccountName( int id )
|
|
|
+{
|
|
|
+ cs.lock();
|
|
|
+ if( !k )
|
|
|
+ {
|
|
|
+ if( !verbinde() )
|
|
|
+ {
|
|
|
+ err = "Der Client ist nicht verbunden.";
|
|
|
+ cs.unlock();
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ k->sendeEncrypted( "\xC", 1 );
|
|
|
+ char ret = 0;
|
|
|
+ k->getNachrichtEncrypted( &ret, 1 );
|
|
|
+ if( ret == 1 )
|
|
|
+ {
|
|
|
+ k->sendeEncrypted( (char*)&id, 4 );
|
|
|
+ k->getNachrichtEncrypted( &ret, 1 );
|
|
|
+ if( ret == 1 )
|
|
|
+ {
|
|
|
+ char l;
|
|
|
+ k->getNachrichtEncrypted( &l, 1 );
|
|
|
+ char *buff = new char[ l + 1 ];
|
|
|
+ buff[ l ] = 0;
|
|
|
+ k->getNachrichtEncrypted( buff, l );
|
|
|
+ cs.unlock();
|
|
|
+ Text *ret = new Text( buff );
|
|
|
+ delete[] buff;
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( ret == 3 )
|
|
|
+ {
|
|
|
+ char l = 0;
|
|
|
+ k->getNachrichtEncrypted( &l, 1 );
|
|
|
+ char *fehler = new char[ l + 1 ];
|
|
|
+ fehler[ l ] = 0;
|
|
|
+ k->getNachrichtEncrypted( fehler, l );
|
|
|
+ err = fehler;
|
|
|
+ delete[] fehler;
|
|
|
+ cs.unlock();
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ err = "Unbekannter Fehler";
|
|
|
+ cs.unlock();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
// Ermittelt die liste mit allen Optionen zu einem Minigame zurück, zu denen es Welt beste Scores gibt
|
|
|
// mName: Der Name des Minigames
|
|
|
// zOptionList: Enthält nach erfolgreichem Aufruf eine Liste mit Optionen
|