Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Flying Pets

Newbie Spellweaver
Joined
Sep 8, 2011
Messages
67
Reaction score
252
incomplete missing ProcessCollisionFly

ProcessCollisionFly
Code:
#ifdef __FlyingPets
	MoverProp* const mProp = m_pMover->GetProp();
	const auto isPet = mProp ? mProp->dwAI == AII_PET || mProp->dwAI == AII_EGG : false;
	if (!isPet)
#endif
	switch( nAttr )
	{
	case HATTR_NOMOVE:	// À̵¿ ±ÝÁö.
		pPos->x -= vDelta.x;		// À̵¿ÇÏ·Á´Â °÷ÀÌ À̵¿ ±ÝÁö ±¸¿ªÀ̸é ÁÂÇ¥¸¦ ´Ù½Ã »­
		break;
	}

	// 3. zÃà ´õÇÔ
	pPos->z += vDelta.z;
	pWorld->ClipZ( pPos->z );
	if( pWorld->m_bFly )
		nAttr = pWorld->GetHeightAttribute( pPos->x, pPos->z );
#ifdef __FlyingPets
	else if (!isPet)
#else
	else
#endif
		nAttr = HATTR_NOFLY;

#ifdef __FlyingPets
	if (!isPet)
#endif
	switch( nAttr )
	{
	case HATTR_NOMOVE:	// À̵¿ ±ÝÁö.
Code:
	m_fCurrentHeight = pWorld->GetFullHeight( D3DXVECTOR3(pPos->x, pPos->y + 1.0f, pPos->z) );

#ifdef __FlyingPets 
	if (pPos->y > pWorld->m_fMaxHeight && !isPet)
#else
	if( pPos->y > pWorld->m_fMaxHeight )
#endif
		pPos->y = pWorld->m_fMaxHeight;
	else

That'll make it work in no fly dungeons and no fly zones or if it goes out of bounds on a no move location. Original post updated. xd

FGlw2ft - Flying Pets - RaGEZONE Forums

C4m3wrm - Flying Pets - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Dec 14, 2011
Messages
148
Reaction score
10
ProcessCollisionFly
Code:
#ifdef __FlyingPets
	MoverProp* const mProp = m_pMover->GetProp();
	const auto isPet = mProp ? mProp->dwAI == AII_PET || mProp->dwAI == AII_EGG : false;
	if (!isPet)
#endif
	switch( nAttr )
	{
	case HATTR_NOMOVE:	// À̵¿ ±ÝÁö.
		pPos->x -= vDelta.x;		// À̵¿ÇÏ·Á´Â °÷ÀÌ À̵¿ ±ÝÁö ±¸¿ªÀ̸é ÁÂÇ¥¸¦ ´Ù½Ã »­
		break;
	}

	// 3. zÃà ´õÇÔ
	pPos->z += vDelta.z;
	pWorld->ClipZ( pPos->z );
	if( pWorld->m_bFly )
		nAttr = pWorld->GetHeightAttribute( pPos->x, pPos->z );
#ifdef __FlyingPets
	else if (!isPet)
#else
	else
#endif
		nAttr = HATTR_NOFLY;

#ifdef __FlyingPets
	if (!isPet)
#endif
	switch( nAttr )
	{
	case HATTR_NOMOVE:	// À̵¿ ±ÝÁö.

That'll make it work in no fly dungeons and no fly zones or if it goes out of bounds on a no move location. Original post updated. xd

yes. correct, but dwFlying == 1 does not allowed AII_EGG and AII_PET move with this function ProcessCollisionFly()
 
Initiate Mage
Joined
Oct 20, 2020
Messages
4
Reaction score
0
after adding this egg and other looter pet won't follow me anymore also not looting.
no error log show
 
Back
Top