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!

Fully working pet filter Wakazaki Style ;)

One word! Im Fawkin Pro!
Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
Fully working pet filter Xakzi Style ;)

Yo RageZoners!

As I have seen alot of people having and still do actually have the problem with the petfilter crashing the server, not working functionally, not saving etc~

Here I come with my very own pet filter..
It is different from the other ones, in this pet filter you dont choose what to pick-up.. no..

You choose what to NOT pick up haha.. It is fully working uhm...
well, here goes..

I will just write which files you need to use. then in the code what to add under what (or replace what)
Green = What you have to find
Red = What you have to add/replace


Source
DPSrvr.cpp
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#ifdef __GUILD_HOUSE_MIDDLE
	ON_MSG( PACKETTYPE_GUILDHOUSE_TENDER_MAINWND, OnGuildHouseTenderMainWnd );
	ON_MSG( PACKETTYPE_GUILDHOUSE_TENDER_INFOWND, OnGuildHouseTenderInfoWnd );
	ON_MSG( PACKETTYPE_GUILDHOUSE_TENDER_JOIN, OnGuildHouseTenderJoin );
#endif // __GUILD_HOUSE_MIDDLE
[/COLOR]
[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	ON_MSG( PACKETTYPE_PETFILTER, OnSetPetfilter );
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
#ifdef __GUILD_HOUSE_MIDDLE
void CDPSrvr::OnGuildHouseTenderMainWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
{
	CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
	if( IsValidObj( pUser ) == TRUE )
	{
		DWORD dwGHType;
		OBJID objNpcId;
		ar >> dwGHType >> objNpcId;

		GuildHouseMng->ReqTenderGuildHouseList( pUser, dwGHType, objNpcId );
	}
}

void CDPSrvr::OnGuildHouseTenderInfoWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
{
	CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
	if( IsValidObj( pUser ) == TRUE )
	{
		OBJID objGHId;
		ar >> objGHId;

		GuildHouseMng->ReqTenderGuildHouseInfo( pUser, objGHId );
	}
}

void CDPSrvr::OnGuildHouseTenderJoin( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
{
	CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
	if( IsValidObj( pUser ) == TRUE )
	{
		OBJID objGHId;
		int nTenderPerin, nTenderPenya;
		ar >> objGHId >> nTenderPerin >> nTenderPenya;
		
		GuildHouseMng->OnGuildHouseTenderJoin( pUser, objGHId, nTenderPerin, nTenderPenya );
	}
}
#endif // __GUILD_HOUSE_MIDDLE[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
void CDPSrvr::OnSetPetfilter( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
	CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
	if( IsValidObj( pUser ) == TRUE )
	{
		DWORD dwPetFilter;
		ar >> dwPetFilter;
		pUser->m_dwPetfilter = dwPetFilter;
	}
}
#endif //__PETFILTER[/COLOR]

DPSrvr.h
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#ifdef __GUILD_HOUSE_MIDDLE
	void	OnGuildHouseTenderMainWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
	void	OnGuildHouseTenderInfoWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
	void	OnGuildHouseTenderJoin( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
#endif // __GUILD_HOUSE_MIDDLE[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	void	OnSetPetfilter( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize );
#endif //__PETFILTER[/COLOR]

User.h
Code:
[COLOR="Green"][U][B]After~[/B][/U]
	DWORD			m_dwDestroyTime;					/// Destory¿¹¾à ½Ã°¢ [/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	DWORD			m_dwPetfilter;						/// Pet Filter
#endif // __PETFILTER[/COLOR]

VersionCommon.h (Neuz & WorldServer)
Code:
[COLOR="Red"][U][B]You Add~[/B][/U]
#define		__PETFILTER [/COLOR]

MsgHdr.h
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#define PACKETTYPE_QUERYMAILBOX_COUNT				(DWORD)0x88100241[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
#define PACKETTYPE_PETFILTER						(DWORD)0x88100242
#endif //__PETFILTER[/COLOR]

[COLOR="Blue"]Info-->> If the DWORD already exist, change the number so it is not duplicated.[/COLOR]

AIPet.cpp
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#include "dpcoreclient.h"[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
#include "defineFilter.h"
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
BOOL CAIPet::SubItemLoot( void )
{
	CMover* pMover = GetMover();
	CMover* pOwner = prj.GetMover( m_idOwner );
	CWorld* pWorld = GetWorld();
	MoverProp *pProp = pMover->GetProp();
	D3DXVECTOR3 vPos = pMover->GetPos();
	CObj *pObj = NULL;
	int nRange = 0;
	D3DXVECTOR3 vDist;
	FLOAT fDistSq, fMinDist = 9999999.0f;
	CObj *pMinObj = NULL;

	vDist = pOwner->GetPos() - pMover->GetPos();
	fDistSq = D3DXVec3LengthSq( &vDist );
	if( fDistSq > 32.0f * 32.0f )	// ÁÖÀδ԰úÀÇ °Å¸®°¡ 32¹ÌÅÍ°¡ ³ÑÀ¸¸é ¾ÆÀÌÅÛ ¾ÈÁý´Â´Ù.
		return FALSE;

	if( pOwner && pOwner->IsFly() )
		return FALSE;
		
	// ±ÙóÀÇ ¾ÆÀÌÅÛÀ» °Ë»öÇÔ. - ÁÖÀδԲ¨¸¸ °Ë»öÇؾßÇÒµí...
	FOR_LINKMAP( pWorld, vPos, pObj, nRange, CObj::linkDynamic, pMover->GetLayer() )
	{
		if( pObj->GetType() == OT_ITEM )	// ¾ÆÅÛ¸¸ °Ë»ö
		{
			CItem *pItem = (CItem *)pObj;
			ItemProp* pItemProp	= pItem->GetProp();
			// ÀÌ°É µû·Î ³ÖÀºÀÌÀ¯´Â StateIdle ARRIVAL¿¡¼­ DoLoot()ÇÏ°í ³­Á÷ÈÄ¿¡ ´Ù½Ã SubItemLoot()À» È£ÃâÇßÀ»¶§
			// LootÇÑ ¾ÆÀÌÅÛÀÌ ¾ÆÁ÷ ¾ÈÁö¿öÁ®¼­ ¿©±â¼­ ¶Ç °Ë»öÀÌ µÇ´õ¶ó°í.. ±×·¡¼­ Áߺ¹µÇ´Â ¾ÆÀÌÅÛÀº °Ë»ö ¾ÈµÇ°Ô °íÃĺôÙ.
//			if( pItem->GetId() != m_idLootItem )		
			if( pItem->IsDelete() == FALSE )
			{
				if( pItemProp )
				{[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
					BOOL b1 = TRUE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_HPFOOD) && pItem->GetProp()->dwItemKind2 == IK2_FOOD )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_MPFOOD) && pItem->GetProp()->dwItemKind3 == IK3_REFRESHER )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_FPFOOD) && pItem->GetProp()->dwItemKind2 == IK2_POTION)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_FPFOOD) && pItem->GetProp()->dwItemKind1 == IK3_DRINK)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_BWEAPON) && pItem->GetProp()->dwReferStat1 == WEAPON_GENERAL )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_GWEAPON) && pItem->GetProp()->dwReferStat1 == WEAPON_UNIQUE )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_BSET) && pItem->GetProp()->dwItemKind1 == IK1_ARMOR && pItem->GetProp()->dwItemKind3 != IK3_SHIELD && pItem->GetProp()->dwReferStat1 != ARMOR_SET )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_GSET) && pItem->GetProp()->dwReferStat1 == ARMOR_SET )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_NECKLACE) && pItem->GetProp()->dwItemKind3 == IK3_NECKLACE )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_EARRING) && pItem->GetProp()->dwItemKind3 == IK3_EARRING )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_RING) && pItem->GetProp()->dwItemKind3 == IK3_RING )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_EGG) && pItem->GetProp()->dwID == II_PET_EGG )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_SUNSTONE) && pItem->GetProp()->dwID == II_GEN_MAT_ORICHALCUM01)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_SUNSTONE) && pItem->GetProp()->dwID == II_GEN_MAT_ORICHALCUM02)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_SUNSTONE) && pItem->GetProp()->dwID == II_GEN_MAT_ORICHALCUM01_1)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_SUNSTONE) && pItem->GetProp()->dwID == II_SYS_SYS_SCR_SCRAPORICHALCUM)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_MOONSTONE) && pItem->GetProp()->dwID == II_GEN_MAT_MOONSTONE)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_MOONSTONE) && pItem->GetProp()->dwID == II_GEN_MAT_MOONSTONE_1)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_MOONSTONE) && pItem->GetProp()->dwID == II_SYS_SYS_SCR_SCRAPMOONSTONE)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_QUESTITEM) && pItem->GetProp()->dwItemKind2 == IK2_GEM)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_QUESTITEM) && pItem->GetProp()->dwItemKind2 == IK3_GEM)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_ELECARDS) && pItem->GetProp()->dwItemKind3 == IK3_ELECARD )
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_4PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_MAGMA)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_4PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_FLOOD)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_4PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_STORM)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_4PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_THUNDER)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_4PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_MOUNTAIN)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_7PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_EARTHQUAKE)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_7PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_LIGHTING)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_7PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_VACCUM)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_7PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_OCEAN)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_7PCARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_VOLCANO)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_BPIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_CANDLEB)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_BPIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_RAINATKB)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_BPIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_BREEZEATKB)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_BPIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_SPARKATKB)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_BPIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_SANDATKB)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_APIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_SANDATKA)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_APIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_SPARKATKA)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_APIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_BREEZEATKA)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_APIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_RAINATKA)
							b1 = FALSE;
						if( (((CUser*)pOwner)->m_dwPetfilter & FILTER_APIECARD) && pItem->GetProp()->dwID == II_GEN_MAT_ELE_CANDLEA)
							b1 = FALSE;
					

					if( pOwner->IsLoot( pItem, TRUE ) && b1 )// ·çÆõǴ¾ÆÀÌÅÛÀÎÁö °Ë»çÇÔ.
#else //__PETFILTER
					if( pOwner->IsLoot( pItem, TRUE) )
#endif //__PETFILTER[/COLOR]

DPClient.cpp
Code:
[COLOR="Green"][U][B]After~[/B][/U]
void CDPClient::SendGuildHouseTenderJoin( OBJID objGHId, int nTenderPerin, int nTenderPenya )
{
	BEFORESENDSOLE( ar, PACKETTYPE_GUILDHOUSE_TENDER_JOIN, DPID_UNKNOWN );
	ar << objGHId << nTenderPerin << nTenderPenya;
	SEND( ar, this, DPID_SERVERPLAYER );
}
#endif // __GUILD_HOUSE_MIDDLE[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
void CDPClient::SendPlayerPetfilter( DWORD dwPetfilter )
{
	BEFORESENDSOLE( ar, PACKETTYPE_PETFILTER, DPID_UNKNOWN );
	ar << dwPetfilter;
	SEND( ar, this, DPID_SERVERPLAYER );
}
#endif //__PETFILTER[/COLOR]

DPClient.h
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#ifdef __GUILD_HOUSE_MIDDLE
private:
	void	OnGuildHouseTenderMainWnd( CAr & ar );
	void	OnGuildHouseTenderInfoWnd( CAr & ar );
	void	OnGuildHouseTenderResult( CAr & ar );
public:
	void	SendGuildHouseTenderMainWnd( DWORD dwGHType, OBJID objNpcId );
	void	SendGuildHouseTenderInfoWnd( OBJID objGHId );
	void	SendGuildHouseTenderJoin( OBJID objGHId, int nTenderPerin, int nTenderPenya );
#endif // __GUILD_HOUSE_MIDDLE[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	void	SendPlayerPetfilter( DWORD m_dwPetfilter );
#endif //__PETFILTER[/COLOR]

FuncApplet.cpp
Code:
[COLOR="Green"][U][B]After~[/B][/U]
DECLAREAPPLET( AppMain_WndSelectChar   , new CWndSelectChar   );[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
DECLAREAPPLET( AppMain_WndPetfilter	   , new CWndPetfilter    );
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
	AddAppletFunc( AppMain_WndParty        , APP_PARTY                   , _T( "WndParty"     )    , _T( "Icon_Troupe.dds"    )    , GETTEXT( TID_TIP_PARTY          ),  'P' );[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	AddAppletFunc( AppMain_WndPetfilter	   , APP_PETFILTER				 , _T( "WndPetfilter" )	   , _T( "Icon_Applet.dds"    )	   , _T( "PetFilter" ),  'U' );
#endif //__PETFILTER[/COLOR]

WndManager.cpp
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#if __VER >= 8 //__CSC_VER8_5
	m_pWndSummonAngel = NULL;
#endif //__CSC_VER8_5[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	m_pWndPetfilter = NULL;
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
	SAFE_DELETE( m_pWndRevival );[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	SAFE_DELETE( m_pWndPetfilter );
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
#ifdef __GUILD_HOUSE_MIDDLE
	else if( m_pWndGHBid == pWndChild )
	{
		SAFE_DELETE( m_pWndGHBid );
		pWndChild = NULL;
	}
#endif //__GUILD_HOUSE_MIDDLE[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	if( m_pWndPetfilter == pWndChild )
	{
		SAFE_DELETE( m_pWndPetfilter );
		pWndChild = NULL;
	}
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
#if __VER >= 15 // __IMPROVE_QUEST_INTERFACE
		CWndQuestQuickInfo* pWndQuestQuickInfo = ( CWndQuestQuickInfo* )g_WndMng.GetWndBase( APP_QUEST_QUICK_INFO );
		if( pWndQuestQuickInfo )
			pWndQuestQuickInfo->SetVisible( FALSE );
#endif // __IMPROVE_QUEST_INTERFACE[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
		CWndPetfilter* pWndPetfilter = (CWndPetfilter*)g_WndMng.GetWndBase( APP_PETFILTER );
		if(pWndPetfilter!= NULL)
			pWndPetfilter->SetVisible(FALSE);
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
#if __VER >= 15 // __PETVIS
		CWndBuffPetStatus* pWndBuffPetStatus = (CWndBuffPetStatus*)g_WndMng.GetWndBase( APP_BUFFPET_STATUS );
		if(pWndBuffPetStatus != NULL)
			pWndBuffPetStatus->SetVisible(TRUE);
#endif
#endif //__CSC_VER9_1[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
		CWndPetfilter* pWndPetfilter = (CWndPetfilter*)g_WndMng.GetWndBase( APP_PETFILTER );
		if(pWndPetfilter!= NULL)
			pWndPetfilter->SetVisible(TRUE);
#endif //_PETFILTER[/COLOR]

WndManager.h
Code:
[COLOR="Green"][U][B]After~[/B][/U]
	CWndPetStatus* m_pWndPetStatus;[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	CWndPetfilter* m_pWndPetfilter;
#endif //__PETFILTER[/COLOR]

WndTitle.cpp
Code:
[COLOR="Green"][U][B]Find~[/B][/U]
#endif // __VER < 8 // __S8_PK
							g_Neuz.m_dwTempMessage = 1;
							g_Neuz.m_timerConnect.Set( SEC( 1 ) );
						}
					}
					else
					{
						CNetwork::GetInstance().OnEvent( CACHE_CONNECT_FAIL );
						TRACE( _T( "Can't connect to server. : %s \n" ), g_Neuz.m_lpCacheAddr );
					}
				}
#else // __2ND_PASSWORD_SYSTEM
				g_WndMng.OpenCustomBox( _T( prj.GetText(TID_DIAG_0064) ), new CWndConnectingBox );
				//g_WndMng.OpenCustomBox( _T( "·ÎµùÁßÀÔ´Ï´Ù. Àá½Ã¸¸ ±â´Ù·Á ÁֽʽÿÀ." ), new CWndConnectingBox );

				if( g_DPlay.Connect( g_Neuz.m_lpCacheAddr, g_Neuz.m_uCachePort ) )
				{						
					CNetwork::GetInstance().OnEvent( CACHE_CONNECTED );

					if( m_nSelectCharacter != -1 && g_Neuz.m_apPlayer[m_nSelectCharacter] )
					{[/COLOR]


[COLOR="Red"][U][B]Change To~[/B][/U]
#endif // __VER < 8 // __S8_PK
							g_Neuz.m_dwTempMessage = 1;
							g_Neuz.m_timerConnect.Set( SEC( 1 ) );
#ifdef __PETFILTER
							g_DPlay.SendPlayerPetfilter( g_Option.m_dwPetfilter );
#endif //__PETFILTER
						}
					}
					else
					{
						CNetwork::GetInstance().OnEvent( CACHE_CONNECT_FAIL );
						TRACE( _T( "Can't connect to server. : %s \n" ), g_Neuz.m_lpCacheAddr );
					}
				}
#else // __2ND_PASSWORD_SYSTEM
				g_WndMng.OpenCustomBox( _T( prj.GetText(TID_DIAG_0064) ), new CWndConnectingBox );
				//g_WndMng.OpenCustomBox( _T( "·ÎµùÁßÀÔ´Ï´Ù. Àá½Ã¸¸ ±â´Ù·Á ÁֽʽÿÀ." ), new CWndConnectingBox );

				if( g_DPlay.Connect( g_Neuz.m_lpCacheAddr, g_Neuz.m_uCachePort ) )
				{						
					CNetwork::GetInstance().OnEvent( CACHE_CONNECTED );

					if( m_nSelectCharacter != -1 && g_Neuz.m_apPlayer[m_nSelectCharacter] )
					{[/COLOR]

Wnd2ndPassword.cpp
Code:
[COLOR="Green"][U][B]Find~[/B][/U]
#endif // __VER < 8 // __S8_PK
						g_Neuz.m_dwTempMessage = 1;
						g_Neuz.m_timerConnect.Set( SEC( 1 ) );
					}
				}
				else
				{
					CNetwork::GetInstance().OnEvent( CACHE_CONNECT_FAIL );
					TRACE( _T( "Can't connect to server. : %s \n" ), g_Neuz.m_lpCacheAddr );
				}
			}

			break;
		}
	}
	return CWndNeuz::OnChildNotify( message, nID, pLResult );
}[/COLOR]

[COLOR="Red"][U][B]Change To~[/B][/U]
#endif // __VER < 8 // __S8_PK
						g_Neuz.m_dwTempMessage = 1;
						g_Neuz.m_timerConnect.Set( SEC( 1 ) );
#ifdef __PETFILTER
						g_DPlay.SendPlayerPetfilter( g_Option.m_dwPetfilter );
#endif //__PETFILTER
					}
				}
				else
				{
					CNetwork::GetInstance().OnEvent( CACHE_CONNECT_FAIL );
					TRACE( _T( "Can't connect to server. : %s \n" ), g_Neuz.m_lpCacheAddr );
				}
			}

			break;
		}
	}
	return CWndNeuz::OnChildNotify( message, nID, pLResult );
}[/COLOR]

WndField.cpp
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#include "defineNeuz.h"[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
#include "defineFilter.h"
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
BOOL CWndCampusSeveranceConfirm::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
	if( message == EN_RETURN && nID == WIDC_EDIT1 )
	{
		g_DPlay.SendRemoveCampusMember( m_idTarget );
		Destroy();
		return CWndNeuz::OnChildNotify( message, nID, pLResult );
	}
	
	switch( nID )
	{
	case WIDC_BUTTON1:
		{
			g_DPlay.SendRemoveCampusMember( m_idTarget );
			Destroy();
			break;
		}
	case WIDC_BUTTON2:
		{
			Destroy();
			break;
		}
	}
	return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
//-----------------------------------------------------------------------------
#endif // __CAMPUS[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER

CWndPetfilter::CWndPetfilter() 
{ 
	dwPetfilter = 0;
} 
CWndPetfilter::~CWndPetfilter() 
{ 
} 
void CWndPetfilter::OnDraw( C2DRender* p2DRender ) 
{ 
} 
void CWndPetfilter::OnInitialUpdate() 
{ 
	CWndNeuz::OnInitialUpdate(); 

	dwPetfilter = g_Option.m_dwPetfilter;

	SetButtonStatus();

	MoveParentCenter();

} 
void CWndPetfilter::SetButtonStatus()
{
	CWndButton* pWndCheck1 = (CWndButton*)GetDlgItem( WIDC_PF_HPFOOD );
	CWndButton* pWndCheck2 = (CWndButton*)GetDlgItem( WIDC_PF_MPFOOD );
	CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_PF_FPFOOD );
	CWndButton* pWndCheck4 = (CWndButton*)GetDlgItem( WIDC_PF_BWEAPON );
	CWndButton* pWndCheck5 = (CWndButton*)GetDlgItem( WIDC_PF_GWEAPON );
	CWndButton* pWndCheck6 = (CWndButton*)GetDlgItem( WIDC_PF_BSET );
	CWndButton* pWndCheck7 = (CWndButton*)GetDlgItem( WIDC_PF_GSET );
	CWndButton* pWndCheck8 = (CWndButton*)GetDlgItem( WIDC_PF_NECKLACE );
	CWndButton* pWndCheck9 = (CWndButton*)GetDlgItem( WIDC_PF_EARRING );
	CWndButton* pWndCheck10 = (CWndButton*)GetDlgItem( WIDC_PF_RING );
	CWndButton* pWndCheck11 = (CWndButton*)GetDlgItem( WIDC_PF_EGG );
	CWndButton* pWndCheck12 = (CWndButton*)GetDlgItem( WIDC_PF_SUNSTONE );
	CWndButton* pWndCheck13 = (CWndButton*)GetDlgItem( WIDC_PF_MOONSTONE );
	CWndButton* pWndCheck14 = (CWndButton*)GetDlgItem( WIDC_PF_QUESTS );
	CWndButton* pWndCheck15 = (CWndButton*)GetDlgItem( WIDC_PF_ELECARD );
	CWndButton* pWndCheck16 = (CWndButton*)GetDlgItem( WIDC_PF_4PCARD );
	CWndButton* pWndCheck17 = (CWndButton*)GetDlgItem( WIDC_PF_7PCARD );
	CWndButton* pWndCheck18 = (CWndButton*)GetDlgItem( WIDC_PF_BPIECARD );
	CWndButton* pWndCheck19 = (CWndButton*)GetDlgItem( WIDC_PF_APIECARD );

	if( dwPetfilter & FILTER_HPFOOD		) pWndCheck1->SetCheck( TRUE );
	if( dwPetfilter & FILTER_MPFOOD		) pWndCheck2->SetCheck( TRUE );
	if( dwPetfilter & FILTER_FPFOOD		) pWndCheck3->SetCheck( TRUE );
	if( dwPetfilter & FILTER_BWEAPON	) pWndCheck4->SetCheck( TRUE );
	if( dwPetfilter & FILTER_GWEAPON	) pWndCheck5->SetCheck( TRUE );
	if( dwPetfilter & FILTER_BSET		) pWndCheck6->SetCheck( TRUE );
	if( dwPetfilter & FILTER_GSET		) pWndCheck7->SetCheck( TRUE );
	if( dwPetfilter & FILTER_NECKLACE	) pWndCheck8->SetCheck( TRUE );
	if( dwPetfilter & FILTER_EARRING	) pWndCheck9->SetCheck( TRUE );
	if( dwPetfilter & FILTER_RING		) pWndCheck10->SetCheck( TRUE );
	if( dwPetfilter & FILTER_EGG		) pWndCheck11->SetCheck( TRUE );
	if( dwPetfilter & FILTER_SUNSTONE	) pWndCheck12->SetCheck( TRUE );
	if( dwPetfilter & FILTER_MOONSTONE	) pWndCheck13->SetCheck( TRUE );
	if( dwPetfilter & FILTER_QUESTITEM	) pWndCheck14->SetCheck( TRUE );
	if( dwPetfilter & FILTER_ELECARDS	) pWndCheck15->SetCheck( TRUE );
	if( dwPetfilter & FILTER_4PCARD		) pWndCheck16->SetCheck( TRUE );
	if( dwPetfilter & FILTER_7PCARD		) pWndCheck17->SetCheck( TRUE );
	if( dwPetfilter & FILTER_BPIECARD	) pWndCheck18->SetCheck( TRUE );
	if( dwPetfilter & FILTER_APIECARD	) pWndCheck19->SetCheck( TRUE );

}
// óÀ½ ÀÌ ÇÔ¼ö¸¦ ºÎ¸£¸é À©µµ°¡ ¿­¸°´Ù.
BOOL CWndPetfilter::Initialize( CWndBase* pWndParent, DWORD /*dwWndId*/ ) 
{ 
	// Daisy¿¡¼­ ¼³Á¤ÇÑ ¸®¼Ò½º·Î À©µµ¸¦ ¿¬´Ù.
	return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_PETFILTER, WBS_MOVE, CPoint( 0, 0 ), pWndParent );

} 

BOOL CWndPetfilter::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase ) 
{ 
	return CWndNeuz::OnCommand( nID, dwMessage, pWndBase ); 
} 
void CWndPetfilter::OnSize( UINT nType, int cx, int cy ) \
{ 
	CWndNeuz::OnSize( nType, cx, cy ); 
} 
void CWndPetfilter::OnLButtonUp( UINT nFlags, CPoint point ) 
{ 
} 
void CWndPetfilter::OnLButtonDown( UINT nFlags, CPoint point ) 
{ 
} 
BOOL CWndPetfilter::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) 
{ 
	CWndButton* pWndCheck1 = (CWndButton*)GetDlgItem( WIDC_PF_HPFOOD );
	CWndButton* pWndCheck2 = (CWndButton*)GetDlgItem( WIDC_PF_MPFOOD );
	CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_PF_FPFOOD );
	CWndButton* pWndCheck4 = (CWndButton*)GetDlgItem( WIDC_PF_BWEAPON );
	CWndButton* pWndCheck5 = (CWndButton*)GetDlgItem( WIDC_PF_GWEAPON );
	CWndButton* pWndCheck6 = (CWndButton*)GetDlgItem( WIDC_PF_BSET );
	CWndButton* pWndCheck7 = (CWndButton*)GetDlgItem( WIDC_PF_GSET );
	CWndButton* pWndCheck8 = (CWndButton*)GetDlgItem( WIDC_PF_NECKLACE );
	CWndButton* pWndCheck9 = (CWndButton*)GetDlgItem( WIDC_PF_EARRING );
	CWndButton* pWndCheck10 = (CWndButton*)GetDlgItem( WIDC_PF_RING );
	CWndButton* pWndCheck11 = (CWndButton*)GetDlgItem( WIDC_PF_EGG );
	CWndButton* pWndCheck12 = (CWndButton*)GetDlgItem( WIDC_PF_SUNSTONE );
	CWndButton* pWndCheck13 = (CWndButton*)GetDlgItem( WIDC_PF_MOONSTONE );
	CWndButton* pWndCheck14 = (CWndButton*)GetDlgItem( WIDC_PF_QUESTS );
	CWndButton* pWndCheck15 = (CWndButton*)GetDlgItem( WIDC_PF_ELECARD );
	CWndButton* pWndCheck16 = (CWndButton*)GetDlgItem( WIDC_PF_4PCARD );
	CWndButton* pWndCheck17 = (CWndButton*)GetDlgItem( WIDC_PF_7PCARD );
	CWndButton* pWndCheck18 = (CWndButton*)GetDlgItem( WIDC_PF_BPIECARD );
	CWndButton* pWndCheck19 = (CWndButton*)GetDlgItem( WIDC_PF_APIECARD );

	switch( nID )
	{
	case WIDC_BUTTON1:
		{
			g_Option.m_dwPetfilter = dwPetfilter;
			g_Option.Save( "neuz.ini" );
			g_DPlay.SendPlayerPetfilter( dwPetfilter );
			Destroy();
		}
	case WIDC_PF_HPFOOD :
		if( pWndCheck1->GetCheck() )
			dwPetfilter |= FILTER_HPFOOD;
		else
			dwPetfilter &= ~FILTER_HPFOOD;
		SetButtonStatus();
		break;
	case WIDC_PF_MPFOOD :
		if( pWndCheck2->GetCheck() )
			dwPetfilter |= FILTER_MPFOOD;
		else
			dwPetfilter &= ~FILTER_MPFOOD;
		SetButtonStatus();
		break;
	case WIDC_PF_FPFOOD :
		if( pWndCheck3->GetCheck() )
			dwPetfilter |= FILTER_FPFOOD;
		else
			dwPetfilter &= ~FILTER_FPFOOD;
		SetButtonStatus();
		break;
	case WIDC_PF_BWEAPON :
		if( pWndCheck4->GetCheck() )
			dwPetfilter |= FILTER_BWEAPON;
		else
			dwPetfilter &= ~FILTER_BWEAPON;
		SetButtonStatus();
		break;
	case WIDC_PF_GWEAPON :
		if( pWndCheck5->GetCheck() )
			dwPetfilter |= FILTER_GWEAPON;
		else
			dwPetfilter &= ~FILTER_GWEAPON;
		SetButtonStatus();
		break;
	case WIDC_PF_BSET :
		if( pWndCheck6->GetCheck() )
			dwPetfilter |= FILTER_BSET;
		else
			dwPetfilter &= ~FILTER_BSET;
		SetButtonStatus();
		break;
	case WIDC_PF_GSET :
		if( pWndCheck7->GetCheck() )
			dwPetfilter |= FILTER_GSET;
		else
			dwPetfilter &= ~FILTER_GSET;
		SetButtonStatus();
		break;
	case WIDC_PF_NECKLACE :
		if( pWndCheck8->GetCheck() )
			dwPetfilter |= FILTER_NECKLACE;
		else
			dwPetfilter &= ~FILTER_NECKLACE;
		SetButtonStatus();
		break;		
	case WIDC_PF_EARRING :
		if( pWndCheck9->GetCheck() )
			dwPetfilter |= FILTER_EARRING;
		else
			dwPetfilter &= ~FILTER_EARRING;
		SetButtonStatus();
		break;
	case WIDC_PF_RING :
		if( pWndCheck10->GetCheck() )
			dwPetfilter |= FILTER_RING;
		else
			dwPetfilter &= ~FILTER_RING;
		SetButtonStatus();
		break;
	case WIDC_PF_EGG :
		if( pWndCheck11->GetCheck() )
			dwPetfilter |= FILTER_EGG;
		else
			dwPetfilter &= ~FILTER_EGG;
		SetButtonStatus();
		break;
	case WIDC_PF_SUNSTONE :
		if( pWndCheck12->GetCheck() )
			dwPetfilter |= FILTER_SUNSTONE;
		else
			dwPetfilter &= ~FILTER_SUNSTONE;
		SetButtonStatus();
		break;
	case WIDC_PF_MOONSTONE :
		if( pWndCheck13->GetCheck() )
			dwPetfilter |= FILTER_MOONSTONE;
		else
			dwPetfilter &= ~FILTER_MOONSTONE;
		SetButtonStatus();
		break;
	case WIDC_PF_QUESTS :
		if( pWndCheck14->GetCheck() )
			dwPetfilter |= FILTER_QUESTITEM;
		else
			dwPetfilter &= ~FILTER_QUESTITEM;
		SetButtonStatus();
		break;
	case WIDC_PF_ELECARD :
		if( pWndCheck15->GetCheck() )
			dwPetfilter |= FILTER_ELECARDS;
		else
			dwPetfilter &= ~FILTER_ELECARDS;
		SetButtonStatus();
		break;
	case WIDC_PF_4PCARD :
		if( pWndCheck16->GetCheck() )
			dwPetfilter |= FILTER_4PCARD;
		else
			dwPetfilter &= ~FILTER_4PCARD;
		SetButtonStatus();
		break;
	case WIDC_PF_7PCARD :
		if( pWndCheck17->GetCheck() )
			dwPetfilter |= FILTER_7PCARD;
		else
			dwPetfilter &= ~FILTER_7PCARD;
		SetButtonStatus();
		break;
	case WIDC_PF_BPIECARD :
		if( pWndCheck18->GetCheck() )
			dwPetfilter |= FILTER_BPIECARD;
		else
			dwPetfilter &= ~FILTER_BPIECARD;
		SetButtonStatus();
		break;
	case WIDC_PF_APIECARD :
		if( pWndCheck19->GetCheck() )
			dwPetfilter |= FILTER_APIECARD;
		else
			dwPetfilter &= ~FILTER_APIECARD;
		SetButtonStatus();
		break;

	}

	return CWndNeuz::OnChildNotify( message, nID, pLResult ); 
} 
#endif //__PETFILTER[/COLOR]

WndField.h
Code:
[COLOR="Green"][U][B]After~[/B][/U]
class CWndCampusSeveranceConfirm : public CWndNeuz
{
public:
	CWndCampusSeveranceConfirm( u_long idTarget = 0, const CString& rstrTargetName = _T( "" ) );
	virtual ~CWndCampusSeveranceConfirm( void );

public:
	virtual BOOL Initialize( CWndBase* pWndParent = NULL, DWORD nType = MB_OK );
	virtual	void OnInitialUpdate( void );
	virtual BOOL OnChildNotify( UINT message, UINT nID, LRESULT* pLResult );

private:
	u_long m_idTarget;
	CString m_strTargetName;
};
#endif // __CAMPUS[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
class CWndPetfilter : public CWndNeuz 
{ 
public: 
	CWndPetfilter(); 
	~CWndPetfilter(); 

	DWORD dwPetfilter;

	virtual void SetButtonStatus();
	virtual BOOL Initialize( CWndBase* pWndParent = NULL, DWORD nType = MB_OK ); 
	virtual BOOL OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); 
	virtual void OnDraw( C2DRender* p2DRender ); 
	virtual	void OnInitialUpdate(); 
	virtual BOOL OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase ); 
	virtual void OnSize( UINT nType, int cx, int cy ); 
	virtual void OnLButtonUp( UINT nFlags, CPoint point ); 
	virtual void OnLButtonDown( UINT nFlags, CPoint point ); 
}; 
#endif //__PETFILTER[/COLOR]

HwOption.cpp
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#if __VER >= 11 // __ADD_ZOOMOPT
	m_bZoomLimit = TRUE;
	m_dwPetfilter = 0;
#endif[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	m_dwPetfilter = 0;
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
#if __VER >= 12 // __UPDATE_OPT
	else if(scan.Token == _T( "VIEWMASK" ))
	{
		m_bViewMask = scan.GetNumber();
	}
#endif[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	else if(scan.Token == _T("Petfilter") )
	{
		m_dwPetfilter = scan.GetNumber();
	}
#endif //__PETFILTER[/COLOR]

[COLOR="Green"][U][B]After~[/B][/U]
#if __VER >= 12 // __UPDATE_OPT
	_ftprintf(fp, _T( "VIEWMASK %d\n" ), m_bViewMask );
#endif[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	_ftprintf(fp, _T( "Petfilter %d\n" ), m_dwPetfilter );
#endif //__PETFILTER[/COLOR]

HwOption.h
Code:
[COLOR="Green"][U][B]After~[/B][/U]
#if __VER >= 11 // __ADD_ZOOMOPT
	BOOL	m_bZoomLimit;		// ÁÜ Á¦ÇÑ ¿©ºÎ
#endif[/COLOR]

[COLOR="Red"][U][B]You Add~[/B][/U]
#ifdef __PETFILTER
	DWORD m_dwPetfilter;
#endif //__PETFILTER[/COLOR]

Resource
defineFilter.h
Code:
Create this file with notepad or whatever you feel like using..
Add the following inside it;

[COLOR="Red"]#define FILTER_HPFOOD 1
#define FILTER_MPFOOD 2
#define FILTER_FPFOOD 4
#define FILTER_BWEAPON 8
#define FILTER_GWEAPON 16
#define FILTER_BSET 32
#define FILTER_GSET 64
#define FILTER_NECKLACE 128
#define FILTER_EARRING 256
#define FILTER_RING 512
#define FILTER_EGG 1024
#define FILTER_SUNSTONE 2048
#define FILTER_MOONSTONE 4096
#define FILTER_QUESTITEM 8192
#define FILTER_ELECARDS 16384
#define FILTER_4PCARD 32768
#define FILTER_7PCARD 65536
#define FILTER_BPIECARD 131072
#define FILTER_APIECARD 262144[/COLOR]

Resdata.h
Code:
[COLOR="Red"][U][B]You Add These Stuff~[/B][/U]
#define APP_PETFILTER                                                   2022

#define WIDC_PF_GSET                    475
#define WIDC_PF_ELECARD                 476
#define WIDC_PF_4PCARD                  486
#define WIDC_PF_7PCARD                  498
#define WIDC_PF_FPFOOD                  533
#define WIDC_PF_NECKLACE                534
#define WIDC_PF_RING                    536
#define WIDC_PF_EARRING                 537
#define WIDC_PF_BWEAPON                 552
#define WIDC_PF_MPFOOD                  699
#define WIDC_PF_HPFOOD                  912
#define WIDC_PF_GWEAPON                 989
#define WIDC_PF_BSET                    990
#define WIDC_PF_BPIECARD                995
#define WIDC_PF_APIECARD                996
#define WIDC_PF_EGG                     997
#define WIDC_PF_SUNSTONE                998
#define WIDC_PF_MOONSTONE               999
#define WIDC_PF_QUESTS                  1000
[/COLOR]


Resdata.inc (OLD RESDATA)
Code:
[COLOR="Red"][U][B]You Add~[/B][/U]
APP_PETFILTER "WndTile00.tga" 1 432 240 0x2410040 26
{
// Title String
IDS_RESDATA_INC_008801
}
{
// Help Key
IDS_RESDATA_INC_008802
}
{
    WTYPE_STATIC WIDC_STATIC1 "WndEditTile200.tga" 1 8 8 120 24 0x2220011 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008803
    }
    {
    // ToolTip
IDS_RESDATA_INC_008804
    }
    WTYPE_BUTTON WIDC_BUTTON1 "ButtCharApply.tga" 0 284 150 336 170 0x220010 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008805
    }
    {
    // ToolTip
IDS_RESDATA_INC_008806
    }
    WTYPE_BUTTON WIDC_PF_HPFOOD "ButtCheck.bmp" 0 8 30 104 46 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008807
    }
    {
    // ToolTip
IDS_RESDATA_INC_008808
    }
    WTYPE_BUTTON WIDC_PF_MPFOOD "ButtCheck.bmp" 0 8 50 104 66 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008809
    }
    {
    // ToolTip
IDS_RESDATA_INC_008810
    }
    WTYPE_BUTTON WIDC_PF_FPFOOD "ButtCheck.bmp" 0 8 70 120 86 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008811
    }
    {
    // ToolTip
IDS_RESDATA_INC_008812
    }
    WTYPE_STATIC WIDC_STATIC2 "WndEditTile200.tga" 1 132 8 244 24 0x2220011 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008813
    }
    {
    // ToolTip
IDS_RESDATA_INC_008814
    }
    WTYPE_BUTTON WIDC_PF_NECKLACE "ButtCheck.bmp" 0 140 30 236 46 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008815
    }
    {
    // ToolTip
IDS_RESDATA_INC_008816
    }
    WTYPE_BUTTON WIDC_PF_EARRING "ButtCheck.bmp" 0 140 50 236 66 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008817
    }
    {
    // ToolTip
IDS_RESDATA_INC_008818
    }
    WTYPE_BUTTON WIDC_PF_RING "ButtCheck.bmp" 0 140 70 236 86 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008819
    }
    {
    // ToolTip
IDS_RESDATA_INC_008820
    }
    WTYPE_STATIC WIDC_STATIC3 "WndEditTile200.tga" 1 8 88 120 104 0x2220011 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008821
    }
    {
    // ToolTip
IDS_RESDATA_INC_008822
    }
    WTYPE_BUTTON WIDC_PF_BWEAPON "ButtCheck.bmp" 0 8 110 120 126 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008823
    }
    {
    // ToolTip
IDS_RESDATA_INC_008824
    }
    WTYPE_BUTTON WIDC_PF_GWEAPON "ButtCheck.bmp" 0 8 130 120 146 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008825
    }
    {
    // ToolTip
IDS_RESDATA_INC_008826
    }
    WTYPE_BUTTON WIDC_PF_BSET "ButtCheck.bmp" 0 8 150 120 166 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008827
    }
    {
    // ToolTip
IDS_RESDATA_INC_008828
    }
    WTYPE_BUTTON WIDC_PF_GSET "ButtCheck.bmp" 0 8 168 120 184 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008829
    }
    {
    // ToolTip
IDS_RESDATA_INC_008830
    }
    WTYPE_STATIC WIDC_STATIC4 "WndEditTile200.tga" 1 256 8 368 24 0x2220011 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008831
    }
    {
    // ToolTip
IDS_RESDATA_INC_008832
    }
    WTYPE_BUTTON WIDC_PF_ELECARD "ButtCheck.bmp" 0 258 30 358 46 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008833
    }
    {
    // ToolTip
IDS_RESDATA_INC_008834
    }
    WTYPE_BUTTON WIDC_PF_4PCARD "ButtCheck.bmp" 0 258 50 354 66 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008835
    }
    {
    // ToolTip
IDS_RESDATA_INC_008836
    }
    WTYPE_BUTTON WIDC_PF_7PCARD "ButtCheck.bmp" 0 258 70 354 86 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008837
    }
    {
    // ToolTip
IDS_RESDATA_INC_008838
    }
    WTYPE_BUTTON WIDC_PF_BPIECARD "ButtCheck.bmp" 0 258 90 354 106 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008839
    }
    {
    // ToolTip
IDS_RESDATA_INC_008840
    }
    WTYPE_BUTTON WIDC_PF_APIECARD "ButtCheck.bmp" 0 258 110 354 126 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008841
    }
    {
    // ToolTip
IDS_RESDATA_INC_008842
    }
    WTYPE_STATIC WIDC_STATIC5 "WndEditTile200.tga" 1 132 88 244 104 0x2220011 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008843
    }
    {
    // ToolTip
IDS_RESDATA_INC_008844
    }
    WTYPE_BUTTON WIDC_PF_EGG "ButtCheck.bmp" 0 136 110 232 126 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008845
    }
    {
    // ToolTip
IDS_RESDATA_INC_008846
    }
    WTYPE_BUTTON WIDC_PF_SUNSTONE "ButtCheck.bmp" 0 136 130 232 146 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008847
    }
    {
    // ToolTip
IDS_RESDATA_INC_008848
    }
    WTYPE_BUTTON WIDC_PF_MOONSTONE "ButtCheck.bmp" 0 136 150 232 166 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008849
    }
    {
    // ToolTip
IDS_RESDATA_INC_008850
    }
    WTYPE_BUTTON WIDC_PF_QUESTS "ButtCheck.bmp" 0 136 168 232 184 0x220018 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008851
    }
    {
    // ToolTip
IDS_RESDATA_INC_008852
    }
    WTYPE_STATIC WIDC_STATIC6 "WndEditTile200.tga" 1 8 184 376 200 0x2220011 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_008853
    }
    {
    // ToolTip
IDS_RESDATA_INC_008854
    }

}
[/COLOR]

Resdata.inc (NEW RESDATA)
Code:
[COLOR="Red"][U][B]You Add~[/B][/U]
APP_PETFILTER "WndTile00.tga" "" 1 432 240 0x2410040 26
{
// Title String
IDS_RESDATA_INC_008801
}
{
// Help Key
IDS_RESDATA_INC_008802
}
{
    WTYPE_STATIC WIDC_STATIC1 "WndEditTile200.tga" 1 8 8 120 24 0x2220011 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008803
    }
    {
    // ToolTip
IDS_RESDATA_INC_008804
    }
    WTYPE_BUTTON WIDC_BUTTON1 "ButtCharApply.tga" 0 284 150 336 170 0x220010 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008805
    }
    {
    // ToolTip
IDS_RESDATA_INC_008806
    }
    WTYPE_BUTTON WIDC_PF_HPFOOD "ButtCheck.bmp" 0 8 30 104 46 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008807
    }
    {
    // ToolTip
IDS_RESDATA_INC_008808
    }
    WTYPE_BUTTON WIDC_PF_MPFOOD "ButtCheck.bmp" 0 8 50 104 66 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008809
    }
    {
    // ToolTip
IDS_RESDATA_INC_008810
    }
    WTYPE_BUTTON WIDC_PF_FPFOOD "ButtCheck.bmp" 0 8 70 120 86 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008811
    }
    {
    // ToolTip
IDS_RESDATA_INC_008812
    }
    WTYPE_STATIC WIDC_STATIC2 "WndEditTile200.tga" 1 132 8 244 24 0x2220011 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008813
    }
    {
    // ToolTip
IDS_RESDATA_INC_008814
    }
    WTYPE_BUTTON WIDC_PF_NECKLACE "ButtCheck.bmp" 0 140 30 236 46 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008815
    }
    {
    // ToolTip
IDS_RESDATA_INC_008816
    }
    WTYPE_BUTTON WIDC_PF_EARRING "ButtCheck.bmp" 0 140 50 236 66 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008817
    }
    {
    // ToolTip
IDS_RESDATA_INC_008818
    }
    WTYPE_BUTTON WIDC_PF_RING "ButtCheck.bmp" 0 140 70 236 86 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008819
    }
    {
    // ToolTip
IDS_RESDATA_INC_008820
    }
    WTYPE_STATIC WIDC_STATIC3 "WndEditTile200.tga" 1 8 88 120 104 0x2220011 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008821
    }
    {
    // ToolTip
IDS_RESDATA_INC_008822
    }
    WTYPE_BUTTON WIDC_PF_BWEAPON "ButtCheck.bmp" 0 8 110 120 126 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008823
    }
    {
    // ToolTip
IDS_RESDATA_INC_008824
    }
    WTYPE_BUTTON WIDC_PF_GWEAPON "ButtCheck.bmp" 0 8 130 120 146 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008825
    }
    {
    // ToolTip
IDS_RESDATA_INC_008826
    }
    WTYPE_BUTTON WIDC_PF_BSET "ButtCheck.bmp" 0 8 150 120 166 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008827
    }
    {
    // ToolTip
IDS_RESDATA_INC_008828
    }
    WTYPE_BUTTON WIDC_PF_GSET "ButtCheck.bmp" 0 8 168 120 184 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008829
    }
    {
    // ToolTip
IDS_RESDATA_INC_008830
    }
    WTYPE_STATIC WIDC_STATIC4 "WndEditTile200.tga" 1 256 8 368 24 0x2220011 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008831
    }
    {
    // ToolTip
IDS_RESDATA_INC_008832
    }
    WTYPE_BUTTON WIDC_PF_ELECARD "ButtCheck.bmp" 0 258 30 358 46 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008833
    }
    {
    // ToolTip
IDS_RESDATA_INC_008834
    }
    WTYPE_BUTTON WIDC_PF_4PCARD "ButtCheck.bmp" 0 258 50 354 66 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008835
    }
    {
    // ToolTip
IDS_RESDATA_INC_008836
    }
    WTYPE_BUTTON WIDC_PF_7PCARD "ButtCheck.bmp" 0 258 70 354 86 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008837
    }
    {
    // ToolTip
IDS_RESDATA_INC_008838
    }
    WTYPE_BUTTON WIDC_PF_BPIECARD "ButtCheck.bmp" 0 258 90 354 106 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008839
    }
    {
    // ToolTip
IDS_RESDATA_INC_008840
    }
    WTYPE_BUTTON WIDC_PF_APIECARD "ButtCheck.bmp" 0 258 110 354 126 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008841
    }
    {
    // ToolTip
IDS_RESDATA_INC_008842
    }
    WTYPE_STATIC WIDC_STATIC5 "WndEditTile200.tga" 1 132 88 244 104 0x2220011 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008843
    }
    {
    // ToolTip
IDS_RESDATA_INC_008844
    }
    WTYPE_BUTTON WIDC_PF_EGG "ButtCheck.bmp" 0 136 110 232 126 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008845
    }
    {
    // ToolTip
IDS_RESDATA_INC_008846
    }
    WTYPE_BUTTON WIDC_PF_SUNSTONE "ButtCheck.bmp" 0 136 130 232 146 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008847
    }
    {
    // ToolTip
IDS_RESDATA_INC_008848
    }
    WTYPE_BUTTON WIDC_PF_MOONSTONE "ButtCheck.bmp" 0 136 150 232 166 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008849
    }
    {
    // ToolTip
IDS_RESDATA_INC_008850
    }
    WTYPE_BUTTON WIDC_PF_QUESTS "ButtCheck.bmp" 0 136 168 232 184 0x220018 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008851
    }
    {
    // ToolTip
IDS_RESDATA_INC_008852
    }
    WTYPE_STATIC WIDC_STATIC6 "WndEditTile200.tga" 1 8 184 376 200 0x2220011 0 0 0 0 46 112 169
    {
    // Title String
IDS_RESDATA_INC_008853
    }
    {
    // ToolTip
IDS_RESDATA_INC_008854
    }

}
[/COLOR]


ResData.txt
Code:
[COLOR="Red"][U][B]You Add~[/B][/U]
IDS_RESDATA_INC_008801	Petfilter
IDS_RESDATA_INC_008802	
IDS_RESDATA_INC_008803	Food
IDS_RESDATA_INC_008804	
IDS_RESDATA_INC_008805	
IDS_RESDATA_INC_008806	Save Petfilter settings and exit window.
IDS_RESDATA_INC_008807	HP Food
IDS_RESDATA_INC_008808	
IDS_RESDATA_INC_008809	MP Food
IDS_RESDATA_INC_008810	
IDS_RESDATA_INC_008811	FP Food
IDS_RESDATA_INC_008812	
IDS_RESDATA_INC_008813	Accessories
IDS_RESDATA_INC_008814	
IDS_RESDATA_INC_008815	Necklace
IDS_RESDATA_INC_008816	
IDS_RESDATA_INC_008817	Earring
IDS_RESDATA_INC_008818	
IDS_RESDATA_INC_008819	Ring
IDS_RESDATA_INC_008820	
IDS_RESDATA_INC_008821	Equipment
IDS_RESDATA_INC_008822	
IDS_RESDATA_INC_008823	Blue Weapons
IDS_RESDATA_INC_008824	
IDS_RESDATA_INC_008825	Green Weapons
IDS_RESDATA_INC_008826	
IDS_RESDATA_INC_008827	Blue Set Items
IDS_RESDATA_INC_008828	
IDS_RESDATA_INC_008829	Green Set Items
IDS_RESDATA_INC_008830	
IDS_RESDATA_INC_008831	Cards
IDS_RESDATA_INC_008832	
IDS_RESDATA_INC_008833	Element Cards
IDS_RESDATA_INC_008834	
IDS_RESDATA_INC_008835	4% Cards
IDS_RESDATA_INC_008836	
IDS_RESDATA_INC_008837	7% Cards
IDS_RESDATA_INC_008838	
IDS_RESDATA_INC_008839	B Cards
IDS_RESDATA_INC_008840	
IDS_RESDATA_INC_008841	A Cards
IDS_RESDATA_INC_008842	
IDS_RESDATA_INC_008843	Misc.
IDS_RESDATA_INC_008844	
IDS_RESDATA_INC_008845	Egg
IDS_RESDATA_INC_008846	
IDS_RESDATA_INC_008847	Sunstone
IDS_RESDATA_INC_008848	
IDS_RESDATA_INC_008849	Moonstone
IDS_RESDATA_INC_008850	
IDS_RESDATA_INC_008851	Quest Items
IDS_RESDATA_INC_008852	
IDS_RESDATA_INC_008853	Choose the items you DO NOT want to pick up
IDS_RESDATA_INC_008854	[/COLOR]

So yeah, this should be pretty much everything you need to make this petfilter to work..

The settings of the petfilter is saving in "Neuz.ini" and not in the database or somewhere else, the petfilter will not be reseted after restarting the client, or changing character =)

Oh right, uploaded some pictures of the petfilter in action..

If you want the window modified, tell me how you want the window to look, and I will do it for ya... for $$ ;)

edit1: Forgot to tell you, You can find the petfilter in the start menu ingame... Or simply press "U" to get it up.

If any questions, feel free to ask!
Sincerely~ Xakzi
 

Attachments

You must be registered for see attachments list
Last edited by a moderator:
Master Summoner
Joined
Oct 22, 2010
Messages
502
Reaction score
72
Very naiz... Thanks o: But you're seriously gonna ask for money to do something as simple as editting the window? XD
 
Ace of Hearts
Joined
Jul 28, 2009
Messages
739
Reaction score
104
if they are lazy to figure out by themselves, then yes, yes I am haha, well, not that I take it seriously :eek:tt1: ... yet haha

I hear about people paying for little edits like that a lot, there are a lot of lazy people with money ;/
 
Initiate Mage
Joined
Dec 5, 2009
Messages
18
Reaction score
2
i get this error :eek:

...WORLDSERVER\DPSrvr.cpp(557): error C2065: 'OnSetPetfilterSea' : undeclared identifier
 
One word! Im Fawkin Pro!
Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
I hear about people paying for little edits like that a lot, there are a lot of lazy people with money ;/

Yup, Yup, they keep the economy running haha

i get this error :eek:

...WORLDSERVER\DPSrvr.cpp(557): error C2065: 'OnSetPetfilterSea' : undeclared identifier

did you edit DPSrvr.h? Please dont be in a hurry, check it two or three times
 
Last edited:
One word! Im Fawkin Pro!
Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
yes i did

hm thats wierd, since that id is only in dpsrvr.cpp & .h..

Does your header file look something like this on the bottom?
Code:
#ifdef __GUILD_HOUSE_MIDDLE
	void	OnGuildHouseTenderMainWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
	void	OnGuildHouseTenderInfoWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
	void	OnGuildHouseTenderJoin( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long );
#endif // __GUILD_HOUSE_MIDDLE
[COLOR="Red"]#ifdef __PETFILTER
	void	OnSetPetfilter( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize );
#endif //__PETFILTER[/COLOR]
private:
	DPID	m_dpidCache;		// ij½¬¼­¹ö DPID
};


#endif // __DPSRVR_H__
 
Last edited:
[R8]ℓσℓ32
Member
Joined
Oct 6, 2008
Messages
1,396
Reaction score
198
Ok, some questions. First if the new file, defineFilter.h goes in client too, why you dont add to void CProject::LoadDefines() ?
And, how are the Pet filter settings stored in the neuz.ini?
 
One word! Im Fawkin Pro!
Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
no need to add some voids for a header file to be read.. Just added it in the source "Include" instead of adding the ID's in the source, made it easier for me XD

I added a new row named "Petfilter" which takes the id numbers from defineFilter.h and adds them up depending what you choose not to pickup ingame.. It does not have to be more complicated then that really XD
 
One word! Im Fawkin Pro!
Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
LoadDefines() function load the header files from client.

well, including it makes it load the header files from the client too...

defineFilter.h is only in resource, you do not have to add it in the "source list" or in the Solution if that is what you mean...

by using

#include "defineFilter.h", it reads the file from the resource for the actual code of the petfilter...

which in that code gives info between the resdata ids & petfilter.h ids...


well, if you feel like adding "LoadDefines()" somewhere, feel free.. I havent used that and I dont see the point of using it haha
 
Not working on UnitedFlyf
Member
Joined
Apr 21, 2009
Messages
1,385
Reaction score
934
LoadDefines() function load the header files from client.

Why compile the header in runtime when you can compile it into the binary? Loading defines from resource is purely to make it easier for publishers to edit. If it's not going to be edited by publishers, it should be compiled into the binary for less runtime overhead.
 
Back
Top