|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; G1 Y1 R# D2 K) F7 H- f: a) V/ @+ x' B, Q0 [
Mover.h
. Y8 T' K- y7 n' b- f M; |代码:" I) _- w. f/ ?
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ C! U E# D a" R% j. u
9 N! _+ q/ U; @9 |; |* a2 N; }# e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / j f+ s* ^8 k8 e& c
' v, s' \8 I- c# G
然后你去mover.cpp添加' ^ z0 n$ P( R! L, D/ y5 u
# \/ r {" |! S" A+ _$ O代码: p: k! W; r6 b. f6 m
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) Q4 x; x+ p9 g8 L1 B5 [* B1 X4 X% U9 n{7 J. M# O, _! O6 Y
#ifdef __WORLDSERVER- Y7 q& d8 i7 F0 N+ o) D. K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 l; s3 o1 [# j4 B* p
MoverProp* pProp = GetProp();( k& G8 n! e7 Y B+ R& H) q
if( pProp )3 T. ~: A( N4 u6 W. o/ O, P) C
{3 k7 u8 j/ z; z4 T7 d d& F
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& A* Q$ u" [- R/ p" Z# G k0 K
{* Z6 \$ ^# U/ [5 ]
AddChangeJob( nJob );
! `! G* r! p; s9 j/ F* Z, q# M- g }else{( d3 M7 d: y2 B( K- {, o
return;, D! b. m" t/ U2 ?
}
7 l7 r* p) F z) G int nPoint = 0;$ i; X+ c6 g* |( l& }
if( m_nJob == JOB_MERCENARY ), ^4 P* A7 T1 X+ e: d& P7 v+ L
nPoint += 40;
2 Q' M+ b; D+ Y0 {; ` else if( m_nJob == JOB_ACROBAT )
6 C$ b# s% [3 a) M& I nPoint += 50;
# Z/ n% `7 I$ e' M s7 b' Y else if( m_nJob == JOB_ASSIST )- y5 L( b) I& [/ e+ F
nPoint += 60;8 h! x4 V6 C, U2 @
else if( m_nJob == JOB_MAGICIAN ). U2 V& H% J; I; G
nPoint += 90;
2 |3 m2 e9 ^& H3 b else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" U% D l* ~0 t0 a$ S' _! T nPoint += 120;4 _. B* H% O- H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% C: }, s' f5 u+ B. l
nPoint += 150;9 L2 S. ~) G2 ]5 X/ T7 k- V% u
else if( m_nJob == JOB_RINGMASTER )
$ n. j& d0 D- G. }2 U0 N3 p' N nPoint += 160;* J( n% ]' I4 n+ v& @" ~" s& \
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 D6 i; L T5 J nPoint += 180;
1 h% B& F1 g$ j1 s% d! e* n3 B else if( m_nJob == JOB_ELEMENTOR )" i1 @8 ~1 x4 k
nPoint += 390;
- n; x% Z' ~' O1 n- U P else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- n8 i$ ~ P% G# V2 p' F
nPoint += 120;/ I+ U# E8 @- f* f3 u2 N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# K0 R; I( k, c. M; T. T nPoint += 150;1 F, J8 N, z' D0 [ d7 y% x
else if( nJob == JOB_FLORIST_HERO )
k: S2 c7 Q' I) k4 j nPoint += 160;
* I& I! [" ~; h: }: z8 d) [0 L! h+ | else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' y( d2 v/ P3 c) y+ {
nPoint += 180;
7 q4 [' A! x4 G$ B7 A else if( nJob == JOB_ELEMENTORLORD_HERO ): i' g( p, U& h" V) q# ]& V& G
nPoint += 390;/ e6 e# W6 _' W! ^. _% S( u% ~
- @; j' Y- l7 A4 ^( k E2 m AddSkillPoint( nPoint );0 Q* e' t0 \! n: v
m_nLevel = nLevel;; m6 S4 b# u H7 p
7 q8 r+ v w& ?6 Z/ c
SetJobLevel( nLevel, nJob ); M3 w, r5 ^; \3 h4 ~% Z7 {
m_nDeathLevel = nLevel;6 N7 I5 D# A4 `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 w8 D5 c3 d! J5 t" B if(IsMaster())
; M3 R6 [1 p# g5 M* t, X+ K% o {! t0 H) C: j$ r/ Z% T$ ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 ?" P# e# n' ^, y5 m' t; z6 ^1 T
if( nLevel > 59 && nLevel < 72 )
+ V \+ E" ~2 ?% n r dwTmpSkLevel = 1;
: r7 m/ I: L- M- Q7 t, ` else if( nLevel > 71 && nLevel < 84 )
9 V2 R/ X" ^' W* n5 W4 N dwTmpSkLevel = 2;$ ]: z; ?3 _( _ g
else if( nLevel > 83 && nLevel < 96 )7 H4 ^# z! o# h. m' ?8 l5 V! Q! k
dwTmpSkLevel = 3;/ E* I* N# }1 C
else if( nLevel > 95 && nLevel < 108 )
; _8 h& X0 ^6 z% K$ M dwTmpSkLevel = 4;
& r6 v5 a. o* Z% `9 ^5 M- f else if( nLevel > 107 && nLevel < 120 )
9 k+ {# b1 Y# J* e, I8 l dwTmpSkLevel = 5; c& @5 z. j8 B4 L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + O0 f2 T* X1 ?9 M8 v" \
{
: C& B7 a$ R1 G% ?- e. f2 I4 k% ?3 b LPSKILL lpSkill = &(m_aJobSkill);1 H- m1 N$ k; ?. ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ e9 B3 i# I6 C9 l {# G5 i1 Z& H/ O7 D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; R8 a& B/ ?7 `& k" S H
if( pSkillProp == NULL )
! s8 C4 C6 H# A+ Y6 W; q1 a continue;
R* N- g f4 m+ u2 _! a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ a/ u9 b! `0 Z' d- _
continue;
! {) |# _) v7 J+ g6 p lpSkill->dwLevel = dwTmpSkLevel;$ B0 k* F3 z+ g! u5 M% }7 K' h
}7 {* X2 U( d8 T/ N* H0 t
}; N3 p3 r3 z& k( Y
}- B( `+ m! ?, K' t7 u, t
else if(IsHero())
* g- B6 T1 K0 y {
- p* O, L( a$ E/ h for( int i = 0; i < MAX_SKILL_JOB; i++ )
. g8 g, E* N+ \( _ {
1 e @. y L. E' k( W9 }/ ` LPSKILL lpSkill = &(m_aJobSkill);
! ~2 _ w" e- [ if( lpSkill && lpSkill->dwSkill != NULL_ID ) ~6 I4 R* U% v- P8 W& s
{
* S, C- V' I8 @8 \% [1 k5 z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! c4 I) F8 O( @! J
if( pSkillProp == NULL )
' F! x3 x$ K7 \6 i5 O% g4 T+ Q continue;
0 t. W1 ]' G' o6 J3 s8 @7 V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: }/ x, A# k' E8 V continue;
& N6 d, z0 m, p7 P2 `3 D lpSkill->dwLevel = 5;
( d/ c6 K" [1 z9 u }/ s# L- r* B) W
}0 t. g, ^: z% b/ Q
}: U. V- }& c- F+ u) n' [) u
else if(IsLegendHero())
: Z, U# X% \8 L4 Y% v {' Z3 w) { {
! l; L. L ]4 q' _; y for( int i = 0; i < MAX_SKILL_JOB; i++ )
, ^+ t/ j- k6 O( V4 U {
5 |7 K/ L9 [" b LPSKILL lpSkill = &(m_aJobSkill);
+ X" _. x0 o5 w if( lpSkill && lpSkill->dwSkill != NULL_ID )6 t8 u( x, C+ A8 [+ a& s/ l) X R
{ [. Q. b3 l" }) ~* J- c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, D% a$ T. ~9 Q( R' b, ~8 ]% d if( pSkillProp == NULL )
0 b% l0 O. u' V3 q3 F continue;- p: W$ z. y3 [ O) L. P( f5 h$ i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 M9 I1 h+ H0 K/ q ~* @ `
continue;
- q. y" a+ U! {- o lpSkill->dwLevel = 5;
: ?; T9 ]2 C) q. J }8 y& V' z1 C5 `( z3 t I+ g* W+ h
}
. h$ w. _, e8 s8 W7 I% Q0 [ }- I. l( |; _! m. _6 W( ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 N2 u& a7 i4 |. u* W
if( bGamma )
V2 Y0 I6 H- q4 m W$ Z7 P8 d {$ q& _7 d+ f) u$ n0 N2 x
m_nExp1 = 0;
: X! J% i% E" m9 r4 i" D }
3 V4 Z$ l u4 `7 i, _* W0 d! {: w; j" @! s& T
( (CUser*)this )->AddSetChangeJob( nJob );
9 x/ o( s/ K$ o( v, Y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ R, C+ V9 T0 F2 h0 [: e
. f, U2 a, S# i1 w: P5 L2 R" y$ s7 f; s G1 J- L7 ?( N
#if __VER >= 11 // __SYS_PLAYER_DATA5 |8 k' h2 b2 \8 q* t! n" d; j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! Q( g" c4 Z8 D7 X+ A5 w1 _+ q& H" A#else // __SYS_PLAYER_DATA, Q9 \/ T. @4 B( N* R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 a( @5 R6 e" _) U* ~* W. }$ Z0 J
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# {$ i1 b* |: E if( m_idGuild != 0 )& R9 O3 f) E! E1 G* W
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 O% K/ t4 g. ^7 x h% g. h' L/ d#endif // __SYS_PLAYER_DATA
2 x- K& @1 _& ~$ Y8 Q0 `; H3 T SetHitPoint( GetMaxHitPoint() );* r9 h. W4 j* F1 X9 u
SetManaPoint( GetMaxManaPoint() );
* q5 o& P0 u1 w- ?1 c4 ~) i! ]/ K2 u SetFatiguePoint( GetMaxFatiguePoint() );# Y! n; P. F' [0 s" K
if( nJob >= 1 && nJob <= 4 )
9 ^: L K; z; G' ?9 |' A {* q# q1 |/ m" T9 \6 |$ F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 \: M# J/ M0 K, j m_nRemainGP = 28;
) Z* }3 S8 L0 ], H8 J) q' w }
6 w) H1 I" ~3 Y: E* _7 w( G3 ?8 }$ A! X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 ~: `4 t: Y+ y# U3 z) _$ _
{
0 c& C# Q n' W4 J m_nRemainGP = 118;
k0 f( a6 `9 g, h% u9 W //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. B# N- c5 i/ `- F, p m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 W, j; f8 _1 C+ H6 C2 b1 E }
% }+ C9 C! O) ?! F, E if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). ]8 P$ C7 `. t
{0 B: Y; |6 ]: E
CItemElem itemelem;) K' K7 Z4 Q) t4 O* ^
itemelem.m_nItemNum = 1;
( T9 d% r0 ?7 h! e itemelem.m_bCharged = TRUE;
9 c1 J' n% }- @( e BYTE nID;
2 q+ L- o7 }0 ~: }" D2 ~" I' W n; a# H; C4 C1 e
if( nJob == JOB_MENTALIST_HERO )# |) h3 [9 R5 O. ]# R2 ?
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# b. U7 q2 E; v if( nJob == JOB_FORCEMASTER_HERO )# U6 b6 B# f+ }% E/ F5 k
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 G7 W; y& m! o) {1 a" j+ c& H) @# P# Y3 ]6 O
( ( CUser*)this)->CreateItem( &itemelem, &nID );2 Y' j$ @( H* R
}
6 J7 t) S; y% ^) T4 K' _3 u3 Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 [% h5 U5 }; Q! L# a. |1 i; X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' q' o* |% b1 J( i& w
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, Y: b3 l) \5 A$ f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ B j/ m# \9 ], m3 ]& ~! _, s ( (CUser*)this )->AddTaskBar();*/0 J$ u2 h5 B5 w, z0 F5 C6 u2 {3 D
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 R9 V A. E' S9 W#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" Y% j' l# t0 t* r
((CUser*)this)->CheckHonorStat();
& I- B! }9 H+ H2 | ((CUser*)this)->AddHonorListAck();
% E) q$ a9 t7 ?8 h g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 ?% e( U: w0 I9 f#endif // __HONORABLE_TITLE // ′Tà?3 k c# ]3 p8 Y' S1 X# K: k' X
}
, ~' |5 t- t# b& `8 i#endif // __WORLDSERVER; G& N/ C. O- M: L& M5 H# p( N
}
9 \4 p4 K q0 q+ X5 J" E- L; m$ h- f3 B3 z- ~$ A" `
然后你进入functextcmd.cpp并添加以下
& F" N$ t8 f+ Q2 C; T9 P3 d8 b' a
# ?5 K2 Z4 }; R6 G' N( u代码:& R6 e ]& F' m$ N
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" e* j# S, I* E8 M" c' l下面插入2 t5 k! W8 a( Q& @9 @8 x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : F$ k$ |7 q) g0 S) p9 M
& G* S1 N) N! G( a* b2 o
然后你去
2 k3 `* F. w. e0 {$ v; z' j
* }8 ^! h6 W0 D9 P4 n9 r2 A代码:. h$ {6 I, u, }" ], B
代码/ N% ^3 S3 U1 h9 ^
BOOL TextCmd_ClearPropose( CScanner & s )
7 C U9 G3 B: Y+ M* a+ g- D{, |3 m( x5 ^3 o8 m3 J# Q' c: ^2 ]' Z
#ifdef __WORLDSERVER
1 ?. {1 W. N3 ~2 j$ {4 X# D6 b CUser* pUser = (CUser*)s.dwValue;
) V; A* O* L0 `, Q: j g_dpDBClient.SendClearPropose();
0 w. ^& j: N* p5 ]4 Q#endif // __WORLDSERVER
/ H3 k3 I! l {- l7 ^# Y return TRUE;$ s; p0 t* n7 r- o: Y# m: J
}
7 ~8 t1 J8 A; z% t0 r6 g& m, d4 f下面插入
( G9 Q+ }* l: EBOOL TextCmd_rebirth( CScanner& scanner )
5 M9 M5 b$ Y& l0 w* H4 b{
+ ]# ]6 w l) ]& T/ R2 Q#ifdef __WORLDSERVER
/ L( R- U; B6 m2 {, {8 ]: OCUser *pUser;
) d3 O! P8 Z8 G# z6 @' ppUser = (CUser*)scanner.dwValue;
# d8 g9 R/ [1 o' O6 ?% pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 D& S& x5 n6 _ m- P8 H0 y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* _9 I; f$ Z5 }5 ~" Z, Jelse
- ^- g9 l4 A8 w, [pUser->AddText("你还未达到重生条件!");
( o0 i% p& I. j* }7 T [% w7 e1 k#endif
- @7 ` g$ d) Breturn TRUE;2 }* S# p6 o. m, R# p0 C
}
" `6 `8 a* [. F- Y0 [0 c' H* d9 V! }! @
: H3 ~7 S7 T0 \5 f; v- W# F3 B( c K( P4 X$ Q7 l# l% W% v9 b6 M
U7 x& H) R7 s3 V9 d5 Z0 P
|
|