|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 X+ u/ q: c. q
/ _/ q1 ?% ?' ~# W# G, QMover.h! r+ z$ l8 I/ |+ M% M
代码:
- z# O5 ]2 R# v- Q* v& ]% D3 o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! C3 M: k% Y( X2 Y
. j' ?2 O! T- R+ `) v) |5 {$ r下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) p. c5 g M6 F: o/ j
( a! f( o2 {2 [9 W
然后你去mover.cpp添加7 l: D% W5 ^7 P8 {1 I/ g
) ~3 }( B1 I' _代码:
2 [8 }, j: y# X1 z9 Mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
k S0 \& y: J$ o Y{; P6 {- R% @6 m/ s! J
#ifdef __WORLDSERVER
$ K3 c8 D5 |4 a# O5 u6 u$ ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 g) U# z, S4 Z& C6 @( x: ~% d6 ^( P MoverProp* pProp = GetProp();
- ^3 v- o/ P! `* M+ T if( pProp )
, V% _( _7 O, S1 K6 }$ A z7 Q {1 u3 t, V, _$ z) V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 `2 O) j7 F# f6 L4 I! `+ p
{
# K8 ^+ E2 J& s AddChangeJob( nJob );
( O* A k9 n+ Y/ o0 J8 [) u3 p& f }else{4 N, B0 e; H# w- X8 p7 I
return;
6 \, R" v1 J+ G* [9 ~' H: B" T }
* ^; J7 O! a& Q- J( ? int nPoint = 0;
& d' H7 ~# b4 j& J2 Q+ ] if( m_nJob == JOB_MERCENARY )( s' ?& k' b1 l8 N& O, {+ u x
nPoint += 40;
8 o# B" d; Y s" _ else if( m_nJob == JOB_ACROBAT )# V, V% q& ]+ {" g/ j# {0 D
nPoint += 50;. t/ f6 s; z6 t9 ?1 L. ?. Y
else if( m_nJob == JOB_ASSIST )) q7 w! f, s( `6 _6 e4 e& _& Y
nPoint += 60; v, l- }0 ], |6 w* A
else if( m_nJob == JOB_MAGICIAN )+ u" U9 }! }% v! i* d5 n# A
nPoint += 90;
8 [! h" U- ~2 H1 {& q/ h4 h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 Q+ U8 a# g' }0 x) @6 y) x7 r6 D5 ~ nPoint += 120;
( v4 L+ c# V" e& V' \" p else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 I# x) n5 t9 G, y9 @
nPoint += 150;
3 u9 X7 c; T' V3 c7 L' u5 l5 u1 Y3 {- [ else if( m_nJob == JOB_RINGMASTER )
* k6 b9 S8 z I2 a nPoint += 160;# V' H2 m5 Z* o, l L" F% ?! A/ a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# F& p# f E& C* P" }4 ?
nPoint += 180;
( w! X1 j, s1 t- o3 a. _5 } else if( m_nJob == JOB_ELEMENTOR )0 g4 y$ |2 g% {! i+ Z9 J) g4 t
nPoint += 390;# S6 Q3 w' m6 X. {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 V) `# v- \+ N nPoint += 120;1 a4 D/ R/ Z, K& j$ a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 Q! v0 w3 ^# Q/ \! V2 ` z nPoint += 150;# K' @: X- Y4 T7 J
else if( nJob == JOB_FLORIST_HERO ) n8 [9 L" b$ D, D
nPoint += 160;, `' R, A4 l+ X, e6 b T
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 v$ ^3 k! W a S, x- ^, k1 B; I$ s nPoint += 180;
* X. i( e4 j1 r7 X; P! b# p+ q else if( nJob == JOB_ELEMENTORLORD_HERO )
! h- J- H' D s6 w. r nPoint += 390;
7 P7 X- S3 G8 ~) `! m2 I4 `; O$ X% U G0 _) L! ]- k |- f( A6 d
AddSkillPoint( nPoint );( C( l: J% g @8 G4 j! s
m_nLevel = nLevel;. ` s# F& c% F8 i, b
# I" a( I1 _ E: v% Q; M
SetJobLevel( nLevel, nJob );
$ s6 _4 \' ?. U+ }: q B1 S m_nDeathLevel = nLevel;/ I4 n$ N6 D7 u- h% w, A) Z7 Y% O3 Q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% \0 M9 s4 U! @2 ]" B if(IsMaster())
+ J: s3 j$ }& |( {$ h. ?! S; Z {2 x3 n3 |! g6 h$ [7 M0 J
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 s" |3 V6 K6 s4 z5 T6 Y# S if( nLevel > 59 && nLevel < 72 )! d6 `7 Q0 g4 ~1 [ I6 {
dwTmpSkLevel = 1;
2 ]: y* R* X2 R+ k( e. G* n else if( nLevel > 71 && nLevel < 84 )
) v' v% s* e& O6 t( O9 m& r dwTmpSkLevel = 2;
$ f! a% i' M+ m else if( nLevel > 83 && nLevel < 96 )& q* C; O$ C+ V F: L* h% Y
dwTmpSkLevel = 3;$ I* y/ ]2 V+ H3 y4 K$ I6 _* \6 G
else if( nLevel > 95 && nLevel < 108 ); x) O/ `; D) g9 `: ]3 E$ {
dwTmpSkLevel = 4;. {7 c; x8 S o4 W4 e" m, g
else if( nLevel > 107 && nLevel < 120 )
) u. H: }2 g8 F$ z- w; {# ` dwTmpSkLevel = 5;
: ` H# B$ e& \5 w* p) O for( int i = 0; i < MAX_SKILL_JOB; i++ )
; Q7 a1 d( [" J& S8 u% { {
9 u; C, h+ h% b# x! x LPSKILL lpSkill = &(m_aJobSkill);
" i: Y2 ?3 A( S& O% G if( lpSkill && lpSkill->dwSkill != NULL_ID )
" i+ ?4 c$ |% G( n: q5 s {
, i( |3 |/ ~2 @0 J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" t$ x8 G, d* Y8 R; K0 p if( pSkillProp == NULL )& W, x S- @3 G, e
continue;
* E9 g' D2 M2 w5 K u: K# o$ w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 h& E8 m) |' `2 A; L& Z
continue;5 i; o Y& X3 d# N( T' O
lpSkill->dwLevel = dwTmpSkLevel;% P5 K# o! [9 W* E
}& L3 o- T8 m. V
}
7 I4 T- D3 l! u) ^, w' y( Y2 r }
{" B' f6 P: o! ^# h- Q9 v else if(IsHero())
7 U# v# F0 e `% n" [5 a5 W8 V/ r {% C* [7 c$ |7 i+ F6 u* h, ]* y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - Q8 j3 v1 @) X/ e1 {+ G& R
{ & d3 y1 ?: Y/ P
LPSKILL lpSkill = &(m_aJobSkill);
4 Y5 j$ `3 p( e3 S4 M% u9 ~) q1 f if( lpSkill && lpSkill->dwSkill != NULL_ID ) w+ w3 r( o. Y8 ~" P
{+ E: \8 e1 n* o1 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# @4 |6 e. H8 g( ^* `% e if( pSkillProp == NULL )
' S. b7 j+ ?' b; F7 s continue;+ y, B( ^1 J" @, j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( ~: I l# {( v6 `: s, N z0 }8 J
continue;, F5 @; E" _* ^
lpSkill->dwLevel = 5;8 v. {. K" a; D; R# m+ G, T4 Q, B6 z
}
* k, L! j1 k" H6 Z }0 g1 j8 n( h. f4 o2 u9 g6 E* K
}% m" ?8 {* ~9 c$ l/ g8 m
else if(IsLegendHero())
/ p% q$ O# G6 \/ j6 K0 e {
9 }3 ]7 m* }+ \8 r1 P- z V/ U for( int i = 0; i < MAX_SKILL_JOB; i++ )
) V- t! X( M* A" ^ {
) U6 r7 L, b$ c# L7 Z) { LPSKILL lpSkill = &(m_aJobSkill);
$ W* [! X E, E5 R+ h2 W! D% z; X& Z if( lpSkill && lpSkill->dwSkill != NULL_ID )5 j T6 O- C8 g# o% X
{
* k% u7 S& L: U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 N2 Y9 t6 B+ g# e
if( pSkillProp == NULL )
6 _$ J6 Y" U" Q* O# i( q8 {! t continue;3 g( K# n7 F0 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) d3 Q' S' ` M6 A9 g
continue;
# k! ?( B \" {8 I3 {% r lpSkill->dwLevel = 5;1 |, V8 a* ~$ v! V5 V
}
. o _( }/ X y% H+ l. L w }' b, Q- T1 g! H* T- n- C
}' t2 N* P2 r, t& o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ e0 v- }- Y1 G- Z0 o8 T6 |
if( bGamma )
6 v6 [2 B* s' n2 k {
% ^( F1 j) w, T m_nExp1 = 0;
( p" w+ U1 R7 ] }
" y ~2 l+ _! a( _$ ?4 a
; i$ v* s& Y2 o8 c ( (CUser*)this )->AddSetChangeJob( nJob );
$ `& u8 O) j: z. M/ { g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' S, U% M) W* v& u
: y% T/ O* u* J/ }! k. q
" T* d G0 w: u8 d#if __VER >= 11 // __SYS_PLAYER_DATA
/ Q& U m9 V$ `# l3 `1 [# g/ P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
a5 i! r/ F/ d5 g" ~, n#else // __SYS_PLAYER_DATA
6 _$ L! A7 j. a8 x g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); V3 f; a. z4 @" c
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 q( N% l8 q& M/ U if( m_idGuild != 0 ) B5 e, ~* D6 ]2 A' m8 d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# w# H7 y! F9 U2 \! Z& h2 t% T#endif // __SYS_PLAYER_DATA6 y9 w2 b( I* f% s* X4 W
SetHitPoint( GetMaxHitPoint() );- t! L) |, p1 P) { `5 D( g0 y0 ~
SetManaPoint( GetMaxManaPoint() );) E* g" B; F! ]
SetFatiguePoint( GetMaxFatiguePoint() );
: Z- |4 z* B1 c! t, j) C! T5 ? if( nJob >= 1 && nJob <= 4 )
/ c0 D; Y- ^" S O2 P a- H K+ U$ ^4 W {- s5 f3 t; `+ d7 _! {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) ^$ A7 u: K3 ~4 a m_nRemainGP = 28;
9 D0 \: [1 {8 h/ i! e9 i# V$ n. [ }
1 p) e* f0 @, a9 a* k! Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 L6 @. f5 F ?5 N- e2 q# A
{, a* T# k0 m4 ~8 F! R M# p8 X# l
m_nRemainGP = 118;
7 l) ~4 k4 [% A2 X ? //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ k% u7 j+ l1 n( W- A) d m_nStr = m_nSta = m_nDex = m_nInt = 15;
. t4 m( F' L, E# t& T }. h( n c0 E1 o5 ?/ h7 ^; t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 x4 o9 A4 N2 Z7 e {5 E: H* B& K+ ^$ ]
CItemElem itemelem;. {) [# _8 c9 U0 y! U! n+ _# q1 c
itemelem.m_nItemNum = 1;
% s( |" C; m c# ^2 l7 } itemelem.m_bCharged = TRUE;
# ^. ~8 J( ~0 Y+ D& V* b BYTE nID;7 x+ |# ^! {( z. [9 f3 b* E
$ b: B% @0 R2 W7 D* [8 I1 Z
if( nJob == JOB_MENTALIST_HERO )2 X6 D+ f8 n' N; J. E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 D4 R3 S+ q- N* D/ j6 } if( nJob == JOB_FORCEMASTER_HERO )2 r5 @1 x4 i+ ] o1 ]) I* j& a1 t
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' V2 c9 _0 V. ~5 l9 Y* G0 z7 c
& a9 c+ a8 h) |0 O ( ( CUser*)this)->CreateItem( &itemelem, &nID );/ D$ A4 ~& Z( }6 K0 v e
}1 g- {* R9 U2 N" D8 Z: R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 Q* R, }+ `- i! a ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: D# u' ~* e! x$ S5 e
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 P# k \9 L' }, x" \/ K /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 J$ Q% P0 y" J6 {7 T* ^. U+ A ( (CUser*)this )->AddTaskBar();*/
! ]% D: R S/ D5 Y* Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 h/ l6 X1 e- R8 P# Y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 e1 p- O o% @& X9 B
((CUser*)this)->CheckHonorStat();5 u4 q8 G# o! O! R ~# K$ v
((CUser*)this)->AddHonorListAck();
4 e9 @0 @6 ^, p! V) |' w g_UserMng.AddHonorTitleChange( this, m_nHonor);
) d) Q9 r# w6 B) r" ?5 e ~ K+ v: c3 q#endif // __HONORABLE_TITLE // ′Tà?
; b5 K/ T B% D8 P2 }9 ^7 U; A }
" F1 T4 @( M( [3 |/ D- H L#endif // __WORLDSERVER9 B& h9 D- ~) X" e. B5 x! ?
} . z u5 s# C" `3 @6 T
& U1 T8 Y' I' m- s
然后你进入functextcmd.cpp并添加以下3 c' Y. s8 a, p ]6 q* N& k* P
6 d, a# b1 z+ y Y- X代码:1 L( T8 P0 t( Q) l1 `; j( G
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' [$ r3 D, R& P) e; \' e) a) @下面插入& L! \4 e- K+ F6 O6 g" d7 }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 t; m0 g4 c$ l% Q( R4 j( i8 [
6 ~! o. n5 w E* T! ?) H然后你去
/ V0 f+ m5 c# G) n; K3 x0 G/ U1 m5 K# ]
代码:, _: v0 k+ H- b" z+ Q* ~) o+ t' k
代码' B F A7 a4 E( q
BOOL TextCmd_ClearPropose( CScanner & s ); T( t7 x* p/ e; R& c1 R2 `
{( `0 B/ |* y) h( n7 r- H2 Q1 ~" M% w
#ifdef __WORLDSERVER
& H) B8 P; r% f CUser* pUser = (CUser*)s.dwValue;
( k! x* t; J: N: I g_dpDBClient.SendClearPropose();7 K! U- C; r% Q r8 O
#endif // __WORLDSERVER
8 X1 B, F& v- D9 [5 Q) v return TRUE;
% S9 Y% T0 l9 I, U, T}9 V! w: G; {+ O1 e$ Y9 m& h k$ N
下面插入
1 n1 [: l& I$ M# z* X5 eBOOL TextCmd_rebirth( CScanner& scanner )
6 k) P- f) ]2 J. P{- N; p6 x1 ^# P4 k" E6 h( o$ q
#ifdef __WORLDSERVER
- m$ N1 H. ~) l8 }8 J- J2 Z$ jCUser *pUser;
" n$ w1 i1 I5 z) s8 t P1 i% F$ TpUser = (CUser*)scanner.dwValue;* y W! Q1 G. w: ]
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ w7 j' `, q; D2 [* i3 n6 f XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. ~$ G! P6 |5 u; x: celse
; i( U J/ g+ x0 N! C Z: B+ b# JpUser->AddText("你还未达到重生条件!");
+ A$ B% y, D7 i#endif
3 J/ {" u- q4 g9 F: ]5 ureturn TRUE;
5 N7 C& U+ H4 t/ \} . z! i) ]' I# T7 ~) j& R* W, T% i# d8 m
( m/ r+ X# f. z3 A
# @; V! h0 \9 X. p, @
5 y7 j1 A: J7 r. U
! v! ` x: m0 E5 M2 } |
|