|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 O- t+ T( \0 n
( G9 `3 X# S& bMover.h2 N$ l1 ]0 s% F# E) Y# }
代码:' Y( Y. R" F5 v5 v% g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' `+ }! u2 h" v3 Z3 Y$ O @
; a3 f# _' H' k% X2 a下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 R" w# A% n. x. F# p1 I
% M# ]. I* G3 m' T然后你去mover.cpp添加) Q( o; k' n1 [; U' Y
: J3 P$ D. ?$ \ J, ^2 x2 v代码:
" o+ A" ?0 L$ H: c. p7 |/ P$ i3 t! Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ |' q; R3 q9 X; |& N: r
{9 ^, g$ x5 i& E3 _( H5 q: |
#ifdef __WORLDSERVER; j2 M# L( f' u N5 T, y$ ]/ E
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, i' @+ T9 s) U* w% |( h MoverProp* pProp = GetProp();
5 N2 I! w e! a7 r, C if( pProp )) M8 z5 z" d- ~/ `" S
{0 [9 t: Z+ y- c7 k1 r1 h0 e
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 E$ ~' _0 a, S# G {
! R# l P7 R$ y- o AddChangeJob( nJob );
1 R5 |3 s5 k0 U7 ?. e }else{
4 |( p$ H4 l* ^$ t return;9 \( l( l( f0 K! c3 q" c/ E4 n1 K
}/ u+ Z% C; Y& ~3 K3 K
int nPoint = 0;
* j1 k; `, I0 i# a if( m_nJob == JOB_MERCENARY )
+ K4 ~5 ~) |. k3 a/ P8 j" `3 t nPoint += 40;
1 t' D4 C8 l+ f" j& b6 |/ N$ V+ q else if( m_nJob == JOB_ACROBAT ) G c* v7 Z& V% g
nPoint += 50;
* J$ P# S/ I1 H9 T else if( m_nJob == JOB_ASSIST )* }6 i0 l& e9 B; z6 O0 u/ O
nPoint += 60;9 w4 E3 [+ ?! q5 J
else if( m_nJob == JOB_MAGICIAN )+ n0 j# z. p% Y9 l
nPoint += 90;- Z; k; }: }; v# i- I7 |7 F4 U
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! A0 f2 [+ R% X7 h. h
nPoint += 120;! O" L a! w' U6 M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 R) }( k) [) j
nPoint += 150;
( J/ @) m+ t3 l* T5 W) y. C- q else if( m_nJob == JOB_RINGMASTER )
) _( C/ d0 B3 g1 M' ^6 b nPoint += 160;* c* f3 W W9 w- p/ h* E1 s$ l# z9 |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) q3 M2 t% a1 Q/ K' g" J
nPoint += 180;6 O! R" J5 }% }
else if( m_nJob == JOB_ELEMENTOR )
8 V! c1 G- \5 S7 }6 b nPoint += 390;
5 y9 i8 T" ?/ L) j( I1 j8 a else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 b+ v8 \+ k2 o4 e3 T nPoint += 120;
1 k8 c8 D7 q, x0 ` I9 w4 q, q else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ T+ J$ K! ]8 c! o8 s7 A nPoint += 150;
' }, R! g) l: ]$ G else if( nJob == JOB_FLORIST_HERO )
. g% H' W0 r8 ~# ^ nPoint += 160;
1 m. W* q7 s$ s. R4 l J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 C3 ~/ ?5 Z a+ f# K* J* a) u
nPoint += 180;; B+ t# q1 y" X. Z V
else if( nJob == JOB_ELEMENTORLORD_HERO )7 p4 n; m: ^' o5 B
nPoint += 390;
. U# J0 y7 ?) s
5 s d# w1 ^2 u# b0 ?' s AddSkillPoint( nPoint );% M3 a; j. {3 K! D
m_nLevel = nLevel;
0 y% l4 ]* j5 m; {, }( j+ A/ P& t9 q4 q1 e
SetJobLevel( nLevel, nJob );" s$ \4 C2 ^0 u+ |- X& d
m_nDeathLevel = nLevel;
8 w4 }0 n8 M6 y3 _& ^+ _#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; H7 T4 h1 |. m: Z5 S( g
if(IsMaster())
' A0 v% s: m* O# r {
& ]2 E; b2 P4 o6 q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: k' ^0 z' @4 ]& [ if( nLevel > 59 && nLevel < 72 ). w7 i8 |6 i8 G
dwTmpSkLevel = 1;
( k F$ K. D' a5 g. E else if( nLevel > 71 && nLevel < 84 )( J! C" [4 B; k/ w" \/ f! `. }/ w
dwTmpSkLevel = 2;
3 v& W5 x9 p; l; D( Y$ I else if( nLevel > 83 && nLevel < 96 )
# n4 {1 |$ o+ M9 n3 r dwTmpSkLevel = 3;
+ W* v! p8 O4 L6 i else if( nLevel > 95 && nLevel < 108 )6 O1 f) y0 Z0 r9 \1 F
dwTmpSkLevel = 4;
; n* R/ l K& Z/ p, r9 ] else if( nLevel > 107 && nLevel < 120 )4 g6 f0 F& A9 h' z& a2 I: d
dwTmpSkLevel = 5;
6 F$ J" z6 w& J: W; }1 p0 c& z4 U$ u for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 D' K. ^" b/ D
{ : v. T f b" b" b. n7 M7 N
LPSKILL lpSkill = &(m_aJobSkill);
5 @2 G4 x" Y5 O- ~% M! g8 F+ k0 H if( lpSkill && lpSkill->dwSkill != NULL_ID )' C3 L- B: ^* e1 t8 H
{) c. J' S5 z% p* z. C/ X+ D9 S4 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. b1 `4 s* H {5 } if( pSkillProp == NULL )
+ ^7 `6 s, I+ A. j; u continue;
$ ^* P7 h( V) \0 H* G' O- x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 m* j( E v9 @# K! G* ?
continue;) y( w/ l2 i/ }6 N8 l7 H+ J+ m' Z3 Y+ `
lpSkill->dwLevel = dwTmpSkLevel;6 c, S5 V6 h' z6 H7 _" R+ q
}
/ g0 S2 v3 R9 _9 g% Q }
$ F: \8 j7 w* f( k/ z; s$ v }
c3 e! T% f& V5 z* j, F else if(IsHero())
% \7 V. {8 ~1 o' p {5 K2 V) ~4 @$ _5 y1 w i* K. C
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 j6 K7 P1 W( ?/ b
{
' U" J- o, A8 r- Q4 [ LPSKILL lpSkill = &(m_aJobSkill);6 a% }: _7 y- O! ?1 l0 w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% E4 w5 r5 r+ o {
8 s, l- Z" a4 N) I0 ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 g- y" D0 V4 C7 [7 B _
if( pSkillProp == NULL )
" w1 @% H' h. v. @) F; q( T. s continue;* ]# l0 `& E; m. W% ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! B, g/ G' C! h2 |, A- I
continue;
) e. c0 y" V) O& V8 L& x# z' G: V lpSkill->dwLevel = 5;% T! T& W4 y, q$ A& B5 M: }0 T1 D9 p
}
: v2 P- P6 y( x }
/ g; X9 A9 \; V! Y0 F5 D' O4 d }
" O* X/ Z1 [0 _2 H' o7 f- k3 V5 K else if(IsLegendHero())* j# K3 Y2 B& I; q' M. I$ \6 I
{
) c! w- T! F) O9 c3 j/ e# s% d for( int i = 0; i < MAX_SKILL_JOB; i++ ) # Z. y' T1 a3 g, s: A
{
6 F0 n6 h W' [ c0 [; a LPSKILL lpSkill = &(m_aJobSkill);; y& m/ K n3 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) D2 |4 Z% A0 l8 h0 i" Y {5 V& |; y, _/ l0 w9 q6 r. |" ?* i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : z8 v! p v9 K, L! p6 [8 E
if( pSkillProp == NULL )1 N& Y( ] ]* }, ^$ c
continue;7 m+ c' a0 J, ^- f7 H2 _4 o6 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 Z7 f! i* L) B! A) ^+ e continue;; f9 J6 v6 I+ g! H1 f5 I% E
lpSkill->dwLevel = 5;" T6 X" Y( r8 d; i; a9 z
}4 R5 V" @$ t& q( f' ^3 e7 g
}2 Q' L" B _6 k3 Y \ w
}5 A8 t) N/ [6 X' C s
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 m, C6 b3 M1 H if( bGamma )
7 d1 B; } c% d8 o5 B- U7 U {1 r/ N& h, d W J3 W
m_nExp1 = 0;
9 ?0 _1 P4 {7 m4 i }
8 l/ `- j* `' W/ O3 e& D3 G' f6 z! |1 t$ T4 q
( (CUser*)this )->AddSetChangeJob( nJob );
5 D! s; @$ L7 R! ?0 @9 @: z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 F/ P7 H7 n- O
I) ^: R3 h; n9 }: D% ?. }' O5 D$ w* b; _# Q% m
#if __VER >= 11 // __SYS_PLAYER_DATA
5 T, R" V; W0 c! ]) m4 ? g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) \& K$ H. U' ~#else // __SYS_PLAYER_DATA( S e4 W# W! D5 R; n+ S- v
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: ?( b6 ~# t( T8 _% e g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 \3 V- u8 b. z3 B if( m_idGuild != 0 )2 n: \, ]. V7 B8 z' A3 p# u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) M* G- a. H* R- Y% _" ^5 Q" C
#endif // __SYS_PLAYER_DATA
7 e Z4 d$ R/ j6 e+ e1 N6 c SetHitPoint( GetMaxHitPoint() );
$ i: w3 N2 K( q8 f7 u1 f" I SetManaPoint( GetMaxManaPoint() );$ U8 h/ P) f; h j k
SetFatiguePoint( GetMaxFatiguePoint() );
b0 O6 \4 q" ` if( nJob >= 1 && nJob <= 4 )
) E2 D, q$ ^' A: D$ w F {
" V4 i; e; s! [0 T# e5 X m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 l: c7 h1 G; ^& P, G' g0 D* c& ^( [ m_nRemainGP = 28;
9 S/ p H0 u p9 M" Q }0 o, d. l! F6 Z |* E( @
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 e. ?: _1 B3 X) |0 f% c( ]
{
$ q5 e# S6 ?; v5 Z0 p% k$ z m_nRemainGP = 118;: b ~9 d4 _2 y3 o6 Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 ], m: y5 V% t
m_nStr = m_nSta = m_nDex = m_nInt = 15;' j* j* ?2 e5 k9 I4 E
}+ w3 _8 e, X! b* M: v3 R
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* j: r8 I) |7 @" |6 \" T5 Q {" q0 H5 V" \; t+ H- e8 ]7 ]
CItemElem itemelem;
& I& z: ^: r$ X itemelem.m_nItemNum = 1;& Z$ F' S( }3 v" y' g2 r
itemelem.m_bCharged = TRUE;
& |6 D# g- H7 h, d; R BYTE nID;
' q0 i+ R6 X7 p! A$ a7 j
6 i6 p. d T m& [3 o if( nJob == JOB_MENTALIST_HERO )
- C& b" L) m! f4 M4 }8 y/ m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ l; p$ z' L9 ^7 c1 j. u( f if( nJob == JOB_FORCEMASTER_HERO )% s9 h. J9 n! L: O$ n
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 H5 K4 Z! }3 ~- L }4 h6 j. H. G
* T* L( f! a0 O ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 s5 W+ D& M$ G9 ?; R5 K! c% z4 A }0 e! z3 W9 U4 m2 d2 H, S3 F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# Y+ u6 b, k' O+ K/ c8 Y. ~- o
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 N& Z! @' U$ z+ I' B* N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) o& o* s( O! ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! ?0 ^% |2 F/ F+ J ( (CUser*)this )->AddTaskBar();*/
0 t6 ^5 Q' c: Z0 L ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" ~$ N1 ]* _ w' Q) A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" Y. P( H& G3 M ((CUser*)this)->CheckHonorStat();. }- Y) o6 O3 |2 T
((CUser*)this)->AddHonorListAck();/ f" F* A7 l' ]& T) R! S$ M0 E. i! t
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 p5 o- V7 ]% Q; r
#endif // __HONORABLE_TITLE // ′Tà? `2 \4 ]1 B/ ^+ }' l9 ~8 a
} Y3 _4 b+ z6 N1 S5 N. h
#endif // __WORLDSERVER3 L( ^- I- N; O0 B, P
}
$ l' r' m, z2 F$ H9 l# u1 J3 @
( `& {3 F. [" u% X6 A6 {) J. o然后你进入functextcmd.cpp并添加以下
8 K1 m) l* g6 r0 w) R* S2 o4 ~3 B
代码:
# c& t& }8 F9 R7 M( X" @8 P( _5 fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: f! O9 T5 j7 h6 P0 Z3 Y3 k7 `$ W下面插入6 Z. C8 z& K8 k0 G2 G# r0 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ m6 P3 G; ?1 E+ ]5 h5 p, I2 o8 C- p3 M% t2 r
然后你去$ j/ I0 y( J5 H# Z9 Q9 ~9 r( Q
4 M3 n: ~8 \* Y0 @代码:5 B6 F1 C- i0 \" C) U; M7 J0 \, ~8 v2 h
代码* Q/ T6 K$ S) y# R7 j3 M
BOOL TextCmd_ClearPropose( CScanner & s )4 b+ B2 P) ]& K, r: u
{
$ B/ P z% G, ~: }# y, E2 _#ifdef __WORLDSERVER, n) \) `/ [+ q, ?# J+ \8 F0 N( V
CUser* pUser = (CUser*)s.dwValue;
" d( k9 `3 j6 G g_dpDBClient.SendClearPropose();/ E2 T7 h, q! ~! M( y( r6 E
#endif // __WORLDSERVER
* T# R( t$ t" ~6 I6 k0 s6 Q' G2 I$ m return TRUE;
1 T! M+ ^ `% T8 ~2 ~7 [}
, U3 U8 h) F; a( `$ R下面插入. Y- ?# ^0 Y' e9 l
BOOL TextCmd_rebirth( CScanner& scanner )8 k, ^' q; ^$ j: N& w) D8 N
{
5 r& n( H, I' R#ifdef __WORLDSERVER
& W+ ~6 h7 A) UCUser *pUser;: \* e1 ]# n! g! {% U
pUser = (CUser*)scanner.dwValue;* s/ Q" Y+ n4 D0 [
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' o W5 x( `$ @% u' X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 V% }0 `" v5 R
else& @8 V+ m1 b& G: o3 `. A
pUser->AddText("你还未达到重生条件!");$ r' r. `; u( p2 x' N
#endif1 O2 H& ^/ x+ X# g3 e1 Z
return TRUE;0 @! O+ S" i' v. q5 b1 Q
} & P* q3 I5 W) a, O* G
- T' G% o/ g! O' L) p# X# z: W. _/ C1 r( }( @9 r3 d+ {' C4 I
1 x! M; a8 [6 }1 q
1 | E, L6 n4 A8 Z
|
|