|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ _; C& \( P# X- T* t3 U4 q3 k9 K3 C% c$ |* `9 r U
Mover.h$ ]8 g' U5 o5 l' }% D* @0 V+ h
代码:4 X6 P2 N* D/ X# |# f7 d: n! g) |
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; g$ h- D3 Y; B9 E5 t* ^
9 _9 H+ h' q( \2 J6 w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 F* T0 H8 j4 Z, X7 \- N9 z; F# e* V" f- G
然后你去mover.cpp添加' i% T5 f1 R3 m) D, z$ R8 y$ F
$ @3 a6 p2 y6 b) v" N7 _ F
代码:, J5 M2 B- \- j. l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ \& S. l( H" O( q5 k
{) O% F4 z3 s' f- |: J
#ifdef __WORLDSERVER
9 P1 a9 H& E9 L7 m. @8 X# D // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 c# _+ o% D( i) g6 N) N MoverProp* pProp = GetProp();( X9 Z- O: k( J7 S
if( pProp )
* I, h- W5 y2 H2 m' e T {: P4 w; n5 ]/ h' W* m
if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ z& O' O4 e* u# `; p3 A
{
2 w6 s$ c* H8 B! w AddChangeJob( nJob );
# L8 }0 F$ `/ M9 {4 r% F6 z' s }else{# [+ n' u% _& `+ Y, ]
return;- A* |8 q9 c: f: E, T
}" b( k" U* e: B' ]6 M: \
int nPoint = 0;7 w0 d: z- {0 H+ a; \' A
if( m_nJob == JOB_MERCENARY )2 W G3 Q. |( M+ B! S' M
nPoint += 40;7 y0 D4 i" N3 w! {& f* d6 T
else if( m_nJob == JOB_ACROBAT )( e1 @* g/ I, }* X
nPoint += 50;
) V% Y; K$ X6 f* F1 E! J$ F: a else if( m_nJob == JOB_ASSIST )
0 }1 L8 U0 N0 ?* d nPoint += 60;
, o' {& r+ H: F; M( j else if( m_nJob == JOB_MAGICIAN )
3 p; Q4 `2 f+ ~5 ] nPoint += 90;
/ `: D' z# \, Y' V: P( ?1 F4 S else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 }/ x- h C# r. Y2 v( i: `$ R
nPoint += 120;
+ T% H- ]( H$ d9 B1 f" b# n else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& @% V, P- z/ n5 G* [2 }# u& ?7 q nPoint += 150;
# J9 [6 J4 C1 ^$ n: i6 n else if( m_nJob == JOB_RINGMASTER )! u% U! r; C# O f+ K9 `2 w. d
nPoint += 160;. D7 T6 q5 \/ V; q$ z' W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 N) r, K( s1 T, y
nPoint += 180;
% j v/ X# v3 f+ }4 X: F else if( m_nJob == JOB_ELEMENTOR )0 @# I. D+ I; B
nPoint += 390;9 X N9 d+ v9 X/ d8 }
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% [7 Q. Z; R. J2 j" _
nPoint += 120;
, w1 H: |+ b8 J6 B W. y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 H7 B7 i& U( }3 R) |; ^5 o* { nPoint += 150;& I7 n: r& _. u$ } G! S- H
else if( nJob == JOB_FLORIST_HERO )
. y' J+ }- q2 q/ x" i# R* ]' h nPoint += 160;7 I2 e, m* g9 ]+ v( h
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 ~6 J, B, M, B. ?* A. W( f nPoint += 180;! M% |" D' f! d$ y9 @; P4 u( g
else if( nJob == JOB_ELEMENTORLORD_HERO )
( z; K4 U6 f9 `. N7 C8 T nPoint += 390;/ s [8 u% F$ A$ f: S5 @! o, \
+ x8 _, S9 x- j5 @ F AddSkillPoint( nPoint );+ s. |# c! h- G+ z( p" X0 p
m_nLevel = nLevel;1 O: E) R9 `( o, T+ ]* Y4 v: {
/ \" j* U' W4 \ SetJobLevel( nLevel, nJob );
8 A& B( J: M' f* k+ n3 _ m_nDeathLevel = nLevel;
$ `/ [2 ~, r4 i; B3 E#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 V, ? ?9 u7 A
if(IsMaster())) _/ X; v7 m- v# W
{" M1 z/ u3 _$ D
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 D0 q, J6 D! ]# b6 i
if( nLevel > 59 && nLevel < 72 ) R( L+ Z. E1 U( d8 G
dwTmpSkLevel = 1;) K7 ]8 w" R- g3 L8 x3 [) `
else if( nLevel > 71 && nLevel < 84 )
# H5 T% _3 X0 B! O; V dwTmpSkLevel = 2;* R/ D2 ?0 _0 G+ A2 u0 p. d
else if( nLevel > 83 && nLevel < 96 )+ F$ ]) u G. i+ _ p
dwTmpSkLevel = 3;
8 ` C8 C* y6 Y- P- ] else if( nLevel > 95 && nLevel < 108 )
2 L# Z( \. B9 ^$ z: ~# H9 | dwTmpSkLevel = 4;6 n' S8 F: m4 `
else if( nLevel > 107 && nLevel < 120 )! X9 w/ P% n; X9 _9 _( N. F( h
dwTmpSkLevel = 5;9 @4 V; ~5 A3 X$ [
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - r: r" }; u! @8 }6 k, `% x8 j
{ ; q* I6 l; q+ L$ h8 {, a
LPSKILL lpSkill = &(m_aJobSkill);$ u8 D/ V6 H7 y' {9 D, v9 Z$ l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 U4 x1 G/ `: H G% r: d {
" X7 j0 J9 f5 a1 P3 H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; ^. [2 d9 Q( @" O# H if( pSkillProp == NULL )# g/ I9 m6 P r0 `+ C+ d/ m, `9 P6 H
continue;
# F! ?7 B. P5 t; N& b$ a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 w; p7 K9 K8 ?$ q* p; a continue;) Z5 a/ N4 o: f3 @, s, t! S
lpSkill->dwLevel = dwTmpSkLevel;
( T# M' Q$ r) W# M0 Y/ i+ Q0 W6 c }1 `6 w5 \' X* W0 ~
}
% X+ a1 t6 g7 a- I% A+ k% M2 n }
Q+ }; F- e* W else if(IsHero())
7 m$ _6 c# D8 }3 T) S6 ` {" j; ^9 O$ ~' Z& `# N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . u. J. g7 `8 I$ i$ ]3 G: h( Y5 A
{
9 h" j& ^, {/ _- K& Z% J LPSKILL lpSkill = &(m_aJobSkill);' y* X8 v2 d: Q" M* K* X1 l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 h3 B7 S: s1 }; b) w {
' h+ c# n6 M! b" N+ U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 V3 r, G& W; w$ a( o
if( pSkillProp == NULL )( A) g/ Z3 a- R$ T
continue;" g2 ]8 V* d6 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) K- H5 l% N. ^/ h, B5 m6 q
continue;
4 m( p; R& [8 ?5 z6 x lpSkill->dwLevel = 5;
2 ?2 ^ C, H# R/ w$ y }8 x6 E7 L& d! D5 \) w N
}
3 p5 @: P2 D; L. | }
2 P* E% m% H, C; c& j" z# P else if(IsLegendHero())/ i' O6 y% N0 S/ l) \8 S3 W; s/ d
{7 g h- u& ?/ a6 a0 v% a, E% {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # {) u" f) d7 {; d$ l0 q, J
{
6 s5 @" n1 ^, r! f6 B0 G! J LPSKILL lpSkill = &(m_aJobSkill);4 K8 V: A( q0 d3 o5 C9 ?' @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ x' j: Z! R( n, k8 W* i+ j {
- w3 Y+ Z5 Q, x8 ` v. {; Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 s- ]. S# b* y' f if( pSkillProp == NULL )5 ^- P$ z, j% ]. Y# {* R+ w/ o, A
continue;$ H* B$ R$ a0 Y! K$ ~: ]! n4 ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ U. O3 p+ p, ?; w4 n8 M: Q
continue;. p% C7 f: P9 x% K
lpSkill->dwLevel = 5;
: S" x/ v6 g C$ D; t, H }
) N- i8 Q! s' F6 M) \7 e }
$ j" f' C% M. L. w# h; K- f2 z }# f& F( B( E, z6 I" C+ }8 D; _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 j* f; u8 E5 j8 Q8 Q: j) K
if( bGamma )8 q) B R9 t7 Z3 f; ^/ |6 W
{ p# {" I( n( T0 y% b) I& i
m_nExp1 = 0;
( G" i( [/ P: j1 C( b: z( B }: H% f4 U& V, A' M5 q3 \
3 }! Q' B' T" D- c6 ~. X
( (CUser*)this )->AddSetChangeJob( nJob ); z3 ]1 Q/ @4 I- z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; f7 D6 b' b5 G1 U
8 a% W: k& o0 L3 C( W! h* \
0 l+ s6 G9 ]( ]#if __VER >= 11 // __SYS_PLAYER_DATA
+ C* r6 z! _+ _# L g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ m/ h% X1 j, u+ A+ {9 T$ K9 c#else // __SYS_PLAYER_DATA0 b: L2 ?% a A# V8 t0 ]
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 y: \+ T' E, z* {' v
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 N9 ^: ~* W. s6 I if( m_idGuild != 0 )
& K6 C( H ` p g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: ?) @+ ]$ d0 P& k' a
#endif // __SYS_PLAYER_DATA# W5 T( @9 B6 X* e w+ ~
SetHitPoint( GetMaxHitPoint() );
$ X/ d6 d( U5 I- M SetManaPoint( GetMaxManaPoint() );! i) d7 r! E* z1 T* G- v" K
SetFatiguePoint( GetMaxFatiguePoint() );
; G$ ~- G) e6 J$ V# J if( nJob >= 1 && nJob <= 4 )
2 w, h* @5 N6 E# b {
) o: I) ?) F' _/ y8 Y8 J m_nStr = m_nSta = m_nDex = m_nInt = 15;
; x* g" k$ c& w' Z$ T7 H m_nRemainGP = 28;
7 o+ }4 r0 p3 `% U. ` }
# A* z' T' ^+ A. Z+ Z4 V if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 `& h1 p# l6 }7 i N6 l( U3 D% [
{' _( w' A" H6 A; }
m_nRemainGP = 118;, A# e$ P# Q. L2 x2 A* o* |5 r" n- [+ b
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ {+ w# p4 d3 T3 J; k3 G/ e
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 I. o' x6 |9 { I }) m1 f& {/ Y0 [0 T
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# S5 x) c# {0 y4 Q& N; v1 N, m
{& ^* ]/ i- M. T ^
CItemElem itemelem;
& P. z( w; i8 y itemelem.m_nItemNum = 1;
; \7 L8 O! s0 V itemelem.m_bCharged = TRUE;
9 p+ |# `0 |* i6 b; |6 P( n, d* ~; C g BYTE nID;
# Q' B7 a2 g- w7 p o, r, O1 P2 g, `7 C& \; \6 q
if( nJob == JOB_MENTALIST_HERO )
0 I' S! ?. Z7 N) \4 e" ?. o+ x itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" G y' {6 W0 l3 O; `( \
if( nJob == JOB_FORCEMASTER_HERO )
. u0 q; \/ k, v8 L1 ^) F4 m6 u4 c itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: n& ?# @- L* j/ P* s; T3 ~4 U/ k4 [' K) h1 E2 l E: }/ C
( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ {6 f& i: S" P4 e. | }
9 t* i( I2 \& }9 h" c g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% Z! g- i2 B- \% D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ _) u) v A9 M ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% a# J+ q9 ]. l: g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 M. _9 U" V7 h+ C4 g. i2 _5 H
( (CUser*)this )->AddTaskBar();*/* P- l( n. T# B) R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' U8 F' s) ]1 r7 j: k8 H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 u1 ?+ a# x& |* c" ~, P ((CUser*)this)->CheckHonorStat();
$ y' P+ Y% j( Q) a: p9 E% b ((CUser*)this)->AddHonorListAck();" A, H6 g; z% r. l
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 [! T0 f; `, u#endif // __HONORABLE_TITLE // ′Tà?5 [1 |0 ~# C/ P6 o
}, | w7 ?9 f" q' O
#endif // __WORLDSERVER% o' S8 x/ ?& b: s; j( R6 ]
}
! U# V/ d, Q0 O6 K3 W8 [" _5 X5 D4 _: X
然后你进入functextcmd.cpp并添加以下
1 ^, w( c. J1 L$ c2 y6 F) }
. G( H- w, v& G' v& X* q0 K7 A代码:
- k" C) l+ U# T0 O, t, Q3 JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. e' Z' I6 f" J6 ]0 v7 M |- V下面插入( l( d, [% i g) X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 b* ^- O0 o3 u9 U% U
: N/ S2 q& a. b% ~然后你去# }# s! x5 h9 ~2 V* o
, p$ h5 y5 L7 ~# A) t代码:& k8 @9 p- [# i2 I |3 U7 R
代码
' O6 r/ F+ }5 |. _4 T+ iBOOL TextCmd_ClearPropose( CScanner & s )
5 U0 r' |% g& H{
5 w) y. p+ G5 f2 t1 k3 {9 M6 J#ifdef __WORLDSERVER
4 |8 y1 Y) z# h7 X& T CUser* pUser = (CUser*)s.dwValue;
' _+ P/ d; f; Y8 h. f' _ g_dpDBClient.SendClearPropose();" X8 {$ H* r4 Z8 N; ~8 [
#endif // __WORLDSERVER
) F2 P5 m" l6 t! \- h$ T return TRUE;) v- X& m$ x4 n' w0 M7 F
}' @1 Q# ~# B$ r- s$ {( k
下面插入( l$ _$ e0 s% {# t" |4 y4 `% P
BOOL TextCmd_rebirth( CScanner& scanner )
, k: q6 e; u- A+ d2 P3 S0 D3 d1 Z; O- o{) V. e, }) E/ B8 S7 M4 D, z8 J
#ifdef __WORLDSERVER7 H. }1 S5 g$ a# U; z, y4 n
CUser *pUser;
' R+ L: q+ o/ J. n/ kpUser = (CUser*)scanner.dwValue;' W5 e( ~6 M) i7 S, r- q% k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
u* S- Z% W5 D0 N" z7 p+ E8 E: MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);5 V u) z; z% O$ o, g" g5 c, x
else3 s) Q1 W/ b! C: d; i( B8 f
pUser->AddText("你还未达到重生条件!");
0 q+ O( O1 ?7 s- {3 V/ j#endif
) y7 G! E5 o/ _# I# ~return TRUE;
- H2 ~5 t) @) D2 ], K- S! c} . L; s& n, r/ ^ \7 R5 C J
, [* J! ]& ?1 @5 g" u( F9 v8 I% A. ^' p' R% X
( D( U/ g* j7 Y0 c5 h8 ?
/ Z0 g; n$ @- i# o1 ]
|
|