|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# x# |% i$ |, T3 S+ |) ~
. S) U8 i* e! g- X
Mover.h
8 @, N3 k! p6 H7 G代码:
6 J+ q2 p2 M/ Z6 u' q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' j# v: q. F8 P0 _# Y2 `; ?# ? g+ Z* Z; d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 h, R% W t$ |$ C8 D
; C& b% ?* I+ y# I. l/ S然后你去mover.cpp添加8 ^" c5 X& U( ]" }- I+ E6 G" D9 w
+ p/ A" m: D# @# N3 t% A代码:
2 h4 q: g) ?7 s4 W' N2 p' K3 [void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ G! g6 ^* F3 u5 p" B{$ E* w) a7 q0 R' ~
#ifdef __WORLDSERVER9 n. |2 K+ i" p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 v- `# v* A! P
MoverProp* pProp = GetProp();) ?) k2 {" n; C. U' U5 G6 r
if( pProp )3 T$ N Z7 M" k
{# b$ q: I0 P0 v1 I, k
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 n& H7 b2 }+ \1 c( Y { @' t! G. `% i" }4 [
AddChangeJob( nJob );
6 D2 i1 O) _2 r1 Z4 H1 m }else{% k$ V1 m2 {) j" Y
return;' U- ^+ G* G' s1 W- _
}
2 q9 @! i8 h) N( ]( B3 }0 ^ int nPoint = 0;
) a' f: N" n2 Q" ~5 j; |: X" y if( m_nJob == JOB_MERCENARY )
* ]' ^' L1 X9 P6 x' b$ q nPoint += 40;, s! X$ H1 g2 h" W
else if( m_nJob == JOB_ACROBAT )
' Q% I. `8 F" U3 V& r$ Q* j& ] nPoint += 50;
& I8 }! Z* P" h R else if( m_nJob == JOB_ASSIST )
9 d ?2 o" u6 i" {( u* L7 A nPoint += 60;+ I0 g3 S! H8 v
else if( m_nJob == JOB_MAGICIAN )6 W% b& p) O v. e. D- O
nPoint += 90;; |; l8 n( g4 D; ^, D2 G
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! _9 }- d% A3 G3 N6 X: e; p7 y nPoint += 120;
; j2 {/ j* x5 w* U else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% m" C% N5 p2 _! }! `& z
nPoint += 150;5 p: O, `% i! o' `) E
else if( m_nJob == JOB_RINGMASTER )
. i1 r: [2 K( r D nPoint += 160;
& ^+ C9 D" K) b* x. m, C# D$ {# K else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& Q# [7 J2 v G nPoint += 180;
7 s4 h) n1 {. H. x0 @. p else if( m_nJob == JOB_ELEMENTOR )! f. K' K7 }9 ^+ ~6 Y
nPoint += 390;
7 B( t, q( c& i* {( H! ? else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' q3 P9 k7 c }; @! F* A1 ~: J nPoint += 120; `5 m* X- G7 c
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; U/ k$ n/ V/ m# _ nPoint += 150;" h- [3 p3 {" Z
else if( nJob == JOB_FLORIST_HERO )
* D+ ?. q+ f8 g nPoint += 160;% k4 m+ q. k$ V: W, E2 w
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% ^! h8 Z% e: R0 M$ W1 j nPoint += 180;- }% ?) n- E3 A0 s2 O0 `
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 e* y4 R T+ N% O7 s% W% m nPoint += 390;! \$ @. z- E* y% l8 J% z
# U7 f: D3 Y( L& y! L0 d# I
AddSkillPoint( nPoint );
* Z2 [5 Z' S# C0 o0 e m_nLevel = nLevel;$ C# `- S# {6 C7 l% i6 C5 H$ ]
- o% l6 e" X$ q4 ~
SetJobLevel( nLevel, nJob );2 ~( f4 e0 T1 u9 M0 t* g" ]
m_nDeathLevel = nLevel; P& C, ~9 _' o1 P5 [. ^# j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 h$ k% j, m2 O. r5 {
if(IsMaster())
2 D0 p3 i. c$ m& l {$ \2 {/ A- k3 H& ~0 |
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! \$ l% h5 ]; b6 u3 _3 P/ Q; {0 N
if( nLevel > 59 && nLevel < 72 )+ _& h% r4 _! Q! G2 z
dwTmpSkLevel = 1;
5 D# n* Z9 P+ ^- c: z7 t9 } else if( nLevel > 71 && nLevel < 84 )
( K) I& }; J* V# Q& O' K dwTmpSkLevel = 2;$ H4 u- f, `* s5 o- V! C9 X+ E1 m
else if( nLevel > 83 && nLevel < 96 )/ d. p3 X2 d8 q. z" _- A
dwTmpSkLevel = 3;, P7 z) ~/ Z& m4 |
else if( nLevel > 95 && nLevel < 108 )( I& Z' f) t4 T9 t. F7 Y3 v6 h% @
dwTmpSkLevel = 4; e1 y: G0 W' V' f8 o( r0 E W0 {
else if( nLevel > 107 && nLevel < 120 )
* x! d3 p( B1 C: O5 E dwTmpSkLevel = 5; l1 k0 c, I) }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 R/ ^. X4 ^* J+ u
{ $ C, r6 h& o F% B" `# b
LPSKILL lpSkill = &(m_aJobSkill);
, ~; [, \$ T4 P) [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
: T; H4 X8 `: n+ o; C {; |+ L; Z" f9 ^8 x0 [' `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 s: m8 V2 G* z# E if( pSkillProp == NULL )
2 B" s# [$ D- g" m+ O: v continue;: d0 c) ?6 v8 R1 m# v2 l" m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), b) N y8 G* S/ f& A, E# v
continue;) m1 ~2 Q. V8 N2 t1 x
lpSkill->dwLevel = dwTmpSkLevel;/ U) e2 E- N: u0 f7 V0 ]. c
}2 S; f1 w4 h8 o8 W& o1 {
}
9 J. g: }$ a/ R. z! F7 D! f }8 C1 ^, R+ f* m1 K' K% m9 y
else if(IsHero())
5 L. M" T) B7 w1 V( a; x y {
; n1 v0 ?4 C* |( i/ j% i for( int i = 0; i < MAX_SKILL_JOB; i++ )
, o% k) B L5 X {
! Q1 N9 D, k) Z6 ?1 j) V' j4 a LPSKILL lpSkill = &(m_aJobSkill);
' s0 J3 `% `# F* [2 L# L) D% \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 {# q/ E% `2 N& d. }" J {/ T9 Y# f: A u( E, f' E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 W. U8 @) c6 N& L! a0 k9 b O if( pSkillProp == NULL )
+ ^) m+ y: q4 n% v' [) i continue;
0 J; }) D. C5 K# ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) H8 Y+ X& A: q2 K" x! l
continue;
4 g* k, P% Y( ]. Z7 P) e" p8 X lpSkill->dwLevel = 5;0 a, [! D' U6 w3 L2 J2 `3 L& s
}
) e3 v2 y! y( u! R }
8 s$ H* x8 c! V }6 S: N) G1 F# N3 `# ^/ U
else if(IsLegendHero())3 t# E |2 i9 s
{
$ s2 ~; R9 ]1 s$ d for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; ]: p7 y7 V" R/ }# A, ?' f
{ 1 P# o# t/ s" X
LPSKILL lpSkill = &(m_aJobSkill);' i8 P$ l, Y+ E+ X. Z: [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ z7 U7 E& D2 n9 h: q, }8 @ {
8 F2 q4 f9 K! @7 P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( L" I& {8 e, E- W# l8 o
if( pSkillProp == NULL )# z: J: ^/ Y" |7 M9 Q( h8 B# ?- N
continue;
- D8 x, _& }0 ~* O if( pSkillProp->dwItemKind1 != JTYPE_MASTER), B7 X0 ^& r+ s* M
continue;* v, R5 `1 f. E/ w9 T" P% S
lpSkill->dwLevel = 5;
; G- q# P- Y( y" ]0 ]/ Y# |; r }
+ O+ q* q6 r, F" W$ O6 W! X$ Q3 X }
* B( \5 ?1 P* z2 U$ y }
P* f0 }, | m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# H, f; G1 Y" S0 I
if( bGamma )/ D4 d. D+ w' K3 W; {* Z
{
) ?- s: J5 [7 T/ b# K# e m_nExp1 = 0;
$ K# A! F' K( z' V, s }
% Y# s. t1 }& s$ d/ ?% m" k* R
# R; W5 l8 S, l3 ^ ( (CUser*)this )->AddSetChangeJob( nJob );# e* H( J% ?+ E( u3 z6 d* x
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ y" p: y, d, Q1 F6 U+ ^
- t" e) i6 D" A* e1 v+ U' t3 E
6 I. }; }0 h( P, C8 c: m#if __VER >= 11 // __SYS_PLAYER_DATA7 R: H! K4 H1 [& b. h* @
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% x" K( y7 A; e#else // __SYS_PLAYER_DATA6 R3 Q7 d+ A1 t% l/ ~7 p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( D. [" K" G1 C) g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 O+ o, u9 \4 {* {9 ?, B: ?; G
if( m_idGuild != 0 )0 v3 h* k7 S$ F) b* @
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 j3 g* f9 e, M; Z" H a; {1 B$ `#endif // __SYS_PLAYER_DATA
! P$ {8 o: n' m i1 d SetHitPoint( GetMaxHitPoint() );
7 Y; W$ z8 K- S* Z9 j% j! b% ]# |% Q SetManaPoint( GetMaxManaPoint() );+ O+ d1 j6 M, X. [, X5 q
SetFatiguePoint( GetMaxFatiguePoint() );8 v8 K8 I: m& v6 e/ s3 r
if( nJob >= 1 && nJob <= 4 )
% D% I, q. u6 f, M. z2 g8 L$ l {
4 q: |( c7 w0 c+ A m_nStr = m_nSta = m_nDex = m_nInt = 15;9 ~/ R e& `! ~4 r3 b) R
m_nRemainGP = 28;
" ?0 n/ ~2 @$ O' V }
; i) g0 c% l4 Y8 u if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 R. T4 C& N0 z/ |* d
{
1 w, i* Z' z. e; R3 y; S4 k m_nRemainGP = 118; w9 j- K% y Q4 X' C$ C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' {$ n& x: i0 K& ]/ Q! _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
: `& z2 X" w+ r+ t% J7 o* N }
# f0 d# K. L' C- c2 W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 i5 P, x* \2 }; O {
5 a- a6 E& t, b/ G) j CItemElem itemelem;8 c! D( _8 J( o, g: ?
itemelem.m_nItemNum = 1;2 Z, v4 Y5 X* I' }# ^
itemelem.m_bCharged = TRUE;
" ?; m- b9 G, I% m% \ E& N BYTE nID;
- M& R _8 J P: N) Q/ c5 R% h7 }5 Y# a" w9 m
if( nJob == JOB_MENTALIST_HERO )' C5 D# t4 Z& B# x( L
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 }4 O3 p n; E# {" C$ M if( nJob == JOB_FORCEMASTER_HERO )
1 u T, [2 X, Q6 V itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ ]- D/ C0 p, F' `; b/ J7 @) } {" _* k# B2 n% i5 ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& t' L$ `6 z* }5 L/ u- |0 r# h }
1 \ |7 t v# O1 \1 Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' y9 b" v2 p9 d* `. H- X" q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: e5 B1 f; C/ m7 P! G1 }
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 c0 K' l/ I+ q' A- u4 O( ^- m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% K, u8 u4 }/ V9 z5 W0 Q
( (CUser*)this )->AddTaskBar();*/ Q7 K- Z7 F; ^2 c D7 L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ H7 A9 a B+ O; f9 \1 |( m#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: l& R( [# j- ~# B. J" H" f; i ((CUser*)this)->CheckHonorStat();
S( t0 _4 _$ a ((CUser*)this)->AddHonorListAck();
6 M7 p. X* ]) Q3 W g_UserMng.AddHonorTitleChange( this, m_nHonor); P. W7 Y# ~5 F% O
#endif // __HONORABLE_TITLE // ′Tà?, Y1 x/ y5 K( S4 p7 V4 P7 o: _
}
& N! Z" R# e ]" h; V: u0 Y#endif // __WORLDSERVER3 N- E- n$ W0 `+ x) v: a, c
} 4 M. s5 h) x X! P& D4 \6 `# } B
/ H# z0 n% z6 Y8 @9 _8 \) A
然后你进入functextcmd.cpp并添加以下 O- D% u# z: L
; d* X3 e6 s& p" M- I8 ]代码:
n) C3 t. C: `* @! S nON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 j8 k" w+ s2 Y5 ~+ p2 V
下面插入8 e0 J/ E0 q) R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # _% X+ W6 ]6 ^; C2 i1 r
' k# N" f! R3 E* V, B
然后你去3 J4 b0 ^: Z6 v0 T, y6 f0 G
5 N/ j5 V8 u/ J5 S+ @+ q
代码:
0 p+ c' m" p0 ~8 S代码4 t7 H2 [+ `- m$ @4 b
BOOL TextCmd_ClearPropose( CScanner & s )2 A9 K( o% b1 U8 F' Z& m
{
( A& A. s! n7 W& N: s; g#ifdef __WORLDSERVER- y! t( w& e; _4 c* O) e: V
CUser* pUser = (CUser*)s.dwValue;
9 J+ u2 I- v" r g_dpDBClient.SendClearPropose();
5 i2 o% R/ n$ M" G' y6 @#endif // __WORLDSERVER. a7 e# u! K8 U% |& I: o& t+ e- n1 Y
return TRUE;' X4 J' _9 U- ]# O+ x% J
}
# I& X% v$ l* R/ O下面插入
+ Y4 _( {# ]( b2 R; T+ ~2 sBOOL TextCmd_rebirth( CScanner& scanner )- y4 r3 u: b: d. \+ w6 q4 d
{8 Y' t9 k6 y! z, q% c
#ifdef __WORLDSERVER4 X. ?) T4 d8 @/ |4 E
CUser *pUser;4 R# ]( ?+ M3 l5 m0 b3 ^# D7 t) W
pUser = (CUser*)scanner.dwValue;3 S# M* r" @+ O6 |, v$ N
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 D# L% [( C2 e a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: B6 {; F" l! H: X5 w& {* ^) selse4 t! h) @* S5 n4 F( b/ Y
pUser->AddText("你还未达到重生条件!");
3 s8 ]. v( L/ t/ D1 ~#endif
1 U3 x0 e; z0 H% t4 p* y9 W9 greturn TRUE;# s5 O6 D, Z3 m
}
+ v5 b+ D( b, ?8 k# w
' c- D3 A0 c2 F5 j( h( X" \. N# a1 w4 r$ P; a
: m( R& o1 x7 \" k7 G
2 ]+ ~4 U4 H- Z, e0 W' y; k |
|