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