阅读:2674回复:3
转生源码
Mover.h
代码: 找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü 下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 然后你去mover.cpp添加 代码: void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) { #ifdef __WORLDSERVER // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó MoverProp* pProp = GetProp(); if( pProp ) { 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 ); m_nLevel = nLevel; SetJobLevel( nLevel, nJob ); m_nDeathLevel = nLevel; #if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? 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 = 0; i < MAX_SKILL_JOB; i++ ) { LPSKILL lpSkill = &(m_aJobSkill); 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; } } } else if(IsHero()) { for( int i = 0; i < MAX_SKILL_JOB; i++ ) { LPSKILL lpSkill = &(m_aJobSkill); if( lpSkill && lpSkill->dwSkill != NULL_ID ) { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); if( pSkillProp == NULL ) continue; if( pSkillProp->dwItemKind1 != JTYPE_MASTER) continue; lpSkill->dwLevel = 5; } } } else if(IsLegendHero()) { for( int i = 0; i < MAX_SKILL_JOB; i++ ) { LPSKILL lpSkill = &(m_aJobSkill); if( lpSkill && lpSkill->dwSkill != NULL_ID ) { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); if( pSkillProp == NULL ) continue; if( pSkillProp->dwItemKind1 != JTYPE_MASTER) continue; lpSkill->dwLevel = 5; } } } #endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans 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() ); if( nJob >= 1 && nJob <= 4 ) { 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.AddSetLevel( this, (WORD)m_nLevel ); ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); ( (CUser*)this )->AddTaskBar();*/ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); #if __VER >= 13 // __HONORABLE_TITLE // ′Tà? ((CUser*)this)->CheckHonorStat(); ((CUser*)this)->AddHonorListAck(); g_UserMng.AddHonorTitleChange( this, m_nHonor); #endif // __HONORABLE_TITLE // ′Tà? } #endif // __WORLDSERVER } 然后你进入functextcmd.cpp并添加以下 代码: ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) 下面插入 ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 然后你去 代码: 代码 BOOL TextCmd_ClearPropose( CScanner & s ) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)s.dwValue; g_dpDBClient.SendClearPropose(); #endif // __WORLDSERVER return TRUE; } 下面插入 BOOL TextCmd_rebirth( CScanner& scanner ) { #ifdef __WORLDSERVER CUser *pUser; pUser = (CUser*)scanner.dwValue; if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); else pUser->AddText("你还未达到重生条件!"); #endif return TRUE; } 那么重生命令为/rebirth |
|
最新喜欢:liulin... |
板凳#
发布于:2023-12-16 08:30
为了一个铜币努力176985937
|
|