Da ja nicht alle Leecher es schaffen es aus meinem Source zu holen release ich es nun.
WndField am Ende der Datei:
Alles anzeigen
WndField.h:
Am Ende vor dem letzten "#endif"
Alles anzeigen
DPClient.cpp ( Client )
Am Ende, VOR
kommt das hier hin:
MsgHdr.h
Über die Snapshots:
DPSrvr.cpp ( WorldServer )
Unter
Das hier:
Dann noch am Ende der Datei das hier einfügen:
Alles anzeigen
Das Gelbe ist alles auskommentiert, ob es alles wieder funktioniert wenn ihr es wieder aktiviert weiß ich nicht. Müsst ihr schauen welche Koordinaten zu was gehören.
Resdata.inc:
Alles anzeigen
Resdata.h
Die Bilder: Klick
Müsst ihr in Theme/Default/LoadMap reinklatschen.
Das wars schon, aber ihr müsst natürlich die Weise wie ihr den Teleporter aufrufen wollt noch bestimmen.
Screen:
WndField am Ende der Datei:
PHP-Quellcode
- #ifdef __APP_TELEPORTER
- CWndTeleporter::CWndTeleporter( void )
- {
- m_nSelected = NULL;
- m_pPicTexture = NULL;
- }
- CWndTeleporter::~CWndTeleporter( void )
- {
- DeleteDeviceObjects();
- }
- BOOL CWndTeleporter::Initialize( CWndBase* pWndParent, DWORD dwType )
- {
- return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_TELEPORTER, 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 )
- {
- CWndStatic* pStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC2 );
- CWndText* pText = (CWndText*)GetDlgItem( WIDC_TEXT1 );
- CString strFile, strLandName, strDes;
- switch( m_nSelected )
- {
- case 0:
- strFile = "flaris.tga";
- strLandName ="Flaris";
- strDes= "";
- break;
- case 1:
- strFile = "SM.tga";
- strLandName ="Saint Morning";
- strDes="";
- break;
- case 2:
- strFile = "darkon.tga";
- strLandName ="Darkon";
- strDes= "";
- break;
- case 3:
- strFile = "darkon1.tga";
- strLandName ="Darkon 1";
- strDes= "";
- break;
- case 4:
- strFile = "darkon3.tga";
- strLandName ="Darkon 3";
- strDes= "";
- break;
- case 5:
- strFile = "vulcano.tga";
- strLandName ="Vulcano";
- strDes= "";
- break;
- case 6:
- strFile = "behemoth.tga";
- strLandName ="Behemoth Dungeon";
- strDes= "";
- break;
- case 7:
- strFile = "animush.tga";
- strLandName ="Animus - Hero Dungeon";
- strDes= "";
- break;
- case 8:
- strFile = "animusm.tga";
- strLandName ="Animus - Master Dungeon";
- strDes= "";
- break;
- case 9:
- strFile = "tramnukm.tga";
- strLandName ="Tramnuk - Master Dungeon";
- strDes= "";
- break;
- case 10:
- strFile = "tramnuk.tga";
- strLandName ="Tramnuk Dungeon";
- strDes= "";
- break;
- case 11:
- strFile = "khaldera.tga";
- strLandName ="Khaldera";
- strDes= "";
- break;
- case 12:
- strFile = "Bahara.tga";
- strLandName ="Bahara";
- strDes= "";
- break;
- case 13:
- strFile = "Sanpres.tga";
- strLandName ="Sanpres 1 Dungeon";
- strDes= "";
- break;
- case 14:
- strFile = "Sanpres.tga";
- strLandName ="Sanpres 2 Dungeon";
- strDes= "";
- break;
- case 15:
- strFile = "Upresia.tga";
- strLandName ="Upresia 1 Dungeon";
- strDes= ".";
- break;
- case 16:
- strFile = "Upresia.tga";
- strLandName ="Upresia 2 Dungeon";
- strDes= "";
- break;
- case 17:
- strFile = "Herneos.tga";
- strLandName ="Herneos 1 Dungeon";
- strDes= "";
- break;
- case 18:
- strFile = "Herneos.tga";
- strLandName ="Herneos 2 Dungeon";
- strDes= "";
- break;
- case 19:
- strFile = "Knochenpfad.tga";
- strLandName ="Knochenpfad";
- strDes= "";
- break;
- case 20:
- strFile = "Crystal.tga";
- strLandName ="Crystal Dungeon";
- strDes= "";
- break;
- case 21:
- strFile = "Kalgas.tga";
- strLandName ="Kalgas Dungeon";
- strDes= "";
- break;
- case 22:
- strFile = "Eillun.tga";
- strLandName ="Eillun";
- strDes= "";
- break;
- default: strFile = "flaris.tga"; strLandName ="Error"; strDes= "Error"; break;
- }
- pStatic->SetTitle( strLandName );
- pText->SetString( strDes, 0xFF1e90ff );
- m_pPicTexture = m_textureMng.AddTexture( m_pApp->m_pd3dDevice, MakePath( "Theme\\Default\\LoadMap\\", strFile ), 0xff000000 );
- if( m_pPicTexture != NULL )
- {
- LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_STATIC1 );
- if( g_Option.m_nWindowAlpha > 200 )
- m_pPicTexture->Render( p2DRender, lpWndCtrl->rect.TopLeft(), g_Option.m_nWindowAlpha - 55 );
- else
- m_pPicTexture->Render( p2DRender, lpWndCtrl->rect.TopLeft(), g_Option.m_nWindowAlpha );
- }
- }
- 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();
- CWndListBox* pListBox = (CWndListBox*)GetDlgItem( WIDC_LISTBOX1 );
- pListBox->AddString("Flaris");
- pListBox->AddString("Saint Morning");
- pListBox->AddString("Darkon");
- pListBox->AddString("Darkon 1");
- pListBox->AddString("Darkon 3");
- pListBox->AddString("Vulcano");
- //pListBox->AddString("Behemoth D.");
- pListBox->AddString("Amnius Hero");
- pListBox->AddString("Amnius Master");
- //pListBox->AddString("Master Tramnuk");
- //pListBox->AddString("Tramnuk");
- pListBox->AddString("Khaldera");
- //pListBox->AddString("Bahara Desert");
- //pListBox->AddString("Sanpres 1");
- //pListBox->AddString("Sanpres 2");
- //pListBox->AddString("Upresia 1");
- //pListBox->AddString("Upresia 2");
- //pListBox->AddString("Herneos 1");
- //pListBox->AddString("Herneos 2");
- //pListBox->AddString("Knochenpfad");
- //pListBox->AddString("Crystal Dungeon");
- //pListBox->AddString("Kalgas Cave");
- //pListBox->AddString("Eillun");
- }
- BOOL CWndTeleporter::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
- {
- if( nID == WIDC_LISTBOX1 )
- {
- CWndListBox* pWndListBox = (CWndListBox*)GetDlgItem( WIDC_LISTBOX1 );
- if( pWndListBox->GetCurSel() != -1 || pWndListBox->GetCurSel() > 22 )
- m_nSelected= pWndListBox->GetCurSel();
- }
- else if( nID == WIDC_BUTTON1 )
- {
- g_DPlay.SendTeleport( m_nSelected );
- Destroy();
- }
- return CWndNeuz::OnChildNotify( message, nID, pLResult );
- }
- #endif
WndField.h:
Am Ende vor dem letzten "#endif"
PHP-Quellcode
- #ifdef __APP_TELEPORTER
- class CWndTeleporter : public CWndNeuz
- {
- public:
- int m_nSelected;
- CTexture* m_pPicTexture;
- 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 );
- };
- #endif //__APP_TELEPORTER
DPClient.cpp ( Client )
Am Ende, VOR
kommt das hier hin:
MsgHdr.h
Über die Snapshots:
DPSrvr.cpp ( WorldServer )
Unter
Das hier:
Dann noch am Ende der Datei das hier einfügen:
PHP-Quellcode
- #ifdef __APP_TELEPORTER
- void CDPSrvr::OnTeleportByAPP( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long )
- {
- #ifdef __NEW_DEBUG
- g_Guard.LogDebug("CDPSrvr::OnTeleportByAPP");
- #endif
- CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
- int nCurSel;
- if( IsValidObj( pUser ) )
- {
- ar >> nCurSel;
- DWORD dwWorldID;
- D3DXVECTOR3 vPos;
- switch( nCurSel )
- {
- case 0: vPos = D3DXVECTOR3(6973.0F, 100.0F, 3328.0F); dwWorldID = 1; break;
- case 1: vPos = D3DXVECTOR3(8321.0F, 100.0F, 3720.0F); dwWorldID = 1; break;
- case 2: vPos = D3DXVECTOR3(3900.250732F, 59.0F, 4377.806641F); dwWorldID = 1; break;
- case 3: vPos = D3DXVECTOR3(5574.530273F, 75.001129F, 3900.282227F); dwWorldID = 1; break;
- case 4: vPos = D3DXVECTOR3(3240.482910F, 11.316653F, 3409.634766F); dwWorldID = 1; break;
- case 5: vPos = D3DXVECTOR3(881.142883F, 183.273331F, 1008.118652F); dwWorldID = 206; break;
- case 6: vPos = D3DXVECTOR3(6642.931152F, 58.000000F, 6454.676758F); dwWorldID = 1; break;
- case 7: vPos = D3DXVECTOR3(6785.000000F, 100.699989F, 6062.000000F); dwWorldID = 1; break;
- case 8: vPos = D3DXVECTOR3(5986.8989f, 100.0f, 5414.0f); dwWorldID = 1; break;
- /* case 9: vPos = D3DXVECTOR3(4908.647F, 100.000F, 3457.677F); dwWorldID = 1; break;
- case 10: vPos = D3DXVECTOR3(5267.235F, 100.000F, 4719.388F); dwWorldID = 1; break;
- case 11: vPos = D3DXVECTOR3(5946.719F, 100.392F, 5406.160F); dwWorldID = 1; break;
- case 12: vPos = D3DXVECTOR3(6501.000F, 66.000F, 9095.00F); dwWorldID = 1; break;
- case 13: vPos = D3DXVECTOR3(6593.000F, 100.000F, 5076.000F); dwWorldID = 1; break;
- case 14: vPos = D3DXVECTOR3(5159.000F, 100.000F, 5273.000F); dwWorldID = 1; break;
- case 15: vPos = D3DXVECTOR3(2762.000F, 150.000F, 5242.000F); dwWorldID = 1; break;
- case 16: vPos = D3DXVECTOR3(2734.000F, 150.000F, 5239.000F); dwWorldID = 1; break;
- case 17: vPos = D3DXVECTOR3(1826.000F, 96.600F, 2756.000F); dwWorldID = 1; break;
- case 18: vPos = D3DXVECTOR3(2011.000F, 96.900F, 2307.000F); dwWorldID = 1; break;
- case 19: vPos = D3DXVECTOR3(7065.011F, 90.962F, 6457.552F); dwWorldID = 1; break;
- case 20: vPos = D3DXVECTOR3(6366.140F, 100.000F, 8050.609F); dwWorldID = 1; break;
- case 21: vPos = D3DXVECTOR3(5730.762F, 87.762F, 8141.579F); dwWorldID = 1; break;
- case 22: vPos = D3DXVECTOR3(7956.923F, 70.000F, 8822.327F); dwWorldID = 1; break;*/
- default: Error("CDPSrvr::OnTeleportByAPP - %s", pUser->GetName() ); return;
- }
- pUser->REPLACE( g_uIdofMulti, dwWorldID, vPos, REPLACE_NORMAL, nDefaultLayer );
- }
- }
- #endif
Das Gelbe ist alles auskommentiert, ob es alles wieder funktioniert wenn ihr es wieder aktiviert weiß ich nicht. Müsst ihr schauen welche Koordinaten zu was gehören.
Resdata.inc:
PHP-Quellcode
- APP_TELEPORTER "WndTile08.tga" "" 1 640 464 0x2410000 26
- {
- // Title String
- IDS_RESDATA_INC_006762
- }
- {
- // Help Key
- IDS_RESDATA_INC_006763
- }
- {
- WTYPE_LISTBOX WIDC_LISTBOX1 "WndEditTile00.tga" 1 40 22 194 346 0x20020000 0 0 0 0 0 0 0
- {
- // Title String
- IDS_RESDATA_INC_006764
- }
- {
- // ToolTip
- IDS_RESDATA_INC_006765
- }
- WTYPE_BUTTON WIDC_BUTTON1 "ButtApply.tga" 0 72 374 144 394 0x220010 0 0 0 0 0 0 0
- {
- // Title String
- IDS_RESDATA_INC_006766
- }
- {
- // ToolTip
- IDS_RESDATA_INC_006767
- }
- WTYPE_STATIC WIDC_STATIC1 "" 0 284 56 534 306 0x2220002 0 0 0 0 0 0 0
- {
- // Title String
- IDS_RESDATA_INC_006768
- }
- {
- // ToolTip
- IDS_RESDATA_INC_006769
- }
- WTYPE_TEXT WIDC_TEXT1 "WndEditTile00.tga" 1 268 328 568 404 0x20020000 0 0 0 0 0 0 0
- {
- // Title String
- IDS_RESDATA_INC_006770
- }
- {
- // ToolTip
- IDS_RESDATA_INC_006771
- }
- WTYPE_STATIC WIDC_STATIC2 "WndEditTile200.tga" 1 365 20 498 36 0x2222481 0 0 0 0 0 0 0
- {
- // Title String
- IDS_RESDATA_INC_006772
- }
- {
- // ToolTip
- IDS_RESDATA_INC_006773
- }
- }
Resdata.h
Die Bilder: Klick
Müsst ihr in Theme/Default/LoadMap reinklatschen.
Das wars schon, aber ihr müsst natürlich die Weise wie ihr den Teleporter aufrufen wollt noch bestimmen.
Screen: