|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# L" I7 d% m/ H; J; k9 M/ ?* `& h
# Z5 s: Z# q1 _2 M7 ]# e, A, |, z
Mover.h1 U7 c+ M9 z% q' ?
代码:) {9 \% Z1 Q& U0 x
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* H0 S( |% O- ?- ]
' d9 r8 S7 \8 X8 G+ I6 G1 a下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " p- W, W% r) ^- ~' b P; d: W
4 R% N) i, v8 i' v( G s然后你去mover.cpp添加4 |+ ^, Y7 C2 ]6 f
9 \( o# B; _3 c. F2 ]1 J代码:
4 v" J5 f( M, F* ^% o; _3 X! }3 @void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 F6 `. O! G/ m" c
{! q, L, [% {) b' ]4 J, w5 N; N
#ifdef __WORLDSERVER4 u9 Y7 |; w1 \9 Q8 O! w5 F
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' x1 n6 Z0 h) L# | MoverProp* pProp = GetProp();- e( l; C, k( T1 r- Y ~0 L6 Y
if( pProp )
0 W4 ?( d2 L( k' ^/ F, _7 H {5 T' C, y" j5 J/ @( ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ V7 f' V: _5 A; W {% q; H5 F+ N" I, b8 \
AddChangeJob( nJob ); E$ |: S( g) L I' J
}else{
J4 v1 Z- n2 G& F6 N return;
5 G5 y$ P' P$ I/ Y* z }6 ~% u/ p: j& t
int nPoint = 0; g7 l9 t a$ |' p, A. p4 |4 |
if( m_nJob == JOB_MERCENARY )- w* p* A* e$ I: v
nPoint += 40;
6 }5 b# P/ }3 C2 N3 A6 t else if( m_nJob == JOB_ACROBAT )
- T. Q; _/ ?0 A- S: O$ ? nPoint += 50;
1 l6 N7 @6 f. \& |3 d. d else if( m_nJob == JOB_ASSIST )
; B! v8 j% B8 \ nPoint += 60;1 d4 s) u2 Y8 C6 @3 N2 `8 f# Z
else if( m_nJob == JOB_MAGICIAN )
' _: e3 c4 Y8 { nPoint += 90;* y8 A) P: E: L# B# j
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' { d0 N, a; j, l nPoint += 120;
]( M# H N* m& h6 y7 W0 E else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 b& G, X* E# A; k7 c' C
nPoint += 150;
4 n& e6 T3 F4 s9 D: _" ?0 W! k else if( m_nJob == JOB_RINGMASTER )
; A0 S' `# S8 K* O0 E nPoint += 160;6 U; W" q2 g a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 ~. U4 J; @& R2 U, @ nPoint += 180;! s! w* Y" _ q$ B, w# h, K! ?! a, [9 U
else if( m_nJob == JOB_ELEMENTOR )
; a o3 v( Y; ]( Y2 t6 r" A! z3 x nPoint += 390;2 y0 I: ^5 o; a a( K- ^
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! I8 t* y4 C/ b- m6 o nPoint += 120;
. Q- R A& q& s% Q* O3 ~( {. E6 v7 Q% G else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( |; q0 m3 M1 j! B0 ` nPoint += 150;
: `) _+ j- u- E. V' [# E" ^' t else if( nJob == JOB_FLORIST_HERO )8 K, q& z( u( E0 C( t7 g
nPoint += 160;
! t* J- B/ r d" r) }" Q2 } else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 A% ?: y/ H; g+ \/ b
nPoint += 180;
+ i8 L) c6 z2 f. Q3 L else if( nJob == JOB_ELEMENTORLORD_HERO )
) e4 w8 p% I$ b nPoint += 390;' L! d" N- }# e- y0 x
6 I3 K. x h7 k( |! v AddSkillPoint( nPoint );, J4 _! w( P* t8 }) p6 U' F
m_nLevel = nLevel;, u. j, d" c' r. S, O2 z
* a. ]6 e4 E- q% z SetJobLevel( nLevel, nJob );8 y0 i( U7 T4 }0 L4 M% O
m_nDeathLevel = nLevel;
, n2 Y! R) `# P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! C* L. w# g1 C& a( G if(IsMaster())
C0 T$ u+ p2 V {# O9 g& ^ }4 j5 x$ S
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 }. h8 s- s6 V5 V if( nLevel > 59 && nLevel < 72 )7 V! i% [- z* O3 b7 H8 U" e- ^
dwTmpSkLevel = 1;
0 E. w( B0 P. @% ~5 p; ]9 x else if( nLevel > 71 && nLevel < 84 )
) \# c2 M. C: S! g6 | dwTmpSkLevel = 2;
; H- t" q \# H @ else if( nLevel > 83 && nLevel < 96 )
& b- ~5 N. J/ ?! }& t dwTmpSkLevel = 3;; t' e r+ K( L( l7 X) R } \; v% G
else if( nLevel > 95 && nLevel < 108 )9 X6 C( i5 U# }
dwTmpSkLevel = 4;" U$ s6 c; q5 f; |
else if( nLevel > 107 && nLevel < 120 )+ Z* i- `! |! S5 B% z* n
dwTmpSkLevel = 5;
8 Y& [; Q5 D" k" B& X; J; n- A for( int i = 0; i < MAX_SKILL_JOB; i++ ) . i: g+ o4 l, D
{ $ p6 P# o9 z w: }2 t6 o4 g
LPSKILL lpSkill = &(m_aJobSkill);$ b( h6 b) N% \' ~& x9 c- f
if( lpSkill && lpSkill->dwSkill != NULL_ID )- U( T) P" Q0 S! a5 C3 r
{
% N( u' v, }5 w: k$ L) F9 c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 z! w W# @: D8 G7 v% q; R N
if( pSkillProp == NULL )0 V Y7 I6 F' t* ~& R% ?9 O# }) A/ S
continue;
% g, D, D. k. z5 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 ]( n5 v; ~" a' n+ W# V
continue;/ o Y3 a3 |* s+ v" A; }
lpSkill->dwLevel = dwTmpSkLevel;
4 z+ r) D5 ^ |% ]. r! k+ E+ E, A }! `3 ~4 l0 p O Z
}* l3 o2 K3 H8 G7 m# z, o8 z6 X
}
. [) \' s. s. z+ P' o! K5 E- Y3 @$ B else if(IsHero())
( F/ V4 h3 F, J4 c {
{! ]/ d+ w! C8 g1 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
& O+ X1 |8 z& C \ Y$ I {
1 J2 Y' |; z" M' l. g3 X LPSKILL lpSkill = &(m_aJobSkill);: Y1 q) H" F- M
if( lpSkill && lpSkill->dwSkill != NULL_ID )& Z) A) Y2 [% K) s, E5 ]( T
{- F% R; Y1 E6 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! N; L3 ~( v S5 W
if( pSkillProp == NULL )
; D; S' `1 t$ s6 M# p. i, J continue;
+ @, A+ W- d1 \0 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 e3 {2 C+ [+ K8 d$ ]/ d- U7 J continue;5 e9 h3 W3 s( I; I2 L2 h
lpSkill->dwLevel = 5;7 R" c( Q: j G+ F' D
}
! W; h) T# W( c% E" T }% r. k" F& o1 n8 Z* b E
}
2 m0 `+ t/ u8 r1 `. d, i- M else if(IsLegendHero())
4 [" A' L! m: p$ C1 E! K {
% {, s' |6 \4 Y6 I0 T for( int i = 0; i < MAX_SKILL_JOB; i++ ) R: u- y: k* g+ k, v* I
{
6 c" V& Y1 ~# E' n LPSKILL lpSkill = &(m_aJobSkill);
6 k, j3 L- Y# e. _, d. m" K7 W if( lpSkill && lpSkill->dwSkill != NULL_ID )
& G0 ~% m: j1 K. ~) A$ q {# G1 d' O& D' g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # N0 q# j) K2 @% }& X c
if( pSkillProp == NULL )7 c) K, o! D8 A$ P
continue;
6 ~" N# x* e! V8 J* q) \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: S& ]6 i" t, l$ f! b continue;
+ ^: |0 q# b7 N# O8 d& w; J lpSkill->dwLevel = 5;
, B' f9 s. m) E( S) Z! ] }
! e! v2 N* G$ y" f* U9 [2 _1 M }- _1 c2 K3 ]+ P4 W: N: }
}
2 i' @; U, j& f2 [#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, T! A# _6 _. a5 K2 ~0 |7 _ if( bGamma )
) v' z, F! ]$ b8 k7 D2 c# e* D {
( @7 c. ?( n4 `2 R m_nExp1 = 0;( S. c. h# o# i. j k
}3 E3 V6 H; d! j# n: K/ ^1 }
7 H8 e" r/ e1 ^7 b
( (CUser*)this )->AddSetChangeJob( nJob );( g9 W* Q- ~# @9 H% ]( H9 `3 g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ B) ?' f3 {' ~/ @
! M6 w& |0 |) S( w. f# S i. g' H; m
#if __VER >= 11 // __SYS_PLAYER_DATA6 C- Y/ ` w) B$ V
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& n% [6 X/ E' @2 C5 w
#else // __SYS_PLAYER_DATA
: \0 g7 d) E5 E! e g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 w# }/ x2 O# n# M
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- C2 o d% e- t3 ]8 L
if( m_idGuild != 0 )( {/ D" y" K7 _' T1 l4 W0 n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" n/ T4 ~' ^! }/ q& G! z! s
#endif // __SYS_PLAYER_DATA% U T4 M+ J& q5 a# p2 j/ ~4 p
SetHitPoint( GetMaxHitPoint() );4 `' R% K& k2 R! | V
SetManaPoint( GetMaxManaPoint() );
( n4 ~; C1 e2 j# K SetFatiguePoint( GetMaxFatiguePoint() );. n3 ^4 Z5 W* j
if( nJob >= 1 && nJob <= 4 )
# ]# o% i. \ a {* T. e6 G. m* }5 \2 k
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 ?& D4 e) b+ Y, f
m_nRemainGP = 28;
* d$ a; Z( d$ L7 T4 k) P/ J }: P* z3 G# D E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
6 r+ L7 A2 v' M# [ {% i5 u" h. g* O
m_nRemainGP = 118;; P% f4 n" c/ u- j* J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- f0 F( u0 u( ^; v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ }0 m7 `; O! }. a }
; v" B7 j% |4 A2 B- J- }5 } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; P6 T O; Z3 \6 T: ?: p1 Z! s7 y {* ^% H9 I3 g3 @% \
CItemElem itemelem;
w2 k1 L5 @( a) S0 s itemelem.m_nItemNum = 1;
% A& Z& q7 B3 F; J itemelem.m_bCharged = TRUE;0 f& g6 Y' m+ A* C8 \0 h
BYTE nID;' T3 B, @/ v% Y, J$ G
# E' E3 t# Z2 E p
if( nJob == JOB_MENTALIST_HERO )
( A) ]/ x9 v2 U7 O3 ]. Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 o% e1 ]- _3 Y. g if( nJob == JOB_FORCEMASTER_HERO )" ~& x7 ]* `' E- s4 K/ i! _1 Y$ t
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 W% r% w- J( Y" _7 I/ M- ^6 r7 _: ]4 Y
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 \$ H! O9 E% {5 E }9 @ E3 f. f6 A; N2 D- [) K" h Y `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ _; F( O. C. z2 f J+ e ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% @, Q( j- o) f) P) C$ N$ n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 ~+ s/ p0 Y, |7 Y3 ]# r6 j7 p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); O/ A$ J& [ s7 e- S5 f: C" S
( (CUser*)this )->AddTaskBar();*/" g: _1 x9 }7 ~ Y. Y, v, w" ^3 [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 W: E1 m/ j Z9 P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' y3 K) d/ T) ~- d6 l6 K, c ((CUser*)this)->CheckHonorStat();
T$ p1 K9 ?4 n$ F7 W- a6 G4 D4 J ((CUser*)this)->AddHonorListAck();% Z6 X7 Z+ m# S( N4 K/ A
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 H& F8 _2 V& G; ?3 i#endif // __HONORABLE_TITLE // ′Tà?; V+ s8 N% r' [* |; ]
} Q- L, P% K/ f; L4 _% g7 O/ X
#endif // __WORLDSERVER
0 k7 V6 u; ^) C) E0 \} ) Y' H' O, g& u8 _4 g9 X4 {$ Z
8 y6 }) y7 v2 K/ `! s+ i
然后你进入functextcmd.cpp并添加以下
# k! t# y) p) J9 b1 \2 Z' W- l6 l
! C2 E, N& R7 g代码:2 F4 \$ ^9 [; Y# K, K8 Z. c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! D& J1 i9 h& [, F) z: Y2 z9 R2 h
下面插入
$ ~4 I% k9 D- U' Z9 NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 o* b% ~& `( w
& P( u0 X; T8 q- n然后你去* ^& V7 _7 h7 U0 x* a, A# \3 n
. |) y3 A0 s9 x* Q; j9 o: p代码:8 y1 ~: V6 f2 W6 J0 V" B, D9 D
代码) v( }. s- f0 G8 X- a7 [
BOOL TextCmd_ClearPropose( CScanner & s )5 l: w' C( S" |$ R( S2 Q
{
! f- z# [* S0 c/ ~6 P- m#ifdef __WORLDSERVER
8 q! g" I" i% \! a' \& Q CUser* pUser = (CUser*)s.dwValue;$ y' s% ?4 `& k% Y$ U/ L
g_dpDBClient.SendClearPropose();- t( A% Y6 G9 U
#endif // __WORLDSERVER
) w3 ^- l& r1 b$ y' ]7 t: [( d8 x- t return TRUE;3 W* P2 u7 N( }5 M7 T9 n a) N, D
}! \, D" n. Q$ Q! I% q8 E9 W' p
下面插入
4 Y) Y0 [. p5 h: g, NBOOL TextCmd_rebirth( CScanner& scanner )- j# Y9 I# v8 p0 z
{
% Z9 m8 I/ p) c7 A8 L4 G2 C; N1 f#ifdef __WORLDSERVER
0 V$ R) |( r, S: uCUser *pUser;
3 W% j% t* K" ^% y" `pUser = (CUser*)scanner.dwValue;8 {. }2 j/ J% l8 k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' e& q3 D4 z0 Y0 G q9 {pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& ^+ M9 b3 L selse
( _& S) I6 U- S9 b4 ?pUser->AddText("你还未达到重生条件!");: W4 f7 v/ S$ P& T8 \ f( o7 F' e
#endif
0 w" @1 `4 X0 x2 F1 A6 nreturn TRUE;+ x$ q' }+ _5 z& \+ G
} ; d( N6 @+ f+ y. k# R
# s8 e! d& u& K9 M0 s$ l2 K- F1 d& A" i Q E6 M4 {7 j/ S
b2 G& z0 I' _2 t
0 u/ Y- e( L2 X5 n9 Y |
|