dabei bin ich nun auf ein problem gestoßen und zwar müssten die einträge alle richtig sein jedoch wird die Aktuelle Rebirth Count nicht in der DB gespeichert
Hier mal meine Einträge:
Obj.h
Code:
#ifdef __REBIRTH public: int m_nRebirthCount; #endif //__REBIRTH
Code:
#ifdef __REBIRTH m_nRebirthCount = 0; #endif //__REBIRTH #ifdef __REBIRTH m_nRebirthCount = pMover->m_nRebirthCount; #endif //__REBIRTH
Code:
#ifdef __REBIRTH MAX_SAVEPARAM += 1; // m_nRebirthCount #endif //__REBIRTH #ifdef __REBIRTH bOK[++j] = qry->BindParameter( ++i, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &pMover->m_nRebirthCount, 0, 0 ); #endif //__REBIRTH
Code:
#ifdef __REBIRTH , int nRebirthCount = 0 #endif //__REBIRTH
Code:
#ifdef __REBIRTH , int nRebirthCount #endif //__REBIRTH #ifdef __REBIRTH sprintf( strCharacter, ",@im_nRebirthCount=%d", nRebirthCount ); strncat( qryCharacter, strCharacter, sizeof(strCharacter) ); #endif //__REBIRTH
Code:
#ifdef __REBIRTH
mover.m_nRebirthCount = qry->GetInt("m_nRebirthCount");
#endif //__REBIRTH
Code:
#ifdef __REBIRTH ar << m_nRebirthCount; #endif //__REBIRTH #ifdef __REBIRTH ar >> m_nRebirthCount; #endif //__REBIRTH
Code:
#ifdef __REBIRTH public: int m_nRebirthCount; #endif //__REBIRTH
Code:
#ifdef __REBIRTH
m_nRebirthCount = 0;
#endif //__REBIRTH
#ifdef __REBIRTH
void CMover::InitLevelRebirth( int nJob, LONG nLevel, BOOL bGamma ){
#ifdef __WORLDSERVER
MoverProp* pProp = GetProp();
if( pProp ){
if( m_nRebirthCount >= MAX_REBIRTH_COUNT)
return;
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
AddChangeJob( nJob );
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;
AddSkillPoint( nPoint );
SetJobLevel( nLevel, nJob );
m_nLevel = nLevel;
m_nDeathLevel = nLevel;
#if __VER >= 10 //__LEGEND
if(IsMaster()){
int dwTmpSkLevel = 1;
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 = 0; i < MAX_SKILL_JOB; i++ ){
LPSKILL lpSkill = &(m_aJobSkill[i]);
if( lpSkill && lpSkill->dwSkill != NULL_ID ){
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
if( pSkillProp == NULL )
continue;
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
continue;
lpSkill->dwLevel = dwTmpSkLevel;
}
}
}
#endif //__LEGEND
if( bGamma )
m_nExp1 = 0;
( (CUser*)this )->AddSetChangeJob( nJob );
g_UserMng.AddNearSetChangeJob( this, nJob, &((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 != 0 )
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
#endif // __SYS_PLAYER_DATA
SetHitPoint( GetMaxHitPoint() );
SetManaPoint( GetMaxManaPoint() );
SetFatiguePoint( GetMaxFatiguePoint() );
m_nRebirthCount++;
if( nJob >= 1 && nJob <= 4 )
m_nRemainGP = 28;
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ){
if ( m_nRemainGP > 0)
m_nRemainGP = 0;
if (m_nRebirthCount == 1)
m_nRemainGP = 200;
else if (m_nRebirthCount == 2)
m_nRemainGP = 300;
else if (m_nRebirthCount == 3)
m_nRemainGP = 400;
else if (m_nRebirthCount == 4)
m_nRemainGP = 500;
else if (m_nRebirthCount >= 5)
m_nRemainGP = 600;
}
m_nStr = m_nSta = m_nDex = m_nInt = 50;
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel, m_nRebirthCount );
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
#if __VER >= 13 // __HONORABLE_TITLE
((CUser*)this)->CheckHonorStat();
((CUser*)this)->AddHonorListAck();
g_UserMng.AddHonorTitleChange( this, m_nHonor);
#endif // __HONORABLE_TITLE
}
#endif // __WORLDSERVER
}
#endif //__REBIRTH
Code:
#ifdef __REBIRTH
BOOL TextCmd_rebirth( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser *pUser;
pUser = (CUser*)scanner.dwValue;
if(pUser->m_nRebirthCount > MAX_REBIRTH_COUNT)
pUser->AddText("Du hast bereits die maximale anzahl von Rebirthes erreicht!");
else if(pUser->m_nLevel >= MAX_3RD_LEGEND_LEVEL && pUser->IsLegendHero())
pUser->InitLevelRebirth( pUser->m_nJob-16,60, false);
else
pUser->AddText("Du hast nicht das passende Level für einen Rebirth!");
#endif
return TRUE;
}
#endif //__REBIRTH
Code:
#define MAX_REBIRTH_COUNT 5 //Default = 0 #define __REBIRTH //Standart Rebirth System
Spallte ist erstellt und auf 0 gesetzt und vom Typ int
Character_STR
Code:
, @im_nRebirthCount , m_nRebirthCount , m_nRebirthCount = @im_nRebirthCount , @im_nRebirthCount int = 0







