Char erstellen Bug

11/25/2015 19:25 DerHeiligeJesus#1
Hey ich habe ein Problem, ich habe bei der Char Erstellung das man seine Klasse auswählen kann und je nach welcher Klasse passt sich der Char bei der Char Erstellung an, aber das Schild wird dabei nicht geupdated, der Rest schon. Merc hat zum Beispiel ein Schild und wenn ich auf Acrobat wechsel hat er dann Yoyo und Schild, wechsel ich dann zwischen männlich und weiblich hat er kein Schild mehr :D. Benutze diesen Code :

PHP Code:
if(message == WNM_SELCHANGE )
    {
        switch(
nID)
        {
        case 
10000:
            return 
FALSE;
        case 
WIDC_COMBOBOX1:
            {
                
CWndComboBoxpWndJobBox = ( CWndComboBox* )GetDlgItemWIDC_COMBOBOX1 );
                
assertpWndJobBox );
                switch( 
pWndJobBox->GetCurSel() )
                {
                    case 
0:    m_Player.m_byJob JOB_MERCENARY;    break;
                    case 
1m_Player.m_byJob JOB_ACROBAT;        break;
                    case 
2m_Player.m_byJob JOB_ASSIST;        break;
                    case 
3m_Player.m_byJob JOB_MAGICIAN;    break;
                    case 
4m_Player.m_byJob JOB_KNIGHT;        break;
                    default: 
m_Player.m_byJob JOB_KNIGHT;        break;
                }

                for( 
int i 0MAX_BEGINEQUIPi++ )
                {
                    
DWORD dwEquip prj.m_jobItemm_Player.m_byJob ].adwMale][ m_Player.m_bySex ];
                    if( 
dwEquip != NULL_ID )
                    {
                        
ItemProppItemProp prj.GetItemPropdwEquip );
                        
m_Player.m_aEquipInfo[pItemProp->dwParts].dwId dwEquip;
                    }
                }
                
CMover::UpdatePartsm_Player.m_bySex0m_Player.m_bySkinSetm_Player.m_byHairMeshm_Player.m_byHeadMeshm_Player.m_aEquipInfom_pModelNULL );
            }break;
        }
    } 
11/25/2015 21:59 Mike Oxmaul#2
Quote:
Originally Posted by DerHeiligeJesus View Post
Hey ich habe ein Problem, ich habe bei der Char Erstellung das man seine Klasse auswählen kann und je nach welcher Klasse passt sich der Char bei der Char Erstellung an, aber das Schild wird dabei nicht geupdated, der Rest schon. Merc hat zum Beispiel ein Schild und wenn ich auf Acrobat wechsel hat er dann Yoyo und Schild, wechsel ich dann zwischen männlich und weiblich hat er kein Schild mehr :D. Benutze diesen Code :

PHP Code:
if(message == WNM_SELCHANGE )
    {
        switch(
nID)
        {
        case 
10000:
            return 
FALSE;
        case 
WIDC_COMBOBOX1:
            {
                
CWndComboBoxpWndJobBox = ( CWndComboBox* )GetDlgItemWIDC_COMBOBOX1 );
                
assertpWndJobBox );
                switch( 
pWndJobBox->GetCurSel() )
                {
                    case 
0:    m_Player.m_byJob JOB_MERCENARY;    break;
                    case 
1m_Player.m_byJob JOB_ACROBAT;        break;
                    case 
2m_Player.m_byJob JOB_ASSIST;        break;
                    case 
3m_Player.m_byJob JOB_MAGICIAN;    break;
                    case 
4m_Player.m_byJob JOB_KNIGHT;        break;
                    default: 
m_Player.m_byJob JOB_KNIGHT;        break;
                }

                for( 
int i 0MAX_BEGINEQUIPi++ )
                {
                    
DWORD dwEquip prj.m_jobItemm_Player.m_byJob ].adwMale][ m_Player.m_bySex ];
                    if( 
dwEquip != NULL_ID )
                    {
                        
ItemProppItemProp prj.GetItemPropdwEquip );
                        
m_Player.m_aEquipInfo[pItemProp->dwParts].dwId dwEquip;
                    }
                }
                
CMover::UpdatePartsm_Player.m_bySex0m_Player.m_bySkinSetm_Player.m_byHairMeshm_Player.m_byHeadMeshm_Player.m_aEquipInfom_pModelNULL );
            }break;
        }
    } 
probier mal
Code:
				for( int i = 0; i < MAX_BEGINEQUIP; i++ )
				{
					DWORD dwEquip = prj.m_jobItem[ m_Player.m_byJob ].adwMale[ i ][ m_Player.m_bySex ];
					if( dwEquip != NULL_ID )
					{
						ItemProp* pItemProp = prj.GetItemProp( dwEquip );
						m_Player.m_aEquipInfo[pItemProp->dwParts].dwId = dwEquip;
					}
					else
						m_Player.m_aEquipInfo[i].dwId = NULL_ID;
				}
hoffe die liste geht nach parts durch, habs nicht nach geguckt



Edit hab gerade mal nachgeguckt, beim Update habe ich das vor gemacht, um erst zu resetten.
Code:
for( int i = 0; i < MAX_HUMAN_PARTS; i++ )
			m_Player.m_aEquipInfo[i].dwId	= NULL_ID;
11/25/2015 23:47 .SnoX#3
Quote:
switch( pWndJobBox->GetCurSel() )
{
case 0: m_Player.m_byJob = JOB_MERCENARY; break;
case 1: m_Player.m_byJob = JOB_ACROBAT; break;
case 2: m_Player.m_byJob = JOB_ASSIST; break;
case 3: m_Player.m_byJob = JOB_MAGICIAN; break;
case 4: m_Player.m_byJob = JOB_KNIGHT; break;
default: m_Player.m_byJob = JOB_KNIGHT; break;
}
Zu
Quote:
m_Player.m_byJob = pWndJobBox->GetCurSel()+1;
Ist besser so, wenn du nur die 4 Anfangsklassen nehmen willst.

----
edit

Und wie Juspi schon gesagt hat bei dir fehlt der Teil zum Reset.
Bei mir sieht das im Grunde dann so aus.
[Only registered and activated users can see links. Click Here To Register...]
11/26/2015 17:32 DerHeiligeJesus#4
Danke, danke, danke euch beiden, dat geht jetzt. Ich sollte das ja denke auch richtig eingefügt haben oder?

PHP Code:
#ifdef __JOB_CREATE_CHAR
    
if(message == WNM_SELCHANGE )
    {
        switch(
nID)
        {
        case 
10000:
            return 
FALSE;
        case 
WIDC_COMBOBOX1:
            {
                
CWndComboBoxpWndJobBox = ( CWndComboBox* )GetDlgItemWIDC_COMBOBOX1 );
                
assertpWndJobBox );
                
m_Player.m_byJob pWndJobBox->GetCurSel()+1;

                for( 
int i 0MAX_HUMAN_PARTSi++ )
                    
m_Player.m_aEquipInfo[i].dwId    NULL_ID;

                for( 
int i 0MAX_BEGINEQUIPi++ )
                {
                    
DWORD dwEquip prj.m_jobItemm_Player.m_byJob ].adwMale][ m_Player.m_bySex ];
                    if( 
dwEquip != NULL_ID )
                    {
                        
ItemProppItemProp prj.GetItemPropdwEquip );
                        
m_Player.m_aEquipInfo[pItemProp->dwParts].dwId dwEquip;
                    }
                }
                
CMover::UpdatePartsm_Player.m_bySex0m_Player.m_bySkinSetm_Player.m_byHairMeshm_Player.m_byHeadMeshm_Player.m_aEquipInfom_pModelNULL );
            }break;
        }
    }
#endif //__JOB_CREATE_CHAR