shevechco
4级·生命之泉
4级·生命之泉
  • UID17
  • 注册日期2011-05-19
  • 最后登录2018-03-28
  • 粉丝4
  • 关注0
  • 发帖数308
  • QQ
  • 铜币274枚
  • 威望0点
  • 银元433个
阅读:10664回复:8

【源码编辑】捡寵过滤系统~~~~~~~~~复制*黏贴——转自RAGEZONE

楼主#
更多 发布于:2011-12-15 12:35

DPSrvr.cpp
找到
#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
下面添加
#ifdef __PETFILTER
    ON_MSG( PACKETTYPE_PETFILTER, OnSetPetfilterSea );
#endif //__PETFILTER

找到
#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

下面添加
#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
找到
#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

下面添加
#ifdef __PETFILTER
    void    OnSetPetfilter( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize );
#endif //__PETFILTER


User.h
找到
    DWORD            m_dwDestroyTime;                    /// Destory¿¹¾à ½ð¢

下面添加
#ifdef __PETFILTER
    DWORD            m_dwPetfilter;                        /// Pet Filter
#endif // __PETFILTER


VersionCommon.h (Neuz & WorldServer)
添加预备编译项目
#define        __PETFILTER


MsgHdr.h
找到
#define PACKETTYPE_QUERYMAILBOX_COUNT                (DWORD)0x88100241

下面添加
#ifdef __PETFILTER
#define PACKETTYPE_PETFILTER                        (DWORD)0x88100242
#endif //__PETFILTER

如果值已经存在,更改编号,不要让它重复复。

AIPet.cpp
找到
#include "dpcoreclient.h"
下面添加
#ifdef __PETFILTER
#include "defineFilter.h"
#endif //__PETFILTER

找到
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 )
                {

下面添加
#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
找到
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

下面添加
#ifdef __PETFILTER
void CDPClient::SendPlayerPetfilter( DWORD dwPetfilter )
{
    BEFORESENDSOLE( ar, PACKETTYPE_PETFILTER, DPID_UNKNOWN );
    ar << dwPetfilter;
    SEND( ar, this, DPID_SERVERPLAYER );
}
#endif //__PETFILTER

DPClient.h
找到
#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

下面添加
#ifdef __PETFILTER
    void    SendPlayerPetfilter( DWORD m_dwPetfilter );
#endif //__PETFILTER

FuncApplet.cpp
找到
DECLAREAPPLET( AppMain_WndSelectChar   , new CWndSelectChar   );

下面添加
#ifdef __PETFILTER
DECLAREAPPLET( AppMain_WndPetfilter       , new CWndPetfilter    );
#endif //__PETFILTER

找到
    AddAppletFunc( AppMain_WndParty        , APP_PARTY                   , _T( "WndParty"     )    , _T( "Icon_Troupe.dds"    )    , GETTEXT( TID_TIP_PARTY          ),  &#39' );

下面添加
#ifdef __PETFILTER
    AddAppletFunc( AppMain_WndPetfilter       , APP_PETFILTER                 , _T( "WndPetfilter" )       , _T( "Icon_Applet.dds"    )       , _T( &quotetFilter" ),  'U' );
#endif //__PETFILTER

WndManager.cpp
找到
#if __VER >= 8 //__CSC_VER8_5
    m_pWndSummonAngel = NULL;
#endif //__CSC_VER8_5

下面添加
#ifdef __PETFILTER
    m_pWndPetfilter = NULL;
#endif //__PETFILTER

找到
    SAFE_DELETE( m_pWndRevival );

下面添加
#ifdef __PETFILTER
    SAFE_DELETE( m_pWndPetfilter );
#endif //__PETFILTER

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

下面添加
#ifdef __PETFILTER
    if( m_pWndPetfilter == pWndChild )
    {
        SAFE_DELETE( m_pWndPetfilter );
        pWndChild = NULL;
    }
#endif //__PETFILTER

找到
#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

下面添加
#ifdef __PETFILTER
        CWndPetfilter* pWndPetfilter = (CWndPetfilter*)g_WndMng.GetWndBase( APP_PETFILTER );
        if(pWndPetfilter!= NULL)
            pWndPetfilter->SetVisible(FALSE);
#endif //__PETFILTER

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

下面添加
#ifdef __PETFILTER
        CWndPetfilter* pWndPetfilter = (CWndPetfilter*)g_WndMng.GetWndBase( APP_PETFILTER );
        if(pWndPetfilter!= NULL)
            pWndPetfilter->SetVisible(TRUE);
#endif //_PETFILTER

WndManager.h
找到
    CWndPetStatus* m_pWndPetStatus;

下面添加
#ifdef __PETFILTER
    CWndPetfilter* m_pWndPetfilter;
#endif //__PETFILTER

WndTitle.cpp
找到
#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] )
                    {


改为
#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
找到
#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 );
}

改为
#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
找到
#include "defineNeuz.h"

下面添加
#ifdef __PETFILTER
#include "defineFilter.h"
#endif //__PETFILTER

找到
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

下面添加
#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
找到
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

下面添加
#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
找到
#if __VER >= 11 // __ADD_ZOOMOPT
    m_bZoomLimit = TRUE;
    m_dwPetfilter = 0;
#endif

下面添加
#ifdef __PETFILTER
    m_dwPetfilter = 0;
#endif //__PETFILTER

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

下面添加
#ifdef __PETFILTER
    else if(scan.Token == _T(&quotetfilter") )
    {
        m_dwPetfilter = scan.GetNumber();
    }
#endif //__PETFILTER

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

下面添加
#ifdef __PETFILTER
    _ftprintf(fp, _T( &quotetfilter %d\n" ), m_dwPetfilter );
#endif //__PETFILTER

HwOption.h
找到
#if __VER >= 11 // __ADD_ZOOMOPT
    BOOL    m_bZoomLimit;        // ÁÜ Á¦ÇÑ ¿©ºÎ
#endif

下面添加
#ifdef __PETFILTER
    DWORD m_dwPetfilter;
#endif //__PETFILTER

Resource
Spoiler:


将以下代码添加到记事本保存为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
添加
#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 (老的resdata(v15版本))
添加
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 (新的resdata(v16以上版本))
添加
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
添加
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    

“以下引用原文直接翻译的。”
是的,这应该是相当多的一切,你需要做这个petfilter工作。哦,是的。“蓝色”票可能会不工作,因为它是寻找“armor_gen”是不存在的,所以你必须添加在defineitemkind。小时,在armor_set(3)添加它作为armor_gen(4)编译了。
然后你进入propitem.txt或spec_item.txt和重命名所有蓝色盔甲的“=”到“armor_gen”一样的绿色盔甲:)
1093900025
3级·血之光辉
3级·血之光辉
  • UID20024
  • 注册日期2011-12-13
  • 最后登录2014-10-05
  • 粉丝2
  • 关注0
  • 发帖数76
  • QQ
  • 铜币22枚
  • 威望0点
  • 银元64个
沙发#
发布于:2011-12-16 22:58
喷子
1级·灵魂力量
1级·灵魂力量
  • UID20080
  • 注册日期2011-12-18
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 发帖数1
  • QQ
  • 铜币6枚
  • 威望0点
  • 银元0个
板凳#
发布于:2011-12-18 18:01
话说这个功能在王者魅力飞飞是有的 ..
tian850706
2级·斗气风暴
2级·斗气风暴
  • UID25318
  • 注册日期2012-08-10
  • 最后登录2017-07-01
  • 粉丝0
  • 关注1
  • 发帖数75
  • QQ
  • 铜币60枚
  • 威望0点
  • 银元56个
地板#
发布于:2017-07-01 21:48
:u
dadifeifei
禁止发言
禁止发言
  • UID47115
  • 注册日期2017-07-04
  • 最后登录2017-07-10
  • 粉丝0
  • 关注0
  • 发帖数3
  • QQ
  • 铜币7枚
  • 威望-1点
  • 银元0个
4楼#
发布于:2017-07-04 20:54
用户被禁言,该主题自动屏蔽!
精神流小氓
1级·灵魂力量
1级·灵魂力量
  • UID44003
  • 注册日期2015-06-21
  • 最后登录2018-10-18
  • 粉丝0
  • 关注1
  • 发帖数37
  • QQ
  • 铜币72枚
  • 威望1点
  • 银元0个
  • 社区居民
5楼#
发布于:2018-05-21 14:27
zhaolong227
2级·斗气风暴
2级·斗气风暴
  • UID42619
  • 注册日期2014-11-03
  • 最后登录2018-09-16
  • 粉丝5
  • 关注2
  • 发帖数47
  • QQ
  • 铜币86枚
  • 威望2点
  • 银元0个
  • 社区居民
  • 忠实会员
6楼#
发布于:2018-09-11 21:16
-.-有木有15的源码能分享的内种。。。研究一下。。。
Flower
禁止发言
禁止发言
  • UID48314
  • 注册日期2018-11-04
  • 最后登录2019-01-13
  • 粉丝0
  • 关注1
  • 发帖数54
  • QQ
  • 铜币37枚
  • 威望-8点
  • 银元0个
  • 社区居民
  • 忠实会员
7楼#
发布于:2018-11-21 14:41
用户被禁言,该主题自动屏蔽!
laofeifei
3级·血之光辉
3级·血之光辉
  • UID49318
  • 注册日期2020-03-19
  • 最后登录2020-05-23
  • 粉丝0
  • 关注0
  • 发帖数98
  • QQ
  • 铜币29枚
  • 威望1点
  • 银元0个
  • 社区居民
8楼#
发布于:2020-03-20 21:36
已经学习了。
游客

返回顶部