阅读:2471回复:3
[发行]瞬移系统
搜索:
PHP代码: void CDPClient :: SendSwapVis ( int nPos1 , int nPos2 ) { BEFORESENDSOLE ( ar , PACKETTYPE_VISPET_SWAPVIS , DPID_UNKNOWN ); ar << nPos1 << nPos2 ; SEND ( ar , this , DPID_SERVERPLAYER ); } 下面添加: PHP代码: void CDPClient :: SendTeleportPosition ( BYTE nID ) { BEFORESENDSOLE ( ar , PACKETTYPE_SENDTELEPORTPOSITION , DPID_UNKNOWN ); ar << nID ; SEND ( ar , this , DPID_SERVERPLAYER ); } -------------------------------------------------- -------------------------------------------------- DPClient.h -------------------------------------------------- -------------------------------------------------- 搜索: PHP代码: void SendGuildHouseTenderJoin ( OBJID objGHId , int nTenderPerin , int nTenderPenya ); #endif // __GUILD_HOUSE_MIDDLE 下面添加: PHP代码: public: void SendTeleportPosition ( BYTE nID ); -------------------------------------------------- -------------------------------------------------- DPSrvr.cpp -------------------------------------------------- -------------------------------------------------- 搜索: PHP代码: #ifdef __QUIZ ON_MSG ( PACKETTYPE_QUIZ_ENTRANCE , OnQuizEventEntrance ); ON_MSG ( PACKETTYPE_QUIZ_TELEPORT , OnQuizEventTeleport ); #endif // __QUIZ 下面添加: PHP代码: ON_MSG ( PACKETTYPE_SENDTELEPORTPOSITION , OnSendTeleportPosition ); 搜索: PHP代码: 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 下面添加: PHP代码: void CDPSrvr :: OnSendTeleportPosition ( CAr & ar , DPID dpidCache , DPID dpidUser , LPBYTE , u_long ) //Teleport Fenster Stuff { CUser * pUser = g_UserMng . GetUser ( dpidCache , dpidUser ); if( IsValidObj ( pUser ) ) { BYTE nID ; D3DXVECTOR3 vPos ; int dwWorldID ; ar >> nID ; switch( nID ) { case 1 : vPos = D3DXVECTOR3 ( 6973.0F , 100.0F , 3328.0F ); dwWorldID = 1 ; break; case 2 : vPos = D3DXVECTOR3 ( 8321.0F , 100.0F , 3720.0F ); dwWorldID = 1 ; break; case 3 : vPos = D3DXVECTOR3 ( 3900.250732F , 59.0F , 4377.806641F ); dwWorldID = 1 ; break; case 4 : vPos = D3DXVECTOR3 ( 5574.530273F , 75.001129F , 3900.282227F ); dwWorldID = 1 ; break; case 5 : vPos = D3DXVECTOR3 ( 3240.482910F , 11.316653F , 3409.634766F ); dwWorldID = 1 ; break; case 6 : vPos = D3DXVECTOR3 ( 881.142883F , 183.273331F , 1008.118652F ); dwWorldID = 206 ; break; case 7 : vPos = D3DXVECTOR3 ( 8268.617F , 70.0F , 9378.295F ); dwWorldID = 1 ; break; case 8 : vPos = D3DXVECTOR3 ( 6785.000000F , 100.699989F , 6062.000000F ); dwWorldID = 1 ; break; case 9 : vPos = D3DXVECTOR3 ( 6642.931152F , 58.000000F , 6454.676758F ); dwWorldID = 1 ; break; case 10 : vPos = D3DXVECTOR3 ( 4908.647F , 100.000F , 3457.677F ); dwWorldID = 1 ; break; case 11 : vPos = D3DXVECTOR3 ( 5267.235F , 100.000F , 4719.388F ); dwWorldID = 1 ; break; case 12 : vPos = D3DXVECTOR3 ( 7213.436F , 107.523F , 3666.329F ); dwWorldID = 1 ; break; default: return FALSE ; } pUser -> REPLACE ( g_uIdofMulti , dwWorldID , vPos , REPLACE_NORMAL , nDefaultLayer ); } } -------------------------------------------------- -------------------------------------------------- DPSrvr.h -------------------------------------------------- -------------------------------------------------- 搜索: PHP代码: void OnGuildHouseTenderJoin ( CAr & ar , DPID dpidCache , DPID dpidUser , LPBYTE , u_long ); #endif // __GUILD_HOUSE_MIDDLE 下面添加: PHP代码: public: void OnSendTeleportPosition ( CAr & ar , DPID dpidCache , DPID dpidUser , LPBYTE , u_long ); -------------------------------------------------- -------------------------------------------------- WndField.cpp -------------------------------------------------- -------------------------------------------------- 搜索: PHP代码: #define MAX_GUILDCOMBAT_LIST_PER_PAGE 11 #define MAX_MAIL_LIST_PER_PAGE 6 #define MAX_GUILDCOMBAT_LIST 100 下面添加: PHP代码: //--------------- Teleport ---------------------------------- //----------------------------------------------------------------------------- CWndTeleporter :: CWndTeleporter ( void ) { } //----------------------------------------------------------------------------- CWndTeleporter ::~ CWndTeleporter ( void ) { DeleteDeviceObjects (); } //----------------------------------------------------------------------------- BOOL CWndTeleporter :: Initialize ( CWndBase * pWndParent , DWORD dwType ) { return CWndNeuz :: InitDialog ( g_Neuz . GetSafeHwnd (), APP_TELEPORTUSER , 0 , CPoint ( 0 , 0 ), pWndParent ); } //----------------------------------------------------------------------------- BOOL CWndTeleporter :: OnCommand ( UINT nID , DWORD dwMessage , CWndBase * pWndBase ) { return CWndNeuz :: OnCommand ( nID , dwMessage , pWndBase ); } void CWndTeleporter :: OnSize ( UINT nType , int cx , int cy ) { CWndNeuz :: OnSize ( nType , cx , cy ); } void CWndTeleporter :: OnLButtonUp ( UINT nFlags , CPoint point ) { } void CWndTeleporter :: OnLButtonDown ( UINT nFlags , CPoint point ) { } void CWndTeleporter :: OnDraw ( C2DRender * p2DRender ) { } HRESULT CWndTeleporter :: RestoreDeviceObjects () { CWndNeuz :: RestoreDeviceObjects (); return S_OK ; } HRESULT CWndTeleporter :: InvalidateDeviceObjects () { CWndNeuz :: InvalidateDeviceObjects (); return S_OK ; } HRESULT CWndTeleporter :: DeleteDeviceObjects () { CWndNeuz :: DeleteDeviceObjects (); InvalidateDeviceObjects (); return S_OK ; } void CWndTeleporter :: OnInitialUpdate ( void ) { CWndNeuz :: OnInitialUpdate (); RestoreDeviceObjects (); CRect rectRoot = m_pWndRoot -> GetLayoutRect (); CRect rectWindow = GetWindowRect (); CPoint point ( rectRoot . right - rectWindow . Width (), 110 ); Move ( point ); MoveParentCenter (); } BOOL CWndTeleporter :: OnChildNotify ( UINT message , UINT nID , LRESULT * pLResult ) { switch ( nID ) { case WIDC_BUTTON_FLARIS1 : // Flaris { g_DPlay . SendTeleportPosition ( 1 ); Destroy (); break; } case WIDC_BUTTON_SM1 : // Saint Morning { g_DPlay . SendTeleportPosition ( 2 ); Destroy (); break; } case WIDC_BUTTON_DARKON1 : // Darkon { g_DPlay . SendTeleportPosition ( 3 ); Destroy (); break; } case WIDC_BUTTON_DARKON11 : // Darkon1 { g_DPlay . SendTeleportPosition ( 4 ); Destroy (); break; } case WIDC_BUTTON_DARKON3 : // Darkon3 { g_DPlay . SendTeleportPosition ( 5 ); Destroy (); break; } case WIDC_BUTTON_VULCANO1 : // VOLCANO { g_DPlay . SendTeleportPosition ( 6 ); Destroy (); break; } case WIDC_BUTTON_PVP1 : // Vorm Behemoth Dungeon { g_DPlay . SendTeleportPosition ( 7 ); Destroy (); break; } case WIDC_BUTTON_HERODUNGEON : // Aminus Hero { g_DPlay . SendTeleportPosition ( 8 ); Destroy (); break; } case WIDC_BUTTON_MASTERDUNGEON : // Aminus Master { g_DPlay . SendTeleportPosition ( 9 ); Destroy (); break; } case WIDC_BUTTON_TRAMNUKM : // Tramnuk Master { g_DPlay . SendTeleportPosition ( 10 ); Destroy (); break; } case WIDC_BUTTON_TRAMNUK : // Tramnuk Normal { g_DPlay . SendTeleportPosition ( 11 ); Destroy (); break; } case WIDC_BUTTON_EVENT : // Event Area { g_DPlay . SendTeleportPosition ( 12 ); Destroy (); break; } } return CWndNeuz :: OnChildNotify ( message , nID , pLResult ); } //---------------- Teleport -------------------- WndField.h 搜索: PHP代码: #ifdef __MAIL_REQUESTING_BOX #include "WndMailRequestingBox.h" #endif // __MAIL_REQUESTING_BOX 下面添加: PHP代码: class CWndTeleporter : public CWndNeuz { public: CWndTeleporter ( void ); ~ CWndTeleporter ( void ); virtual HRESULT RestoreDeviceObjects (); virtual HRESULT InvalidateDeviceObjects (); virtual HRESULT DeleteDeviceObjects (); public: 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 ); }; MsgHdr.h 搜索: PHP代码: #define PACKETTYPE_QUERYMAILBOX_COUNT (DWORD)0x88100241 下面添加: PHP代码: #define PACKETTYPE_SENDTELEPORTPOSITION (DWORD)0x88100299 FuncApplet.cpp 搜索: PHP代码: DECLAREAPPLET ( AppMain_WndNavigator , new CWndNavigator ); 下面添加: PHP代码: DECLAREAPPLET ( AppMain_TeleportTool , new CWndTeleporter ); 搜索: PHP代码: AddAppletFunc ( AppMain_WndTrade , APP_TRADE , _T ( "WndTrade" ) , _T ( "Icon_Trade.dds" ) , GETTEXT ( TID_TIP_TRADE ), 0 ); 下面添加: PHP代码: AddAppletFunc ( AppMain_TeleportTool , APP_TELEPORTUSER , _T ( "WndMotion" ) , _T ( "Icon_Motion.dds" ) , GETTEXT ( TID_TIP_MOTION ), 'Z' ); //Hotkey Z |
|
100% |
沙发#
发布于:2012-03-03 13:18
原文和附件下载http://translate.googleusercontent.com/translate_c?hl=zh-CN&rurl=translate.google.com&sl=de&tl=zh-CN&u=http://www.elitepvpers.com/forum/flyff-pserver-discussions-questions/1558470-release-teleport-system.html&usg=ALkJrhhvquJaVhP6YfbGxKH2GyvvMSdp6Q
|
|
板凳#
发布于:2012-03-03 20:23
good job 好的源碼分享^0^
|
|
地板#
发布于:2012-03-03 23:13
顶
|
|