|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, W$ F3 w/ P f' A4 K" l# ]; X
! b3 i& A) m7 S: y. {4 L5 w
Mover.h K3 ?# a7 R6 R; }1 J; r
代码:8 e" A8 H% J l) _* z" o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 u* y' \5 T9 e( [
; E+ m2 g: J+ j3 @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 Z0 @0 F7 B8 l, Z, p7 K- G9 a
5 W( q9 t! N4 X$ N" _: O然后你去mover.cpp添加: U' C) Z1 ]9 }; V$ v
{' I( g% L0 W# [8 a3 x
代码:
$ I5 e D; a Y3 b/ K4 Uvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) W: v8 d/ t& T: `$ L3 w" w
{
) ^; r! S* a1 H4 u1 S" l7 b* V#ifdef __WORLDSERVER
% S O3 g( _1 M, M' N7 X4 F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 {4 m; l) h9 _+ K
MoverProp* pProp = GetProp();6 ?# Y0 F( R) f, P$ `
if( pProp ); v5 e# B2 f' _
{
+ n1 B7 W8 _" S0 t8 b- S6 I% ~" f if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& I b) v1 o9 g0 J; z) I- [/ i- g2 E {
( v9 Y: w u" S4 v/ B; c5 ]& T6 d AddChangeJob( nJob );
, [1 u6 |, l o% x5 |6 \, } }else{: Z3 Y7 x9 B6 r* z! ?6 v
return;
3 \% Y+ ~: U- u5 {3 c$ }( z0 P }
4 w1 V; ?) B$ i, \% {1 E1 M int nPoint = 0;1 v5 L: ^5 g; z9 T+ z
if( m_nJob == JOB_MERCENARY )1 z/ R, o) U9 }6 K
nPoint += 40;. b8 Y5 y% s: S5 n
else if( m_nJob == JOB_ACROBAT )( y3 d" ?# o$ I! n2 t3 f
nPoint += 50;! X8 \: Y @$ O3 |- @) w4 p1 L2 @& Y
else if( m_nJob == JOB_ASSIST )2 ]( D* q7 R; Y. a: q" R
nPoint += 60;
2 }) k, C) K! s1 J O else if( m_nJob == JOB_MAGICIAN )
- v \% {1 ]0 k; A! S2 { nPoint += 90;
9 z$ n8 V% \& A- u2 H* n& f, x. ? else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 b) W5 l) l( f* P
nPoint += 120;8 b1 c3 n2 ^& a
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 s; y7 k- U8 U. S2 m
nPoint += 150;
- A( x2 w+ D& G; X2 T2 z else if( m_nJob == JOB_RINGMASTER )3 ]. a$ F" m5 [7 Z' P8 @ ~8 v
nPoint += 160;* _. |0 \7 Y/ Z! ^- \0 }
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( I. ?3 [8 Z/ |# y2 K; k9 G& F nPoint += 180;6 d* P c6 {( U! z) }" S& e
else if( m_nJob == JOB_ELEMENTOR ): C2 ]- H1 j- ]% |; ]* x6 L5 b" K
nPoint += 390;
( Z' w, \1 A# \4 Y) n5 O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! ]# ^6 M% U4 g1 `5 ] nPoint += 120;" G; M" Y2 n2 Z5 m5 K1 u) A( g6 S
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); H3 _3 v$ a j$ r p
nPoint += 150;- R+ g+ o P0 |9 c2 p4 K1 w: D7 y
else if( nJob == JOB_FLORIST_HERO )7 @3 L! ^- h0 q! H5 i F
nPoint += 160;% ^) o# b# _; |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- e$ |4 r/ z: X# f nPoint += 180;0 T4 K6 I0 B& b
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 V7 N2 ^8 s* s6 e3 v: t nPoint += 390;8 j4 D6 i3 E* T! C* }
" Q3 a2 J$ \7 N/ I: O" ]
AddSkillPoint( nPoint );3 h% \/ K6 v9 G q" d/ _
m_nLevel = nLevel;. j# ?2 u' A2 Z' d3 F; W
. v) e5 \/ R3 F$ u4 x
SetJobLevel( nLevel, nJob );. y7 W/ Q% C+ `% s* \, C% m0 j$ G% P
m_nDeathLevel = nLevel;& M7 }9 x! g' @2 }7 ?$ f$ G
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 F6 ~/ u: p2 Y: y
if(IsMaster())3 X4 s- X$ K! I0 _( m! U( ~6 Z
{
; i$ {1 f9 ]7 D) h2 o int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: {; h) l9 z1 K) Y8 a/ R
if( nLevel > 59 && nLevel < 72 )
7 k5 x; h) V: a4 I dwTmpSkLevel = 1;
6 G& B8 s5 y* H- [8 X else if( nLevel > 71 && nLevel < 84 )) w% ~ Z8 e0 ?" s# p) I5 w
dwTmpSkLevel = 2;9 @& y: ? d/ Z, O
else if( nLevel > 83 && nLevel < 96 )
% t+ S( a% c( o+ i dwTmpSkLevel = 3;* l7 z2 P* e6 u4 T, T
else if( nLevel > 95 && nLevel < 108 )) B% X# a6 x! v% C W) C
dwTmpSkLevel = 4;
& v! x6 A$ h6 R) ]( G$ m; j; [ else if( nLevel > 107 && nLevel < 120 )
" l/ P6 B/ }, E8 _$ f5 W dwTmpSkLevel = 5;2 R8 r5 H: f: j K- a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 I6 `8 k3 F5 o) h; w$ N5 T' ` {
" Q2 B% T; [ h1 p6 E, j+ r LPSKILL lpSkill = &(m_aJobSkill);
9 ^- y3 h) L& \* x. C* z/ \( C if( lpSkill && lpSkill->dwSkill != NULL_ID ), H4 {9 j7 \: \. O; u/ c, e
{
# y5 }! c! b8 Q5 [& @" M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 L, Y) v/ Y( z9 L b7 W
if( pSkillProp == NULL )
& t/ G; a1 C2 | continue;
0 G2 p( U( N' E# A5 p: F& v# ^7 e, h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
h# t0 a* n% Y3 A' R continue;
4 |4 q& l5 A- p! S* } lpSkill->dwLevel = dwTmpSkLevel;
6 b0 _0 L3 \1 p% M7 c# A2 l6 Y }5 z7 ]+ b$ g/ U/ }+ r
}
& i) {+ ~1 y2 D! Y }, {) v5 z# l p
else if(IsHero())! x5 e" c+ Y$ q% c' f. T
{ o9 ?7 B8 K6 @
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & [9 _0 Q$ {$ z$ z K1 P
{ @/ V7 K% @! E/ J
LPSKILL lpSkill = &(m_aJobSkill);
3 K2 h6 [4 Z: d7 t3 I4 J0 b if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ G. `7 M* E g$ | {
4 H6 t/ p$ s& S, L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 ?7 I# Z( W6 R! _9 ?% S if( pSkillProp == NULL ), n5 a6 d3 @* F& y
continue; d7 c, F- S1 z8 ~& v- l2 X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% W8 [; G0 Z( b' b; ~7 w continue;, t$ a1 V2 C3 Y6 y' T
lpSkill->dwLevel = 5;2 I |. Y5 y, T+ R: l0 D
}' b, @3 c0 t9 z; L5 y$ U
}
( J9 j9 A3 r8 O+ m+ ^/ N, U }# Z# }. I: L: ?* o6 C* t" R& S
else if(IsLegendHero())" x( N# e( E% h% K2 f, d
{, w+ l: o |& ]' a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) T- a: ^/ M* \ {
+ F7 L D' R( G LPSKILL lpSkill = &(m_aJobSkill);' R8 ? W+ @' b5 J. U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: B H7 @ k0 |, {8 { V {& q! |6 e0 T2 T6 i$ S m0 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " n( Q& u9 H. d* y- e5 ^! S3 v
if( pSkillProp == NULL )
: ] M' e3 g5 K) ^: n" K1 B! ~ continue;
# r& m( q$ c; S- {: R+ f. N" \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, |, }- [$ o; r1 S continue;
9 c/ E; }" N& U* |) r! U lpSkill->dwLevel = 5;
& B5 e- G3 N* W. V( `* U/ U }
; Y9 [3 u" K- @3 ? }6 C" y, K; r. O9 `6 U' z
}- Y* s& x# _: C* b h( j* l
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans ?; F' B6 t" M# S
if( bGamma )
" l/ D5 H2 ~0 Q) g3 o0 j6 R% m [ {
. r |: m9 ~& V9 t1 Z m_nExp1 = 0;. n7 ^' J! w: }) G7 [9 P! M9 e$ W
}
2 ]4 K7 p/ Y T4 |: u( t( c. n# }+ L. R) D
( (CUser*)this )->AddSetChangeJob( nJob );
5 Y" Q6 _) p7 Q, [ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 ^/ t, h% E8 y) `7 }- a
5 q+ F5 A: P0 M
: z j/ L( A6 h( U3 u( z2 U- T2 U5 i#if __VER >= 11 // __SYS_PLAYER_DATA
" s! } N' s6 d/ A- y- { g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 S( p: Z6 D; r; J% N
#else // __SYS_PLAYER_DATA( L9 z. s8 d2 t. m# C- }( j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# U' S" R; W! [
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: u, Z2 d9 ^, y2 o. I) P- i if( m_idGuild != 0 )$ `- A) t& ?9 p. e" c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); G/ _! y( A) O! J# X4 z3 n
#endif // __SYS_PLAYER_DATA7 N" g- o+ M- d. {
SetHitPoint( GetMaxHitPoint() );
4 H1 f0 @- w2 M! N9 X SetManaPoint( GetMaxManaPoint() );: g7 o; q/ b2 Q, r
SetFatiguePoint( GetMaxFatiguePoint() );
2 l9 a# r: ]# D0 g2 _! B if( nJob >= 1 && nJob <= 4 )) e9 C7 o; Y& _' `# }7 Z8 l O
{3 y4 \/ f9 q6 d2 g! ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- R7 v$ Y1 f1 |5 i/ u: c m_nRemainGP = 28;% P$ L* T& ^* j6 x V+ O" Z8 O# j8 w+ w
}) J+ z! j/ k5 t% ~( ?) z; M1 u; ?4 C
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 t$ w% B4 G9 `1 R {
5 T2 ]- d' m/ D. J) d* u; } m_nRemainGP = 118;
0 v+ V$ ]# B% q1 y- f" B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ \0 z( m. t Q m_nStr = m_nSta = m_nDex = m_nInt = 15;9 p/ @+ S- p- w6 ~
}
' @. l( ?8 i( q' p if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 W# i( Y. b" _( N
{
0 W* k8 r6 p- {7 j4 S2 e( N9 h CItemElem itemelem;
/ a3 i% x% T% M* o4 k" O1 G$ s( @ itemelem.m_nItemNum = 1;$ V3 T/ F6 x+ ~8 k" ^- z' x: O/ N6 z
itemelem.m_bCharged = TRUE;3 r% E, {- `* F3 T; d( {0 x7 }
BYTE nID;4 V9 D' {+ w+ P0 S; m% R) |
; W: g# i/ k8 c4 p! ^9 U
if( nJob == JOB_MENTALIST_HERO )
0 ]$ e. `5 V8 ~$ _, G( n itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) U+ @3 g; ^ i+ h! j6 |5 X if( nJob == JOB_FORCEMASTER_HERO )4 l: U3 V5 [& q: e2 [: U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 N: R L& ?/ v2 G Z( w" X) e$ v1 x/ s- {
( ( CUser*)this)->CreateItem( &itemelem, &nID );" w, T- {! m, q! f3 g9 r3 V* d
}
$ _% M( k" C# K% W0 R4 }6 N' A2 \ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 z+ j3 q7 r9 {1 R3 l1 t3 q% _7 |$ [ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' y' W) k, [: C8 O% G" P6 T ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 l0 N$ W! e+ C& u' O; [' C2 E /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% t/ [+ Q$ S( P7 d& S ( (CUser*)this )->AddTaskBar();*/
* \7 _ E3 k& G3 Q# I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& {! T7 l& \* y7 `/ ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 [9 O6 e9 Q0 {, Y ((CUser*)this)->CheckHonorStat();
, K- L1 `8 [/ ]# Z- J3 @ ((CUser*)this)->AddHonorListAck();" Q1 m X- L5 [7 b1 y
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 V& g8 f! n9 L4 S" d6 J2 b
#endif // __HONORABLE_TITLE // ′Tà?' r7 ]9 k: \; a' j4 u$ o0 w4 N
}, s% i6 K! `* @9 K1 ]+ U3 Y/ y
#endif // __WORLDSERVER
* e; f4 V1 e+ s6 _, n5 Y X) E} $ Q3 h/ c' f' z& `! W) R
$ F6 `+ Q! Y" E/ Y0 S
然后你进入functextcmd.cpp并添加以下1 n0 _$ i% ^4 a& T- ]
3 ~: d# |+ v2 s- y; u7 U/ _2 e, J, P
代码:9 y( D0 R; t! N; ^5 b2 ?3 }: {, O
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 W& ]: S r( M/ S- `) f$ M1 a, C: z下面插入& m4 l: l0 e/ I6 k
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . W" J0 j* H+ W: T% [
" n3 P' D) a0 M/ E- @
然后你去
7 j* I- t2 b5 N! Z$ U
& ?- k3 V* X+ L o代码:/ w0 c9 W- Y- p+ I" U' i; r* c1 p
代码
7 f& u/ C$ n! TBOOL TextCmd_ClearPropose( CScanner & s )
, N0 m& V' Z- K% N, t{
3 | ^1 F/ b1 w#ifdef __WORLDSERVER
, A2 y: f {! k CUser* pUser = (CUser*)s.dwValue; s4 H1 {5 o" _( ?* d
g_dpDBClient.SendClearPropose();
; _+ Q7 ~& b c; s#endif // __WORLDSERVER9 A k6 I( Y" w: a: b: [
return TRUE;
7 B6 K; H9 D9 X/ k/ i& _4 J}
* Z& g: T' c9 p# [下面插入" {, W8 c2 v% n B* b- x' R
BOOL TextCmd_rebirth( CScanner& scanner )1 g6 p: r+ x V; i
{
D! F% g* q( L. ]# F2 O0 t0 R#ifdef __WORLDSERVER$ m8 A+ A& g% ?& ~' H! f
CUser *pUser;
8 d2 a; n$ J2 w% L% qpUser = (CUser*)scanner.dwValue;3 [% D! `) D2 l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) L- I5 Q: y2 l6 j( r. kpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& m, @: V( |% Nelse
- Q6 h9 Y4 r: w# n; b7 P& QpUser->AddText("你还未达到重生条件!");
) k, [7 q/ W* [/ ~) s#endif
& q! w6 J+ N: L* W# vreturn TRUE;
, e" j( S8 H( E" r7 `7 a} - {/ B& T* Y. I; W4 W* r
' C6 D: r2 O1 ] G+ \; F2 v
z5 X- A) p6 q5 b' W# A' T( x
9 _! q+ y3 J' P* u0 \' @/ s6 B. g
- t# V( i$ D& V
|
|