|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 T1 N* {" ^# K- |
8 | u7 ~) r& o3 ~& o# KMover.h7 _& r( L9 I3 P
代码:
* a. ~/ f, X8 ?6 u5 f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, B4 _# k# r9 a7 o; K0 R0 n
" k# m9 l( d h5 G
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 a' ^9 ], S) R; H/ I
. f) o4 u5 I9 F+ }" l% G2 K2 ?
然后你去mover.cpp添加1 e& {8 j. U+ L' m' X0 W0 | ^* J
8 v5 I7 ~; L: n' U
代码:
$ u/ ~' r9 I: N+ o, q+ E! k& vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 N; N W6 a9 p
{9 g+ L" n/ Y ?: R/ K: A2 M
#ifdef __WORLDSERVER
+ o3 F- \& y2 ^) B; x) B- z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 E' ^, p6 W7 s5 ~
MoverProp* pProp = GetProp();
7 w5 \: U0 W) N# n4 A$ E: O! ] if( pProp )4 n# E( P* ~% B8 ~
{
' ?, ~, y& Y) u2 }0 } if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ N5 e2 }& Y, H8 i7 a
{- ]; Z% J2 z* n. e; H( s
AddChangeJob( nJob );
7 ~! f6 `# Q$ z, c8 v }else{+ ~8 L( r% d; U
return;
: n' o5 I6 M( ~; i& s3 U9 ?% F }3 c+ U; S9 C5 y# ]3 \$ d
int nPoint = 0;1 p: `: l( @# S' h( \- R+ `! X
if( m_nJob == JOB_MERCENARY )
/ b& i" [; v/ G9 Z/ s& Z6 d nPoint += 40;! N% b& |3 Z, q- T- T& @ S
else if( m_nJob == JOB_ACROBAT )
7 {: v1 P1 {# z0 ?& ^) O* p nPoint += 50;
+ M3 W6 W$ {# c' w; j else if( m_nJob == JOB_ASSIST )! J) P; z v- d+ ~/ u
nPoint += 60;& Y& X/ j, S) c& H$ e. S6 j5 t
else if( m_nJob == JOB_MAGICIAN )
4 W! [8 M% b. P% x nPoint += 90;. c# }$ I% n+ D; P- a& D5 w# h
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( G# Y* v; y9 Q+ q+ R
nPoint += 120;; c m& x4 a- W' f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 [7 J. U' w& v5 K( Y# D3 Y
nPoint += 150;1 o2 O3 s X0 I5 l% V
else if( m_nJob == JOB_RINGMASTER )
1 c' W% ?6 o7 t& D' V nPoint += 160;
6 L& G) `( Y7 D' t1 j- S# U' R O else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ M# D! j0 F) T8 { nPoint += 180;, L+ E( J' o( U& W
else if( m_nJob == JOB_ELEMENTOR )( s8 m! X: K( R8 m6 _1 G* a7 O
nPoint += 390;6 {# u/ Z8 I: L3 I! V* e
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( W' [9 h# c& p3 P# K# s3 `% U1 V nPoint += 120;
7 ^, h8 q5 f( ]1 T3 v9 K. P6 ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 o: T. G7 {5 ~( J; m9 ]% }. z4 P
nPoint += 150;
1 y. z+ T5 o s: n! I* ~ else if( nJob == JOB_FLORIST_HERO )
5 F7 {/ _, @$ A( a nPoint += 160;& u5 Z! x- r* O" q7 I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! }9 m' g4 ~. h* x. t$ ]$ Y7 ^
nPoint += 180;+ q$ G' i1 [3 t" x& C( b
else if( nJob == JOB_ELEMENTORLORD_HERO )8 b$ L- Q' N6 Q% `3 Y& _
nPoint += 390;
. ]* x, H0 b% R( q5 K! X! _
, A& x8 n9 [+ g AddSkillPoint( nPoint );/ _/ y# p2 m* [- Y4 D7 A1 j
m_nLevel = nLevel;5 X2 r, s1 \, Q- U5 e; x! ^ c
% U- X% s9 l- f' O7 B. g
SetJobLevel( nLevel, nJob );1 E, \ _, D* w% L) O
m_nDeathLevel = nLevel;
+ R6 n0 |8 E1 ^* @! u M. i/ k#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# b6 |, s$ w* w) b2 h
if(IsMaster())
3 ~/ R# w( _2 J' B6 q# \. y {9 _* d, N4 z3 k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ m) A& W2 @' Q( O if( nLevel > 59 && nLevel < 72 )' v: R: e! E" H# {5 `: U
dwTmpSkLevel = 1;7 W- z6 }* e/ J% R
else if( nLevel > 71 && nLevel < 84 )
$ X8 x! b( {! L; P9 k7 y. N dwTmpSkLevel = 2;( x) i. h5 w M
else if( nLevel > 83 && nLevel < 96 )% w1 D1 Y7 e( g1 s7 f
dwTmpSkLevel = 3;
% d/ r" ?' s4 ?! H% U' c5 ~ else if( nLevel > 95 && nLevel < 108 )
5 ^4 I X# f8 |& G) s0 |6 F# f+ E* m dwTmpSkLevel = 4;( H$ K5 i, }& o3 }$ A, p7 L: A: t
else if( nLevel > 107 && nLevel < 120 )
$ j/ j# B ~& W7 E i; P3 Z dwTmpSkLevel = 5;
# y' [! ?) F2 a for( int i = 0; i < MAX_SKILL_JOB; i++ )
* s Q8 @5 ?, V% c: l { 2 c" }+ b& R9 f- u H
LPSKILL lpSkill = &(m_aJobSkill);6 q$ [) d# E. K3 F7 {0 O% m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& y7 v* L6 o1 _! I x6 e {& a- [% b! E( v) S* H2 @) n" a a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 x* e# W/ A1 _/ M: O8 {8 m if( pSkillProp == NULL )' h* ~0 l n% K
continue;! _9 r9 p0 v N7 X" S% |' v- ~4 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, r& R% x$ M& I( i% A. G7 `- R0 V: R continue;
; r/ n0 _% J1 j) ]8 W. K lpSkill->dwLevel = dwTmpSkLevel;
& Q# U6 y* s5 n% K6 Q6 g! X6 ] }' T6 ?& {5 C3 x3 W2 ^# v
}
2 @7 }/ D4 W: G/ [1 _. i: n }
' l) A% G H& N) a2 g9 M9 ] else if(IsHero())
! ]: v* u( l3 ` {
" M/ u6 J& W! @6 W! d4 Q0 c8 M8 e7 d for( int i = 0; i < MAX_SKILL_JOB; i++ )
& Q$ h% S0 u& ?& ]$ k { * U* t! j4 O! @- N
LPSKILL lpSkill = &(m_aJobSkill);
- a% Q2 @4 L/ a- i6 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 o# g$ ~" r8 h3 V {5 n+ V1 f: f. r; }& Y" `* J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' c8 d. h% e! X* a9 d if( pSkillProp == NULL )
) ^, S/ F1 f( L! T: R1 } continue;
# M' s, D2 B. G$ @' C# i5 z0 [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 y& C1 u. @5 O; m2 k5 W N4 r continue;
, r; p1 z0 j8 y lpSkill->dwLevel = 5;6 l- l! k6 z; p0 M" s
}
0 b/ A, O3 _2 e! U$ k4 i }5 a# r5 @3 k4 K; ~
}; [& ^& D/ C- u" Z. v1 c
else if(IsLegendHero())8 C1 Z; Z9 i4 F% X8 x1 {: s- Q" s7 d
{
- _$ v) h/ A$ h) Y2 |+ O for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 B( j: |! s- W. W {
6 c. h' ^& K! k7 }- z, g LPSKILL lpSkill = &(m_aJobSkill);
|: E5 v8 O/ F( X$ f$ M if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 u5 v! D3 Q5 R" I2 ` {4 [: P8 f+ P O2 c1 m9 ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 a+ H( X% o! q) s/ o% e! X! u if( pSkillProp == NULL )" s) g! G' z5 Q1 V. I/ M
continue;
" p# |& e- M) i, M; O$ [6 C2 X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* c6 q2 W5 c1 d. O
continue;
4 h5 g) f# B' L7 ]! M9 s6 z9 q( s lpSkill->dwLevel = 5;
- p8 y' ^. a3 X9 z2 |* O }8 }+ Q" i, O1 ]' ^1 w& v
}% n n4 O2 E6 D; d( C
}) t5 o* f8 w' z: F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 x. f9 R9 B$ T. F/ l! h
if( bGamma )+ n0 \: ]/ ~$ G e$ {0 {1 h9 S
{2 R! N( X' g H3 h* i/ H0 ]( T
m_nExp1 = 0;* m8 P3 g9 i* r# ?* b
}
5 i e2 _2 f1 F" R) t
% J C7 a K* D! l, B" N; O ( (CUser*)this )->AddSetChangeJob( nJob );$ e* k+ ?# i) _" [3 H6 }3 k5 ^4 f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' T- A. ^1 B. L; y4 }
; a5 c: Y- s# {
F* D8 M% M* c, o" t#if __VER >= 11 // __SYS_PLAYER_DATA0 Q/ m$ b2 D, W' v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ Y: U |2 O2 y! D& \) {
#else // __SYS_PLAYER_DATA0 X9 u# X0 `: l- y
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 h( M8 N# L2 l- E9 D: W# [3 y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( \0 W$ I! K _ if( m_idGuild != 0 )5 Q& b* u- D8 A$ s; z5 r
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. _+ A, S8 j6 [. W1 j' Y: N, Q/ p#endif // __SYS_PLAYER_DATA
, h' y# W7 \ z$ J" H4 I* `- ^2 Q SetHitPoint( GetMaxHitPoint() );* F: x! ~8 j/ C% u2 W
SetManaPoint( GetMaxManaPoint() );
8 _' q. }; s V6 o( | SetFatiguePoint( GetMaxFatiguePoint() );) G; [* V& s1 y c
if( nJob >= 1 && nJob <= 4 )
: \5 B$ W' h: L9 i {& U7 k2 Z% H" W4 Y4 G! P: j
m_nStr = m_nSta = m_nDex = m_nInt = 15;* D- m# Z- q0 g$ B, H
m_nRemainGP = 28;
0 W8 N8 ~5 U7 j( ]( R. g }( M1 F- C' j% W" ~
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 d7 Q/ R* o* i& }- U2 J
{
2 k1 h- |4 X5 q4 a( B( y m_nRemainGP = 118;$ c8 \+ g: ~7 C6 N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- G' N$ q, T! ^; V4 r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ ^% c* w! i0 M2 k6 L2 M: g }
8 g0 }. c; u, \; R6 s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* C/ W# k' |' A' N! p {/ X* G. M, q/ A& h3 O! Q6 ?
CItemElem itemelem;; E _# q, p. [. ]* r
itemelem.m_nItemNum = 1;$ ~$ A0 g' E6 S! C
itemelem.m_bCharged = TRUE;1 M# T. |$ B5 t
BYTE nID;
, r w+ b9 W U7 B$ n) r# v, }" D: O3 u; s, G2 I
if( nJob == JOB_MENTALIST_HERO )
0 i( \7 n% L% i$ V4 I; s n5 m- l itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ f+ K+ E' L2 f8 l
if( nJob == JOB_FORCEMASTER_HERO ): n+ y3 E% H0 W6 w' e! @! x, ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, n0 Z( G1 l% C# \& h, ^9 r/ [
2 }% Q0 Q9 p+ o" D6 [7 C ( ( CUser*)this)->CreateItem( &itemelem, &nID );3 q6 v6 z D- U; t
}
; u, X5 W3 K, m5 e7 O2 F* b g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 t2 l2 S X! t9 a3 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! B, U4 W. @' m+ \, I ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ h6 z# k4 D) r% p" U, A /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: x$ q% J) j& j" N# T. z r2 `
( (CUser*)this )->AddTaskBar();*/
' h" n1 s5 M9 ]; y4 Y! y/ [ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- j9 i2 u( d, H. Q; |' P7 I#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, |, t0 [2 y; C' t5 e- B
((CUser*)this)->CheckHonorStat();
( @. E" j& A2 v1 Z ((CUser*)this)->AddHonorListAck();" T) Z5 @8 @+ u+ n; i1 B
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ Y" Q# g* J: }+ G#endif // __HONORABLE_TITLE // ′Tà?
Q" v3 `* s4 Z4 ~5 j2 P0 B7 N, c+ w }
: l, R. Z$ [( b8 j$ i7 x#endif // __WORLDSERVER5 C) ^1 z. e0 ~' {/ K8 ]8 S7 t$ j
}
; H- h8 h* e% b$ i& o. g2 g
1 b' k3 T3 o; z; c然后你进入functextcmd.cpp并添加以下, U ^2 d. N! t" _9 p
( j$ A; C( `7 S5 M0 Y& p. f代码:
6 F, d# Z* a# ~8 y9 u {+ ^, D. u# sON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ l+ x( S. k: _( e2 A下面插入5 ^+ w. g% A' c/ Y% s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , _+ x% z8 C3 T
0 G7 ^% u/ l" o' N* c- Q e
然后你去# F- Y4 D/ p3 o
( G0 Z# c: D1 ^
代码:" R* i, e3 A2 k, N& `* N
代码2 ?+ l# G0 O/ i) ]9 j% j
BOOL TextCmd_ClearPropose( CScanner & s )
7 u4 p- Q2 M" d! G: e8 C R{! p& q( c8 E/ \0 {8 |5 G% _
#ifdef __WORLDSERVER; ]( m) i0 J* N
CUser* pUser = (CUser*)s.dwValue;- _" @% g# ~" S4 v2 L: H
g_dpDBClient.SendClearPropose();6 q; s! |; B7 I! i+ W
#endif // __WORLDSERVER6 n1 s7 L0 H* G3 r: N9 l. m
return TRUE;3 F8 ^7 r( _5 S
}7 r' Q, @* I4 F. F* }: `
下面插入
3 \* U, X4 Q* |8 _2 oBOOL TextCmd_rebirth( CScanner& scanner )
4 C% @) R3 I7 G0 B, P4 k{0 }: U4 b- z& e' v% ^" a8 L( @3 i
#ifdef __WORLDSERVER* T. f) x* J) w; [7 H( ]
CUser *pUser;& P/ k$ X- a! X: J1 \* |' j) E
pUser = (CUser*)scanner.dwValue;" _7 T( ^% \2 X, d2 C8 C2 P! N
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. }& m0 D2 M: P ^- m' |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, n' k4 k% \$ A; l3 w F# P$ E' telse
/ c2 p/ D5 ?0 @$ ~pUser->AddText("你还未达到重生条件!");/ P9 n" P2 b9 ]# b" Q- o
#endif' u# l- `; x! l: I; U* e
return TRUE;
; m, B. m0 U+ |# x4 }# }9 F6 f3 K} % A6 _: b% c6 s: y" l [$ b
- Z5 [% W7 {- a3 \3 w0 t# U. T9 j1 v2 T- |$ K) w
- R# ]2 @! J/ A, g! Y8 X
$ ~7 l! x+ A* r! W6 g3 c5 A |
|