|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 K. B0 ]! J+ F8 R9 p
) A3 \5 m$ W# Z6 G9 h& KMover.h$ w5 H# O; C, f4 k) N
代码:0 L4 h7 F. \+ r. z" I# w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 X- C9 [& Y7 h: }& ?
, L# i5 q3 V7 ]! V下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 c8 w. p0 H4 J- K/ w
* G, ~- x: T& W) Q. y8 ^, Z) P! ^然后你去mover.cpp添加
# N0 J) e; A+ r7 G4 a- t8 d
9 [4 ^$ ~ a7 t" d1 p( d代码:
; ?2 l- _) ^ {' X/ _( Q" [) Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# }0 ?3 R3 | H. F8 `{; _0 z& K2 @1 Q' u% I! T( ^9 f
#ifdef __WORLDSERVER) b9 ~ m8 o a( k- r, @# ]3 g& M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 Y; s: ?8 @5 D
MoverProp* pProp = GetProp();
" V( b, T$ n/ U6 o if( pProp )/ I9 v% f% r! C- R/ x
{
) }, y( d- h+ @ Z6 y) O if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) m( B. ]8 O' j. j, G {, J; c6 k' r, J2 {3 F/ f
AddChangeJob( nJob );
. R5 B! N4 A- r$ E u }else{
7 n( s$ H7 K6 i* _7 t return;
; P1 y. k9 M x2 w3 J }
7 B; n3 s* a: E! z3 R int nPoint = 0;
$ x" v& l1 k* E, H5 Z8 T# M if( m_nJob == JOB_MERCENARY )
8 g2 m# U1 H$ B/ P# A3 _: I5 ^% o7 q nPoint += 40;# q0 S: m0 ^7 Y
else if( m_nJob == JOB_ACROBAT )/ v' J4 o- I( d5 e: h+ k2 j! N
nPoint += 50;
5 b6 w# q% l- V6 F else if( m_nJob == JOB_ASSIST )8 }4 _$ _! [; D( @3 t% @
nPoint += 60;
' L! }6 ^& H" o# r# | else if( m_nJob == JOB_MAGICIAN ): |. F3 O8 Z) @9 O0 N O" L* e- J
nPoint += 90;# u5 ~/ M/ E1 R
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- l. v. h& [3 x( B' n
nPoint += 120;3 z7 g) J) z9 f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% t& p/ f; _8 ^3 ~9 u& M
nPoint += 150;
2 J9 U/ s' o H( O else if( m_nJob == JOB_RINGMASTER )/ u# g% H: U' a
nPoint += 160;
0 a3 ]- |1 M7 t& D! z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). L- c O) e% t* C+ H. G. v) R
nPoint += 180;* [# I( h0 z3 t. T
else if( m_nJob == JOB_ELEMENTOR )3 \% u* Y" D0 m( @: I
nPoint += 390;* g9 s6 G) j( Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); u6 L8 p" H- Q3 C" Z
nPoint += 120;
3 ?. I& B1 I6 @ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* ^( N6 u6 N8 r6 D7 ~+ e
nPoint += 150;
: p2 {+ G: b2 Z% |! T else if( nJob == JOB_FLORIST_HERO ): l! I6 a' p' M3 T
nPoint += 160;
( f- Y- m* X5 Z- E- m else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- \# `% J) \* U( @. h nPoint += 180;
" L/ v# Y ? ?9 q$ E: ^7 G% R else if( nJob == JOB_ELEMENTORLORD_HERO )
1 z6 Y. n$ ^7 ~! D* w: R nPoint += 390; E/ Y) R( K$ `2 ~' D" L
" c; K6 J+ P+ n: p$ _- n& o
AddSkillPoint( nPoint );
5 `* R6 B" o" |, W m_nLevel = nLevel;4 H8 F, |5 I0 x, o L/ S6 L3 u
* R: u" k, ]! w+ @ SetJobLevel( nLevel, nJob );9 p6 {9 E" B% p& P& a1 s+ f
m_nDeathLevel = nLevel;
' R. C' u7 V) C8 \+ L) o#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* r q( k. r4 }! A) K9 Z) A2 ?$ T if(IsMaster())
. A- {5 p" M5 F2 J# ~ {5 x$ j- \; B6 B* u
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' S6 I3 r9 `' A3 V3 R, E; _4 K
if( nLevel > 59 && nLevel < 72 ); d8 [0 f! F7 ]; A+ u6 A7 n
dwTmpSkLevel = 1;8 p: f8 Q' f! Z; ?6 A3 F
else if( nLevel > 71 && nLevel < 84 )8 e& Q( Z# G* K4 p) A
dwTmpSkLevel = 2;
9 X: _1 h' l( z5 g else if( nLevel > 83 && nLevel < 96 )0 F6 N! Y/ k4 o
dwTmpSkLevel = 3;7 A! T, W! N7 K# x$ ?
else if( nLevel > 95 && nLevel < 108 )2 v6 _7 j8 _; I2 }9 I: z" z
dwTmpSkLevel = 4;
2 t# v; v. P8 v% v6 ?+ c else if( nLevel > 107 && nLevel < 120 )
, i$ a6 E5 l, L8 O dwTmpSkLevel = 5;
2 l4 i/ i( `1 c6 p( y for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 }, @2 ^$ l3 `( Q) @" |
{
' V) c7 Z! s" f7 j: }/ j4 d LPSKILL lpSkill = &(m_aJobSkill);3 K" }2 s( {2 g" f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& P+ j/ T8 B6 u; I; J, K {
4 ]" q' ^$ A# T' Q- v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + k6 X( G9 Q/ j5 ?; _" r! k. s& f4 L
if( pSkillProp == NULL )/ ]6 o' |0 b+ `. [1 y' T
continue;( Y! s" {. W% e" O- E4 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), j" @: v# p0 f% l; E1 b) m) ?
continue;
) s* ]7 [* ]) f3 g lpSkill->dwLevel = dwTmpSkLevel;/ C& z/ G) f+ P, {: N& G; a* U
}
; o- ^) s1 Q# D, j! k5 z A3 x }
/ f. r5 |/ B# ^) l/ ?: c( [ }/ n# s8 Z1 q X1 M, F9 Z: a7 @
else if(IsHero())9 `* H* C( q# }3 y* n0 V
{5 d2 h' ]) L7 U" Q( h: M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ A8 j* h; M- ?* ^9 |! j
{
0 a4 Y3 G) |6 j& N4 a" y5 e9 ] LPSKILL lpSkill = &(m_aJobSkill);
: w" f, ?, l3 {5 u' E/ b. m* d if( lpSkill && lpSkill->dwSkill != NULL_ID )
, w# L- @, X& S7 S {" R/ ?, j; x- ^# J- [! v* f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. S7 u/ a9 E/ f/ b, r) W if( pSkillProp == NULL )
8 m* T5 i& b; E7 @3 n ` continue;" O4 U, {( X# z# ^% g3 a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 S3 {9 t, Y6 k# G continue;5 s6 m( j4 }1 @9 Y+ e. c5 r: g! l8 B
lpSkill->dwLevel = 5;* Q. l* [. q6 Y
}& o; V7 @. w) Z A! g
}/ m' i9 b/ ^! N( r( r
}
& Q7 b* H6 W) ]+ X: X% r$ p else if(IsLegendHero())
$ D7 y4 q6 W% e' q( A$ b0 d# V {' M8 G" y8 @) I) @/ J) P3 W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 }" H0 I2 k) @5 _" m5 q {
+ a: U" x) o7 w) T% o+ ^ LPSKILL lpSkill = &(m_aJobSkill);
' U" r, d: E9 d if( lpSkill && lpSkill->dwSkill != NULL_ID )! b7 F* j' j9 K' M5 y7 q6 y7 m
{
9 a4 T, a* G3 T: ]: \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( j/ o* @9 d) M/ i* ^* O
if( pSkillProp == NULL ): Y" F/ K& s2 ^$ P
continue;/ G% \- |6 P4 b' s2 @9 V6 C1 u# q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 K* n Z0 h3 g8 e) F
continue;
5 t" R0 o) {( D3 A# P, V lpSkill->dwLevel = 5;- F# ]* {( ^+ l' {3 h9 f Z
}
' I) X) A3 B1 H- _/ d' j Z4 h }
+ p% |3 X* F* f }
0 o2 t+ b- r0 w! E; E. A#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 c, n; @+ ^. M7 B$ r2 a. o if( bGamma ) O# n1 a. a; n( Y
{
' x) m2 E/ E& d m_nExp1 = 0;5 n0 q% n! \7 o( Z$ A# g
}
( T9 \" }+ y7 @- Y. C. U1 K0 l+ [4 W6 g x0 N; l" M) T3 w1 P
( (CUser*)this )->AddSetChangeJob( nJob );
7 f! V! |+ t6 g" ~ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 f- i6 O" F J, w- y8 j
/ W1 I" E& |# F' E: U/ v2 Y
& M0 T! z4 Q( u$ |0 g( Z#if __VER >= 11 // __SYS_PLAYER_DATA
6 U. f5 y1 {+ v/ Z0 t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 d. J8 ?0 E! E: P: J
#else // __SYS_PLAYER_DATA$ v2 O& ?9 a1 f4 {0 X- w% g
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* V& F- e0 X' m h9 c r* e% N g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 R$ z9 B' n3 @* ~# t1 p8 h if( m_idGuild != 0 )
4 t5 l, _/ U* j& t4 B. b9 s g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" G( G7 K& u5 F: E8 ^' e* O2 n0 n& |#endif // __SYS_PLAYER_DATA8 R; y, G9 I& P$ e. V3 N$ m
SetHitPoint( GetMaxHitPoint() );
" ]' m3 G5 `% A5 D" P; ^ SetManaPoint( GetMaxManaPoint() );8 @* l( t ^2 w+ c( w
SetFatiguePoint( GetMaxFatiguePoint() );/ C8 T' ?) r9 k. N/ U( p+ G2 D" T
if( nJob >= 1 && nJob <= 4 )
4 H! q3 j" N4 p" \: Z. q2 ~' L) D {6 Y+ }$ l/ Y" r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, {: `$ i9 Q2 u3 ` m_nRemainGP = 28;: V5 [: \( f; l* T- H5 h- r G9 o, r' F
}) E( d2 a' Y+ t6 ]' t6 b" F, E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) }, d3 `/ H) N
{
: J8 C7 F! L- l" w m_nRemainGP = 118;
( x) I4 s/ I1 k/ _3 R5 v //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& w' r+ I b* v/ N7 ~) _ m_nStr = m_nSta = m_nDex = m_nInt = 15;8 U% Y! a" v W" w' f# a& d; o
}! w! R# j& U G8 b; ?* ^4 b4 | Y" `" D
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# o1 [# @5 y7 ]; b
{
) z2 H# e" V; l q- \2 i B CItemElem itemelem;1 o X9 h, k: ^2 \
itemelem.m_nItemNum = 1;
. P3 h" h8 u* J0 U+ j( h5 K" V2 n itemelem.m_bCharged = TRUE;8 R4 W9 Q3 u* X
BYTE nID;
( [' x+ p/ J- ^# p& o
) ?( m: Q: }2 [7 `; v if( nJob == JOB_MENTALIST_HERO ): [; y7 s. n' o2 A( S) d% O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ a' d) I4 } S) y& {
if( nJob == JOB_FORCEMASTER_HERO ); P1 J& x' C; W) {* a# E6 W; |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* E3 I4 P; w3 y+ e+ O+ ^6 w0 v: g8 I% O! L8 j/ C6 h7 y
( ( CUser*)this)->CreateItem( &itemelem, &nID );/ I4 s( x% P) ~( t! v' m
}
; c& r y7 q2 Z/ O, Q( Z$ E# I g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, z' R5 |5 g& h% T8 t5 ] ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 S, F* T/ Y5 B! U8 ~7 W4 o v
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! v/ `1 V* S0 `- }, R. _$ q* [$ n /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 |, C: Q( Y U& @+ {& R" b
( (CUser*)this )->AddTaskBar();*/
8 T O1 n; _$ _* f) j# F0 A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, D' D. E5 A! |1 L8 T- M" _#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' X! v) \2 E9 s; `* H% H3 [9 G ((CUser*)this)->CheckHonorStat(); q6 x9 O$ E& v% S3 n% v6 T
((CUser*)this)->AddHonorListAck();
4 h o! c* ?* Z g_UserMng.AddHonorTitleChange( this, m_nHonor);. J4 ]/ C! O# K% Z/ L. t
#endif // __HONORABLE_TITLE // ′Tà?
5 I9 |! B; J' P7 ~8 L) O }! z1 R m8 L( c- J; f, ^
#endif // __WORLDSERVER
S7 K" u5 n2 X. b w} 5 n4 d! l6 L0 S! r4 L" C1 u
6 }+ d0 Z$ D1 ^* W
然后你进入functextcmd.cpp并添加以下
0 S4 E% u+ k0 D% m: L- o) J+ C7 A/ v: s3 [& |; D4 {5 s
代码:5 j- W. I; o3 L; D2 G! x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. ~: M( g" G( f& ~( c下面插入# ]! }+ q; ~# T& G- N/ h4 g
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. ^7 D# k% K) w0 }' G+ [
& T1 x; r" M3 Q6 I! E然后你去7 V8 O0 K* z/ \' j: V/ h% Q, o
7 N. H, u# L# ~, e: _: ?
代码:- |* D6 [9 ~. [
代码
+ ]% e; L# }& `2 v& `$ p8 [BOOL TextCmd_ClearPropose( CScanner & s ), T8 T* t# J+ d- d( j) d
{
( a A1 i+ c; S5 q, F. u#ifdef __WORLDSERVER, B6 ^* u: m8 i& b* T7 h
CUser* pUser = (CUser*)s.dwValue;: u* U) g" { b* Y; k# x
g_dpDBClient.SendClearPropose();
! G! _4 D% {. o/ I#endif // __WORLDSERVER8 u( [2 G+ j; c1 m4 x
return TRUE;
4 ~4 }/ z. R5 Q& z}
* {7 o5 M+ U) _8 q B下面插入% b# n* e& t! Z# Z/ Q7 N
BOOL TextCmd_rebirth( CScanner& scanner )
2 w! u0 ], C4 W+ N. e9 H{
6 p( r( H1 Y" ?8 D5 `#ifdef __WORLDSERVER
; X! D( T7 n7 sCUser *pUser;
8 b" T! q1 D+ T2 V& kpUser = (CUser*)scanner.dwValue;- t9 H! i3 e/ h+ G
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 s6 m; n x5 C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 u6 e; {5 B0 c; Lelse) P9 [7 d* t/ \9 p5 P6 u
pUser->AddText("你还未达到重生条件!");9 z& d) O* B+ k# c9 v
#endif
7 x( w; X" u4 c9 d- |return TRUE;% z! ^# A7 [3 i$ a/ ]% F& R# n+ j
}
# b: }. t6 a0 ~# h2 P# ?
* a- o& |- p' z( b0 f) B& e4 u9 \, a& L X0 i, A M
; [( }2 U" e% q3 f9 t1 X
* ~) y! l/ G/ ~1 v) P" E* _ |
|