Hallo @All :)
Ich Release heute mal die Res Data erweiterung, diese mit V17 Dazu gekommen ist, und nein ich Release nicht die Doofen Parameter da die schon Public sind damit das ding überhaupt geladen wird, nein ich Release das, damit ihr diese Parameter auch verwendet.
Was meine ich mit Res Data erweiterung?
Beispiel: Skill Tree Static SP
Was haben die 3 Parameter zu bedeuten?
Ganz einfach, R/G/B ( D3D COLORS ).
Nun zum Eigentlichen Release:
In dem Project "Neuz" müsstet ihr in _Interface 2 daten Namens ResManager.cpp & ResManager.h haben, jetzt öffnet ihr diese 2 Daten und sucht nach BOOL CResManager::Load( LPCTSTR lpszName )
Darunter findet ihr:
Und so weiter, diese Funktion ersetzt ihr komplett mit:
Nun geht ihr in ResManager.h.
Dort seht ihr typedef struct tagWndCtrl und darin Addet ihr folgendes:
Speichern & Schließen.
Nun wird die ResData von v17 Allgemein geladen, allerdings ist das immer noch nicht der Release :D
Weiter gehts!
Nun öffnet ihr die WndNeuz.cpp und sucht nach CWndBase* CWndNeuz::CreateControl( HWND hWnd, LPWNDCTRL lpWndCtrl )
Darunter findet ihr:
usw, da sucht ihr nach case WTYPE_STATIC ersetzt das dann durch:
Abspeichern & Schließen.
Jetzt kommen wir zum Letzten teil, und zwar öffnet ihr nun WndControl.cpp und sucht dort nach: BOOL CWndStatic::Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWndBase* pParentWnd, UINT nID )
Das ersetzt ihr durch:
Darunter löscht ihr alles von { bis } und schreibt das hinein:
Dann sollte es so aussehen:
Jetzt Speichern & Schließen.
Öffnet jetzt die datei WndControl.h und sucht nach der Klasse CWndStatic dort seht ihr BOOL Create( .. und dies ändert ihr Komplett in folgendes:
Jetzt habt ihr es auch schon geschafft!
Compiled jetzt die Neuz und Startet sie mit den Aktuellen Res Daten, wenn ihr 100%ig alles befolgt habt, sollte euer Skill Tree ( Beispiel ) so aussehen:

Offi Like ftw! o.O
Credits & so: Crasy :)
Mfg.
Ich Release heute mal die Res Data erweiterung, diese mit V17 Dazu gekommen ist, und nein ich Release nicht die Doofen Parameter da die schon Public sind damit das ding überhaupt geladen wird, nein ich Release das, damit ihr diese Parameter auch verwendet.
Was meine ich mit Res Data erweiterung?
Beispiel: Skill Tree Static SP
WTYPE_STATIC WIDC_STATIC_SP "WndEditTile200.tga" 1 116 324 166 340 0x2220011 0 0 0 0 46 112 169
Was haben die 3 Parameter zu bedeuten?
Ganz einfach, R/G/B ( D3D COLORS ).
Nun zum Eigentlichen Release:
In dem Project "Neuz" müsstet ihr in _Interface 2 daten Namens ResManager.cpp & ResManager.h haben, jetzt öffnet ihr diese 2 Daten und sucht nach BOOL CResManager::Load( LPCTSTR lpszName )
Darunter findet ihr:
CScript scanner;
if( scanner.Load( lpszName, FALSE ) == FALSE )
return FALSE;
DWORD dwWndType;
scanner.GetToken_NoDef();
while( scanner.tok != FINISHED )
{
Und so weiter, diese Funktion ersetzt ihr komplett mit:
BOOL CResManager::Load( LPCTSTR lpszName )
{
CScript scanner;
if( scanner.Load( lpszName, FALSE ) == FALSE )
return FALSE;
DWORD dwWndType;
scanner.GetToken_NoDef();
while( scanner.tok != FINISHED )
{
LPWNDAPPLET pWndApplet = new WNDAPPLET;
pWndApplet->pWndBase = NULL;
pWndApplet->strDefine = scanner.token;
pWndApplet->dwWndId = CScript::GetDefineNum( scanner.token );
scanner.GetToken();
pWndApplet->strTexture = scanner.token;
scanner.GetToken();//pWndApplet->strBackground = scanner.token;
pWndApplet->bTile = scanner.GetNumber();
CSize size;
pWndApplet->size.cx = scanner.GetNumber();
pWndApplet->size.cy = scanner.GetNumber();
pWndApplet->dwWndStyle = scanner.GetNumber();
pWndApplet->d3dFormat = (D3DFORMAT)scanner.GetNumber();
// ŸÀÌÆ²
pWndApplet->strTitle = GetLangApplet( scanner, pWndApplet, FALSE );
// ÇÛÇÁ Ű
pWndApplet->strToolTip = GetLangApplet( scanner, pWndApplet, TRUE );
// HelpKey
m_mapWndApplet.SetAt( (void*)pWndApplet->dwWndId, pWndApplet );
scanner.GetToken(); // skip {
dwWndType = scanner.GetNumber();
while( *scanner.token != '}' )
{
LPWNDCTRL pWndCtrl = new WNDCTRL;
pWndCtrl->dwWndType = dwWndType;
scanner.GetToken_NoDef();
pWndCtrl->strDefine = scanner.token;///Char;
for( int z = 0; z < pWndApplet->ptrCtrlArray.GetSize(); z++ )
{
if( ((LPWNDCTRL)pWndApplet->ptrCtrlArray.GetAt( z ) )->strDefine == pWndCtrl->strDefine )
{
CString string;
string.Format( "%s¿¡¼* ID Ãæµ¹ %s ", pWndApplet->strDefine, pWndCtrl->strDefine );
AfxMessageBox( string );
}
}
pWndCtrl->dwWndId = CScript::GetDefineNum( scanner.token );
scanner.GetToken();
pWndCtrl->strTexture = scanner.token;//token;
pWndCtrl->bTile = scanner.GetNumber();
pWndCtrl->rect.left = scanner.GetNumber();
pWndCtrl->rect.top = scanner.GetNumber();
pWndCtrl->rect.right = scanner.GetNumber();
pWndCtrl->rect.bottom = scanner.GetNumber();
pWndCtrl->dwWndStyle = scanner.GetNumber();
// visible, Group, Disabled, TabStop
pWndCtrl->m_bVisible = scanner.GetNumber();
pWndCtrl->m_bGroup = scanner.GetNumber();
pWndCtrl->m_bDisabled = scanner.GetNumber();
pWndCtrl->m_bTabStop = scanner.GetNumber();
pWndCtrl->m_nRed = scanner.GetNumber();
pWndCtrl->m_nGreen = scanner.GetNumber();
pWndCtrl->m_nBlue = scanner.GetNumber();
// ŸÀÌÆ²
pWndCtrl->strTitle = GetLangCtrl( scanner, pWndCtrl, FALSE );
// ÇÛÇÁ Ű
pWndCtrl->strToolTip = GetLangCtrl( scanner, pWndCtrl, TRUE );
pWndApplet->ptrCtrlArray.Add( pWndCtrl );
dwWndType = scanner.GetNumber();
}
scanner.GetToken_NoDef();
}
return TRUE;
}
Nun geht ihr in ResManager.h.
Dort seht ihr typedef struct tagWndCtrl und darin Addet ihr folgendes:
int m_nRed;
int m_nBlue;
int m_nGreen;
Speichern & Schließen.
Nun wird die ResData von v17 Allgemein geladen, allerdings ist das immer noch nicht der Release :D
Weiter gehts!
Nun öffnet ihr die WndNeuz.cpp und sucht nach CWndBase* CWndNeuz::CreateControl( HWND hWnd, LPWNDCTRL lpWndCtrl )
Darunter findet ihr:
DWORD dwWndStyle = lpWndCtrl->dwWndStyle;
CWndBase* pWndBase = NULL;
switch( lpWndCtrl->dwWndType )
{
usw, da sucht ihr nach case WTYPE_STATIC ersetzt das dann durch:
((CWndStatic*)pWndBase)->Create( lpWndCtrl->strTitle, dwWndStyle | WBS_CAPTION, lpWndCtrl->rect, this, lpWndCtrl->dwWndId, lpWndCtrl->m_nRed, lpWndCtrl->m_nGreen, lpWndCtrl->m_nBlue );
Abspeichern & Schließen.
Jetzt kommen wir zum Letzten teil, und zwar öffnet ihr nun WndControl.cpp und sucht dort nach: BOOL CWndStatic::Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWndBase* pParentWnd, UINT nID )
Das ersetzt ihr durch:
BOOL CWndStatic::Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWndBase* pParentWnd, UINT nID, int R, int G, int B )
Darunter löscht ihr alles von { bis } und schreibt das hinein:
if( lpszCaption && strlen( lpszCaption ) ) m_strTitle = lpszCaption;
if( !(dwStyle & WSS_GROUPBOX) )
m_strTexture = "";//WndEditTile200.tga";
m_dwColor = D3DCOLOR_ARGB( 255, R, G, B );
return CWndBase::Create( dwStyle | WBS_CHILD | WBS_NOFRAME , rect, pParentWnd, nID );
Dann sollte es so aussehen:
BOOL CWndStatic::Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWndBase* pParentWnd, UINT nID, int R, int G, int B )
{
if( lpszCaption && strlen( lpszCaption ) ) m_strTitle = lpszCaption;
if( !(dwStyle & WSS_GROUPBOX) )
m_strTexture = "";//WndEditTile200.tga";
m_dwColor = D3DCOLOR_ARGB( 255, R, G, B );
return CWndBase::Create( dwStyle | WBS_CHILD | WBS_NOFRAME , rect, pParentWnd, nID );
}
Jetzt Speichern & Schließen.
Öffnet jetzt die datei WndControl.h und sucht nach der Klasse CWndStatic dort seht ihr BOOL Create( .. und dies ändert ihr Komplett in folgendes:
BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWndBase* pParentWnd, UINT nID, int R = 255, int G = 255, int B = 255 );
Jetzt habt ihr es auch schon geschafft!
Compiled jetzt die Neuz und Startet sie mit den Aktuellen Res Daten, wenn ihr 100%ig alles befolgt habt, sollte euer Skill Tree ( Beispiel ) so aussehen:

Offi Like ftw! o.O
Credits & so: Crasy :)
Mfg.