|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% J9 l9 W) Q" ` ~3 \
+ Q4 m, e. }0 n8 v* C6 U& R" nMover.h$ C5 E$ C7 b0 y+ z$ F/ X3 _. ^
代码:! {6 n- C% ]) g. w4 C3 C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ j; E% E6 Z+ L, r* Q, w* r
& I2 b! P' Z. E% r* K
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 b/ r7 E) B4 T8 F% I# @
3 s$ v3 u# s$ e然后你去mover.cpp添加8 C, }7 w2 Y5 p b2 J( N
2 ~* j6 D! ^1 S# b. m
代码:) r- g' V) }7 o' S" F0 g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% k A1 @% E# G
{8 u- z0 f1 c! [5 W1 J. x
#ifdef __WORLDSERVER
6 G. `8 b3 b& U# k( K' q7 D- V1 F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; ~0 `! r8 U+ r0 E
MoverProp* pProp = GetProp();
6 p" y' q3 a V' G if( pProp )
5 h2 E8 l$ r2 [/ V3 U, C& t {
& U( `4 E, c3 Y if( nJob > 0 && nJob < MAX_LEGEND_HERO ) s2 m. \ v7 A. k l! i
{
; k. [' l+ O' O4 r: k AddChangeJob( nJob );
- d' ^9 R' ~, Q6 S% i/ J7 J }else{9 L# v& H- Q( P/ ?, T6 ]
return;4 `+ y: U! k5 N4 G4 @) ~ q( O; |
}0 X8 G+ u D% X& q, I/ {% G1 P
int nPoint = 0;
1 U) `$ ^" X ~8 a' @ if( m_nJob == JOB_MERCENARY )+ i, u; A8 G, P& u' u/ d5 d* ~' I9 z
nPoint += 40;
- ~, O) Z3 `* E else if( m_nJob == JOB_ACROBAT )
; U* f, `' O$ ?2 _* _9 u/ i } nPoint += 50;3 ? x' R3 f' x) ]
else if( m_nJob == JOB_ASSIST ); M/ B. O; _# x
nPoint += 60;* q9 f: @( ?% B5 v q N. O
else if( m_nJob == JOB_MAGICIAN )6 ^* B9 C8 r9 \. a! k% [
nPoint += 90; f# z/ ?7 G/ o$ x: _+ v
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ `; c1 @+ A3 l) X1 _$ X
nPoint += 120;
d2 P: {2 |: ]: K' y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 }$ O; a& M" q( W% @5 b! c/ W nPoint += 150;- @( A" L6 B5 c, ?
else if( m_nJob == JOB_RINGMASTER )
% ?- v3 X! s' d L nPoint += 160;
9 }8 i9 J" y L+ Y8 @& S3 p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( U* V- N0 J; k/ ~, D
nPoint += 180;
" h0 n7 R( b- I/ P' x else if( m_nJob == JOB_ELEMENTOR )# b- i4 J! H3 S
nPoint += 390;
* Y7 t7 L" ]# Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) W' u% K7 i( _5 c
nPoint += 120;
" ~5 U. j B x% g8 ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
. Q! P( ~3 Y4 O' j$ d: P0 o nPoint += 150;
# D+ s* ?) G h0 x else if( nJob == JOB_FLORIST_HERO )
# \9 `4 V5 V" p' y# E8 U nPoint += 160;
; p; N& v3 y$ L: @6 s1 c' N else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ c2 ^. Q) \9 J& l7 O7 s
nPoint += 180;3 K4 K" ?* F+ W; B9 W% j7 }: A# \/ ~
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 E9 L* U+ z; m9 h) ^" f nPoint += 390;
& F4 }9 a3 m6 {5 g
+ S: J8 G' h+ n9 B7 Q AddSkillPoint( nPoint );
6 W( d$ r# K8 U& T" A. I m_nLevel = nLevel;( c! G+ C l% y9 t' A. ~' Q
/ U& i m* i4 ]+ { SetJobLevel( nLevel, nJob );
- J! U) y' }9 [ m_nDeathLevel = nLevel;
0 W! K! Q' T6 Z" B; u9 B( W#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* E( U% U( O- ^6 {; p! U" T
if(IsMaster())% D1 }7 }3 \1 r6 C& W; [4 g
{) ^' |3 j- G2 @( g1 J
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 m& X" u9 L& [ if( nLevel > 59 && nLevel < 72 )
' V+ f9 c( P7 _; B5 L dwTmpSkLevel = 1;
; R. w4 s& b$ }( F' V& \% V3 u else if( nLevel > 71 && nLevel < 84 )
" l9 y5 @1 y: N6 g/ b dwTmpSkLevel = 2;
; h& K/ z2 {; Y+ @" I; ]7 C else if( nLevel > 83 && nLevel < 96 )2 B. C4 Y" I: w' s4 A0 {
dwTmpSkLevel = 3;
, u4 ^' [4 k' } else if( nLevel > 95 && nLevel < 108 )
6 B b; V. C9 U7 T9 M2 `2 o9 ` dwTmpSkLevel = 4;7 X# _' W% [- p) y& s9 |; H
else if( nLevel > 107 && nLevel < 120 )
" Y" y c+ j6 M* n- s5 W( b6 _/ S dwTmpSkLevel = 5;; { i$ r& p3 s- e: N+ Z3 M, ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! I; o$ \) X* H1 q+ _ { # ~9 `% Y2 [; y- [7 |- m2 T' A0 h
LPSKILL lpSkill = &(m_aJobSkill);9 e$ y4 V' L1 H
if( lpSkill && lpSkill->dwSkill != NULL_ID )% V* g8 V3 g8 D$ U2 u: z
{
+ x9 H5 g0 W- h: m' d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% W d' C5 I# }% y) O# s if( pSkillProp == NULL )
9 z; V; S: V, A+ V7 V continue;
% n# ~6 j8 D* L1 E if( pSkillProp->dwItemKind1 != JTYPE_MASTER): o6 |6 C5 k" \# T
continue;
9 R0 X! |( M8 S% h! @ lpSkill->dwLevel = dwTmpSkLevel;
$ @4 r2 ~2 Q. T4 P }
* K! y. z/ n, g1 ~. y4 h' }+ l' K K }8 U v7 b# Y( h/ ]$ ]" L! V
}
K% ? P7 Q# [& t( S5 [: m" [ else if(IsHero())1 a! P; }! U- w+ {7 `, n( ]6 n
{( {: S8 a8 [) B6 l0 i7 d' b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 N. G9 ]* F. M" Z( J- e) r { - [. i3 m+ b# c& c& k/ A
LPSKILL lpSkill = &(m_aJobSkill);
% e: Z5 m3 |: ?9 R8 L3 S if( lpSkill && lpSkill->dwSkill != NULL_ID )
Q5 c0 ]3 Z! W8 [& _+ @, F' { {
( T. e1 l6 Y! j p: N4 h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * G8 O0 E7 y3 {. u
if( pSkillProp == NULL )8 D; J9 d6 L# Y Z. M6 k
continue;
. K: l! ?! O4 } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ Q f p- s! H) Y3 N9 ~ continue;
/ {( V2 m) Y4 L! K0 D2 ~1 V8 }& p lpSkill->dwLevel = 5;
: M; P S! P7 c }+ P7 n1 `- s' ^* Q
}0 q0 d- c( I5 N. W, I2 n
}$ H! T9 C1 ^/ C* V- j2 d$ K j
else if(IsLegendHero())
( M2 @ G) K+ @! J9 Z {, h2 s/ \8 F4 ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- C- B% ^5 I, | d2 K8 j- W {
1 }0 b# M g H' F% k LPSKILL lpSkill = &(m_aJobSkill);: ]* s6 Y# D' I" C! h, @
if( lpSkill && lpSkill->dwSkill != NULL_ID ) w$ K7 f3 O9 A0 u0 W: S
{
6 g" _- x$ _# f8 |& b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: b7 P* d! O1 u+ c, L* N if( pSkillProp == NULL )
3 w, e0 m, Z* |! ^ continue;
3 o0 x- h; u$ S9 a; o$ `2 `3 i- L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ g: O2 U. {. }/ W; q1 h: R continue;
# o# w0 R7 i. } lpSkill->dwLevel = 5;& x, e! S5 H- F1 G- o
}( f' M& C% o2 L9 m1 s4 A, A: P: \
}
% w$ k5 U) Q; S9 W8 x& @: @( D; V }
7 m( R+ ^9 |6 p R) G* H#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; W$ e% F$ O3 W* e, O if( bGamma ); R C( y+ f0 U" C
{
+ A: \2 K! {) M# F8 M* I m_nExp1 = 0;6 N5 d$ V, P* l" p. F+ l
}( s. n6 N. n# a4 ~6 q1 H s
8 q' _# S6 W# w0 s2 k+ ?
( (CUser*)this )->AddSetChangeJob( nJob );
, m) A' l( w8 e" k9 } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* ~, @/ m: o4 k6 K, Z
7 F/ Z i: n+ _! j* s: c
, o& N9 P# ]5 f) t1 @#if __VER >= 11 // __SYS_PLAYER_DATA
) i# v2 n* h4 r N; P9 c6 G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 L2 L( D6 n9 ?#else // __SYS_PLAYER_DATA
5 m6 ^2 O+ P- X2 I4 A) M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( r9 X0 O3 n3 }+ b, b% C; t: F% q) U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 `( O( A% d# X8 ]0 U0 g if( m_idGuild != 0 )
8 v( x1 M( O$ z+ m3 ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 y4 x# W( }5 `9 y& S6 q: _#endif // __SYS_PLAYER_DATA
: }4 x6 x8 a2 R SetHitPoint( GetMaxHitPoint() );& L' d) T# H3 T( A/ h& {4 v8 r
SetManaPoint( GetMaxManaPoint() );
. J! Q( H8 u* V$ P* ^3 _ SetFatiguePoint( GetMaxFatiguePoint() );5 D$ J* Q" P; v/ A/ N5 F
if( nJob >= 1 && nJob <= 4 )
+ t) T- I! m& I9 w+ f; V2 @ n {" ]* X, s0 Q1 t
m_nStr = m_nSta = m_nDex = m_nInt = 15;* q6 F. M, M5 D3 U
m_nRemainGP = 28;
) e ?. t5 l3 h# L% f }$ r- ]* t+ p$ }! A" q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ Z* A% r s o0 C3 _7 e' \ M. x; m2 o
{
( y& Z/ k/ x6 ] m_nRemainGP = 118;
4 h3 [& I! Q; C& T, A' P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% r0 m; i3 g I% f+ |1 v- @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 b- h1 H& S* E2 F" g }$ p. O' u+ `0 f/ K9 f4 N
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 H( N: F" C: C/ P: b {
" `( K: ^$ ^, z9 H" O0 i CItemElem itemelem;, [/ }. E( v3 v; ]/ h5 m$ E( {
itemelem.m_nItemNum = 1;) Y" u( U0 R: M( h6 C; j3 R
itemelem.m_bCharged = TRUE;
( i0 W. ?8 N) P0 F, y! c BYTE nID; _; q4 D7 N8 S. v. `1 U0 p0 U
/ z4 w$ q9 Y3 T9 _ if( nJob == JOB_MENTALIST_HERO )8 Q4 L0 I) a( u, b. @2 `
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ I, w' x( R1 l) l; F
if( nJob == JOB_FORCEMASTER_HERO ), O7 h: T- ^% B1 O( n" h+ ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; d6 `0 v$ `# E P+ p+ Y# `' J2 l1 i4 G8 m* @
( ( CUser*)this)->CreateItem( &itemelem, &nID );: `( j& y8 Y: T4 I$ I1 w
}
* F7 [" a2 G, n) R4 `# N g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ m( l8 G3 r" v; J: V, }* i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 ~" s0 n, y: E, r2 V( o# ^) D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 S- c. i' s+ h; M7 R: ~: y: [ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! S* R, Y0 X3 [( n6 `' {9 b8 R
( (CUser*)this )->AddTaskBar();*/
/ V. A U, V, c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 a( r5 C# A! [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 i; Y$ n5 g, G! g
((CUser*)this)->CheckHonorStat();: L2 Z- a9 G4 `% e6 M
((CUser*)this)->AddHonorListAck();) e! S* P8 A1 c" N5 O5 Y4 c9 m. s+ r
g_UserMng.AddHonorTitleChange( this, m_nHonor);( ~$ I& s( B* I8 a" Q9 V% p" L- [4 @
#endif // __HONORABLE_TITLE // ′Tà?
4 s) }. p2 ` `5 [ }
' i7 W% R- X, m5 a3 U% b& \6 G#endif // __WORLDSERVER) U+ a, v) G. S4 r5 ^1 t
}
/ a+ [5 P/ j- ~+ D0 Q0 p! |) }! [6 O. Y* ?, W" j$ C# j7 b
然后你进入functextcmd.cpp并添加以下$ O+ P- O1 _; A r' G! Y3 I" ?: S" g
4 B2 l: I: I9 ~+ w0 q. j
代码:7 S) N* Q' u3 J! z7 F0 B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 S4 {4 X" z9 e/ H$ Z! O
下面插入" h7 r0 m( C! v0 f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 e2 |& O1 [* g3 E
: W$ D% r$ o: N) j$ H
然后你去- L: f% w! a- p6 k* S
/ k! w1 j# C6 B7 U3 B代码:) c$ F/ v( K, g+ h6 A `4 i8 }( H
代码
: c/ [( u- N' hBOOL TextCmd_ClearPropose( CScanner & s )' \# V9 n, S% G% J5 }9 I
{
3 O7 |- |4 z' o% ]6 w# Z; R#ifdef __WORLDSERVER
' K1 w6 j2 V) i3 d {) S CUser* pUser = (CUser*)s.dwValue;+ \ q, p) Q+ `$ F
g_dpDBClient.SendClearPropose();
# \3 C: x) r+ ^0 ]" [#endif // __WORLDSERVER* I9 g8 v" w$ p
return TRUE;
2 d- U: t, H" ]2 _}. o3 Z3 ]# ]) r0 e, B* ^6 U
下面插入
6 c: u$ ^6 {3 l8 E1 mBOOL TextCmd_rebirth( CScanner& scanner )
; O% m- k' D( }2 ~- v; V) ^2 ~{
6 i$ @8 \# D- J; T2 A j7 h4 U2 { h#ifdef __WORLDSERVER
( T; Y* e/ @. i3 b1 g' i% nCUser *pUser;
/ e; p/ `7 H; e% gpUser = (CUser*)scanner.dwValue; ]7 E* M) y3 i: b I5 U
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) n3 ]+ f/ R P4 s G! opUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 d& w. w8 l9 O6 `9 yelse
0 R( _8 b. X2 @* ?8 HpUser->AddText("你还未达到重生条件!");3 n; T. @6 s3 n8 L" K. c
#endif
9 U+ \" s. q0 D( a6 zreturn TRUE;4 F) ^9 n+ _' w0 x. _/ U# F
}
) P( s$ @8 L" z+ h& e# i5 B0 S0 y, _/ i
8 N+ g! q. b9 `( u, N* X" e! C* {5 \% ~1 l
( k* V0 o8 }# c; @0 E3 L |
|