|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! g6 s2 @& N4 P- B& N7 ^$ u7 C4 ]1 l' A& ~
Mover.h2 F0 J( i# e* ?, P+ Q3 s, q$ G
代码:
# q. h$ i$ Y1 E, M6 |$ `& g- M5 M9 s( i8 Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, P. b0 i+ }" y7 c' r4 S
6 l" V' a, D8 r [- s/ r7 v下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 {; S7 ]7 W0 K5 v$ E( I
+ e+ G; g( s) v" b; V然后你去mover.cpp添加9 L! I& Q {, b& R0 N# t( N$ u
5 p- ]- T7 j3 N5 F代码:# I2 g! A! E/ d6 U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ _: a) ~; ]& \5 Z
{. d6 X, h6 s, G: ]) ?# m8 f! ~
#ifdef __WORLDSERVER
4 ] _$ }$ z; N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; c' l8 u" L8 a2 F+ M0 n MoverProp* pProp = GetProp();' D- s$ ?+ i6 N: p# F7 S( a# W, }" K. d
if( pProp )1 q5 w0 |; N# K' j- [0 ^# u
{4 ]! @9 k5 U8 F; o5 s& p! \7 Z) B# K' B
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; z7 l6 P" ?! G" O {
; ]7 r0 s/ i4 T6 ?; _, ? AddChangeJob( nJob ); v9 Z+ m$ h$ b+ }( n5 n' X
}else{) n1 R% J. P5 s+ X9 a/ q
return;" {3 j- s- O) e; Q, l6 a D
}# x1 Z8 i0 x( \5 ^
int nPoint = 0;' W1 m1 I( k" v' F" |
if( m_nJob == JOB_MERCENARY )+ k' O; }5 w. |- ?( Q1 R1 }
nPoint += 40;
- O' O' y% u$ e0 c w3 E4 T else if( m_nJob == JOB_ACROBAT )- G" X5 j0 D7 G4 f/ t' |7 @
nPoint += 50;+ U& ~4 v! j! g9 c5 Y
else if( m_nJob == JOB_ASSIST )
7 i$ o: {' ? [ nPoint += 60;
9 D5 Y0 p3 S. D$ E5 H else if( m_nJob == JOB_MAGICIAN )
" v, F" ~; B. P4 [6 S nPoint += 90;/ S" O& j8 W1 Y( \
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' b* X2 I; k/ D( ]4 }% m nPoint += 120;1 w' g n& u7 ]) t$ w. ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: x; V. c; x1 W4 J nPoint += 150;9 w& o% N( R/ G8 p& N1 e# H
else if( m_nJob == JOB_RINGMASTER )/ o2 d4 ?8 s; ?8 g+ k
nPoint += 160;
+ O& H8 _- W& ^4 _6 ^5 P2 Z' L else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# m- g5 c3 x+ n# ^
nPoint += 180;/ f) g1 g# c5 V1 }
else if( m_nJob == JOB_ELEMENTOR )0 x; o! B# g. k$ E
nPoint += 390;0 }+ a/ f' p+ K. ~+ w
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" }. u. |5 D0 q3 e+ D
nPoint += 120;/ ^' [' y E# r
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 s( _4 s+ e3 V; S; K' m4 h
nPoint += 150;# K6 @/ j0 \1 L4 Y; R
else if( nJob == JOB_FLORIST_HERO )( K2 w9 Q8 a# |3 [9 M. \
nPoint += 160;" I1 C8 S+ f% \* r2 K5 H1 D
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) h. g/ k- @5 y2 s& k+ _
nPoint += 180;: }, T( r# `' A5 M. H" t% G Z
else if( nJob == JOB_ELEMENTORLORD_HERO )
# f8 v# U/ W y, ]+ Q* ~ nPoint += 390;
: [5 a# j" W5 J4 X( v3 V* \ N
/ W" |- y# E$ H AddSkillPoint( nPoint );
5 s! D0 G! L6 l _$ @ m_nLevel = nLevel;
2 U! _/ n# c% k4 \# z: [2 @5 ]6 |$ g# [. A/ h3 |+ M: o$ W, y4 Q& ^) o
SetJobLevel( nLevel, nJob );
$ E) p! e5 _* ~* y4 F, R9 r! T& { m_nDeathLevel = nLevel;
9 Q" L% A8 z1 ~. ^5 x: Z#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 k. w) X7 ?2 ]: a0 {/ [, [% j
if(IsMaster())1 G7 v! A) w2 C- ^& ^) _
{, S* {9 k- G# L' p9 ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. w- F" n! A8 g( i if( nLevel > 59 && nLevel < 72 )" I5 v( m% z- X/ h
dwTmpSkLevel = 1;
8 z7 G- y; c6 \$ G else if( nLevel > 71 && nLevel < 84 )
; M- ^. X3 \3 x4 X5 ^9 S5 ~. G dwTmpSkLevel = 2;
% n6 q* `6 p: e3 |: C# l else if( nLevel > 83 && nLevel < 96 )
{) b3 B1 D1 c# n( q6 Z. Q dwTmpSkLevel = 3;: w( X/ U" F0 E
else if( nLevel > 95 && nLevel < 108 )
7 y% w. Z2 o6 p8 K; [ dwTmpSkLevel = 4;; ]+ n$ e7 y0 P3 K8 x2 u' V! c& q
else if( nLevel > 107 && nLevel < 120 )
4 S1 Y0 e2 B( u3 k; W! u2 i% O dwTmpSkLevel = 5;
. i; Z4 D/ t. P {4 E) G9 a% B+ g for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ l& u& X* Z4 C& \4 Z! G9 M {
! s0 {7 M! h5 H# Q* d- G2 ? LPSKILL lpSkill = &(m_aJobSkill);
4 R B+ q( X$ j( s if( lpSkill && lpSkill->dwSkill != NULL_ID )% e0 D/ W7 {5 K
{' K' Y$ v F+ E1 E' X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 ?4 Z) L2 {+ \! b; q8 N R6 T, |
if( pSkillProp == NULL ). d. M1 z0 }$ y' n O2 s7 D
continue;, L6 K& l7 h# b1 [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 `* @0 C& n, l3 ]
continue;! |% D1 ], P8 W! b& `
lpSkill->dwLevel = dwTmpSkLevel;: o8 U% x: y# j! p
}, H3 A) I% r } [5 E$ F9 L/ a* Q
}
) J! y0 C: }$ ^! h g$ N }
/ r6 v4 X+ r9 J& _7 t R else if(IsHero())9 g2 o8 f5 H, C1 N
{
+ W2 x3 F6 Q8 `+ W4 T0 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 F) s) J& F5 [6 S
{
* B \! j* Z; {% P3 X LPSKILL lpSkill = &(m_aJobSkill);7 W' R6 O3 ~, E) v I. Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 v* I+ H* _* k$ R6 }7 Z6 C {
6 _! i1 L- `' O. }/ ], ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 z3 v( o2 u! a, e: v0 d1 |# L" N if( pSkillProp == NULL )
; E5 q$ t- C- @3 ]9 R/ Y continue;
4 z& M6 _9 k' E. y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! x/ D/ T% J/ m" e* W0 o
continue;
0 Q" ]7 R6 n4 q" } lpSkill->dwLevel = 5;7 q, k# A' d+ r. b5 P
}
. l$ i- g7 H* ^1 ? }/ C" l' ]/ c) l, x4 w. e# q
}
7 b4 D3 t# V" u) N else if(IsLegendHero())6 n- ~6 B5 S2 E! p4 y
{
e1 g, M5 k/ C/ q8 N for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ ?1 T5 j. V+ i8 D { - b" h% k& Y: T" ~/ B- X9 o# @2 j+ T; O
LPSKILL lpSkill = &(m_aJobSkill);
5 j& Z! Y, c8 k9 s! W if( lpSkill && lpSkill->dwSkill != NULL_ID )9 ^4 g# ~+ c' B8 V( N) @5 I
{
0 }3 W* q9 |7 \" r# F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: Q) \ {) f& T# h if( pSkillProp == NULL )
' ]' o" v& }6 M/ K3 z2 ~. G continue;
! |9 z9 ~% W$ \& o5 h' B if( pSkillProp->dwItemKind1 != JTYPE_MASTER): B$ f, B2 z, D0 R' a
continue;. P. B I* c/ V6 c% R0 J
lpSkill->dwLevel = 5;
( P( M# a* K1 j, H; T1 ?$ K }
0 O$ r- v3 N8 Z! j B8 M }
) {, W$ A3 n# x7 m3 Z }2 a) u9 O& j* L2 F3 N$ }+ R- U a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 d# H: q: Y. L# T if( bGamma )4 l, U9 }0 J9 w; X/ N3 V
{1 t. _7 i9 Y" ]' [
m_nExp1 = 0; w9 ]# ?, _0 Q
}
8 \" C- B* I, q4 v9 R9 ^9 |+ N5 C+ n ]/ |+ x- b2 ~ h
( (CUser*)this )->AddSetChangeJob( nJob );; _: P& P" o7 Y! `1 N* n5 l* K: D+ n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ N- z5 p0 ^; s2 h! E9 m& {
9 ?/ D1 A' w- v8 G; [8 @$ Y. p: D& g, K. [8 X
#if __VER >= 11 // __SYS_PLAYER_DATA
' t' Y2 \$ W- r5 L/ |7 y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; h( N/ h+ i k, U+ z. E& g4 {
#else // __SYS_PLAYER_DATA/ T# [2 f6 @ f; v
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ c9 `0 H# X2 S$ N$ V g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, h2 A) I1 Y0 R: }
if( m_idGuild != 0 )+ Q) G) s) N0 [- V _
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. v6 F" t7 f4 Z+ Z' D' J2 |
#endif // __SYS_PLAYER_DATA
$ l0 l4 \6 O; n" ]8 O SetHitPoint( GetMaxHitPoint() );
3 ~; s* W) d5 o& j) c SetManaPoint( GetMaxManaPoint() );; s* k# ]$ {% W n0 \! w
SetFatiguePoint( GetMaxFatiguePoint() );1 |6 j$ L `$ v; V2 d1 y9 s
if( nJob >= 1 && nJob <= 4 )
& j) l) ^ |1 u. `8 x {, x; L' l2 @: n
m_nStr = m_nSta = m_nDex = m_nInt = 15;# h; p9 c* m* {6 a2 Q* Y! W
m_nRemainGP = 28;, S; @" A* w" g$ N1 X* Y2 R5 T
}
, B5 b* z3 u+ I& S. S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' C: ~1 M# l% c2 T7 @ {
. g$ r7 _/ a* O& ]4 S# |/ G m_nRemainGP = 118; H4 a Q) ?; }+ W. @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& h3 i! I6 `& X& I+ _$ E, G& @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 e* {/ u6 ^9 ]5 g2 g2 M }
% S4 ?. B7 K3 [9 `, r, d if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 A, V* M3 f, ]5 c {" p: v) Y. ^; Z3 l* c8 p4 O/ Y
CItemElem itemelem;
2 F% A2 s, f, f itemelem.m_nItemNum = 1;
. `* a6 m; t& E: V itemelem.m_bCharged = TRUE;# o2 P6 A( Z; g- s( B
BYTE nID; |* H2 v3 V& `
% J- B. _$ A9 q4 H8 Y: Q
if( nJob == JOB_MENTALIST_HERO )
5 F" @& n, L9 o1 c' z; p/ z' x itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" b3 I, a0 O( x, N: G: h
if( nJob == JOB_FORCEMASTER_HERO )' G( c8 B0 W# { x5 F
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 W6 ~$ e9 [2 v$ V" F
" Z1 E0 G' ^4 k# Q: L ( ( CUser*)this)->CreateItem( &itemelem, &nID );
" @% n p0 c2 q G/ ~$ p! q& L; [$ p }
. h: y7 A4 H* S g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ m+ W. k; [5 s$ s" I* n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ m+ c/ |5 h4 R( e; a* i; k" U ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 n7 l) w+ Q1 L7 }
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 Y5 v3 }4 J6 ?7 J ( (CUser*)this )->AddTaskBar();*/3 H8 M+ V- D8 A& H, @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( ]5 Q- e( M% _' \5 N6 J#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, w) t- M. \7 t/ ^8 \
((CUser*)this)->CheckHonorStat();% m. q2 u% ^1 \; S( Q2 @" G1 b
((CUser*)this)->AddHonorListAck();
7 G0 A( C: {& P9 R g_UserMng.AddHonorTitleChange( this, m_nHonor);5 @5 e3 h2 ]7 C: j
#endif // __HONORABLE_TITLE // ′Tà?
4 p4 ~/ S! j) J3 M# b: [ }
5 x& C1 D' U" n$ y r#endif // __WORLDSERVER2 ?% r5 x- r6 Z1 {7 q
}
3 J3 f, o& ^8 I$ v) d* w+ {& o1 B) |; K, @7 W$ Y
然后你进入functextcmd.cpp并添加以下
$ f8 u6 }. p3 ]' s! x6 g' r; B6 e/ J8 [9 r9 e
代码:0 G3 |) j6 H% g% I( E
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 q. D( ]2 P0 ~: S. s' v' y. \6 ]' {下面插入& @+ @ G+ }. T; X) f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' B/ F8 z) V2 T3 t0 o- ~
0 X5 W) ~7 }3 u然后你去+ i" P: x: ]. ^! i! Y! t$ o% M
, q; K- c. R# C
代码:( T4 T( t8 }- v1 G5 l
代码
- g$ t* e+ ^1 c: \* _. q3 _ NBOOL TextCmd_ClearPropose( CScanner & s )
. l$ T* |' }, V4 i{+ [# x. g& G- S( ^9 C- u
#ifdef __WORLDSERVER" M$ w* ] D% G9 D: `" t$ F
CUser* pUser = (CUser*)s.dwValue; E; Z2 g% a/ W% P
g_dpDBClient.SendClearPropose();
% M3 {& N! z; R3 w2 p#endif // __WORLDSERVER7 L! U5 m' f& A; m: K6 Q7 O
return TRUE;
/ V$ n# V6 t' |1 Y: c}
7 ?& s: T. y% J S下面插入
; Y' d5 B: o* i7 UBOOL TextCmd_rebirth( CScanner& scanner )
+ |5 g% t, K; C' J{
. A, f! @. m# I7 i/ ~#ifdef __WORLDSERVER
& c' y- T! x6 _& qCUser *pUser;
, V( j: Z. n7 W* X( \- upUser = (CUser*)scanner.dwValue;8 s! C' C$ g3 e: o4 Q8 c7 h+ C
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" A3 o5 p/ V, N' G! I( MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 p+ x+ o8 m) @7 a! Pelse
; X# F A- Y6 I% b4 b- [- F# FpUser->AddText("你还未达到重生条件!");
, ]; e( q, |& f/ s1 b. M) ^#endif1 |( @& g* a. X. \
return TRUE;) z% t0 O$ r% _* N) b
}
/ r9 m1 w! \: o- p& a7 G0 b- x
8 Z; \- v% Y" ~5 A& v! h, l' U4 g0 Y+ m% W. q
. l7 g& Z$ M0 j! ^
; E/ A+ J; m0 w: @/ B" P9 N
|
|