|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, m, }5 p# s9 e# M! E8 A% H8 b" t$ I4 j
Mover.h
' r; K; S: M, X代码:* z2 w5 G1 l) I* n0 [6 M: ?
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! Q8 f* r! C! g6 L* O; w7 f' U3 e2 Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 |3 c3 x& G( W# A L, u
0 D& k/ Z. q0 a) ] M# F1 L然后你去mover.cpp添加5 ?; Q, V+ g, |
, P5 o# `' E: S, ~3 z代码:5 g, q& n( o* p' v
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* [* s0 U+ e& P
{
) d: x2 ]; M( f. z' }#ifdef __WORLDSERVER) O. b; {; }( e% L) X, h& H; O: _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó z' F& \$ E0 W: C* Z9 ] t
MoverProp* pProp = GetProp();
! ?: u+ o/ o% e. M if( pProp )7 c. o3 v. `5 ?- J
{
, W0 U6 @$ _! l/ v" l if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( L( P h9 V1 g, c {
( z5 K2 u3 G& L/ t2 U1 b, N& p AddChangeJob( nJob );
6 w6 @! K: O, i/ Y }else{0 Y+ E' B1 ^- M6 \: l$ t: t
return;
/ v5 A. E" y3 ]0 Q6 q2 x9 ] }
6 h; S2 T# N* N int nPoint = 0;- o& n, w1 ^: i2 X7 V
if( m_nJob == JOB_MERCENARY )
7 ^$ s A* f/ m. s nPoint += 40;
& P' Z2 c9 Q: U( H else if( m_nJob == JOB_ACROBAT )0 H' C3 ~: t J/ h o3 ?8 j w
nPoint += 50;
r: F5 E4 x$ {5 ^( ~# i% H- j$ m else if( m_nJob == JOB_ASSIST )9 K0 ], Z9 Q- {. ^& V( b r i
nPoint += 60;
8 W/ E- D- L& M; j: n7 _ else if( m_nJob == JOB_MAGICIAN )4 U8 _. d. _3 c% P- N: b2 z
nPoint += 90;6 j( E( @" S6 H5 v
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 X% i+ l6 W5 k5 L* _" \! ]2 }( \ nPoint += 120;
7 H3 t) G8 w# x0 G) T# m else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
G' @* G4 u' p5 ?3 Z1 q k nPoint += 150;0 ^0 _8 a* n! ~# d7 @5 ?- S
else if( m_nJob == JOB_RINGMASTER )1 A; W; L# i0 M8 a0 t* a9 S8 m* ^: ]
nPoint += 160;
: o# T8 ?' \7 i else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 C, {5 C- I: q# H2 E
nPoint += 180;
' W+ N) P& I4 N G' K$ Q else if( m_nJob == JOB_ELEMENTOR )
: [8 J' Y* p8 ` nPoint += 390;( {4 w2 B" l3 @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): x/ s( H+ \6 {+ ~. T& H6 j4 [# i
nPoint += 120;
9 Z: F% W$ G. c W7 ^0 \( l+ G' | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- j2 }' M7 E' {- k nPoint += 150;
3 n2 K8 B2 G2 \' p' O else if( nJob == JOB_FLORIST_HERO ); j8 b* H$ j$ [% b9 F
nPoint += 160;" d* g7 v6 m+ r7 W0 d3 q/ z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ x x, V" n0 U+ E: F8 F- ] nPoint += 180;
; D& h$ l8 a, |3 s) } else if( nJob == JOB_ELEMENTORLORD_HERO )
6 }, T0 L; D! W/ P: i: L* t# d/ ] nPoint += 390;
6 d/ j) v5 O" C6 c5 M6 n5 l& f+ a
AddSkillPoint( nPoint );0 h* G: v7 j4 f9 V7 {$ h
m_nLevel = nLevel;
2 ]( X7 J/ P& G8 L2 @
9 B- K9 }- [, x H! I8 u1 U" \ SetJobLevel( nLevel, nJob );
( W) j* y' i' H m_nDeathLevel = nLevel;5 E9 i. E/ u& `: g9 o
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% l5 @6 Z9 q+ H+ F* q6 ] z7 G) c if(IsMaster()): ?5 y, K* z/ i% Z
{
7 s4 L* ^3 p7 o) c2 r3 g( v int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 v4 U3 J# i6 q) J3 n$ T p' c2 g
if( nLevel > 59 && nLevel < 72 )* _( r# j/ @5 n' Q2 [, @9 T. h
dwTmpSkLevel = 1;
. h+ e8 C; a* L- ]) `0 b( @: d else if( nLevel > 71 && nLevel < 84 ): h4 G- I- @) I5 }2 x
dwTmpSkLevel = 2;
" Y* C- h0 [. t' h& F1 j+ ~ else if( nLevel > 83 && nLevel < 96 )
) @0 t% S" U4 w0 |# g. y0 v: c0 V dwTmpSkLevel = 3;
4 M" A! T) L( L else if( nLevel > 95 && nLevel < 108 )
1 T+ x8 |. K8 i; j* M" R- s dwTmpSkLevel = 4;* F/ N1 J b7 i6 S+ ~' x6 s+ k! z
else if( nLevel > 107 && nLevel < 120 )
8 K/ |; {9 X1 P' @4 ] Z$ Z dwTmpSkLevel = 5;
# A. x6 W- V0 z2 p# v3 Z# _. W# @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
, l% q+ I; t ^% o% h {
1 [+ a8 X; a' \: K9 w% m0 [ LPSKILL lpSkill = &(m_aJobSkill);
8 n0 j3 G3 O0 A if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 t9 a& _2 u6 {; q {# ^6 A6 `( W, E7 Z }8 O) I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & V/ w6 a) C9 S
if( pSkillProp == NULL ). z3 m2 T& Q+ r$ M) d
continue;4 f" Y& P; o6 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% I' b" w* g* O+ L$ Z continue;, K" x9 M3 U5 x1 _, r) w0 W6 C
lpSkill->dwLevel = dwTmpSkLevel;& h: N) _/ ]9 [
}
" l' l% f) U' K& P( Q }1 F- i! j; q1 P2 U( J2 M/ ^ p
}
`# a2 }( C, f2 {( r' x' O else if(IsHero())
3 O7 ^9 X8 y8 M- w9 @+ f {
8 }7 v% x+ M9 ~+ l l; R6 ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 ]; ]: `+ n$ B- B' a% |
{
) O% g' T3 N, Y$ k/ s LPSKILL lpSkill = &(m_aJobSkill);$ n1 p0 \. A8 ]" `! P
if( lpSkill && lpSkill->dwSkill != NULL_ID ): C! A/ E& P+ v; \7 x; i
{# M6 r: T; f& M: S5 W+ A- x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); e/ H" n1 E# Z+ A: ]! {) I
if( pSkillProp == NULL ): ? D/ T' b! V) F
continue;
3 M! O# p, E( Y7 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 ~! s7 p* H/ q. d" |
continue;
$ W( Y& u4 S) O. E& s% [- l/ y' D lpSkill->dwLevel = 5;1 s$ u$ ?- b$ N2 K; P. i: o
}
3 P3 o/ ]! M y% ?* M: k } f& Q. L' D/ F) D8 A
}6 y2 n! m \( u7 F
else if(IsLegendHero())
' d0 u) M0 ~* ~& {( E6 E3 @; N3 a0 q- i {1 }2 n* _8 r, B8 _" S m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" ]* i. m8 |& h( `! n$ J) }3 l, o- O: U {
8 {6 R# g( Q5 k LPSKILL lpSkill = &(m_aJobSkill);4 F4 N7 U# w# R; C1 C( z' K2 L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: w0 R# [# I" F) V5 d {
/ n. f6 j5 r7 v$ U+ O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! d6 d) b$ W1 B% N% r7 [
if( pSkillProp == NULL )
6 x/ {' ~% t; s& a continue;
/ z% V! j, z e3 G' O! K l% Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' w8 g7 {( w. b, [( _7 Q
continue;
' c/ X) U' _ W( }: D( ^& m7 \$ r lpSkill->dwLevel = 5;
, t2 F- N s9 T8 w ~ }
4 ], C5 Z7 V; O' t! T }3 o2 }; A+ n2 n& G
}
9 Q3 ]/ O) d( F0 V# g. v2 B#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 G' f$ m# V4 |1 f1 ^1 q
if( bGamma )6 P6 l6 L6 B0 s! U; Y) }& I* ?$ Z
{: e9 n0 M5 t% c0 _" S, W& K3 B1 U
m_nExp1 = 0;# v1 h1 l2 r. X1 ^* E* j2 [
}, L7 O/ a# o' J% M7 U
; F4 r" s' E' i8 p3 r$ J
( (CUser*)this )->AddSetChangeJob( nJob );
* t& O0 _' F5 o; D g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 g+ `8 O- D2 o z0 ^$ J( y, G3 ]; Q& x0 Y0 x
9 H' { b+ o' B" y$ O# z#if __VER >= 11 // __SYS_PLAYER_DATA+ ^* f6 p) W$ ~/ |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! C+ Y& U4 {1 l+ l
#else // __SYS_PLAYER_DATA5 T9 Q- H3 ?$ b5 d4 T/ j5 T, Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, m9 V# h _) i) h. [! m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- A; P6 p3 B9 t" F: R9 K2 q
if( m_idGuild != 0 )- M. \( V- w' X" m1 P
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 P- ^ c' z2 ]9 C* B' Q6 s
#endif // __SYS_PLAYER_DATA* O3 j% ^: j- t- r. I; K8 n
SetHitPoint( GetMaxHitPoint() );! a+ q7 W! {; Y; X# }
SetManaPoint( GetMaxManaPoint() );
- {: y) ^( u; P SetFatiguePoint( GetMaxFatiguePoint() );& Y5 I0 {& h5 S9 Z; G# U* u5 W
if( nJob >= 1 && nJob <= 4 )
8 O5 w8 d' Q1 K. s, Z {
- m1 b$ I) @+ w5 q0 E/ o0 K- D m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 D- N9 w- j" T8 X ^ m_nRemainGP = 28;
1 k* C' t% \- \' T- f }
" H$ B. O9 a+ e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" C7 @" m! ~$ O) t# v4 [ {
4 Y" G! o8 C/ k7 y+ i! A m_nRemainGP = 118;; U! u) h& n7 r' j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ n; w: g0 O* U: Z; \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% S$ Q2 s9 l, w% y }# R* e! z6 X* u4 M3 y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! a9 i' k; g/ M5 c% I- ] {
+ G0 w/ g9 z8 q, {4 F: F CItemElem itemelem;/ j y b9 A( c9 D6 J3 z, v$ Y- B
itemelem.m_nItemNum = 1;$ b% ?" O( V2 ]( {% y
itemelem.m_bCharged = TRUE;
. \; m$ ^8 r [! s; n BYTE nID;+ M4 H H. p3 p, d7 n4 O
9 F( N0 L V j/ E+ ^4 F
if( nJob == JOB_MENTALIST_HERO )6 Y, ~; \( p7 @! t( X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 j; B/ b( p q" E if( nJob == JOB_FORCEMASTER_HERO )) e( ?% c/ c @. k0 a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;0 o6 b/ H4 X8 K% ^- C, P, W
" r6 b" M9 ?6 ?6 ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );8 h ^8 {$ C6 }5 {
}
1 T4 V3 H& q6 u" O2 r. j8 \! W8 @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# C% a/ _* ^. b; |; v: N) i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* b: A" q2 p, A L6 |( B
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* B! n4 |$ \/ y+ U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 H+ s4 d3 F) s
( (CUser*)this )->AddTaskBar();*/
6 t. R1 T0 D: c9 \$ m; \ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 ~* B( ?1 g% M! G- c% N/ `9 U9 e
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 X6 j5 N2 F0 ^# T ((CUser*)this)->CheckHonorStat();
0 U5 i! F: q( F ((CUser*)this)->AddHonorListAck();. w9 @1 D8 W6 `7 C5 e$ h# j
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 i6 Q& m( \) z& B1 n; u- ]#endif // __HONORABLE_TITLE // ′Tà?
) x1 F/ E/ [1 J }4 s/ C0 n# a- l% ^6 Q( d
#endif // __WORLDSERVER: A: ?/ o' H+ j8 h2 }
} q: t4 B) K: x$ w( L, H9 [
" |" o! ^# I8 H1 U) r0 P7 y
然后你进入functextcmd.cpp并添加以下
$ G2 c+ Z2 R. H) c6 e' e& V e) C _( ~+ R9 {
代码:
/ {8 N) x5 D7 Q5 T3 N' P) o1 ~* AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 H+ Y- a2 y$ Z- {& @$ v* F
下面插入
8 {0 G- O& v' cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) @" h5 T- T- e0 Y
: z" T* I# R% c然后你去# H) f5 E) T2 e0 n$ ~( L
, W) \5 }$ k: o: S( `, T5 y- Y2 f代码:; t+ x4 _& U! u/ z6 I+ b9 |2 [
代码
; ^# Y9 [. ]0 O/ z7 NBOOL TextCmd_ClearPropose( CScanner & s )
7 C R9 P1 e, ^) w9 t- x{/ W! J& w- l: W/ s/ }( V( r
#ifdef __WORLDSERVER6 b+ {0 h) ]$ J6 F S0 B
CUser* pUser = (CUser*)s.dwValue;$ `9 G$ x8 \! t5 z4 q7 Q
g_dpDBClient.SendClearPropose();
$ @ H6 S+ |* u% V3 U0 z4 t: p#endif // __WORLDSERVER
9 a! v0 @' D9 x& T+ U5 i return TRUE;! l3 v1 {9 X9 X6 M: T2 Y
}
& o& ~1 B" K* ~8 o" s3 k; w: i下面插入" Q& i( v2 x ^8 V$ U% ^
BOOL TextCmd_rebirth( CScanner& scanner )
0 G' o' a# k8 v. ~8 t2 i8 C{+ p; I8 a! [' l- U0 C6 \( [7 v1 W$ ]
#ifdef __WORLDSERVER8 E+ L' ^( H' l0 J0 R$ N: b: V4 q
CUser *pUser;
2 V8 P: l; i& _$ P# e- xpUser = (CUser*)scanner.dwValue;/ ]. k* J. g9 |6 d( a3 C9 r' s% F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) z5 t1 i4 R# `% BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 Z8 b* y- Y Ielse
! K& \0 A5 Z/ T, Q- l8 |2 s) E: |2 k. JpUser->AddText("你还未达到重生条件!");- \. j! B! F s* \. v4 w! O
#endif
; |6 Z9 ?2 k/ T- J* D! v" ]return TRUE;
! T& S, P& o( ^0 `( g8 w} $ ~ U& I% Y0 y, d! W+ S! h& s
) z2 e) V, {3 G2 J, \
5 p4 S* j; N7 T% z# ]: F) J% g& ~( g+ a$ V" X& L
?9 r0 K, r; [' i* s4 w: u |
|