阅读:1574回复:1
[源码]转生系统(需要命令)
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Â÷ Àü½Â½Ã½ºÅÛ 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Â÷ Àü½Â½Ã½ºÅÛ 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 // ´ÞÀÎ (( CUser *) this )-> CheckHonorStat (); (( CUser *) this )-> AddHonorListAck (); g_UserMng . AddHonorTitleChange ( this , m_nHonor ); #endif // __HONORABLE_TITLE // ´ÞÀÎ } #endif // __WORLDSERVER } 然后你去到functextcmd.cpp和下添加 PHP代码: ON_TEXTCMDFUNC ( TextCmd_say , "say" , "say" , "¸»" , "¸»" , TCM_SERVER , AUTH_GENERAL , "¼Ó»èÀÓ [/¸í·É¾ÆÀ̵𠳻¿ë]" ) das ON_TEXTCMDFUNC ( TextCmd_rebirth , "rebirth" , "rebirth" , "ÅÚ·¹Æ÷Æ®" , "ÅÚ·¹" , TCM_SERVER , AUTH_GENERAL , "ÅÚ·¹Æ÷Æ®" ) 然后你去 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级 |
|
100% |
沙发#
发布于:2012-03-03 23:43
论坛的东西太深奥了。没看明白~~
|
|