aa5528356
4级·生命之泉
4级·生命之泉
  • UID51
  • 注册日期2011-05-22
  • 最后登录2020-08-24
  • 粉丝3
  • 关注0
  • 发帖数257
  • QQ
  • 铜币427枚
  • 威望-2点
  • 银元172个
  • 社区居民
  • 忠实会员
阅读:1574回复:1

[源码]转生系统(需要命令)

楼主#
更多 发布于:2012-03-03 23:18

Mover.h
PHP代码:
unter : void InitLevel ( int nJob , LONG nLevel , BOOL bGamma = TRUE ); // °´Ã¼¸¦ nLevel·Î ¹Ù²ãÁÜ
das : void InitLevelPumbaaa ( int nJob , LONG nLevel , BOOL bGamma = TRUE ) ;
然后你去和mover.cpp和补充
PHP代码:
void CMover :: InitLevelPumbaaa ( intnJob , LONG nLevel , BOOL bGamma )
{
#ifdef __WORLDSERVER
// ¿î¿µÀÚ ¸í·ÉÀ¸·Î ·¹º§¾÷ Çϴ°÷ÀÓ
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&#194;÷ &#192;ü&#189;&#194;&#189;&#195;&#189;&#186;&#197;&#219; 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 [ 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 ;
}
}
}
else if( IsHero ())
{
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 = 5 ;
}
}
}
else if( IsLegendHero ())
{
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 = 5 ;
}
}
}
#endif // __LEGEND // 10&#194;÷ &#192;ü&#189;&#194;&#189;&#195;&#189;&#186;&#197;&#219; 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 // &#180;&#222;&#192;&#206;
(( CUser *) this )-> CheckHonorStat ();
(( CUser *) this )-> AddHonorListAck ();
g_UserMng . AddHonorTitleChange ( this , m_nHonor );
#endif // __HONORABLE_TITLE // &#180;&#222;&#192;&#206;
}
#endif // __WORLDSERVER
}
然后你去到functextcmd.cpp和下添加
PHP代码:
ON_TEXTCMDFUNC ( TextCmd_say , "say" , "say" , "&#184;&#187;" , "&#184;&#187;" , TCM_SERVER , AUTH_GENERAL , "&#188;&#211;&#187;è&#192;&#211; [/&#184;í·&#201;&#190;&#198;&#192;&#204;&#181;&#240; &#179;&#187;&#191;&#235;]" )
das
ON_TEXTCMDFUNC ( TextCmd_rebirth , "rebirth" , "rebirth" , "&#197;&#218;·&#185;&#198;÷&#198;&#174;" , "&#197;&#218;·&#185;" , TCM_SERVER , AUTH_GENERAL , "&#197;&#218;·&#185;&#198;÷&#198;&#174;" )
然后你去
PHP代码:
unter
BOOL TextCmd_ClearPropose ( CScanner & s )
{
#ifdef __WORLDSERVER
CUser * pUser = ( CUser *) s . dwValue ;
g_dpDBClient . SendClearPropose ();
#endif // __WORLDSERVER
return TRUE ;
}
das
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 ( "Du hast nicht daspassende Level für einen Rebirth!" );
#endif
return TRUE ;
}
你已经可以做60大师等级150和传奇重生。
只需输入/重生和她的主人再次自60级
实我中意你
1级·灵魂力量
1级·灵魂力量
  • UID20703
  • 注册日期2012-02-26
  • 最后登录2012-03-04
  • 粉丝0
  • 关注0
  • 发帖数18
  • QQ
  • 铜币13枚
  • 威望0点
  • 银元42个
沙发#
发布于:2012-03-03 23:43
论坛的东西太深奥了。没看明白~~
游客

返回顶部