|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 i: L0 F! a( @) l6 H0 h
. R1 Q/ P: U# ^4 X! D5 ^Mover.h
: ]4 l" I, m- H( d0 i- t' l代码:$ u* j' p. C! \+ _" S( G' N* X4 b
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü t' y1 C) w) C e, N9 U8 i
+ {( ?( x4 V- G& A& C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 O* M! A4 ^% ?' L: V6 W8 y
4 {% I5 }8 [! C p3 j7 ]
然后你去mover.cpp添加) y$ U, a4 I, s V- s
, W3 C+ s' V% t" [/ [' Z' t代码:
, U; {0 {$ r$ s. y4 `4 `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 E* `$ {0 m% D' a5 Q{/ m( ~) |& S% j) D0 Y. j
#ifdef __WORLDSERVER$ W* a% x0 G, i1 u7 A2 a, |+ F* U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( S4 j: T2 `) y- N" @ MoverProp* pProp = GetProp();
; g; ^8 X) I6 k if( pProp )
! ^) Z- r+ e$ p [ {
+ Z+ y& F2 M; p( e& {- x" r if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ H: r2 e6 F# K2 L& W$ H5 {8 _ {
4 k( Q9 B) Q( y" b AddChangeJob( nJob );0 L; H! f) v: [0 w
}else{0 d" t* }- W/ [
return;) p: X' m# T. V( y9 _1 |- k
}
/ F$ S' G4 z) y6 ?7 Q4 ~ int nPoint = 0;
" G* W# d8 N$ [ if( m_nJob == JOB_MERCENARY )
7 x* W) ^9 i5 x9 \5 e* p nPoint += 40;
5 E" B% [. J" D% A, \7 @( G# y' p else if( m_nJob == JOB_ACROBAT )
+ s* n B3 k' k2 Y nPoint += 50;4 f5 T9 V% g3 |, @, x1 Z
else if( m_nJob == JOB_ASSIST )
9 [- {, _6 e) }- E6 H1 e( t nPoint += 60;
( W4 i) Z- v/ d2 F/ P: D else if( m_nJob == JOB_MAGICIAN )
6 a3 z! f( t, D7 S4 g' \9 {, H nPoint += 90;
3 C$ ^4 T0 i y* x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 N' f% p# |6 a0 z, _" X$ a1 x {3 L' ^9 h
nPoint += 120;) O. B5 w9 X5 ?& q4 ^' i7 r
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, W! E; V$ [# S nPoint += 150;" S9 A2 ^2 ]; @0 k( v
else if( m_nJob == JOB_RINGMASTER )0 r% a' R" N0 x f. Q: H
nPoint += 160;% V& M9 ?9 r" r, ~5 Q& a, e- m, l; @ w
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) R0 e# h2 a7 ]3 `5 r! ^
nPoint += 180;
3 I1 i3 f4 L" A$ D& z$ M$ Y, m% } else if( m_nJob == JOB_ELEMENTOR )4 h1 w( G2 z( E% [# M3 c
nPoint += 390;) f: x0 p: L0 q* `/ U
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ D$ Q v9 T. Y( l; g nPoint += 120;
7 ^ b8 s! k+ W! e0 Q& n3 w else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& X' K) N5 b7 `* @: x& A nPoint += 150;
( j. `5 P) W- S+ {% t8 `0 C else if( nJob == JOB_FLORIST_HERO )
* C0 j8 ^( }) j; ~9 Y# J9 l nPoint += 160;. z5 W& C# n( K* x1 T$ u# q1 `
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% z" m# p1 W& v6 R" U- ?
nPoint += 180;
0 a$ R" R9 s1 c7 p- A else if( nJob == JOB_ELEMENTORLORD_HERO )
" J' O' v0 `/ a) w0 } nPoint += 390;
( x6 k5 }! D2 d/ ] H2 Z; g( l, P+ w) r i$ d5 y$ a9 W
AddSkillPoint( nPoint );
6 u: O" K' i3 z/ J m_nLevel = nLevel;
/ m. ^6 R- V! M3 {: K4 q
1 g" n2 {% B' n5 _2 x2 u- F" Q, J. K5 K SetJobLevel( nLevel, nJob );
2 w) B. ~3 @8 O$ S! Q, r* @+ ? m_nDeathLevel = nLevel;- @: U2 d5 g+ E0 `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- I0 w' F+ f5 y) r4 M( {* ?9 L3 [% x if(IsMaster())
- y5 B" l5 I+ B, d {8 y0 |5 V9 l/ R' [8 A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 _- |. b) O3 U! m& H2 f
if( nLevel > 59 && nLevel < 72 )
% N) q3 k) _' ~' ~+ i# a dwTmpSkLevel = 1;1 q! G1 }- G: a" @+ v, ?8 _
else if( nLevel > 71 && nLevel < 84 )
* Q9 Q; @/ r. o" ~" x dwTmpSkLevel = 2;1 _( v9 l. _1 j3 a
else if( nLevel > 83 && nLevel < 96 ). ?" Y7 W2 l' i' r) i7 b, J' V
dwTmpSkLevel = 3;1 i& ?# w1 S7 |2 t
else if( nLevel > 95 && nLevel < 108 )
: @6 L1 t8 E) M+ ]' A. K0 Z. E dwTmpSkLevel = 4;
& K' t1 o5 H* v) h; r( Y else if( nLevel > 107 && nLevel < 120 )2 f4 x/ T4 B' L3 s' \8 ?/ \
dwTmpSkLevel = 5;1 L: O" N/ y& ?: E# a& v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " x5 {, U* f7 c# H' P0 d5 Q; h$ g
{ ; x& m) v7 ^" h* N
LPSKILL lpSkill = &(m_aJobSkill);
5 K8 o3 v7 G- l |# R# A if( lpSkill && lpSkill->dwSkill != NULL_ID )
' {8 h: D( x9 r" f) C {" B9 R& R* v; @3 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 U; z& }5 G7 z" c" x' d- `) f9 r
if( pSkillProp == NULL )
) I# J# A. P$ Y( U; y continue;
3 G" u% C" r* ~# M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) B# t* b+ a/ k) s continue;. {8 B- {$ ~1 i6 b; r6 D0 K( f
lpSkill->dwLevel = dwTmpSkLevel;
2 f8 Z# @2 E' A }
) t, P$ D" H* Q* ?/ o }
2 V7 D: t; I7 f- Z) |6 b; N- V }
7 a3 \2 J5 l; y$ _$ k6 m+ Q else if(IsHero()); C+ u' K0 h1 T4 N
{. K5 P4 E6 q& d# X; `* N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 z* f$ V1 _! `! [ {
6 i5 ?4 ?# P7 w! L: g5 K! }2 q LPSKILL lpSkill = &(m_aJobSkill);
4 }7 S! S1 W3 H6 w/ \) G+ p. K& K if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 f: O5 g J6 S {* A' k0 j: i7 C' C- m7 j4 B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( |1 z* ^# f; w0 j. w if( pSkillProp == NULL )
" r/ m7 ?" Y7 u! U! b continue;$ Y7 P- v0 d5 M7 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" q, l0 g c. ~& N. Q, u; i continue;% [: L% e0 A! t$ d8 d
lpSkill->dwLevel = 5;( c0 `, @- g' e5 G9 l& ]2 |
}
2 M! i/ U' V+ M, \ }
3 Q H; ~( M$ P8 s* d% V }
( |1 V5 ^ T/ D7 Q else if(IsLegendHero())! ~ ?- [0 D: Z7 Z& X
{% Z) `2 p$ W5 J* |0 K, l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; S# F0 Q1 n; u+ A$ B* P f" y
{ : v4 w P/ i6 C7 l5 i& ]
LPSKILL lpSkill = &(m_aJobSkill);/ \& s) d2 @2 H+ z5 W! p; b/ ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 J+ c, j/ N5 G8 }+ G* W {
" [* ]; H) d$ ]; J& D' B7 a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 G X9 Q% k! O8 _3 l if( pSkillProp == NULL )6 y: L" I( }1 O. c" k- o! y5 ~
continue;' v6 R( E) ?) s* |/ |4 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ E2 D r, ^6 d, W5 c+ ?8 {9 h continue;
) u$ C' N5 ~* ^5 \* R lpSkill->dwLevel = 5;5 q: R: b3 j1 [& N [' S1 S# s H
}
5 M2 s( n! w" w" q }1 c; c+ `0 Q5 W: Q
}7 M, Q# M) H/ e: I& t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ M) [4 `8 a3 N
if( bGamma ) ~. h$ g7 d8 x% {: T
{! }4 T, g6 y _0 t2 m6 W
m_nExp1 = 0;
& v( P# s- K/ r8 H }
) a$ _8 G1 K2 R, D C
% O- m4 `( m5 W( H* ^7 o9 F2 ] ( (CUser*)this )->AddSetChangeJob( nJob );. X5 E2 v0 c# L- }: `% u9 {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 H. \6 l2 {' L
2 S& R) U( r* R
0 L+ B. q; _) f0 d#if __VER >= 11 // __SYS_PLAYER_DATA/ e3 [+ }& z# g8 K# f+ q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ e7 J% O/ A; ~( F, y- j#else // __SYS_PLAYER_DATA$ S2 A; n* Q0 N `
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, b+ n S6 n& ]0 y' u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* A: G2 S' g& f- N* p if( m_idGuild != 0 )) Q( b# Q$ |9 e0 `# B K- F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# \+ ?& G& h8 t' o* y4 F
#endif // __SYS_PLAYER_DATA
' I7 O! J! p! X* |9 p SetHitPoint( GetMaxHitPoint() );
( {$ s# H+ a( ?' y# G" q8 { SetManaPoint( GetMaxManaPoint() );
. W2 l8 ~+ B8 U# t8 Y SetFatiguePoint( GetMaxFatiguePoint() );* g" h% O/ b9 I/ Y: Y
if( nJob >= 1 && nJob <= 4 )* H7 L" [7 x3 U
{( r. m& D6 e- T$ M5 I
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 r6 f+ C4 R, q
m_nRemainGP = 28;& R8 Q$ }4 j( e) Y! ]4 ~) i: {2 i7 e
}+ g8 c# A$ m" ]2 I8 u; [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
6 L7 F0 y0 v8 D& W1 p+ g+ D3 G/ r {
% S- p+ i0 \: w9 E) K m_nRemainGP = 118;
3 v2 `! A' c8 i! U1 \$ h( g //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ [- E7 R8 p3 b& P* `+ q
m_nStr = m_nSta = m_nDex = m_nInt = 15;! v6 m" T0 D: x7 Z2 E2 Y7 E6 a
}2 T6 D6 _- x" L9 h
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 {8 H: L. t2 H0 w6 F9 y
{% n3 U& n- Y% n2 s4 b7 w: |
CItemElem itemelem;& n. i7 g! v* B6 b% B4 O3 {
itemelem.m_nItemNum = 1;
! N* A+ U. z: F1 z1 N7 T+ a9 j7 f itemelem.m_bCharged = TRUE;3 e- K8 q! E3 c5 A( @
BYTE nID;
+ {& D. m' n/ T8 V
1 {/ @3 n" j" q0 \, i. K7 g$ F$ | if( nJob == JOB_MENTALIST_HERO )
+ G, `/ w9 t% ?1 P1 v itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 _! P+ {; h. g9 F9 J- N) O if( nJob == JOB_FORCEMASTER_HERO )& h3 `: M( o% ]) C& }
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 t- V" `1 M4 H8 j/ R$ p8 f+ Q2 k; u" b E( \$ _$ {/ N
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 c" ]- b) _4 S1 L7 O2 q }/ B/ j, o6 o- Z# A8 Q& O; p
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ b9 V6 b- Y3 `. T8 K4 U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); x8 X1 a/ o; s
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 A! A* e5 b0 @5 v
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- X' l6 w) U! X1 d, M$ @- ~
( (CUser*)this )->AddTaskBar();*/
5 ^+ H7 V) d: } ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% j6 K) x2 z L! E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 z5 H4 s' R7 |1 s
((CUser*)this)->CheckHonorStat();
, J* ~% a/ m4 c1 X8 @% u ((CUser*)this)->AddHonorListAck();
4 D+ g3 e0 `: {' l g_UserMng.AddHonorTitleChange( this, m_nHonor);
' h7 d* z! j% y$ P7 N' w2 }#endif // __HONORABLE_TITLE // ′Tà?
8 y9 w% F& N: W4 ], G9 B }
4 i( `9 X4 P/ ~. M3 K& {8 n#endif // __WORLDSERVER6 N# ?3 [+ ]4 B- ^1 D8 @: C
} , H( H$ T u' ~8 P$ F4 n. H
0 o3 I2 O) \- r- i* p' b; A* @4 K& ]) t
然后你进入functextcmd.cpp并添加以下
, k5 i r. o7 ]0 ~) K: r5 T# B" J
6 S1 w3 ?: j' H代码:
- s( Z* u* c5 P8 j) ]1 DON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& I$ V/ l e9 U8 ~" h9 a# {
下面插入
! F& ?4 h& q) l4 g- |& G" Z+ \ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , Y' t8 `7 m" e% b4 i5 H
1 D C) X8 F, I2 S% a1 H$ W
然后你去
9 P) i% S8 |, r9 }/ y. Y6 y
2 ?7 d- O" h: M) |1 K3 l5 {代码:2 H9 C& a6 D+ D4 r6 u
代码( ^: R9 i0 B x+ S* x- d# q1 m/ I
BOOL TextCmd_ClearPropose( CScanner & s )
( q( R3 g- P) k8 w; {9 ?) h{" F, q5 e. P' d
#ifdef __WORLDSERVER. l8 n& J q" w; q
CUser* pUser = (CUser*)s.dwValue;- n i: J0 R+ u0 G. o
g_dpDBClient.SendClearPropose();& f' e; H q' q' g' H9 Y" B( [% v
#endif // __WORLDSERVER2 c) I7 Q+ ^" s& p- G5 k4 |0 @% l
return TRUE;/ T$ b- s, w0 f7 L; n
}3 L+ P1 \" j, a4 n! y
下面插入
* d6 u0 ~6 x1 N: VBOOL TextCmd_rebirth( CScanner& scanner )
( C$ J; y" g x) S# ^{" b0 G& j3 ^! Q5 v3 N
#ifdef __WORLDSERVER
, P Z2 T$ d2 s; ]$ oCUser *pUser;5 s( x+ g* j: v ?
pUser = (CUser*)scanner.dwValue;# s9 `# C) z: f' [$ T. {3 A3 z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. D9 B) u* P/ k& o+ M# gpUser->InitLevelPumbaaa( pUser->m_nJob-16,60); @# L( x, y W7 W
else. K/ c V, u( t2 V% C
pUser->AddText("你还未达到重生条件!");
; D* s: N" w, a5 L: U3 Z#endif
' _( X3 V8 a! K: Hreturn TRUE;
3 S5 H+ e( \0 N8 B# b9 B* _. Q}
5 l# D, |$ V4 d+ L# d5 R7 X, ]8 x! m, D% x5 m' a. I
& u+ Q" i! O' v& q
) X6 Z8 C& \! D- Q6 H T4 j
" j5 E: |. `! q- l |
|