Register for your free account! | Forgot your password?

You last visited: Today at 16:13

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release]V19 Target Information

Discussion on [Release]V19 Target Information within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
[Release]V19 Target Information

JoJoJo ihr möchtegern swaggerboys.. :]

Ich hau hier heute mal dass V19 Target Information raus, da ich Jopsii einfach nur Inkompetent finde, und er es total scheiße "gecoded" hat, werde ich hier mal dass von Crasy raus hauen, was immerhin komplett kopiert von Offi ist, Fehlerfrei läuft und dazu noch einfach einbinden ist.

Wer nicht weiß was V19 Target Information ist, hier:



Vorrab: wer nicht alles auf der need to work liste hat, braucht garnicht erst versuchen es einzubauen, es wird nicht laufen.

Need to work list:
  • V19 ResData
  • V19 PropMover inkl. alle Parameter richtig geladen
  • V19 Header Dateien (defineNeuz, ..)
  • V19 PropJob inkl. alle parameter richtig laden (ins. der letzte)
  • Zeit, viel Zeit..

Nachdem ihr alles auf der liste oben habt, könnt ihr weiter lesen, wenn nicht holt diese bitte nach, noch 2 wichtige punkte:

Quote:
propJob.inc hat einen Parameter Namens "ICON", dieser sollte in der struct JobProp sein und den Namen "szIcon" tragen.
Quote:
propMover hat zwei Parameter Namens "dwAreaColor" und "szNpcMark", diese sollten auch so in der MoverProp struct stehen.
Gut fangen wir mit dem allgemeinen aufrufen des Fenster's an, was sehr simple ist.

Öffnet die datei WndManager.h in der Neuz, anschließend sucht ihr nach:

PHP Code:
class CWndMgr : public CWndBase 
dort fügt ihr unter:

PHP Code:
#ifdef __GUILD_HOUSE_MIDDLE
    
CWndGuildHouseBidm_pWndGHBid;
#endif //__GUILD_HOUSE_MIDDLE 
dass hier ein:

PHP Code:
CWndTargetInformationm_pWndTargetInfo
nun schließt ihr datei, aber dass speichern nicht vergessen!

Öffnet jetzt die WndManager.cpp und geht in die Funktion

PHP Code:
void CWndMgr::OpenTitleBOOL bFirstTime 
dort fügt ihr am ende der Funktion dieses hier ein:

PHP Code:
    m_pWndTargetInfo = new CWndTargetInformation;
    
m_pWndTargetInfo->SetMoverg_pPlayer );
    
m_pWndTargetInfo->Initialize();
    
m_pWndTargetInfo->SetVisibleFALSE ); 
sucht nach

PHP Code:
CWndMgr::CWndMgr() 
fügt am ende dies hier ein:

PHP Code:
m_pWndTargetInfo nullptr
zuletzt nach

PHP Code:
CWndMgr::Free() 
suchen und am ende dass hier einfügen

PHP Code:
SAFE_DELETEm_pWndTargetInfo ); 
die datei Speichern und Schließen.

Öffnet zuletzt die WndWorld.cpp und sucht nach

PHP Code:
void CWndWorld::RenderSelectObjC2DRenderp2DRenderCObjpObj 
dort kommt unter:

PHP Code:
    CWorldpWorld    g_WorldMng.Get();    

    if(
m_pRenderTargetObj)
        
pObj m_pRenderTargetObj
dass hier:

PHP Code:
    if( pObj )
    {
        
CMoverpTarget = (CMover*)pObj;
        
g_WndMng.m_pWndTargetInfo->SetMoverpTarget );
        
g_WndMng.m_pWndTargetInfo->SetVisibleTRUE );
    }
    else
    {
        
g_WndMng.m_pWndTargetInfo->SetStateFALSE );
        
g_WndMng.m_pWndTargetInfo->SetVisibleFALSE );
    }
    return; 
speichern & schließen.

Jetzt habt ihr eigentlich dass einbinden überstanden, nur noch der nächsten teil fehlt und zwar dass eigentliche Fenster worüber wir eigentlich schon reden.

Öffnet die WndField.h und fügt am ende dass hier ein:

PHP Code:
class CWndTargetInformation : public CWndNeuz
{
public:
    
CWndTargetInformation();
    
virtual ~CWndTargetInformation();

    
// Default
    
virtual void OnDrawC2DRenderp2DRender );
    
virtual    void OnInitialUpdate();
    
virtual BOOL InitializeCWndBasepWndParent NULL,DWORD dwWndId );
    
virtual BOOL OnCommandUINT nIDDWORD dwMessageCWndBasepWndBase NULL )  { return CWndNeuz::OnCommandnIDdwMessagepWndBase ); }
    
virtual BOOL OnChildNotifyUINT messageUINT nIDLRESULTpLResult )            { return CWndNeuz::OnChildNotifymessagenIDpLResult ); }
    
virtual void OnSize(UINT nTypeint cxint cy) { CWndNeuz::OnSizenTypecxcy ); }
    
virtual void MakeGaugeVertex();
    
virtual    void SetWndRectCRect rectWndBOOL bOnSize TRUE );
    
virtual BOOL OnEraseBkgnd(C2DRenderp2DRender);

    
virtual HRESULT RestoreDeviceObjects();
    
virtual HRESULT DeleteDeviceObjects();
    
virtual HRESULT InvalidateDeviceObjects();

    
void    SetMoverCMoverpMover ); 
    
void    SetStateBOOL bS ) { bState bS; }
private:
    
CTexture*    pTextureJob;
    
LPWNDCTRL    lpRank[6];
    
LPWNDCTRL    lpHP;
    
LPWNDCTRL    lpMP;
    
LPWNDCTRL    lpEle;
    
CMoverpTarget;

    
CTexture pTexGauFillNormal1;
    
CTexture pTexGauFillNormal2;
    
CTexturepTexTelement[6];
    
CTexturepTexRank[3];
    
CTexturepTargetNum[10];

    
CTexturepTexRankRed[3];
    
CTexturepTexRankPurple[3];
    
CTexturepTexRankBlue[3];

    
LPDIRECT3DVERTEXBUFFER9 pHPGauge;
    
LPDIRECT3DVERTEXBUFFER9 pMPGauge;
    
    
BOOL bHPGauge;
    
BOOL bMPGauge;
    
BOOL bState;

    
int nHPWidth;
    
int nMPWidth;
}; 
Abspeichern und Schließen, anschließend öffnet ihr die WndField.cpp und fügt am ende dass hier ein:

PHP Code:
CWndTargetInformation::CWndTargetInformation()
{
    
pTarget NULL;

    
nHPWidth = -1;
    
nMPWidth = -1;

    
pHPGauge NULL;
    
pMPGauge NULL;
    
bHPGauge TRUE;
    
bMPGauge TRUE;
    
bState FALSE;
}

CWndTargetInformation::~CWndTargetInformation()
{
    
DeleteDeviceObjects();
}

HRESULT CWndTargetInformation::DeleteDeviceObjects()
{
    
CWndBase::DeleteDeviceObjects();
    return 
InvalidateDeviceObjects();
}

HRESULT CWndTargetInformation::RestoreDeviceObjects()
{
    
CWndBase::RestoreDeviceObjects();
    if( 
pHPGauge == NULL )
    {
        
m_pApp->m_pd3dDevice->CreateVertexBuffersizeofTEXTUREVERTEX2 ) * 6D3DUSAGE_WRITEONLY D3DUSAGE_DYNAMICD3DFVF_TEXTUREVERTEX2D3DPOOL_DEFAULT, &pHPGaugeNULL );
        
m_pApp->m_pd3dDevice->CreateVertexBuffersizeofTEXTUREVERTEX2 ) * 6D3DUSAGE_WRITEONLY D3DUSAGE_DYNAMICD3DFVF_TEXTUREVERTEX2D3DPOOL_DEFAULT, &pMPGaugeNULL );

        
nHPWidth = -1;
        
nMPWidth = -1;
    }
    return 
S_OK;
}

HRESULT CWndTargetInformation::InvalidateDeviceObjects()
{
    
CWndBase::InvalidateDeviceObjects();

    
SAFE_RELEASEpHPGauge );
    
SAFE_RELEASEpMPGauge );
    
    return 
S_OK;
}

void CWndTargetInformation::MakeGaugeVertex()
{
    
LPWNDCTRL lpHP GetWndCtrlWIDC_CUSTOM1 );
    
LPWNDCTRL lpMP GetWndCtrlWIDC_CUSTOM2 );

    
CRect rect GetClientRect();
    
CRect rectTemp;
    
    
int nWidthClient lpHP->rect.Width();
    
int nWidth;
        
    
nWidth nWidthClient * (__int64)pTarget->GetHitPoint() / (__int64)pTarget->GetMaxHitPoint();
    if( 
nHPWidth != nWidth 
    {
        
nHPWidth nWidth;
        
rect lpHP->rect;
        
rectTemp rect
        
rectTemp.right rectTemp.left nWidth;
        
ClientToScreenrectTemp );
        
bHPGauge m_pTheme->MakeGaugeVertexm_pApp->m_pd3dDevice, &rectTemp0xffffffffpHPGauge, &pTexGauFillNormal1 );
    }
    
nWidth    nWidthClient * (__int64)pTarget->GetManaPoint() / (__int64)pTarget->GetMaxManaPoint();
    if( 
nMPWidth != nWidth 
    {
        
nMPWidth nWidth;
        
rect lpMP->rect;
        
rectTemp rect
        
rectTemp.right rectTemp.left nWidth;
        
ClientToScreenrectTemp );
        
bMPGauge m_pTheme->MakeGaugeVertexm_pApp->m_pd3dDevice, &rectTemp0xffffffffpMPGauge, &pTexGauFillNormal2 );
    }
}

void CWndTargetInformation::SetMoverCMoverpMover )
{
    
pTarget pMover;

    if( 
pTarget->IsPlayer() )
        
pTextureJob CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEMEprj.m_aPropJob[pTarget->m_nJob].szIcon ), 0xffff00ff);
    else if( 
pTarget->IsPeaceful() || pTarget->GetProp()->dwClass == RANK_GUARD )
        
pTextureJob CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEMEpTarget->GetProp()->szNpcMark ), 0xffff00ff);
    else
        
pTextureJob NULL;

    if( 
pTarget->IsPlayer() || pTarget->IsPeaceful() || pTarget->GetProp()->dwClass == RANK_GUARD )
        
SetTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"WndTargetInfornation02.tga" ), TRUE );
    else 
        
SetTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"WndTargetInfornation.tga" ), TRUE  );
    
    if( !
pTarget->IsPlayer() || !pTarget->IsPeaceful() )
    {
        switch( 
pTarget->GetProp()->dwAreaColor )
        {
        case 
AREA_NORMAL:    
            {
                
pTexRank[0] = pTexRankBlue[0];
                
pTexRank[1] = pTexRankBlue[1];
                
pTexRank[2] = pTexRankBlue[2];
            }
            break;
        case 
AREA_CASH:
            {
                
pTexRank[0] = pTexRankPurple[0];
                
pTexRank[1] = pTexRankPurple[0];
                
pTexRank[2] = pTexRankPurple[0];
            }
            break;
        case 
AREA_DUNGEON:
        case 
AREA_INSTANCE:
            {
                
pTexRank[0] = pTexRankRed[0];
                
pTexRank[1] = pTexRankRed[0];
                
pTexRank[2] = pTexRankRed[0];
            }
            break;
        }
    }
}

void CWndTargetInformation::OnDrawC2DRenderp2DRender )
{
    
LPWNDCTRL pStatic2 GetWndCtrlWIDC_STATIC2 ); //=> Ignore, still for Texture Job.

    
CD3DFontpOldFont p2DRender->GetFont();
    
p2DRender->SetFontCWndBase::m_Theme.m_pFontWndTitle );

    
CWndStatic*        pStatic = (CWndStatic*)GetDlgItemWIDC_STATIC1 );
    
pStatic->SetFontCWndBase::m_Theme.m_pFontWndTitle );
    
pStatic->SetTitlepTarget->GetName() );

    if( 
pTarget->m_bActiveAttack )
        
pStatic->m_dwColor 0xffff0000;

    
char szBuffer[32];
    
sprintf_sszBuffer"%d"pTarget->GetLevel() );
    
int nLenght strlenszBuffer );
    
int nPosnLevel NULL;
    
    if( !
pTarget->IsPlayer() && !pTarget->IsPeaceful() && pTarget->GetProp()->dwClass != RANK_GUARD )
    {
        switch( 
pTarget->GetProp()->eElementType )
        {
        case 
0:        pTexTelement[3]->Renderp2DRenderCPointlpEle->rect.leftlpEle->rect.top ) );        break;    
        case 
1:        pTexTelement[1]->Renderp2DRenderCPointlpEle->rect.leftlpEle->rect.top ) );        break;
        case 
2:        pTexTelement[0]->Renderp2DRenderCPointlpEle->rect.leftlpEle->rect.top ) );        break;
        case 
3:        pTexTelement[2]->Renderp2DRenderCPointlpEle->rect.leftlpEle->rect.top ) );        break;
        case 
4:        pTexTelement[5]->Renderp2DRenderCPointlpEle->rect.leftlpEle->rect.top ) );        break;
        case 
5:        pTexTelement[4]->Renderp2DRenderCPointlpEle->rect.leftlpEle->rect.top ) );        break;
        }

        for( 
int i 0nLenghti++ )
        {
            
nLevel szBuffer[i] - '0';
            if( 
nLenght == )
                
pTargetNum[nLevel]->Renderp2DRenderCPointlpEle->rect.left+5-nPoslpEle->rect.top+12 ) );
            else if( 
nLenght == )
                
pTargetNum[nLevel]->Renderp2DRenderCPointlpEle->rect.left+10-nPoslpEle->rect.top+12 ) );
            else if( 
nLenght == )
                
pTargetNum[nLevel]->Renderp2DRenderCPointlpEle->rect.left+15-nPoslpEle->rect.top+12 ) );
            
nPos -= 10;
        }

        switch( 
pTarget->GetProp()->dwClass )
        {
        case 
RANK_LOW:        
                
pTexRank[0]->Renderp2DRenderCPointlpRank[0]->rect.leftlpRank[0]->rect.top ) );        break;
        case 
RANK_NORMAL:    
            {
                
pTexRank[0]->Renderp2DRenderCPointlpRank[0]->rect.leftlpRank[0]->rect.top ) );
                
pTexRank[1]->Renderp2DRenderCPointlpRank[1]->rect.leftlpRank[1]->rect.top ) );
            }
            break;
        case 
RANK_CAPTAIN:    
            {
                
pTexRank[0]->Renderp2DRenderCPointlpRank[0]->rect.leftlpRank[0]->rect.top ) );
                
pTexRank[1]->Renderp2DRenderCPointlpRank[1]->rect.leftlpRank[1]->rect.top ) );
                
pTexRank[2]->Renderp2DRenderCPointlpRank[2]->rect.leftlpRank[2]->rect.top ) );
            }
            break;
        case 
RANK_MIDBOSS:    
            {
                
pTexRank[0]->Renderp2DRenderCPointlpRank[0]->rect.leftlpRank[0]->rect.top ) );
                
pTexRank[1]->Renderp2DRenderCPointlpRank[1]->rect.leftlpRank[1]->rect.top ) );
                
pTexRank[2]->Renderp2DRenderCPointlpRank[2]->rect.leftlpRank[2]->rect.top ) );
                
pTexRank[2]->Renderp2DRenderCPointlpRank[3]->rect.leftlpRank[3]->rect.top ) );
            }
            break;
        case 
RANK_BOSS:    
            {
                
pTexRank[0]->Renderp2DRenderCPointlpRank[0]->rect.leftlpRank[0]->rect.top ) );
                
pTexRank[1]->Renderp2DRenderCPointlpRank[1]->rect.leftlpRank[1]->rect.top ) );
                
pTexRank[2]->Renderp2DRenderCPointlpRank[2]->rect.leftlpRank[2]->rect.top ) );
                
pTexRank[2]->Renderp2DRenderCPointlpRank[3]->rect.leftlpRank[3]->rect.top ) );
                
pTexRank[1]->Renderp2DRenderCPointlpRank[4]->rect.leftlpRank[4]->rect.top ) );
            }
            break;
        case 
RANK_SUPER:    
            {
                
pTexRank[0]->Renderp2DRenderCPointlpRank[0]->rect.leftlpRank[0]->rect.top ) );
                
pTexRank[1]->Renderp2DRenderCPointlpRank[1]->rect.leftlpRank[1]->rect.top ) );
                
pTexRank[2]->Renderp2DRenderCPointlpRank[2]->rect.leftlpRank[2]->rect.top ) );
                
pTexRank[2]->Renderp2DRenderCPointlpRank[3]->rect.leftlpRank[3]->rect.top ) );
                
pTexRank[1]->Renderp2DRenderCPointlpRank[4]->rect.leftlpRank[4]->rect.top ) );
                
pTexRank[0]->Renderp2DRenderCPointlpRank[5]->rect.leftlpRank[5]->rect.top ) );
            }
            break;
        }
    }

    
MakeGaugeVertex();

    if( 
bHPGauge )
        
m_pTheme->RenderGaugep2DRender->m_pd3dDevicepHPGauge, &pTexGauFillNormal1 );
    if( 
bMPGauge )
        
m_pTheme->RenderGaugep2DRender->m_pd3dDevicepMPGauge, &pTexGauFillNormal2 );

    if( 
pTextureJob != NULL && pTarget->IsPlayer() || pTarget->IsPeaceful() || pTarget->GetProp()->dwClass == RANK_GUARD )
        
pTextureJob->Renderp2DRenderCPointpStatic2->rect.leftpStatic2->rect.top ) );

    
p2DRender->SetFontpOldFont );
}

void CWndTargetInformation::OnInitialUpdate()
{
    
CWndNeuz::OnInitialUpdate();

    
RestoreDeviceObjects();

    
pTexGauFillNormal1.LoadTexturem_pApp->m_pd3dDeviceMakePathDIR_THEME"Targetgauge01.tga" ), 0xffff00ffTRUE );
    
pTexGauFillNormal2.LoadTexturem_pApp->m_pd3dDeviceMakePathDIR_THEME"Targetgauge02.tga" ), 0xffff00ffTRUE );

    
pTexTelement[0] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"eElementTypeBlue01.tga" ), 0xffff00ff);
    
pTexTelement[1] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"eElementTypeRed01.tga" ), 0xffff00ff);
    
pTexTelement[2] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"eElementTypeYellow01.tga" ), 0xffff00ff);
    
pTexTelement[3] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"eElementTypeWhite01.tga" ), 0xffff00ff);
    
pTexTelement[4] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"eElementTypePurple01.tga" ), 0xffff00ff);
    
pTexTelement[5] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"eElementTypeGreen01.tga" ), 0xffff00ff);

    
pTargetNum[0] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum0.tga" ), 0xffff00ff);
    
pTargetNum[1] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum1.tga" ), 0xffff00ff);
    
pTargetNum[2] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum2.tga" ), 0xffff00ff);
    
pTargetNum[3] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum3.tga" ), 0xffff00ff);
    
pTargetNum[4] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum4.tga" ), 0xffff00ff);
    
pTargetNum[5] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum5.tga" ), 0xffff00ff);
    
pTargetNum[6] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum6.tga" ), 0xffff00ff);
    
pTargetNum[7] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum7.tga" ), 0xffff00ff);
    
pTargetNum[8] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum8.tga" ), 0xffff00ff);
    
pTargetNum[9] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"TargetNum9.tga" ), 0xffff00ff);

    
lpRank[0] = GetWndCtrlWIDC_CUSTOM10 );    // 1. Klein
    
lpRank[1] = GetWndCtrlWIDC_CUSTOM9 );        // 1. Mittel
    
lpRank[2] = GetWndCtrlWIDC_CUSTOM8 );        // 1. Groß
    
lpRank[3] = GetWndCtrlWIDC_CUSTOM6 );        // 2. Groß
    
lpRank[4] = GetWndCtrlWIDC_CUSTOM5 );        // 2. Mittel
    
lpRank[5] = GetWndCtrlWIDC_CUSTOM7 );        // 2. Klein

    
lpHP    GetWndCtrlWIDC_CUSTOM1 );
    
lpMP    GetWndCtrlWIDC_CUSTOM2 );
    
lpEle    GetWndCtrlWIDC_CUSTOM4 );

    
pTexRankRed[0] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanRed01.tga" ), 0xffff00ff);
    
pTexRankRed[1] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanRed02.tga" ), 0xffff00ff);
    
pTexRankRed[2] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanRed03.tga" ), 0xffff00ff);

    
pTexRankPurple[0] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanPurple01.tga" ), 0xffff00ff);
    
pTexRankPurple[1] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanPurple02.tga" ), 0xffff00ff);
    
pTexRankPurple[2] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanPurple03.tga" ), 0xffff00ff);

    
pTexRankBlue[0] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanBlue01.tga" ), 0xffff00ff);
    
pTexRankBlue[1] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanBlue02.tga" ), 0xffff00ff);
    
pTexRankBlue[2] = CWndBase::m_textureMng.AddTextureg_Neuz.m_pd3dDeviceMakePathDIR_THEME"RanBlue03.tga" ), 0xffff00ff);

    
CWndStaticpStatic = (CWndStatic*)GetDlgItemWIDC_STATIC2 );
    
pStatic->SetTitle"" );

    
CRect rect m_pWndRoot->m_rectWindow;
    
int nWidth m_rectWindow.Width(); 
    
int x rect.left + (rect.Width() / 2) - (nWidth 2);
    
Movex);
}


BOOL CWndTargetInformation::OnEraseBkgndC2DRenderp2DRender )
{
    return 
CWndBase::OnEraseBkgndp2DRender );
}

void CWndTargetInformation::SetWndRectCRect rectWndBOOL bOnSize  )
{
    
nHPWidth = -1;
    
nMPWidth = -1;
    
    
CWndNeuz::SetWndRectrectWndbOnSize );
}

BOOL CWndTargetInformation::InitializeCWndBasepWndParentDWORD )
{
    
BOOL bReturn CWndNeuz::InitDialogg_Neuz.GetSafeHwnd(), APP_TARGETINFORNATIONWBS_POPUPNULLpWndParent );
    
DelWndStyleWBS_MOVE );

    return 
bReturn;

Abspeichern und Schließen, compilen und spaß haben!

Hier noch ein paar Fragen die sicherlich aufkommen werden.

Wie kann ich dass fenster bewegbar machen?
Quote:
Gehe in BOOL CWndTargetInformation::Initialize( CWndBase* pWndParent, DWORD ) und schmeiß die zeile DelWndStyle( WBS_MOVE ); raus.
Die MP wird Falsch oder garnicht angezeigt?
Quote:
Die Mana Punkte werden von den Servern einem Target nicht übermittelt, einfach es im Server hinzufügen.
Naja, ihr werdet dass schon schaffen.

Zu guter letzt, die Credits:

Quote:
Crasy.
Wer fragen hat, oder sonstige Probleme mit dem einfügen darf er sich gerne per PN oder im Thread hier melden.

Ps: ich wäre dankbar wenn dies einer für unsere Englisch sprechenden leute übersetzen könnte, danke.

Mfg.
Wanetrain is offline  
Thanks
5 Users
Old 05/13/2013, 22:13   #2
 
elite*gold: 0
Join Date: Apr 2010
Posts: 427
Received Thanks: 86
Tutorial ist sehr ausführlich, ich denke das kriegt man hin

Hat das schon alle Funktionen die offi auch hat? oder is das wieder son 50% release.
Hab leider nicht die zeit des einzubauen.
19Dani92 is offline  
Old 05/14/2013, 00:34   #3
 
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
Quote:
Originally Posted by 19Dani92 View Post
Tutorial ist sehr ausführlich, ich denke das kriegt man hin

Hat das schon alle Funktionen die offi auch hat? oder is das wieder son 50% release.
Hab leider nicht die zeit des einzubauen.
Es ist die Exacte Kopie von Offi, jedes detail wurde beachtet und funktioniert fehlerfrei, also kein 50% schrott.
Wanetrain is offline  
Old 05/14/2013, 10:11   #4
 
elite*gold: 115
Join Date: Jan 2012
Posts: 1,156
Received Thanks: 894
Missing codes O.o
Rhyder` is offline  
Old 05/14/2013, 18:24   #5
 
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
Quote:
Originally Posted by jayjei14 View Post
Missing codes O.o
Post error.

It's fully working here, you only need to load propMover & propJob correctly. :]
Wanetrain is offline  
Old 05/14/2013, 18:31   #6
 
elite*gold: 115
Join Date: Jan 2012
Posts: 1,156
Received Thanks: 894
Quote:
Originally Posted by Wanetrain View Post
Post error.

It's fully working here, you only need to load propMover & propJob correctly. :]
Put the whole code of this..no one will use if it seems not working because of missing codes..specially the newbie can't use your system..
Rhyder` is offline  
Old 05/14/2013, 18:35   #7
 
elite*gold: 0
Join Date: Mar 2013
Posts: 227
Received Thanks: 99
Quote:
Originally Posted by jayjei14 View Post
Put the whole code of this..no one will use if it seems not working because of missing codes..specially the newbie can't use your system..
He says at the begining if you don't have these things on the todo list you shouldnt use this stuff... if you tell everyone to do his stuff by himself do it also on your own... it isn't that hard. If you are not going to use it never mind what i just said
.S0ulSeller is offline  
Thanks
1 User
Old 09/16/2013, 23:51   #8
 
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
Kleiner nachtrag, da es viele nicht hinbekommen dass dort die Mana des SPIELER'S richtig angezeigt wird:

Sucht nach void CMover::Serialize( CAr & ar ) dort wiederrum fügt ihr NACH

Quote:
ar << m_pActMover->GetStateFlag();
ar << (u_char)m_dwBelligerence;
ar << m_dwMoverSfxId;
dass hier ein:

Quote:
ar << m_nManaPoint;
und NACH

Quote:
m_pActMover->AddStateFlag( dw2 );
m_pActMover->__ForceSetState( dw1 );
ar >> (u_char&)m_dwBelligerence;
ar >> m_dwMoverSfxId;
dass hier:

Quote:
ar >> m_nManaPoint;
FERTIG.



So, da viele auch nicht wissen WIE dass ganze abläuft:

Ihr tretet einer Welt bei, btw einem Channel, dann wird "void CWndMgr::OpenField()" ausgeführt, darin wird dass Fenster erstellt und SetMover mit einem nullptr ausgeführt, heißt wiederrum da ein check auf null drin ist dass es nicht weiter geladen wird und daher auch nicht sichtbar, klickt ein Monster / NPC / Spieler an und es wird sichtbar und bekommt ein SetMover update (Images werden geladen) fertig aus, ganz einfach ist dass teil
Wanetrain is offline  
Old 09/17/2013, 00:24   #9
 
420twisted1's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 181
Received Thanks: 23
I think more people have trouble with the V19 Navigator then this but good re release I guess.
420twisted1 is offline  
Old 05/21/2014, 22:03   #10
 
elite*gold: 0
Join Date: Oct 2010
Posts: 156
Received Thanks: 17
wie greifst du bitte auf die .tga's zu? Aus der propjob liest er ja nur z.b. JobVagrant und danach sucht er aber er brauch ja JobVagrant.tga damit er das anzeigt... wüsste jemand wie das zu lösen ist? eine switch-abfrage geht nicht da die szIcons nicht definiert sind und ich will unbedingt mit den Parametern arbeiten
.::*[D][A][N][I]*::. is offline  
Old 05/22/2014, 02:04   #11
 
elite*gold: 23
Join Date: Dec 2010
Posts: 743
Received Thanks: 617
Hmm was nehmen wir denn da, ich würde da jetzt spontan einfach mal aus langeweile das so machen.

Quote:
char snox[55];
sprintf( snox, "%s.tga", prj.m_aPropJob[pTarget->m_nJob].szIcon );
pTextureJob = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, snox ), 0xffff00ff);
hf gg wp
.SnoX is offline  
Thanks
2 Users
Old 05/22/2014, 11:15   #12
 
elite*gold: 0
Join Date: Oct 2010
Posts: 156
Received Thanks: 17
Uff da hätte ich auch selber drauf kommen können vielen Dank!
.::*[D][A][N][I]*::. is offline  
Reply


Similar Threads Similar Threads
[RELEASE] Target HP viewer - See monsters and Players HP
07/29/2021 - Shaiya Hacks, Bots, Cheats & Exploits - 53 Replies
Hey everybody, I'm releasing a little program that I whipped up that allows you to see the selected targets HP and Max HP. The Program window will stay on top so you can view it while playing. Tested and worked on the following: US client German client Euro-Shaiya Russian client Update: I made the code universal, It should work with every client out there now. Let me know if it doesn't.
Heroes - Invalid Target/Sorry you cant damage that target
04/11/2012 - Minecraft - 0 Replies
Hallo, In Heroes gibt es ja verschiedene skills, wie z.B Chaser,stun,falconpunch usw. Will ich aber mit bind auf einen Spieler wirken kommt immer : Invalid Target/Sorry you cant damage that target Das is doch sowas von abnormal gibt es irgendein guten heroes ersatz ? Oder doch eine Lösung ? Danke im vorraus
[Help] Invalid Target/Cannot find Target(ZSZC)
05/29/2010 - SRO Private Server - 4 Replies
Some write they have Problems with ZSZC SRO-DB, by mobs for example "Ishade/Penon/Ujigi(lvl50-56)", in the Textbox right side down a message: "Invalid Target" or " Cannot Find Target", All have this Problem, a good message, i have the solution! You need Use SRO-DB Bot V0.8 and NOT V0.9a! +++Use this and you will have Fun by Botting+++



All times are GMT +1. The time now is 16:18.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.