Dieses System hab ich auf einer anderen Seite gefunden, ist nicht von mir geschrieben, Credits stehen unten.
Hab es noch nicht getestet.
Credits:
100% *~Nightmare~*
0 % Me
Quote:
*~Nightmare~*;734623][B]Guten Tag
Kurz und knapp, das hier ist eine Partyfinder Funktion die man nur noch richtig einfügen muss (ggf. Gestalten via Daisy).
TuT gibts keinen, müsst ihr schon selbst packen :P
PHP Code:
void CDPSrvr::OnPartyList( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
DWORD idPlayer;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
ar >> idPlayer;
if( pUser )
{
if( pUser->GetId() != idPlayer )
{
Error( "Fail" );
return;
}
CParty *pParty = g_PartyMng.GetPartyFree();
char pszLeader[MAX_PLAYER] = { 0,};
char pszMember[MAX_PLAYER] = { 0,};
const char* lpPlayer = CPlayerDataCenter::GetInstance()->GetPlayerString( pParty->GetLeader()->m_idPlayer );
if( lpPlayer )
lstrcpy( pszLeader, lpPlayer );
lpPlayer = CPlayerDataCenter::GetInstance()->GetPlayerString( pUser->m_idPlayer );
if( lpPlayer )
lstrcpy( pszMember, lpPlayer );
if( pParty )
{
if( pParty->NewMember( pUser->m_idPlayer ) )
{
CUser* pMember = NULL;
for( int i = 0; i < pParty->m_nSizeofMember; i++ )
{
pMember = (CUser*)prj.GetUserByID( pParty->m_aMember[i].m_uPlayerId );
if( IsValidObj( (CObj*)pMember ) )
pMember->AddPartyMember( pParty, pUser->m_idPlayer, pszLeader, pszMember );
}
if( IsValidObj( (CObj*)pMember ) )
{
pMember->m_idparty = pParty->m_uPartyId;
}
}else
Error( "Konnte nicht hinzugefügt werden." );
}else
Error( "Party nicht gefunden." );
}
}
[28.08.2011 04:32:12] Virtuos: CParty* CPartyMng::GetPartyFree()
{
for( C2PartyPtr::iterator i = m_2PartyPtr.begin(); i != m_2PartyPtr.end(); ++i )
{
CParty* pParty = (CParty*)i->second;
if( pParty && pParty->GetSizeofMember() < MAX_PTMEMBER_SIZE_SPECIAL )
{
return pParty;
break;
}
}
return NULL;
}
Credits:
100% *~Nightmare~*
0 % Me