[Source]kurze Frage

10/11/2011 14:03 19Dani92#1
Hey leute.

Ich wollte euch mal fragen, ob jemand schon herausgefunden hat, in welcher funktion bei einem disconnect der PartyLeaders geändert wird.

EDIT: Hab die Funktion gefunden, nur hab ich KEINE ahnung wann die funktion aufgerufen wird.
Quote:
void CDPClient::( CAr & ar )
{

u_long uidChangeLeader;
ar >> uidChangeLeader;
g_Party.ChangeLeader( uidChangeLeader );

CWndWorld *pWndWorld = (CWndWorld *)g_WndMng.m_pWndWorld;
#ifdef __BUFF_1107 //
pWndWorld->m_buffs.Clear();
#else // __BUFF_1107
pWndWorld->m_partySkillState.Init();
#endif // __BUFF_1107

for( int i = 0 ; i < MAX_SKILL ; i++ )
{
g_WndMng.m_dwSkillTime[i] = 0;
}
}
Wäre nett wenn mir jemand helfen könnte.

MFG
10/12/2011 16:59 Skappi#2
Ich denke mal das das switchen vom PartyLeader nicht nur über eine Funktion erfolgt.
10/12/2011 17:37 Krustenkäse#3
also... ich denke, dass das switchen des PartyLeaders über
Code:
void CPartyMng::RemoveConnection( CPlayer* pPlayer )
erfolgt... und zwar gibt es dort folgende wichtige abschnitte:
Code:
int i    = pParty->FindMember( pPlayer->uKey ); //stellt ArrayPosition des Members fest

if( i == 0 )        // also wenn spieler partyleader ist ( PartyLeader ist immer auf Position 0 des Arrays )

            for( j = 1; j < pParty->m_nSizeofMember; j++ ) //alle Member durchgehen
            {
                if( pParty->m_aMember[j].m_bRemove == FALSE ) //wenn spieler in party und online
                {
                    fRemoveParty    = false; //party soll nicht gelöscht werden ( bezieht sich auf späteren codepart )
                    pParty->SwapPartyMember( 0, j ); //wechsle die spieler aus ( j wird zum PartyLeader )
                    // swap
                    break;
                }
            }
Die Funktion wird aufgerufen vom CoreServer in
Code:
BOOL CPlayerMng::UnregisterPlayerInfo( CPlayer* pPlayer, BOOL bNotify )
welche wieder von
Code:
void CPlayerMng::RemovePlayer( CPlayer* pPlayer, BOOL bNotify )
aufgerufen wird usw^^
10/12/2011 17:40 19Dani92#4
danke an alle werds mal testen obs funktioniert!