|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 {& t. m' F* y( V, d; |
6 r' |/ J( n" l! m* rMover.h1 d. W- S3 u& c% q
代码:
& f5 Q: T1 N6 f: E. ` |找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 f; N6 H [$ A" ~1 p" P( P
6 m1 g! s% |; |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
+ u5 E5 e5 P; H4 l( ]0 _" B, B0 U% ?+ F9 e; h+ y( R8 {
然后你去mover.cpp添加
: z2 D9 w1 M3 f1 p- ?. ? _" U2 |' P! `* J! V- o4 F2 Q
代码:- X0 N) o5 N$ \7 ~; D9 x9 q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& k2 `1 H5 p0 w: @$ ]; L* ?
{. Z4 _. q% E: P6 F
#ifdef __WORLDSERVER. l- S9 O# O3 z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. p3 `' J1 o$ Z" a MoverProp* pProp = GetProp();
f- J$ J2 i, A2 i$ [" @7 x if( pProp )
+ ^, @6 E$ x" V% x. p! t% i5 v {
5 I$ ^# E" x) o* {: D if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* a) \$ H6 |7 s' T" j {- b7 e$ ^& u) o' y# J
AddChangeJob( nJob );
' g3 R; r- H. K( [ }else{
& d! W- e) S _: o5 C return;/ i8 m, p/ I% [' m0 E4 z6 B
}
" x1 t$ W" a. d6 ` int nPoint = 0;; y# _9 v4 w4 V* C: Q* Z
if( m_nJob == JOB_MERCENARY )) c4 D% _4 \- z8 {6 o
nPoint += 40;
{$ H% c' J' T" e2 { else if( m_nJob == JOB_ACROBAT )
- h' w7 U0 |3 I2 } nPoint += 50;3 B% Q8 ?, M: O' E, {! H! c. b; r
else if( m_nJob == JOB_ASSIST )
) v# ]& w# B" m/ ` nPoint += 60;6 H1 p: m8 R. K
else if( m_nJob == JOB_MAGICIAN )
3 }+ q; D3 _( L* I. f9 o* M nPoint += 90;4 r* f" s, I' Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 T6 Z( ?" F+ _/ P7 } nPoint += 120;
: t$ ?$ C3 ` g1 d: N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 r9 N6 N- t( ?% S4 E% }' B& f/ y3 l nPoint += 150;, B6 y5 V( X; I5 L
else if( m_nJob == JOB_RINGMASTER )
8 n; o6 A' d2 V' m$ D6 ~$ D: ?0 U nPoint += 160;
; K. @1 `- S, R3 k5 x else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ ~7 J" S B5 E. c, V& T nPoint += 180;0 V/ l0 d8 N5 b$ D
else if( m_nJob == JOB_ELEMENTOR )
^7 W) z5 W: ?! h nPoint += 390;4 G; ` b9 U2 i1 H+ y, y2 u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- j% `7 R: |" v nPoint += 120;, ~$ z8 q0 ~' e/ _% |; a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* t# I, t: v5 V+ D6 ^4 o
nPoint += 150;( f- ?* g, O' v/ G( \* f% w; @
else if( nJob == JOB_FLORIST_HERO )
4 U" A/ l1 V3 V6 D$ H% R# ~2 ]( L* S nPoint += 160;; C: k' h) W# C4 S5 g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 l u9 A/ a1 W" I1 S/ U/ z nPoint += 180;) @3 E8 Q. c. a" ?$ I" l0 |
else if( nJob == JOB_ELEMENTORLORD_HERO )
# S( S0 P0 k& z2 H: Y. u0 a% {& T" E nPoint += 390;$ K0 ~: K X1 \5 R! {9 \! K
, k2 m2 T y. ]2 x" H AddSkillPoint( nPoint );
% J( r3 f @7 f9 u$ [; f3 \ m_nLevel = nLevel;
* z7 v5 Q8 Y' }# B2 O) B+ I2 W: k: \% \) W+ ?
SetJobLevel( nLevel, nJob );
( w+ h; S; @7 W3 r# z/ c m_nDeathLevel = nLevel;( B- b' X& n# o! V: S4 v1 }" s( \
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 t- A8 K! Z$ E* ]) J
if(IsMaster())6 m% l. C7 J% X1 x b7 K
{
* e- u( F' l! s& e& ^ I2 { int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( d& h+ s6 Y9 d if( nLevel > 59 && nLevel < 72 )# w# @3 ?! \) g9 u: @5 c# t6 [, {
dwTmpSkLevel = 1;
/ j! |, v! t9 y8 J$ n/ b1 ] else if( nLevel > 71 && nLevel < 84 ) x- Y9 i) W. U3 F: o! }1 V- k
dwTmpSkLevel = 2;+ O& I9 S$ I# B: ]3 w
else if( nLevel > 83 && nLevel < 96 )
5 b) I! n/ m% e" a dwTmpSkLevel = 3;2 x( V. \; _% w* k0 C" e
else if( nLevel > 95 && nLevel < 108 )0 _" T" R6 o! {; Y
dwTmpSkLevel = 4;& `3 q$ M- y; L- O) z' F2 ?
else if( nLevel > 107 && nLevel < 120 )8 u& L, l/ z+ _, I. P
dwTmpSkLevel = 5;- }0 {- A- n0 }& V9 J8 ?8 V' }% X. X9 b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 G/ C' S7 u; n. V/ [; @" L+ W
{ - v$ {! H+ u1 ? s" P
LPSKILL lpSkill = &(m_aJobSkill);6 e! H" c) {' a) _! ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 r8 f1 c* E- O3 |0 A8 o( @' I7 n: n
{7 f1 @$ e2 t8 M! g6 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ }" A: Y0 o' A) O6 {& E3 l. E( z
if( pSkillProp == NULL )
+ W! `6 E. G0 i% _9 g$ A continue;" z* ~6 {+ f# h! |. c1 z! g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): H! L, l5 r0 b5 W! X# {+ m
continue;% I8 x7 x6 b" U, f3 l+ ]- t$ w, h
lpSkill->dwLevel = dwTmpSkLevel;
: J8 ~) g' ]" n }
; Z1 K. c R, @! S }5 D' j o2 X+ k" A! K7 y5 w' q
}& l& @, ^' p1 ?
else if(IsHero())
7 t" k0 G9 @) j( |+ A {3 Q5 ^2 z# @: b0 R1 E% I( Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % D# P6 C! v: c4 Z) F- O ^& J
{ 6 q" Z( }! L$ ]4 R' P6 Y& s
LPSKILL lpSkill = &(m_aJobSkill);4 v$ [, l/ I% j
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 r& Y8 e% F: _ _) B
{
& z3 J! I I# J& Y; a5 v! f! \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. I/ S* b$ W" h, W* G if( pSkillProp == NULL )
% ^ K4 V9 s" q" C1 n continue;4 Z, z7 V* ?7 h' y& m; K( |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' H5 x+ I/ T2 h0 w: m; E! [$ t" s
continue;5 C$ H8 U2 S6 l4 U' Y4 A( L Y
lpSkill->dwLevel = 5;
( F# L, Y/ T& f4 p }4 I% Z$ O& @5 J* |- V
}
3 T4 f2 @ m! D0 s! R- B }
2 s$ I( C) @6 j5 R. h1 }: q: @ else if(IsLegendHero())& G' v f1 p e$ Z. r2 _. l$ z
{9 @% W1 q! h$ ^( C) b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- C1 I) V( ^$ Q9 J4 W) b4 p+ V! { {
* f% t. Z; b/ {; n4 J LPSKILL lpSkill = &(m_aJobSkill);
9 `- t$ _/ }; g6 M if( lpSkill && lpSkill->dwSkill != NULL_ID ). v: z3 C( e; E$ W" d' m) E& V
{
s; Z/ K( o* \' t5 g) p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " m# S3 R g$ N* Q$ G) H
if( pSkillProp == NULL )
: l" ]* ?# W# V& {* Y7 ?( P) @ continue;6 k2 Z& D. g( T* R9 l9 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 J+ @6 P6 \6 O" [9 I# G
continue;
1 K9 _7 c( e- ]6 _7 w( [ lpSkill->dwLevel = 5;
- g" D, {, ?# v' [5 b }
. k: Z% ^$ u% J }
8 V$ O! ?$ D. |2 N' K" a) |8 U }
- e1 A' C4 N; d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: P5 O7 t* p/ ~) q1 L
if( bGamma )
% g# z+ I/ U' Q5 S& N {
% e# p% D! ]0 s& r- C m_nExp1 = 0;1 L" ]& E/ ?2 h9 A
}' c5 C1 O9 R, v
" d# Q4 Y- I2 o U2 ]6 ]% Y
( (CUser*)this )->AddSetChangeJob( nJob );
4 m+ ]" t( v, G g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. K# }% [) \' ^$ P: f1 `' I- b
1 v; l$ s% Q/ n' }' h3 s3 y2 B7 f1 k" H! e: d: C! {2 m) |/ z
#if __VER >= 11 // __SYS_PLAYER_DATA
; j) D9 y$ \/ R7 ] g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ w# W1 ] w0 F& }' M( C#else // __SYS_PLAYER_DATA% ?/ A, Y. Z; v- o1 R" T& B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 y$ l- k F% B( d g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' i w/ |$ q0 l7 S$ E6 S- @ if( m_idGuild != 0 )
/ T- g. D& W$ a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 E0 t) X9 \2 u4 y( U#endif // __SYS_PLAYER_DATA2 u, t& X* c1 T7 e
SetHitPoint( GetMaxHitPoint() );2 W% x# {1 ]6 F
SetManaPoint( GetMaxManaPoint() );% X3 y5 z; h# u d0 Q6 y' {
SetFatiguePoint( GetMaxFatiguePoint() );! H2 K! P" ~0 h- N; D1 b* h0 m
if( nJob >= 1 && nJob <= 4 )
$ g! r8 k1 G. }0 D8 H# P {! r7 Z; c0 B/ U4 i! {
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 l" a# | t. H+ ^2 {3 x) U
m_nRemainGP = 28;2 |$ ~( l, `; y+ F% S$ v* L1 i
}) u: d; R+ z R% D7 S L# F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). o/ l; E" Z% J% c! Z; B* _% V
{
2 X( k2 P+ Y# x* C) L m_nRemainGP = 118;
: G* S4 V) e* Y/ c( l' B) M! d* O //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 q# Y( o4 i) S% q$ q m_nStr = m_nSta = m_nDex = m_nInt = 15;
. w7 h5 n# d' N: M; `$ G }
# j/ A( i. ~! ~( w, J( _ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 f1 u; m7 I' n {
8 O( i/ Y- R, m$ W- M$ X) i4 h V CItemElem itemelem;
2 G) |1 S0 s8 x0 W% K* c) c6 [. R itemelem.m_nItemNum = 1;
6 l- ]9 f X2 V3 t; k& G itemelem.m_bCharged = TRUE;! ?6 S* a1 U% {2 s( n' Z9 W3 i7 @* J
BYTE nID;
/ P) C' y* e5 f: Y$ }+ \9 l: F' [( f1 l4 w) K! n6 b2 F q7 l
if( nJob == JOB_MENTALIST_HERO )
0 R3 Q3 v" _# T) X3 u$ v0 _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 T; |% t& M# A/ J( o# e
if( nJob == JOB_FORCEMASTER_HERO )
( i- o& H; N/ E; ?. D6 l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) J' ^$ A7 V! ~. C( l0 e
- ^- ~8 n$ S* B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, Y& Z' e9 N- n, C; ^ }
) }3 ^& k! c! H# ~# S6 m" {* Q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 \# r! I7 r6 Q% ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 a6 b, N4 {' i; H7 |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ T* Y5 w2 z+ ~- A+ {1 q$ @. |, H" X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 O8 }& X7 c1 `3 S) ` ( (CUser*)this )->AddTaskBar();*/; v2 a4 Z9 U4 i
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 j) s! Y! D3 m; R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ y2 g' I7 T0 N ((CUser*)this)->CheckHonorStat();2 ?2 D, O- G$ k" S/ t" N0 O
((CUser*)this)->AddHonorListAck();+ J6 p6 p5 n" Z* a9 F9 p! s5 L; ], f
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 p9 Q) K' U& f: H, U; p#endif // __HONORABLE_TITLE // ′Tà?2 ^4 B; i% m9 X" p& `& D
}
" Z! A' p& V- w" \#endif // __WORLDSERVER% T9 a* g/ r/ r. I1 A; ]& B
}
- ~0 o" w8 A' K5 ^; `, Q7 k2 D. v7 w" T! y
然后你进入functextcmd.cpp并添加以下$ t# `' ?% C! ?, y
" r2 p. c3 b, ^: m- W' L! o! [- `( {
代码:
* M4 Y4 C' R0 ~8 tON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# O4 v$ X5 c$ s- q下面插入
3 o# T; @) m8 H6 d* u* `3 y0 AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 n* S# z) N( X) `8 E- E$ }' ~( Z
: Q- W2 i6 ~! _; u8 _0 `然后你去
1 {9 Q) y- Q; v2 U
& W& I- r- v# W+ j+ _- c代码:
+ \8 k- }3 U6 z* L' L/ }0 g2 U: ]代码
2 y0 l, ?! \( [% Y" G; gBOOL TextCmd_ClearPropose( CScanner & s )
! `" S4 w2 P% j+ A{, B& M* A; B) | T& M. _
#ifdef __WORLDSERVER$ b @. b1 C' D" z1 l3 h/ F
CUser* pUser = (CUser*)s.dwValue;
* _4 ]9 B( Q* e9 m g_dpDBClient.SendClearPropose();9 b- U, K2 h0 |1 U3 ^
#endif // __WORLDSERVER
; x: ^; d4 {% X6 J1 Z: g6 t return TRUE;
! n3 B- ~; K$ u}
) y$ w% G, j+ O, h$ f下面插入4 a& k- ?, D% V4 p6 d
BOOL TextCmd_rebirth( CScanner& scanner )6 z% Y, V" U% \+ Y; X! b
{
! G( g4 J3 Y7 Q# ~- g#ifdef __WORLDSERVER
& e4 l G( b6 e7 R) NCUser *pUser;
( Y- B' o1 o- f+ b: o; D6 I3 ]pUser = (CUser*)scanner.dwValue;
a4 r7 y! u9 [' eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- A8 I# t! \7 A6 D) q4 d- HpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ [) Z4 G( l! F4 m8 d& j
else8 F% m5 i* q8 o
pUser->AddText("你还未达到重生条件!");6 v6 q+ B4 d7 n) ~9 k0 R
#endif' h) l: _1 ?- I8 A4 C0 j
return TRUE;
" f+ i* d, e9 V2 i" d3 ^7 t}
3 n, e: D0 x X, u8 m! U* A a0 i: [8 f$ D3 l. j
* f& c& N- k$ H: k6 e" e
# i3 x0 X- {. o# H' A2 `. S7 P3 ?
|
|