|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: Z# J) }* [2 e- r9 P! b9 z7 k
% M& a, Q- k- {; E9 ^4 I* c' qMover.h
+ Y! y0 G6 V: Y# m代码:# |2 ^6 V5 ?8 e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ e7 o0 R, P2 [2 S0 ~5 W
X! |- b0 F7 I |6 _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
+ c/ u; l( X/ A9 M1 {' M/ M* F" c& ]/ N% H& T
然后你去mover.cpp添加
& q" @& U" a, r) q) ~8 y* G5 @. x" G% O
代码:7 h# p7 Z! d6 P: p5 X6 i' w
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 }' b- g- g& a* h{1 f; F7 C3 Y( s6 j
#ifdef __WORLDSERVER5 u W& }. \: k. E+ `( j+ [+ s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 a [! _+ J2 R7 J( U6 T
MoverProp* pProp = GetProp();
' ]8 l6 I" [' o" w5 e if( pProp )
3 H) i1 X6 T2 A0 ~ {
5 Q/ w5 r0 n4 e% ^ h5 v if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( G9 _1 y! B# A# r$ z {
8 h' b1 L4 E* J6 q9 k: K; r5 y( e AddChangeJob( nJob );
% A! m$ |5 L3 c }else{1 V C" T7 r" S% ?3 t) }
return;! O/ D( m8 q) E. w# |* u4 e+ o
}
2 o% V8 t; s) ?& q) f+ Q int nPoint = 0;
5 \, R7 k, t0 J J: W, A if( m_nJob == JOB_MERCENARY )( {" r& l& V/ A' M) I9 f
nPoint += 40;
. _& F1 H) N( p- Q/ \ else if( m_nJob == JOB_ACROBAT )
& P6 l5 w7 r: k) e2 F/ l8 r nPoint += 50;$ P1 h. j3 [7 p0 z, w+ U' L
else if( m_nJob == JOB_ASSIST )
0 d5 w1 ?5 h9 F1 s9 L nPoint += 60;
* B- j$ ?- c/ g# c- s# h3 \; e$ \ else if( m_nJob == JOB_MAGICIAN )1 s- @! Q Z- o ?9 N$ a6 \. c
nPoint += 90;+ D$ z, m+ p: u6 ] [
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% |# x7 @/ N' s* N) N% Q8 u
nPoint += 120;& y2 ^% k* q. {% _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 @3 D. j( U$ V. y2 w, J8 W nPoint += 150;
7 A1 @1 N2 n) }9 U else if( m_nJob == JOB_RINGMASTER )
, o: u$ @& z" G8 x nPoint += 160;" O) \' d: F& q' S g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& s2 @% T( h7 w* s U nPoint += 180;
8 A" N6 y& o- o else if( m_nJob == JOB_ELEMENTOR )( P. q1 O+ |; ^. s, A
nPoint += 390;
/ f3 [1 G$ _4 k( B& ~8 T+ G0 r else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), i- d) `6 X# v
nPoint += 120;( U7 s* b2 x9 d3 K* W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 H. x0 M `5 o- m6 M |
nPoint += 150;1 ]! R1 z7 X& e/ n E% B) {1 L3 g
else if( nJob == JOB_FLORIST_HERO )
! i Q! L$ p$ D0 f; h9 @1 o nPoint += 160;* b9 C" A) o q5 ^( V
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 H* t* \: H% L$ [% u1 [: @ nPoint += 180;
% ?% p# }( r$ K else if( nJob == JOB_ELEMENTORLORD_HERO )/ ?. `& l* }. }0 s
nPoint += 390;' p8 o" O# Q* w2 _( l
6 f2 D4 `0 J2 {) d. O/ c! C* j3 D AddSkillPoint( nPoint ); a: L' r8 m _$ }' M5 q
m_nLevel = nLevel;
& T, ^ w8 j1 d% Q G ^$ d4 _) U4 K) V$ X
SetJobLevel( nLevel, nJob );
2 Q% O! T6 K2 q, u" `9 T. h) v m_nDeathLevel = nLevel;0 u/ W& D% a! D: |0 n2 l8 h- N1 T
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 {4 `+ g9 ?4 A/ q1 u- b' r5 A( g
if(IsMaster())
' X7 U) G& h4 u& w- e/ H$ l {
) i: Q5 k% K% H3 L/ d, P* p int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' `" X5 B# V' Y( a0 e- S7 h! L if( nLevel > 59 && nLevel < 72 )8 ^1 L& w- z1 r" v) U6 Z& ~* p
dwTmpSkLevel = 1;
# _' G2 d/ a3 P) [' Q- I# b else if( nLevel > 71 && nLevel < 84 )
2 ]4 t& @0 I* c7 U1 ] dwTmpSkLevel = 2;" h% C# X( p5 [, s2 @
else if( nLevel > 83 && nLevel < 96 )
' E _ T6 q% B y. g dwTmpSkLevel = 3;$ Y! {- ]3 Y8 b4 ]9 v
else if( nLevel > 95 && nLevel < 108 )$ |! q+ }. x! H, G, g
dwTmpSkLevel = 4;" _+ S! M- q, I
else if( nLevel > 107 && nLevel < 120 )) {& ^6 K" T8 Z4 D2 R
dwTmpSkLevel = 5;# S2 K+ C4 {9 }% {) a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ ]$ Z' _, Y* Q$ o2 p* Q% v { ! p, v' C E; I1 A3 w9 M+ I
LPSKILL lpSkill = &(m_aJobSkill);
0 `1 U/ B/ i' Y/ y3 B( ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
% x Z6 b6 e2 `2 v {
6 X) ` O8 g2 Y9 u9 p. n$ F; I% r) d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) X3 [! m+ }# ~4 Y' w% \
if( pSkillProp == NULL )
# j" l) V/ V8 E+ m9 K continue;6 G1 K1 j/ C r8 [, R) e; Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): v/ g* f. h2 a0 b, S) T) W
continue;- |8 }1 z" g% n0 f+ c+ c
lpSkill->dwLevel = dwTmpSkLevel;$ _6 z e0 o. ]; A
}
) N# J0 Z2 Y- Z$ Q }
[( }/ f' k2 K. n. g }* L6 S1 P" f! x7 b- V0 Y. D/ m
else if(IsHero())* z# p: p/ q1 _2 i3 c8 s
{9 N: T8 K1 V( y7 j3 [! L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! y9 m/ }4 I! y4 ^+ \5 l
{
: u: O0 w. B3 p B! N- F LPSKILL lpSkill = &(m_aJobSkill);( m& r2 g" s# k: s1 Y- [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 K$ D7 q) R$ l* P2 I {
7 L+ J8 C7 z2 R0 t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* m! Z7 C" n$ N- a if( pSkillProp == NULL )# \: O* a$ v+ K; p8 w( y ]" s' x
continue;
* Z' K& w \1 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 i8 m) p* h, x3 u" U continue;
9 W4 b5 n* \7 K7 H6 C9 d lpSkill->dwLevel = 5;
6 H6 I" ?0 l% r: s" p }; V; i; z7 I) w6 E5 y. D
}
# V3 A; l( ~" |1 `, Q; D }2 k! y, D6 A1 n4 i" i
else if(IsLegendHero()). T* Z# M0 o# R2 d% H1 g4 Q( T
{! s) P5 Q* S: |; f8 D9 E6 E, [- D% j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 N2 t* I, ^( @: d" I( V) F- ?5 d
{
" I! S4 g7 m: a$ L; F5 U0 l8 C LPSKILL lpSkill = &(m_aJobSkill);% A, \6 a1 R. U! n- \+ H L
if( lpSkill && lpSkill->dwSkill != NULL_ID )( w4 j9 T/ J7 g: p4 t1 b/ A
{
; @6 S& p" e; C" J' K. \7 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , Q t% e" y+ I* O# [$ e
if( pSkillProp == NULL )9 ]6 w& h! r5 s; g' g- T
continue;1 v+ n6 } S5 T, s4 {% Q+ ?& x. k$ n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- o0 D) w* w' P4 k( t/ P continue;" k5 l2 J0 a# L- N0 N+ A' x' ?# k
lpSkill->dwLevel = 5;
4 x% I. C n4 ]& J% w4 _7 s# } }
* D, i1 J3 p* ]& H) c }7 M: K. X" L9 U1 h l) t& ^
}; W, _* L9 `, |7 d. R% z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' @0 ] s7 Z8 f6 A
if( bGamma )# j! W n) f( d; M
{( t1 F( Y! f' d! q9 B
m_nExp1 = 0;
5 j( T: Z9 C+ n }
+ z; ?/ p3 L7 _4 N. p% O8 _3 X4 W7 W8 Y4 T2 O
( (CUser*)this )->AddSetChangeJob( nJob );5 g) X3 p& H4 E6 ^" E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! I" Q! D( r$ j
. V9 A$ s: s h( i* Z7 ?+ \" g/ m
. j2 n* I% ?' k/ A#if __VER >= 11 // __SYS_PLAYER_DATA
" |2 }- h P6 d7 k) h3 _1 W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 u9 [ j! H. W) W0 ?7 ?
#else // __SYS_PLAYER_DATA h# P5 n6 B- n& \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 v3 ]( \ S) W1 x# \) A9 `
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ `8 O( S+ \2 A9 @$ r5 X# l6 f
if( m_idGuild != 0 )3 d' K2 T- s, i5 l7 ^6 t* n; @
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 ^0 `4 b& V- P
#endif // __SYS_PLAYER_DATA
" F" g+ U8 d4 J9 z* Y D+ p4 v SetHitPoint( GetMaxHitPoint() );
! A" G5 n2 |! Q4 @( } SetManaPoint( GetMaxManaPoint() );
! k8 \* h0 [! u SetFatiguePoint( GetMaxFatiguePoint() );
) t# S5 K7 {9 L- U9 u- v if( nJob >= 1 && nJob <= 4 )* y R" D! L7 w( Z
{8 g' i+ P+ E: M" c; S+ q
m_nStr = m_nSta = m_nDex = m_nInt = 15;# z/ v2 D7 i8 @' ]& I
m_nRemainGP = 28;
: t! U6 c% m" ?; k* h }
" S1 l; X' H& k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 A" H. e6 F, c! A. L- c2 X {& K" t+ w' k) P9 n& Z3 N- \8 t1 O
m_nRemainGP = 118;; j% B0 _+ F; ?/ Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 Z# w" X: A! r
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 x! i" x9 |0 A" b8 z) y) I
}' W) u4 _% S/ @0 h. j5 N2 E2 D
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; i0 W, ^( K; e* A9 u2 a: s9 k {1 }9 h( o6 f5 j" Z
CItemElem itemelem;
: ?& ]( f$ j% D# F: p. p7 F itemelem.m_nItemNum = 1;0 d2 r9 {3 t! E; b& D' `
itemelem.m_bCharged = TRUE;
6 y- s3 ^0 w# F2 @% e+ t BYTE nID;
/ F1 m( u4 v A; E1 @' I2 t4 u9 D8 |: X5 K) r; q
if( nJob == JOB_MENTALIST_HERO )% t0 ?" b- B3 G" M4 U" h0 q: ^4 x1 y: B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 D* v/ t+ F, k7 Z8 z9 u if( nJob == JOB_FORCEMASTER_HERO )+ G0 i1 ~6 A0 `9 k
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ y/ l: m+ u) h5 _7 Q8 E
, X3 B( s* p; r. G- ]! X
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, m! T5 c! b+ A5 g2 F3 {5 n } F* L4 D3 l% P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# R' U/ o% J) \7 z2 S$ P# \9 U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" D# h6 n) Q* p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ B2 R8 F v% Z5 L /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 r, A7 n% X I2 b9 i Z6 P; I ( (CUser*)this )->AddTaskBar();*/: |! s9 @* X5 d- I; y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# ~; Y. |$ h# K. C/ g
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 X. `/ N- _, V2 D ((CUser*)this)->CheckHonorStat();& A: {7 F% {- J- g/ |
((CUser*)this)->AddHonorListAck();
7 s, M& s6 u* [ g_UserMng.AddHonorTitleChange( this, m_nHonor);4 D# e" s- F0 ?
#endif // __HONORABLE_TITLE // ′Tà?
5 c( j9 v" Q+ j7 Z Z }7 N" H2 I5 [( H2 Z5 t
#endif // __WORLDSERVER" d% A* M" E- G3 N( J
} 8 k Z2 ]) H* z7 s
" P3 ]4 u& n* W3 ]* t8 P
然后你进入functextcmd.cpp并添加以下0 y2 z, A7 l- x6 L! ?2 V
9 d3 [' y" y- p$ W8 K) A) @5 g代码:; G+ P% d" S& M# k0 N7 }+ X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 F, o2 S4 J6 A下面插入0 {. R9 ` s! ?0 @2 n0 Q% _, ~
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# Q" \5 J* {# o K- H" _+ |; n% a
( U, `3 A' F, Q/ y8 N然后你去! j! ~, R. q( L; j5 L+ |
6 `- P! \; b2 }9 W
代码:
* k0 Y+ [: G2 N ^: j代码' K8 l6 i5 X8 O2 E" j$ S4 B$ U# c
BOOL TextCmd_ClearPropose( CScanner & s ); x) K, ^0 _& v9 a) t! P3 w
{
$ T5 G1 l% S4 O( m3 B+ y#ifdef __WORLDSERVER
: R- g1 C; E4 Z2 L( S$ F" G CUser* pUser = (CUser*)s.dwValue;+ ]+ B7 p6 m6 X
g_dpDBClient.SendClearPropose();- Z Z# T- j1 @
#endif // __WORLDSERVER
9 V9 N) T S" ?% Q return TRUE;
@# P- z" k. d( X3 h+ o}
0 R3 i6 X" o' ^; V9 V6 i0 g% A下面插入$ M p1 ^: M# Q8 f1 s
BOOL TextCmd_rebirth( CScanner& scanner )
) \! e1 v1 B0 k4 {{
/ }7 {% ]/ g: Z#ifdef __WORLDSERVER
: f* S ? U: {, iCUser *pUser;
" P/ z+ \; i6 y! i% k7 L# b4 ~7 ~pUser = (CUser*)scanner.dwValue;
. ^+ i4 a9 S: t) q* dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, D- \2 d1 N4 m8 [1 B; o1 fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 m$ a& B1 a; {2 b7 ~
else9 L: ?* J* ~9 L: _5 q
pUser->AddText("你还未达到重生条件!");
) V* h1 V! a, h. `. n#endif
* {6 H3 ~8 n5 Zreturn TRUE;
, W; C" R/ w: U- K1 Y, X/ f}
/ \) o [$ s z8 e f# D1 e: a; k& U9 i- |7 i
5 [3 B+ t- @2 J% T& n
/ C+ O* Q; {( L3 d) [6 G8 W
1 |6 \. D$ s0 s9 @
|
|