lk1986
圣骑士
圣骑士
  • UID64
  • 发帖数86
  • QQ15151515
  • 社区居民
  • 原创写手
阅读:2180回复:2

转生源码

楼主#
更多 发布于:2019-03-06 09:36
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
喜欢1 评分0

最新喜欢:

liulinkanliulin...
hashcat
骑士
骑士
  • UID1650
  • 发帖数241
  • QQ93652685
沙发#
发布于:2022-10-29 03:17
转生源码
回复(0) 喜欢(0)     评分
regtoemail
精灵王
精灵王
  • UID1179
  • 发帖数1532
  • QQ309104321
  • 社区居民
板凳#
发布于:2023-12-16 08:30
为了一个铜币努力176985937
回复(0) 喜欢(0)     评分
游客

返回顶部