|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ ^1 Q! Y5 _9 I+ N& w) M) C- u
+ ]- u+ }2 |, x" q. z
Mover.h
* ^: b0 F( q$ `1 K: T代码:. F: @9 ~. ?7 r* ?* Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 l- t6 E( b |8 e2 W5 M
( a) Q l8 D% }0 e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 C3 V$ U; H, Y! [! H
/ W/ i/ h3 @8 r( R; t: @6 S然后你去mover.cpp添加, S8 X. ?. _6 s F# R# `
% R9 E1 @# L. R6 E* Y
代码:# E2 U3 C* d# J/ r# h( y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); d! ]' V2 l, A+ h) Y, V
{- z$ Y u9 A5 l0 \' U" z
#ifdef __WORLDSERVER+ N" g: o& U0 X! e, | N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* i' e- K5 a: N4 v _+ x. m
MoverProp* pProp = GetProp();
6 Z+ J) v1 ^4 `5 T; D/ a if( pProp )3 U+ f3 L# ]; n" b: Q
{
& n9 D1 F/ I' ^7 J* `" J: r: Z if( nJob > 0 && nJob < MAX_LEGEND_HERO )# {" G; M! ]6 y
{
/ |3 R( E. S, G9 K: q AddChangeJob( nJob );( L+ k, T0 C* K% G8 T2 t
}else{; N# o: q/ v2 N0 B( B1 p
return;
0 ~3 `6 j0 k3 {! D9 j }4 N! H. j. Z k1 I
int nPoint = 0;: o& e4 v9 `8 c# r- y6 V
if( m_nJob == JOB_MERCENARY )2 | Z2 N- B5 C$ D$ w
nPoint += 40;, k" l8 p4 e: {$ m' V
else if( m_nJob == JOB_ACROBAT )
' u) C" c! C) e- r nPoint += 50;
: U& I$ Y ^3 r4 ] else if( m_nJob == JOB_ASSIST )
& X. F8 q5 ]. c- y nPoint += 60;, p' t# m, G/ l' W
else if( m_nJob == JOB_MAGICIAN )
]/ p: O: ]" K( A nPoint += 90;
0 d/ x5 }0 r0 K6 l' I! p3 g& b- n6 ` else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% D3 x& {" `9 m/ J nPoint += 120;
8 N' v9 u' ~# x& l else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) x( N- S% J' u nPoint += 150;
" z2 r% N. B' V/ b" A' U9 S) @. c8 k else if( m_nJob == JOB_RINGMASTER )0 h) q7 [0 R3 ~; D" r! F
nPoint += 160;
! J6 c5 u' E( V+ K% ]% ~: s; W9 u5 m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' T* o) Q3 n, ]! {
nPoint += 180; L% Q) n H9 \3 ^5 V# K
else if( m_nJob == JOB_ELEMENTOR )
5 g5 I1 |$ {4 B) f; G nPoint += 390;/ ?2 U. U* d6 B1 o( O1 y$ c0 `2 K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ D% N/ M6 T7 `- @0 U nPoint += 120;/ ]+ a% ]$ w( {& P2 ~
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- J; I3 W R; k J nPoint += 150;+ Z+ b& [1 Y( v: J1 i0 `
else if( nJob == JOB_FLORIST_HERO )- T' g" f( c- c* [7 P
nPoint += 160;
8 [# ~: N) G5 }2 B6 T2 B% a; W3 b( D else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& U8 q8 x, U9 f$ ]3 [) K; d- T nPoint += 180;
; D/ ]0 \# U- t0 p# }( [) i else if( nJob == JOB_ELEMENTORLORD_HERO )
6 N4 ^( a _4 s2 a* n1 I nPoint += 390;
& F6 M) g3 D, D+ e, l/ h+ Y
7 [5 h5 d7 _2 s2 } AddSkillPoint( nPoint );
" f+ [0 Q8 {: s' W7 I m_nLevel = nLevel;1 S9 x( f( U' v( K# B. E( i
; d$ m4 G, L# P' Z. S/ j; M
SetJobLevel( nLevel, nJob );
; l5 D# X! g7 E. x! C$ Z m_nDeathLevel = nLevel;
3 y7 r/ Y; ^) y9 K- e4 `+ ~* q$ e#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# ^8 d0 i3 ]; w, }7 }& ]: L2 a if(IsMaster())
' I4 w8 H# s; l: D% q, K {
% {& }' }: x7 D int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 m1 {0 ]( {# T& u6 {2 y& k
if( nLevel > 59 && nLevel < 72 )5 q0 l! Z2 t1 @# \: \! o
dwTmpSkLevel = 1;
- X0 j" D8 C. [3 ~" f; }6 q; ~ else if( nLevel > 71 && nLevel < 84 )3 W$ `4 s1 Q6 v& V3 g% e5 l/ o
dwTmpSkLevel = 2;
3 p. x5 M$ f5 b; g' T else if( nLevel > 83 && nLevel < 96 ), v- n2 t% v, s7 ?
dwTmpSkLevel = 3;8 ^7 t! G0 D' s9 ?/ `9 T6 x% E8 d
else if( nLevel > 95 && nLevel < 108 )
1 u% F$ c: g6 B) h dwTmpSkLevel = 4;
6 v" o7 F3 R0 Z% h% g2 s. d' c else if( nLevel > 107 && nLevel < 120 )1 M1 N' ?5 d _
dwTmpSkLevel = 5;9 S/ v. f' s# e2 }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( J# c. A6 V- n& d* G7 Z- F8 X4 P { & @5 p: {3 X1 ], N3 N; P9 v! j& ]
LPSKILL lpSkill = &(m_aJobSkill);
- j& a1 }# b: c ` if( lpSkill && lpSkill->dwSkill != NULL_ID )
* y5 L$ d& Q7 G! W) G+ F {" f1 c6 T; `) ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 ?1 w* w0 u+ w/ a% F if( pSkillProp == NULL ) Q. J* P& G$ K: f5 K0 e; j0 F6 v
continue;
* b8 H/ E9 n4 x+ }, Q( w! M! j9 n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# Q v& {$ |) D9 w& o& E3 s/ ~$ R
continue;
$ Q$ c1 `7 K1 M P2 [0 m' l1 Y lpSkill->dwLevel = dwTmpSkLevel;
i8 h. Q1 ^. G5 m5 V$ u }& W! q( e9 T& b, E% r* X
}3 }3 y1 j' M }+ `6 ^: L9 ]
}
4 j Y9 ^# R% D3 N0 | else if(IsHero()). h: z: G/ i/ `1 G
{
" J% B# W5 y( g @9 `; L for( int i = 0; i < MAX_SKILL_JOB; i++ )
( W/ v8 M% n( }8 y, h {
# L4 P8 e: ]- ]1 y z LPSKILL lpSkill = &(m_aJobSkill);
- V8 p5 C' {' c% x" N/ T) y if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ ?1 C3 k; @$ k3 w/ G9 s {
7 Z A2 i# U: h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! |- k/ A7 @: z( t if( pSkillProp == NULL )
& N' z/ `& _/ u" U# F+ R continue;
L' t0 I7 i; s! m/ x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( V+ k v+ D& A. }- W2 z" t& M0 \ continue;) V+ p5 e( g& P2 O8 T0 e
lpSkill->dwLevel = 5;% I0 e& t: M; ^/ Z7 |
}
3 ]# s+ {2 z, a8 l; w }
7 h) {9 y& c( x. P- Q }
2 a1 s; P* z4 ^" Z# m) j else if(IsLegendHero())
* P) N% J8 d: ~ {: W2 L% j) O, O: |% l( O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 C3 n- y: M" K! M8 z1 u { . K; J' h5 i" [& {
LPSKILL lpSkill = &(m_aJobSkill);* X0 G" S* Q. i0 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 j2 `5 u. Y: ~5 t: ^$ j {6 R( q- {& U5 K2 I* p0 s8 J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! J g8 c- O% P7 g, e P if( pSkillProp == NULL )
& Z% F1 a6 P) Q( M continue;
; S1 `6 t( n3 i& |/ a3 h' U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* x9 x% |4 l0 T) l' T+ p
continue;) |$ R5 H) ^9 H* l5 W: I7 \$ j
lpSkill->dwLevel = 5;
2 j& R* g" g9 a& }& Q3 { }8 l5 C/ _4 I+ L( c$ Y. z# g* T# e
}; w0 g; j8 n% _. E, y4 X, L0 V$ K
}
+ Y, g4 B" I+ V! `/ _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 Y) }6 i1 D( a6 n5 o0 G, z
if( bGamma )
- m6 x$ T/ s2 M9 O {
3 i) r) Y5 ]5 O m_nExp1 = 0;$ {; U8 W" @# Y( a
}
! M+ ? V [: f& p) z. }5 ~
7 C. s5 b! }. d ( (CUser*)this )->AddSetChangeJob( nJob );) _3 A2 m) Q+ N" w0 B; J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ \9 |( n8 {3 }% Q1 R+ u8 [, l3 |, _$ K: q
4 _& C) G- |+ u) n' Y; s
#if __VER >= 11 // __SYS_PLAYER_DATA
1 K; d4 K; M% q, I g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: S. {( b2 w+ f* Z: U* \0 Y#else // __SYS_PLAYER_DATA
! z; ~& |5 u; Q9 ?* o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, @/ R4 l5 `5 l d: G g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 _! A) S2 @& F* ] if( m_idGuild != 0 )& P; F7 S, P6 u: T# e0 q) q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- W& a4 `, L8 s+ ]; x; `
#endif // __SYS_PLAYER_DATA
5 Z$ f7 T% T2 W) N8 C SetHitPoint( GetMaxHitPoint() );
- x* [0 z; x; ]+ e SetManaPoint( GetMaxManaPoint() );
( |( {1 s2 W+ B# Q' d5 [ SetFatiguePoint( GetMaxFatiguePoint() );
( d3 l7 M' a- l8 `: @0 g3 N6 m0 L K if( nJob >= 1 && nJob <= 4 )
0 L3 i* v. D, h/ [ {
& \( R6 \/ m9 x% {) Z t1 l9 i% Q m_nStr = m_nSta = m_nDex = m_nInt = 15;7 k( t3 _% Y/ C1 U" g b3 A5 H6 W
m_nRemainGP = 28;% S$ L0 w' r/ K( N
}) p! l5 O; A! l! t2 y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) M- @: I- p/ i6 ^. F6 y$ {7 R; @6 |
{
2 Q. @* b3 l% x3 L1 F: G* |5 R6 }+ D ] m_nRemainGP = 118;
5 L( {- \5 r K7 B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, I4 N/ S7 j9 r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* o1 n4 ]. p9 \ }! L( |& I! w, a
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 N! K+ u+ K, {5 ]( r: k. F5 p
{
1 n: @9 ?2 Q/ s+ M1 @ CItemElem itemelem;: H! c% A1 O' M7 v6 T: v
itemelem.m_nItemNum = 1;
1 U* q- b# \, a" d+ J itemelem.m_bCharged = TRUE;) \ j. P B& I7 ]/ ?% f) _
BYTE nID;
/ D/ h2 E7 }( y5 Y) A
- Q! }2 j' S4 o# ?% R D3 o; O if( nJob == JOB_MENTALIST_HERO )+ k6 V" }' T9 }
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ d6 u4 F4 U# n8 \
if( nJob == JOB_FORCEMASTER_HERO )
' B9 o- B+ ~( l* G9 S. t itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) g I0 X8 N. c: C7 j
6 a! M% I& P9 @# u/ f1 k
( ( CUser*)this)->CreateItem( &itemelem, &nID );8 ~3 k% t% z, n2 |) D
}
2 [+ ?0 j! v! O1 O# G% P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
- z6 p' b9 \; k9 x2 e ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 n0 C9 j" c1 |4 ]% t& C+ w
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 W8 D3 q$ a1 k- W1 r5 ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% Y2 s% _, ]; ] ( (CUser*)this )->AddTaskBar();*/5 b6 m5 i9 p/ S! J! [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# l9 X) Y. R% ~- V# \$ X$ x( \#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 X! @5 ]# ]* B* S* O
((CUser*)this)->CheckHonorStat();0 `) {4 f' u# C( M* ^- o3 v
((CUser*)this)->AddHonorListAck();8 l6 @& |) T1 K _$ l5 c
g_UserMng.AddHonorTitleChange( this, m_nHonor);
% ?% J5 K( ]. ^4 y: B) W#endif // __HONORABLE_TITLE // ′Tà?
0 o& @/ ]& r& X* b }3 @/ A9 s* N& M; J7 |! n
#endif // __WORLDSERVER# x; t3 ? p) K' s
}
5 L4 G# f! [" e) q' g
; R) c; _" } _, r( }3 P然后你进入functextcmd.cpp并添加以下
- d9 H0 N$ S3 R* ]( J
/ w3 H0 A' \8 K7 o8 f代码:
4 C, E! r* Q; i0 wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ l) U5 H) y4 a% s下面插入" W- K" `( S8 Z& k% D
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 W& N. l0 V# T( V. Y
+ \$ q0 b. H+ |6 Q& A' x! @& x0 d然后你去
' q& [, ~6 F" Z0 P U8 f3 E# a. ^/ h0 \# V2 S( y
代码:
& A! J0 t" l" o. `3 C" ?! R代码
6 U; o( \- E! _. EBOOL TextCmd_ClearPropose( CScanner & s ); L5 t0 q- p, E
{ J8 w3 {# a# u! R7 q
#ifdef __WORLDSERVER) w" ]' n' ~7 m" V1 @6 q9 C4 F
CUser* pUser = (CUser*)s.dwValue;, E' ^% [5 ~, ^; V7 |
g_dpDBClient.SendClearPropose();
7 p6 U+ n& f1 b. q3 f#endif // __WORLDSERVER
. |/ w3 b( f: f z3 K1 y7 Z$ O return TRUE;! F% R- k: S- e1 g5 s
}
) O9 _# T/ G& c5 ~4 |下面插入0 r( i2 ]# X+ }3 l0 ~% i
BOOL TextCmd_rebirth( CScanner& scanner ) E& f& F. T6 O1 S
{
; Y6 s" A P5 w6 \, O#ifdef __WORLDSERVER
# H; k! i, T: r3 Y4 V9 PCUser *pUser;3 u, A6 A' g( ~3 h6 z i
pUser = (CUser*)scanner.dwValue;
% l# s$ E7 P; \9 D/ Gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& U' G l" T1 U4 _" b: X/ ~
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 Z" I8 C6 r7 H2 k9 ^6 j* v+ @/ Gelse
( g5 l* J. M3 @' A/ LpUser->AddText("你还未达到重生条件!");' `1 X: w v: `7 ^. i' }
#endif
3 X' O5 j9 }' N) k+ I; ?* W8 V: H3 breturn TRUE;
$ A8 t4 F! I& T+ ]! `} 4 Z- |' t& G" M) I, r" V$ | p
3 k5 S I4 j$ A* {/ ]- B8 x( W+ D
h1 K$ z( C4 e4 Q
- I" Y2 @( y8 [4 @! y7 p
|
|