|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; S" g6 t( W0 {4 n' B$ ] @
) D! k7 i3 D9 P* J# q6 t1 r/ IMover.h
+ p+ M% P& ^7 w/ r代码:
7 ~4 }5 T9 r/ k. g$ n/ @找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: s# O5 U1 t) o
" P1 X2 J5 C" W& b1 i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 u6 H4 M* d0 f3 Y& ]# k. l0 k# c+ R# X
然后你去mover.cpp添加$ k1 T: J% S! p1 v f+ A; [# u& b
' x* ^4 d6 m8 @1 M
代码:& L, h8 V9 m6 }+ m) Z1 T/ A( u
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" ~4 e" e- D, ~. ~8 H5 H F- _
{# S# d, G; O$ z: U' w$ v
#ifdef __WORLDSERVER
, @2 E9 _5 @ _2 Q3 x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ k) Z# U" M% @0 T+ }* r
MoverProp* pProp = GetProp();
0 }' {; R5 S3 |# j; w, p if( pProp ), U: f! z4 L/ u7 }
{
8 r' G1 h! K) W if( nJob > 0 && nJob < MAX_LEGEND_HERO )) a" v$ Y- l5 n o/ s
{
2 p9 J# Y% S0 q- r! k1 k6 z AddChangeJob( nJob );% \: ^8 u2 p- |4 f" c+ c& G2 J
}else{
0 p# p* u$ B4 w+ F; x( |% r! `3 ] return;
- l% F3 \6 z: [* P: p+ V3 q }
3 D# N R$ r, m7 {. Q" u int nPoint = 0;* z" I3 p5 C7 r, u
if( m_nJob == JOB_MERCENARY )
9 K( C4 O' m0 R' z+ m nPoint += 40;
. ?/ y2 |$ d% E; } else if( m_nJob == JOB_ACROBAT ): \8 O0 f3 O, }* a# _' d- h9 j* i
nPoint += 50;" W& {; F% Z1 I1 I
else if( m_nJob == JOB_ASSIST )
0 P& _+ ~5 l9 d( p' z nPoint += 60;
, r1 |, A9 i G- K$ D& r else if( m_nJob == JOB_MAGICIAN )+ T2 [+ @5 S7 q) y. P+ U9 j! K# ?$ R
nPoint += 90;
% q- ^2 \0 b# h' \ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( @9 \. K5 c% j: ]. I+ ^+ [0 {4 H) y
nPoint += 120;
# g1 g" v* G) n, [. b else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 C( s% N. h6 m$ y0 A+ U! t nPoint += 150;* G+ j: k O; J8 F
else if( m_nJob == JOB_RINGMASTER )
0 X' n7 o: s) Z; |1 Z nPoint += 160;
, s7 S* J! E2 W8 O& r% ] else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. a# P4 [1 Q8 Z L nPoint += 180;, N# T# p8 V" F9 b: Q+ X
else if( m_nJob == JOB_ELEMENTOR )% t! |% }3 q; H9 r+ A- w7 Y
nPoint += 390;
9 r0 H5 T6 o1 \! e/ F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, j5 v* |: ~! ]( ~9 e/ R4 V nPoint += 120;: Q2 p. e3 Z; I# F$ y9 E9 R, j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 n' D# u2 ], A0 R* e5 ?" e nPoint += 150;5 m+ p) ~ U; d, e8 s
else if( nJob == JOB_FLORIST_HERO )
0 J6 i+ }! Y$ v d9 P5 g/ y nPoint += 160;: g4 J- L2 z* P. F$ m& E3 ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). D; i0 M$ @. l1 J
nPoint += 180;
C7 ?1 }) F9 t- v1 v) J) X' C$ }7 G else if( nJob == JOB_ELEMENTORLORD_HERO )- T8 \+ n5 P& t% d4 y& e
nPoint += 390;
3 m: N- J( o7 W5 K0 \5 K. c; a+ L
2 H! p6 l$ Y) Z5 O- L( P. O& v AddSkillPoint( nPoint );
5 M! j( S R% z0 z m_nLevel = nLevel;
5 v+ d2 Q6 @2 I# o$ w
7 G) F P, w; ~0 ] SetJobLevel( nLevel, nJob );
% r) ]2 N/ p! |3 J: M m_nDeathLevel = nLevel;6 @% J, I5 c" G* c6 Y D0 H' I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ X) y' b% U5 p
if(IsMaster())
# Z: B# E0 S* u2 d. k {5 @; l9 d0 p9 N5 i0 ]5 b8 q1 j4 H
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- H$ U u! C# |; [2 V if( nLevel > 59 && nLevel < 72 )
. |9 ~+ F- D3 U9 l/ B dwTmpSkLevel = 1;
- O7 o! ?% h6 g( B, x else if( nLevel > 71 && nLevel < 84 )/ O* ?* V" P( j
dwTmpSkLevel = 2;, ?5 }; e% ~" C7 N" b% L8 l+ Q% i
else if( nLevel > 83 && nLevel < 96 )
6 m- R( u' H$ o- _( _. ^ dwTmpSkLevel = 3;
1 c3 \8 e6 y# j* N7 _& { else if( nLevel > 95 && nLevel < 108 )
4 Q3 E% ~9 h+ b' }0 u0 } dwTmpSkLevel = 4;
6 ~/ J, t3 _: C# X else if( nLevel > 107 && nLevel < 120 )
2 h! E- W4 X4 x2 |2 x dwTmpSkLevel = 5;: c" K4 q, V& o
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / [. O, R2 T9 ]8 M
{ # ?; ^/ B# n6 M& a% o: W
LPSKILL lpSkill = &(m_aJobSkill);
5 j8 f/ e" D4 M if( lpSkill && lpSkill->dwSkill != NULL_ID )8 n0 f5 @3 a6 s& j9 ~& M& B
{; Z$ M' b* D, |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; M8 d& m6 k" K. V$ H
if( pSkillProp == NULL ) c: L) t" e7 f3 F5 v2 t
continue;! V' p+ x3 [8 U |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( g: q) K7 D( q4 T) i
continue;0 V, }( j& c, v& ?
lpSkill->dwLevel = dwTmpSkLevel;. ~2 w' l: B f" e/ R
}
# P' b7 y' O( H }
& l; j2 f/ X3 I4 l }3 i7 {0 m' K5 F' P# b
else if(IsHero()); W5 Z- I i5 d4 k6 _
{4 [; F6 F8 S u& x2 |& o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 _5 @$ Y- v3 e& R1 h% b. k {
4 |' h5 Y! b2 b P0 ? LPSKILL lpSkill = &(m_aJobSkill);( r6 W: Y) y( F
if( lpSkill && lpSkill->dwSkill != NULL_ID ). P' R0 i0 q1 u# X* ]2 e
{
( c# I+ O& h3 \8 B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 ^9 k! U# R9 m3 z! L( ?5 k if( pSkillProp == NULL )
# F* x* J' g! b, T, r5 \3 u continue;* |; p( B$ l1 l6 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" f6 U( Z# P- O1 S3 [
continue;" a* @' I2 J; F
lpSkill->dwLevel = 5;5 M6 s0 E2 W; D. ^% }
}
( M4 a; M& K1 q4 P, v+ z }
6 S* O8 H" k8 S }
' P4 K3 d, b1 p3 v else if(IsLegendHero())
; t! q/ `6 O& S* F, v9 U {5 W( p. q; {( \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' `: J- }# U& b2 r* p L* L* J {
! W \( }7 o5 I* h LPSKILL lpSkill = &(m_aJobSkill);$ L8 X4 |% e8 l S7 g* Q4 \& R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 N' t. t( V) z9 B2 K; h! ]) a6 j {4 m' u6 U& N I! K2 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 J4 [7 P1 G% Y0 S4 ~/ ?
if( pSkillProp == NULL )# e1 Z' ?. n; e. ?
continue;
) T9 n+ @9 {' E+ h8 L. C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) @- {; |6 g4 M7 Z' E" E5 U- W continue;
- K) m& l( n$ i2 j* u3 g2 B lpSkill->dwLevel = 5;! S2 G- ]" a: L- s) K3 i' m( x$ A
}
4 D/ @7 Q; c. y* s* q }# q8 }8 C/ u1 n. w
}6 J, Y0 T K9 G8 f8 @
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) @2 t/ A) {' s8 S: b6 [( d0 b if( bGamma )
8 F+ n8 \2 F2 g) R {
0 r7 Z- a7 a( ^% N. `4 K/ m m_nExp1 = 0;
) `5 H& U# X& k3 L# R7 y }/ p' w/ o5 U) @- l; L a1 Q9 ~7 l
) E; v2 w0 h: S( |% Y ( (CUser*)this )->AddSetChangeJob( nJob );, X3 z* }+ x. P* K# C
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; ~( N" D' m1 C# j/ K, Q5 l [# j8 g, C, o7 \9 U1 x Q
. z8 ~+ X& C# a; ^1 R#if __VER >= 11 // __SYS_PLAYER_DATA( d; X2 c0 ^7 X% M( M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! J3 Z2 |" G6 c. {! @0 G#else // __SYS_PLAYER_DATA6 x! y% i8 }2 h7 G1 b) Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 |6 q! c& _, I( Y6 I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* |6 ~0 V3 N# a0 V( H5 a1 A if( m_idGuild != 0 )
7 V. Z. m+ J: u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; X* Q" g9 N, W) C$ c5 r7 g
#endif // __SYS_PLAYER_DATA) [+ ~; s3 P4 B
SetHitPoint( GetMaxHitPoint() );
7 z+ l x2 m) M# `& d SetManaPoint( GetMaxManaPoint() );; O7 r7 Q' E4 P
SetFatiguePoint( GetMaxFatiguePoint() );
. _! {# p* D) L8 ~# S$ O, I6 h, t& ~ if( nJob >= 1 && nJob <= 4 )
# c4 ~/ }$ U" S {
& n- k2 ^- P3 z, t' u5 G m_nStr = m_nSta = m_nDex = m_nInt = 15;1 j/ C2 h8 C# c/ z* I( u: G8 l" @7 b
m_nRemainGP = 28;
f5 p1 X5 h- \6 d- t }
7 e9 c7 o7 F4 m5 j+ l: i" F+ | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" o% D1 o. K: @
{
, C1 z: J8 }+ G. w m_nRemainGP = 118;) V a! R) i2 p" J0 S- h' ?
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* |0 R; t$ \0 l7 [2 s' |* y! `* i m_nStr = m_nSta = m_nDex = m_nInt = 15;8 S/ G, H" L( ]' n d- x
}7 e% x% a/ [' j* R# k6 [/ f
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( ?, r" z/ y. H. H! _1 h% k7 J- H {
. B, y* `$ d2 u) Z" \ CItemElem itemelem;: R7 Z7 i9 [( v/ W
itemelem.m_nItemNum = 1;4 F z5 ] v$ |/ u) `3 }
itemelem.m_bCharged = TRUE;7 m- D2 r; t# v5 [8 w% c
BYTE nID;2 f3 t& U# y! Z3 W% f: Z( \
2 E9 U. C9 \5 I
if( nJob == JOB_MENTALIST_HERO )
+ F) O3 c6 j# x( v! g0 U; x& n itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. f2 M R8 P& m' K if( nJob == JOB_FORCEMASTER_HERO )' a6 d4 ]; L* W* q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 G$ Q/ l8 ^$ [1 b
) @3 e4 ]$ v' w9 I
( ( CUser*)this)->CreateItem( &itemelem, &nID );- q l9 c: V1 S4 J4 r
}9 E6 A4 m7 W% b- q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 b B% Y& s% q4 r9 \4 l
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: j% [( l1 n. A. x
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ H% ?" o/ D+ q9 O( Z& D# F$ v
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 l- e' Z Q4 y2 W* }& ~4 @
( (CUser*)this )->AddTaskBar();*/
9 a0 u& b! `) h% E; E, | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& E- Q# k/ _$ P# e$ ?$ p#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& z- E% P. b, o0 m; B. }& @9 m+ I6 w ((CUser*)this)->CheckHonorStat();7 q6 M% Y$ o* x& [
((CUser*)this)->AddHonorListAck();. o2 H. T. K, N) ^. t& }
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 U+ \) q3 O) ?+ ]) Y: b#endif // __HONORABLE_TITLE // ′Tà?
6 @: R- g# K/ V }$ R ?5 p1 e* e, W
#endif // __WORLDSERVER
8 f! M U2 |8 x6 c}
; t5 i3 d* a W) R8 W4 L0 j, ]! v, M8 f0 N& f, b1 n
然后你进入functextcmd.cpp并添加以下
6 J/ M4 V {, b0 ~& R( w5 y1 |2 V2 T. y5 i6 U
代码:# t/ }2 ~) n$ Z$ W
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 t+ M; y) {3 y/ [0 O/ _9 {下面插入: F$ }% ~+ q! v o7 ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ L$ w% u- q x7 g8 {! X" u' p3 m4 J$ W v: E7 E
然后你去
5 t; t4 [% ~) p4 ^$ k& a7 S/ u C5 s, U: L
代码:
* v" Y4 @0 Z( O7 E, Y" ], @. }代码
( C! b: A% I% q9 q/ f( `/ O; B) ~BOOL TextCmd_ClearPropose( CScanner & s )
6 H3 d3 K6 n9 ]8 S9 W. p1 r{
, N0 P ~- f: k#ifdef __WORLDSERVER. B r% x8 G: E0 F
CUser* pUser = (CUser*)s.dwValue;1 I4 b Y, x- m8 g- M; m+ ~1 V8 ?
g_dpDBClient.SendClearPropose();( _3 n: ]: {5 w! r+ ?
#endif // __WORLDSERVER1 ]; x" e$ ]1 D- Y. N
return TRUE;
- C, v8 o4 n$ z, h5 I' w4 a}/ w6 ~+ u5 [9 |1 b
下面插入
* w6 v0 w' ^' T1 \% U) F PBOOL TextCmd_rebirth( CScanner& scanner )' X! I9 x' i4 r+ z0 y% w$ ^. |
{3 E- D4 b$ H: p/ P8 W1 a' O
#ifdef __WORLDSERVER
; X+ x/ C/ `4 L$ F6 k& BCUser *pUser;' h& M' F! e9 K; p3 U9 L9 i2 s; s
pUser = (CUser*)scanner.dwValue;, v. n5 W; o# z' d: \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 t5 A- P$ a2 \% G G ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' |+ o! J# i/ m/ T
else0 r# \* J/ ~/ S+ `/ X' {- G
pUser->AddText("你还未达到重生条件!");5 [! D+ R0 j4 s9 K) [. m8 ~
#endif
. C, I! ^. z' Rreturn TRUE;. ~. T/ A7 f! q! i0 z
} 6 E2 y# ]2 n0 A% T7 w: D" ^1 e
& E. T( z1 V3 Q! p- P
. l: B; }* W) P; Z; D9 A/ n. R1 K i
/ p9 o6 U- z; P# m+ J" {- k# p$ ^ G
|
|