TAB Select

10/19/2012 17:34 Eragøn#1
hallo,
ich suche schon die ganze zeit wo die funktion im source ist, die das auswählen von spielern durch die Taste TAB ermöglicht, könnte mir wer nen tip geben?
10/19/2012 19:17 xTwiLightx#2
Such doch mal nach VK_TAB
10/20/2012 01:09 Jopsi332#3
Code:
CObj* CWndWorld::SelectObj( POINT point )
{
	CWorld* pWorld = g_WorldMng();

	BOOL bOnlyNPC = FALSE;
	if( GetAsyncKeyState( VK_TAB ) & 0x8000 )	// ÅÇ۸¦ ´©¸£°í ÀÖÀ¸¸é NPC¸¸ ¼¿·ºÆ® µÈ´Ù.
		bOnlyNPC = TRUE;
	
	CObj* pObj = PickObj( point, bOnlyNPC );
	if( pObj )
	{
		if( pObj->GetType() == OT_MOVER )
		{
			// ±æµåÄĹîÁß¿¡´Â Á×ÀºÄɸ¯À» ÇÇÅ· ±ÝÁö
			if( pWorld->GetID() == WI_WORLD_GUILDWAR )
			{
				if( ((CMover*)pObj)->IsDie() )
					return NULL;
			}
			if( ((CMover*)pObj)->IsMode( TRANSPARENT_MODE )	) // ´ë»óÀÌ Åõ¸í¸ðµåÀ϶© Ÿ°Ù ¾ÈµÊ.
			{
				return NULL;
			}			
		}

#if __VER >= 11 // __CSC_VER11_2
		if(!m_bAutoAttack)
			pWorld->SetObjFocus( pObj );
#else //__CSC_VER11_2
		pWorld->SetObjFocus( pObj );
#endif //__CSC_VER11_2
	}
	return pObj;
}
10/20/2012 02:18 Мentus#4
Quote:
Originally Posted by Jopsi332 View Post
Code:
CObj* CWndWorld::SelectObj( POINT point )
{
	CWorld* pWorld = g_WorldMng();

	BOOL bOnlyNPC = FALSE;
	if( GetAsyncKeyState( VK_TAB ) & 0x8000 )	// ÅÇ۸¦ ´©¸£°í ÀÖÀ¸¸é NPC¸¸ ¼¿·ºÆ® µÈ´Ù.
		bOnlyNPC = TRUE;
	
	CObj* pObj = PickObj( point, bOnlyNPC );
	if( pObj )
	{
		if( pObj->GetType() == OT_MOVER )
		{
			// ±æµåÄĹîÁß¿¡´Â Á×ÀºÄɸ¯À» ÇÇÅ· ±ÝÁö
			if( pWorld->GetID() == WI_WORLD_GUILDWAR )
			{
				if( ((CMover*)pObj)->IsDie() )
					return NULL;
			}
			if( ((CMover*)pObj)->IsMode( TRANSPARENT_MODE )	) // ´ë»óÀÌ Åõ¸í¸ðµåÀ϶© Ÿ°Ù ¾ÈµÊ.
			{
				return NULL;
			}			
		}

#if __VER >= 11 // __CSC_VER11_2
		if(!m_bAutoAttack)
			pWorld->SetObjFocus( pObj );
#else //__CSC_VER11_2
		pWorld->SetObjFocus( pObj );
#endif //__CSC_VER11_2
	}
	return pObj;
}
Du bist da ganz falsch.
PHP Code:
CWndWorld::OnKeyUp 
Wäre richtig gewesen.

Suche:
PHP Code:
void CWorld::RenderObjectCD3DFontpFont 
Finde:

PHP Code:
    if( GetID() == WI_WORLD_GUILDWAR )
    {
        
bScan TRUE;
    } 
Hier wird der bScan auf TRUE gesetzt, ( für den GW ).
Klatsch deine Welt rein die du haben möchtest. z.B:
PHP Code:
    if( GetID() == WI_WORLD_GUILDWAR || GetID() == WI_WORLD_MADRIGAL )
    {
        
bScan TRUE;
    } 
PHP Code:
if( !pObj->IsActiveObj() ) 
Darunter steht
PHP Code:
if( bScan 
Hier wird bScan abgefragt.
PHP Code:
if( bScan 
Ist das gleiche wie
PHP Code:
if( bScan == TRUE 
Nun kommen wir zum wichtigen Teil.

PHP Code:
                                CMoverpMover = (CMover*)pObj;
                                if( 
pMover->IsPlayer() && !pMover->IsDie() && !pMover->IsModeTRANSPARENT_MODE ) )
                                {
                                    
CGuildpGuild1 g_pPlayer->GetGuild();
                                    
CGuildpGuild2 pMover->GetGuild();

                                    if( 
pGuild1 && pGuild2 )
                                    {
                                        
// ´Ù¸¥±æµåµé¸¸ Å¸°ÙÆÃ¸®½ºÆ®¿¡ ³ÖÀÚ
                                        
if( pGuild1->GetGuildId() != pGuild2->GetGuildId() )
                                        {
                                            if( 
pObj->IsRangeObjg_pPlayer->GetPos(), 20.0f ) )
                                            {
                                                
CWorld::m_amvrSelect[nCount++] = pMover;
                                            }
                                        }
                                    }
                                } 

So und jetzt dürft ihr denken.