B Source Problem! Lvl 120 (Non-M) zu 60-M....

11/15/2011 21:21 .Insane#1
Hi E*Pvpers,
ich habe jetzt die MoverParam.cpp so geändert, dass es den Non-Master wieder gibt und man soll lvl 119 zu 60-M werden. Das Problem ist, dass wenn man lvl 119 erreicht, ein lvl 119-M wird...
Das man mit 120-M automatisch Hero wird, funktioniert....!
Erstmal der entsprechende Code:

119 hatte ich vorher auf MAX_GENERAL_LEVEL, aber das hat dann garnicht funktioniert. Da wurde man lvl 120 gleich Hero.
Weiß einer den Fehler?
Lg
11/15/2011 21:27 Jopsi332#2
das liegt daran das du nur den jobchangest und keine level änderst.
verändere es so.
geht in Mover.h und added
PHP Code:
untervoid            InitLevelint nJobLONG nLevelBOOL bGamma TRUE );            // °´Ã¼¸¦ nLevel·Î ¹Ù²ãÁÜ

dasvoid            InitLevelPumbaaaint nJobLONG nLevelBOOL bGamma TRUE ) ; 

dann geht ihr und mover.cpp und added
PHP Code:
void CMover::InitLevelPumbaaaint nJobLONG nLevelBOOL bGamma )
{
#ifdef __WORLDSERVER
    // ¿î¿µÀÚ ¸í·ÉÀ¸·Î ·¹º§¾÷ Çϴ°÷ÀÓ
    
MoverProppProp GetProp();
    if( 
pProp )
    {
        if( 
nJob && nJob MAX_LEGEND_HERO )
        {
            
AddChangeJobnJob );
        }else{
            return;
        }
        
int nPoint 0;
        if( 
m_nJob == JOB_MERCENARY )
            
nPoint += 40;
        else if( 
m_nJob == JOB_ACROBAT )
            
nPoint += 50;
        else if( 
m_nJob == JOB_ASSIST )
            
nPoint += 60;
        else if( 
m_nJob == JOB_MAGICIAN )
            
nPoint += 90;
        else if( 
m_nJob ==  JOB_KNIGHT || m_nJob ==  JOB_BLADE )
            
nPoint += 120;
        else if( 
m_nJob ==  JOB_JESTER || m_nJob ==  JOB_RANGER )
            
nPoint += 150;
        else if( 
m_nJob ==  JOB_RINGMASTER )
            
nPoint += 160;
        else if( 
m_nJob ==  JOB_BILLPOSTER || m_nJob ==  JOB_PSYCHIKEEPER )
            
nPoint += 180;
        else if( 
m_nJob ==  JOB_ELEMENTOR )
            
nPoint += 390;
        else if( 
nJob ==  JOB_LORDTEMPLER_HERO || nJob ==  JOB_STORMBLADE_HERO )
            
nPoint += 120;
        else if( 
nJob ==  JOB_WINDLURKER_HERO || nJob ==  JOB_CRACKSHOOTER_HERO )
            
nPoint += 150;
        else if( 
nJob ==  JOB_FLORIST_HERO )
            
nPoint += 160;
        else if( 
nJob ==  JOB_FORCEMASTER_HERO || nJob ==  JOB_MENTALIST_HERO )
            
nPoint += 180;
        else if( 
nJob ==  JOB_ELEMENTORLORD_HERO )
            
nPoint += 390;

        
AddSkillPointnPoint );
        
m_nLevel nLevel;

        
SetJobLevelnLevelnJob );
        
m_nDeathLevel nLevel;
#if __VER >= 10 // __LEGEND    //    10Â÷ Àü½Â½Ã½ºÅÛ    Neuz, World, Trans
        
if(IsMaster())
        {
            
int dwTmpSkLevel 1;//60, 72, 84, 96, 108
            
if( nLevel 59 && nLevel 72 )
                
dwTmpSkLevel 1;
            else if( 
nLevel 71 && nLevel 84 )
                
dwTmpSkLevel 2;
            else if( 
nLevel 83 && nLevel 96 )
                
dwTmpSkLevel 3;
            else if( 
nLevel 95 && nLevel 108 )
                
dwTmpSkLevel 4;
            else if( 
nLevel 107 && nLevel 120 )
                
dwTmpSkLevel 5;
            for( 
int i 0MAX_SKILL_JOBi++ ) 
            {                
                
LPSKILL lpSkill = &(m_aJobSkill[i]);
                if( 
lpSkill && lpSkill->dwSkill != NULL_ID )
                {
                    
ItemProppSkillProp    prj.GetSkillProplpSkill->dwSkill );            
                    if( 
pSkillProp == NULL )
                        continue;
                    if( 
pSkillProp->dwItemKind1 != JTYPE_MASTER)
                        continue;
                    
lpSkill->dwLevel dwTmpSkLevel;
                }
            }
        }
        else if(
IsHero())
        {
            for( 
int i 0MAX_SKILL_JOBi++ ) 
            {                
                
LPSKILL lpSkill = &(m_aJobSkill[i]);
                if( 
lpSkill && lpSkill->dwSkill != NULL_ID )
                {
                    
ItemProppSkillProp    prj.GetSkillProplpSkill->dwSkill );            
                    if( 
pSkillProp == NULL )
                        continue;
                    if( 
pSkillProp->dwItemKind1 != JTYPE_MASTER)
                        continue;
                    
lpSkill->dwLevel 5;
                }
            }
        }
        else if(
IsLegendHero())
        {
            for( 
int i 0MAX_SKILL_JOBi++ ) 
            {                
                
LPSKILL lpSkill = &(m_aJobSkill[i]);
                if( 
lpSkill && lpSkill->dwSkill != NULL_ID )
                {
                    
ItemProppSkillProp    prj.GetSkillProplpSkill->dwSkill );            
                    if( 
pSkillProp == NULL )
                        continue;
                    if( 
pSkillProp->dwItemKind1 != JTYPE_MASTER)
                        continue;
                    
lpSkill->dwLevel 5;
                }
            }
        }
#endif    //     __LEGEND    //    10Â÷ Àü½Â½Ã½ºÅÛ    Neuz, World, Trans
        
if( bGamma )
        {
            
m_nExp1 0;
        }
        
        ( (
CUser*)this )->AddSetChangeJobnJob );
        
g_UserMng.AddNearSetChangeJobthisnJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
        

#if __VER >= 11 // __SYS_PLAYER_DATA
        
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
#else    // __SYS_PLAYER_DATA
        
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
        
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
        if( 
m_idGuild != )
            
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
#endif    // __SYS_PLAYER_DATA
        
SetHitPointGetMaxHitPoint() );
        
SetManaPointGetMaxManaPoint() );
        
SetFatiguePointGetMaxFatiguePoint() );
        if( 
nJob >= && nJob <= )
        {
            
m_nStr m_nSta m_nDex m_nInt 15;
            
m_nRemainGP 28;
        }
        if( 
nJob >= MAX_PROFESSIONAL && nJob MAX_MASTER )
        {
            
m_nRemainGP 118;
            
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
            
m_nStr m_nSta m_nDex m_nInt 15;
        }
        if( 
nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
        {
            
CItemElem itemelem;
            
itemelem.m_nItemNum 1;
            
itemelem.m_bCharged TRUE;
            
BYTE nID;

            if( 
nJob == JOB_MENTALIST_HERO )
                
itemelem.m_dwItemId II_WEA_BOOK_BOKROMAIN;
            if( 
nJob == JOB_FORCEMASTER_HERO )
                
itemelem.m_dwItemId II_ARM_ARM_SHI_ZEMBATO;

            ( ( 
CUser*)this)->CreateItem( &itemelem, &nID );
        }
        
g_UserMng.AddSetLevelthis, (WORD)m_nLevel );
        ( (
CUser*)this )->AddSetGrowthLearningPointm_nRemainGP );
        ( (
CUser*)this )->AddSetExperienceGetExp1(), (WORD)m_nLevelm_nSkillPointm_nSkillLevel );
        
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
        ( (CUser*)this )->AddTaskBar();*/
        
( (CUser*)this )->AddSetStatem_nStrm_nStam_nDexm_nIntm_nRemainGP );
#if __VER >= 13 // __HONORABLE_TITLE            // ´ÞÀÎ
        
((CUser*)this)->CheckHonorStat();
        ((
CUser*)this)->AddHonorListAck();
        
g_UserMng.AddHonorTitleChangethism_nHonor);
#endif    // __HONORABLE_TITLE            // ´ÞÀÎ
    
}
#endif // __WORLDSERVER


moverparam.cpp
was voher das war
PHP Code:
if(m_nLevel >= 119 && IsPro())
{
if( 
AddChangeJob(m_nJob 10) )
{
((
CUser*)this)->AddSetChangeJobm_nJob );
g_UserMng.AddNearSetChangeJobthism_nJob, &this->m_aJobSkill[MAX_JOB_SKILL] );
g_dpDBClient.SendLogLevelUp( (CUser*)this);
#if __VER >= 11 // __SYS_PLAYER_DATA
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
#else // __SYS_PLAYER_DATA
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
if( 
m_idGuild != )
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
#endif // __SYS_PLAYER_DATA
}

wird das
PHP Code:
if(m_nLevel >= 119 && IsPro())
{
InitLevelPumbaaam_nJob+10,60);

.Monster hat nämlcih bei sienem tut nicht beachtet das was er zu einem "auto master" macht beinhaltet nur job change ohne level change
11/15/2011 21:34 .Insane#3
Vielen Dank für die Ausführliche erklärung
Probiere es gleich mal
11/15/2011 21:37 Jopsi332#4
nein tut es nicht
ja ist die funktion von pumba wayne? funktioniert besser als dein quatsch! ich habe es auch so gemaht und es geht
11/15/2011 21:38 .Monster#5
Sollte eigentlich gehen, ja habe nicht bedacht das man nur Master wird & nicht auf Level 60 gestuft wird :<

Ausnahmsweise hat Jopsi mal was nützliches gepostet ;)

Edit:

Mit wem redest du? O.o
11/15/2011 21:42 Jopsi332#6
wenn du mich meinst
es tut 3 argumente fordner -> nein tut es nicht war darauf die antwort, also mti dir
das bool gamma true ist automatisch
11/15/2011 21:43 .Insane#7
Rebuilde grade
Sage bescheid ob es funzt!
Du könntest ja jetzt ein komplettes TUT schreiben!
Für alle :D
Lg
11/15/2011 21:44 .Monster#8
Ja deshalb hab ich meine Post gelöscht, weil ich gesehen hab das das BOOL schon true ist. und da ist nichts automatisch du wannabe coder xD
11/15/2011 21:49 Jopsi332#9
sagt der , der nen tut macht und selbr nicht mal ausprobiert ob es überhaupt geht und falsche sachen antwortet ohne erstmal zu lesen
11/15/2011 21:51 .Monster#10
Tja sowas kommt vor wenn man das in 5min macht & RL hat :>
11/15/2011 22:08 Dreatmaster#11
Quote:
if(m_nLevel >= 119 && IsPro())
Ich will mich hier nicht aufdrängen aber sagt das oben nicht schon alles? Wenn er das zu:

Quote:
if(m_nLevel == 120 && IsPro())

und drunter dann m_nLevel = 60 <- kann auch anderst sein
11/15/2011 22:11 .Insane#12
Der Post war doch jetzt unnötig, oder?
Das kann man bestimmt noch auf viel mehr Arten lösen.
Aber nunja
11/15/2011 22:15 Dreatmaster#13
solche leute sind mir die liebsten ey ich meinte nur das es vllt etwas weniger umständlich gewesen wäre und man ja auch mal von selbst drauf kommen könnte das wenn da krass gesehen

Quote:
if(level >= 119)
steht und der char auf 119 zu master wird das es vllt daran liegt...und wenn man dann hilft is es unnötig
11/16/2011 07:30 .Insane#14
Ok dann sry dafür
der Thread kann geschlossen werden.
11/16/2011 18:07 Sextus#15
#closed