/* \method account.removecharacter \param player The player that should be removed from this account. \description Removes a player from this account. */ static PyObject* wpAccount_removecharacter( wpAccount* /*self*/, PyObject* args ) { if ( !checkArgChar( 0 ) ) { PyErr_BadArgument(); return 0; } P_PLAYER pChar = dynamic_cast<P_PLAYER>( getArgChar( 0 ) ); if ( pChar ) { pChar->setAccount( 0 ); } Py_RETURN_TRUE; }
void cAccounts::reload() { QMap< SERIAL, QString > characcnames; QStringList sockaccnames; cCharIterator iterChars; P_CHAR pc; for( pc = iterChars.first(); pc; pc = iterChars.next() ) { P_PLAYER pp = dynamic_cast<P_PLAYER>(pc); if( pp && pp->account() ) { characcnames.insert( pp->serial(), pp->account()->login() ); } } cUOSocket* mSock = NULL; for( mSock = cNetwork::instance()->first(); mSock; mSock = cNetwork::instance()->next() ) { if( mSock->account() ) sockaccnames.push_back( mSock->account()->login() ); else sockaccnames.push_back( QString() ); } clear(); load(); QMap< SERIAL, QString >::Iterator it = characcnames.begin(); while( it != characcnames.end() ) { P_PLAYER pp = dynamic_cast<P_PLAYER>(FindCharBySerial( it.key() )); if( pp ) pp->setAccount( getRecord( it.data() ), false ); ++it; } QStringList::iterator sit = sockaccnames.begin(); for( mSock = cNetwork::instance()->first(); mSock; mSock = cNetwork::instance()->next() ) { if( !(*sit).isNull() ) mSock->setAccount( getRecord( (*sit) ) ); ++sit; } }