飞飞迷 > 源码修改 > 宠物捡取物品过滤系统

宠物捡取物品过滤系统

来源:飞飞迷 发布时间:2015-07-08 浏览:

  RageZoners哟!
  
  当我看到很多人在还确实petfilter崩溃的服务器的问题,不工作功能,而不是储蓄等~
  
  在这里,我有我自己的宠物过滤. .
  它不同于其他的,在这个宠物过滤器你不选择什么提货. .没有. .
  
  你选择什么不接哈哈. .它完全工作嗯…
  嗯,是. .
  
  我只会写哪些文件需要使用。然后在代码中添加在什么(或更换

源码:

DPSrvr.cpp
Spoiler:

Code:
After~
#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

You Add~
#ifdef __PETFILTER
ON_MSG( PACKETTYPE_PETFILTER, OnSetPetfilter );
#endif //__PETFILTER

After~
#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

You Add~
#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

DPSrvr.h
Spoiler:
Code:
After~
#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

You Add~
#ifdef __PETFILTER
void OnSetPetfilter( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize );
#endif //__PETFILTER

User.h
Spoiler:
Code:
After~
DWORD   m_dwDestroyTime;     /// Destory¿¹¾à ½Ã°¢

You Add~
#ifdef __PETFILTER
DWORD   m_dwPetfilter;      /// Pet Filter
#endif // __PETFILTER


VersionCommon.h (Neuz & WorldServer)
Spoiler:


MsgHdr.h
Spoiler:
Code:
After~
#define PACKETTYPE_QUERYMAILBOX_COUNT    (DWORD)0x88100241

You Add~
#ifdef __PETFILTER
#define PACKETTYPE_PETFILTER      (DWORD)0x88100242
#endif //__PETFILTER

Info-->> 如果存在已经存在,所以它不重复的数量变化。

AIPet.cpp
Spoiler:
Code:
After~
#include "dpcoreclient.h"

You Add~
#ifdef __PETFILTER
#include "defineFilter.h"
#endif //__PETFILTER

After~
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 )
    {

You Add~
#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()->dwReferStat1 == ARMOR_GEN)
       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

DPClient.cpp
Spoiler:
Code:
After~
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

You Add~
#ifdef __PETFILTER
void CDPClient::SendPlayerPetfilter( DWORD dwPetfilter )
{
BEFORESENDSOLE( ar, PACKETTYPE_PETFILTER, DPID_UNKNOWN );
ar << dwPetfilter;
SEND( ar, this, DPID_SERVERPLAYER );
}
#endif //__PETFILTER

PClient.h
Spoiler:
Code:
After~
#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

You Add~
#ifdef __PETFILTER
void SendPlayerPetfilter( DWORD m_dwPetfilter );
#endif //__PETFILTER

FuncApplet.cpp
Spoiler:
Code:
After~
DECLAREAPPLET( AppMain_WndSelectChar   , new CWndSelectChar   );

You Add~
#ifdef __PETFILTER
DECLAREAPPLET( AppMain_WndPetfilter    , new CWndPetfilter    );
#endif //__PETFILTER

After~
AddAppletFunc( AppMain_WndParty        , APP_PARTY                   , _T( "WndParty"     )    , _T( "Icon_Troupe.dds"    )    , GETTEXT( TID_TIP_PARTY          ),  'P' );

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


WndManager.cpp
Spoiler:
Code:
After~
#if __VER >= 8 //__CSC_VER8_5
m_pWndSummonAngel = NULL;
#endif //__CSC_VER8_5

You Add~
#ifdef __PETFILTER
m_pWndPetfilter = NULL;
#endif //__PETFILTER

After~
SAFE_DELETE( m_pWndRevival );

You Add~
#ifdef __PETFILTER
SAFE_DELETE( m_pWndPetfilter );
#endif //__PETFILTER

After~
#ifdef __GUILD_HOUSE_MIDDLE
else if( m_pWndGHBid == pWndChild )
{
  SAFE_DELETE( m_pWndGHBid );
  pWndChild = NULL;
}
#endif //__GUILD_HOUSE_MIDDLE

You Add~
#ifdef __PETFILTER
if( m_pWndPetfilter == pWndChild )
{
  SAFE_DELETE( m_pWndPetfilter );
  pWndChild = NULL;
}
#endif //__PETFILTER

After~
#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

You Add~
#ifdef __PETFILTER
  CWndPetfilter* pWndPetfilter = (CWndPetfilter*)g_WndMng.GetWndBase( APP_PETFILTER );
  if(pWndPetfilter!= NULL)
   pWndPetfilter->SetVisible(FALSE);
#endif //__PETFILTER

After~
#if __VER >= 15 // __PETVIS
  CWndBuffPetStatus* pWndBuffPetStatus = (CWndBuffPetStatus*)g_WndMng.GetWndBase( APP_BUFFPET_STATUS );
  if(pWndBuffPetStatus != NULL)
   pWndBuffPetStatus->SetVisible(TRUE);
#endif
#endif //__CSC_VER9_1

You Add~
#ifdef __PETFILTER
  CWndPetfilter* pWndPetfilter = (CWndPetfilter*)g_WndMng.GetWndBase( APP_PETFILTER );
  if(pWndPetfilter!= NULL)
   pWndPetfilter->SetVisible(TRUE);
#endif //_PETFILTER

WndManager.h
Spoiler:
Code:
After~
CWndPetStatus* m_pWndPetStatus;

You Add~
#ifdef __PETFILTER
CWndPetfilter* m_pWndPetfilter;
#endif //__PETFILTER

WndTitle.cpp
Spoiler:
Code:
Find~
#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] )
     {


Change To~
#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] )
     {

Wnd2ndPassword.cpp
Spoiler:
Code:
Find~
#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 );
}

Change To~
#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 );
}

WndField.cpp
Spoiler:
Code:
After~
#include "defineNeuz.h"

You Add~
#ifdef __PETFILTER
#include "defineFilter.h"
#endif //__PETFILTER

After~
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

You Add~
#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

WndField.h
Spoiler:
Code:
After~
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

You Add~
#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

HwOption.cpp
Spoiler:
Code:
After~
#if __VER >= 11 // __ADD_ZOOMOPT
m_bZoomLimit = TRUE;
m_dwPetfilter = 0;
#endif

You Add~
#ifdef __PETFILTER
m_dwPetfilter = 0;
#endif //__PETFILTER

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

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

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

You Add~
#ifdef __PETFILTER
_ftprintf(fp, _T( "Petfilter %d\n" ), m_dwPetfilter );
#endif //__PETFILTER

HwOption.h
Spoiler:
Code:
After~
#if __VER >= 11 // __ADD_ZOOMOPT
BOOL m_bZoomLimit;  // ÁÜ Á¦ÇÑ ¿©ºÎ
#endif

You Add~
#ifdef __PETFILTER
DWORD m_dwPetfilter;
#endif //__PETFILTER



然后在脚本修改

defineFilter.h

  剧透:
  代码:
  创建这个文件用记事本或任何你觉得使用. .
  里面添加以下;
 

#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


Resdata.h
Spoiler:
Code:
You Add These Stuff~
#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

Resdata.inc (旧版,例如V15版,V15版本请看下面的的)
Spoiler:
Code:
You Add~
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
    }

}


Resdata.inc (新版)
Spoiler:
Code:
You Add~
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
    }

}

ResData.txt
Spoiler:
Code:
You Add~
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 

历史版本

  • V19.飞你莫属
  • 11-11-24V18.翱翔重生
  • 11-04-13V17.龙的逆袭
  • 10-12-13V16.神采飞扬
  • 10-04-16V15.羽化飞天
  • 09-11-04V14.翼之降临