Character Löschen Frage

11/25/2014 22:15 DerHeiligeJesus#1
Hey ich habe mal eine kleine Frage, in der roc source ist beim char löschen ja das Feld für Passwortbestätigung nicht mehr drin, wie mach ich das wieder rein?

Würde mich sehr über Hilfe freuen.
05/09/2015 12:27 DerHeiligeJesus#2
#Frage besteht immernoch
05/09/2015 13:49 - DK#3
Quote:
Originally Posted by DerHeiligeJesus View Post
#Frage besteht immernoch
Gleich es mit einer anderen Source ab und schau ob die Resdata.inc einträge drin sind.
05/09/2015 13:57 xTwiLightx#4
WndTitle.cpp:
Code:
BOOL CWndDeleteChar::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
Das dürfte deine Funktion sein, die du suchst.
Hier wird das Passwort abgefragt, bzw verschickt:
Code:
			if( 0 < strlen( szNo ) && strlen( szNo ) < 64 )
			{
				DeletePlayer( pWnd->m_nSelectCharacter, szNo );
				bOK = TRUE;
			}
			break;
Der Aufruf dorthin wird hier ausgelöst:
WndTitle.cpp
Code:
BOOL CWndSelectChar::OnChildNotify(UINT message,UINT nID,LRESULT* pLResult)
Dort findest du folgende Zeile (zumindest ist die so bei mir zu finden):
Code:
		case WIDC_DELETE: // Delete
			if( m_nSelectCharacter != -1 && g_Neuz.m_apPlayer[ m_nSelectCharacter ] )
			{
				SAFE_DELETE( m_pWndDeleteChar );
				m_pWndDeleteChar = new CWndDeleteChar;
				m_pWndDeleteChar->Initialize( this, APP_DELETE_CHAR );
			}
			break;
Wenn das Feld fehlt, fehlt offenbar der Eintrag in der ResData.inc

Meiner sieht so aus:
Code:
APP_DELETE_CHAR "WndTile07.tga" 1 272 208 0x2410000 26
{
// Title String
IDS_RESDATA_INC_001124
}
{
// Help Key
IDS_RESDATA_INC_001125
}
{
    WTYPE_STATIC WIDC_CONTROL1 "" -842150451 68 10 192 30 0x2260000 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_001126
    }
    {
    // ToolTip
IDS_RESDATA_INC_001127
    }
    WTYPE_EDITCTRL WIDC_EDIT1 "WndEditTile00.tga" 1 70 62 178 82 0x20000 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_001128
    }
    {
    // ToolTip
IDS_RESDATA_INC_001129
    }
    WTYPE_BUTTON WIDC_OK "ButtOk.tga" -842150451 46 142 118 162 0x220000 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_001130
    }
    {
    // ToolTip
IDS_RESDATA_INC_001131
    }
    WTYPE_BUTTON WIDC_CANCEL "ButtCancel.tga" -842150451 136 142 208 162 0x220000 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_001132
    }
    {
    // ToolTip
IDS_RESDATA_INC_001133
    }
    WTYPE_STATIC WIDC_STATIC1 "" -842150451 70 32 248 52 0x2260000 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_001134
    }
    {
    // ToolTip
IDS_RESDATA_INC_001135
    }
    WTYPE_TEXT WIDC_TEXT1 "WndEditTile00.tga" 1 16 88 248 134 0x20000 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_001136
    }
    {
    // ToolTip
IDS_RESDATA_INC_001137
    }
}
Wichtig ist dieser Teil (siehe WIDC_EDIT1):
Code:
    WTYPE_EDITCTRL WIDC_EDIT1 "WndEditTile00.tga" 1 70 62 178 82 0x20000 0 0 0 0
    {
    // Title String
IDS_RESDATA_INC_001128
    }
    {
    // ToolTip
IDS_RESDATA_INC_001129
    }
05/09/2015 14:44 DerHeiligeJesus#5
Ich hab gerade mal nachgeschaut und es ist alles genau so, ich versteh nicht warum das bei der roc source nicht da ist
05/09/2015 15:20 xTwiLightx#6
Fehlt bei dir denn einfach nur das Feld oder wird der Charakter ohne das Fenster einfach gelöscht?
05/09/2015 16:08 DerHeiligeJesus#7
[Only registered and activated users can see links. Click Here To Register...]

so sieht es aus das feld wo das passwort rein muss ist garnicht da
05/09/2015 16:18 xTwiLightx#8
Quote:
Originally Posted by DerHeiligeJesus View Post
[Only registered and activated users can see links. Click Here To Register...]

so sieht es aus das feld wo das passwort rein muss ist garnicht da
Das sieht mir sowieso viel zu verbuggt aus.
Gibt der Client keinen Error aus (sowas wie nDlg not found, oder so ähnlich)?

Ansonsten schaue im Sourcecode, ob WIDC_EDIT1 ausgeblendet wird.
05/09/2015 16:26 DerHeiligeJesus#9
CWndButton* pWndButton = (CWndButton*)GetDlgItem( WIDC_DELETE );
//WndText* pWndText = (CWndButton*)GetDlgItem( WIDC_EDIT1 );

das steht in der wndtitle.cpp, kann das daran liegen?

oder an dem ?

CWndEdit *WndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT1 );
WndEdit->SetVisible( FALSE );
WndEdit->EnableWindow( FALSE );
05/09/2015 17:16 - DK#10
Quote:
Originally Posted by DerHeiligeJesus View Post
CWndButton* pWndButton = (CWndButton*)GetDlgItem( WIDC_DELETE );
//WndText* pWndText = (CWndButton*)GetDlgItem( WIDC_EDIT1 );

das steht in der wndtitle.cpp, kann das daran liegen?

oder an dem ?

CWndEdit *WndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT1 );
WndEdit->SetVisible( FALSE );
WndEdit->EnableWindow( FALSE );
//WndText* pWndText = (CWndButton*)GetDlgItem( WIDC_EDIT1 );
Ändern zu
WndText* pWndText = (CWndButton*)GetDlgItem( WIDC_EDIT1 );

und

WndEdit->SetVisible( FALSE );

zu

WndEdit->SetVisible( TRUE);
05/09/2015 18:01 DerHeiligeJesus#11
ok also das schreibfenster ist jetzt drin aber es ist egal was ich eingebe oder ob ich überhaupt was eingebe, der account wird gelöscht
05/09/2015 18:09 - DK#12
Quote:
Originally Posted by DerHeiligeJesus View Post
ok also das schreibfenster ist jetzt drin aber es ist egal was ich eingebe oder ob ich überhaupt was eingebe, der account wird gelöscht
Das ist bei vielen Normal ^^
Aber ich schätze da ist noch etwas ausdefiniert.
05/09/2015 19:04 xTwiLightx#13
Das hat mit der CHARACTER_STR zu tun.
Unter D1 wird irgendwo auch das Passwort abgefragt. Das könnte bei vielen bereitgestellten bzw. releasten DBs (z.B. die AiO von Sedrika) auskommentiert sein.
05/09/2015 19:29 DerHeiligeJesus#14
Wie kann ich das finden?
05/09/2015 20:20 xTwiLightx#15
Quote:
Originally Posted by DerHeiligeJesus View Post
Wie kann ich das finden?
Lese doch einfach mal genau, was ich oben geschrieben habe.
Gehe in die Prozedur, suche nach D1, und schon ein paar Zeilen weiter sollte irgendwo der Begriff "password" zu finden sein.