|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 L( O: i/ c0 ]0 a+ P8 X- Z
: S# K" v& ?2 r) u* T, cMover.h
7 F6 Z! A! j, i, V代码:, N a* L* p- ^& y2 O' ?& [, z/ E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 F4 D% o- L5 T
/ C2 k' f. N+ J0 ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
i$ D u9 Z0 \% _! b
; c, i9 g u( e$ }+ G! |) r; N然后你去mover.cpp添加
9 I# {) S* V+ I5 z
3 ^( N# G, `; c/ o. E% M" a5 F+ e代码:
+ S4 U2 H/ e5 h/ U5 w. _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). j* u' `+ x% o) h
{+ y; O# v/ [2 d- D. u) y
#ifdef __WORLDSERVER
: s$ @1 L1 Y9 l) w; t7 r, ~/ L // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' D; u& b" Y& ? h' } MoverProp* pProp = GetProp();
% l' C: Z" w) T. v% Y0 K& |+ { if( pProp )0 y9 e) }- L J' [% Z$ @
{2 ~$ {. t, {4 s7 M
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); a. |' O E; ^
{
[7 A: M4 Y3 U5 P5 t( D AddChangeJob( nJob );
- L0 b) c' N% r% [3 J }else{# v: n' S" n2 ^( B" |
return;$ O4 i* T; E W2 H
}
6 j: x* `7 I. _# M int nPoint = 0;5 i Y* W+ j8 }/ G$ y
if( m_nJob == JOB_MERCENARY )3 ]4 E/ r! r# N& T) T+ A. ?
nPoint += 40;
& m' T* E1 m1 _( }0 r, Y else if( m_nJob == JOB_ACROBAT )
4 U% c' T1 _' [) j nPoint += 50;
% `, p7 `! A! n! c else if( m_nJob == JOB_ASSIST )& W1 g6 P5 R; t+ }2 V9 S# n6 b w
nPoint += 60;! c4 Y) L$ `6 `% }
else if( m_nJob == JOB_MAGICIAN )/ I% d9 G3 z8 {6 B' w$ U' N
nPoint += 90;
3 {+ m* ?. `6 _8 s/ [3 l; G else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) y( o9 C8 K) V% k& {9 e; r! [1 { nPoint += 120;
9 [2 {7 d# h- W! l* m* z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 g* ~# d- G+ N7 w4 x0 `- P# w/ \6 M
nPoint += 150;) @ `8 Q: g) _* O# y) r
else if( m_nJob == JOB_RINGMASTER )' d3 Q" G/ S+ q) A
nPoint += 160;
, q2 W1 ?( T4 O, Y: e/ d+ K b) j else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# k) O- x4 F. o/ P nPoint += 180;
, A3 p+ m: s3 h4 T; x& ]% N else if( m_nJob == JOB_ELEMENTOR )' ?1 ~$ T5 L, @/ L
nPoint += 390;3 }) x" m0 ^8 F/ L! t8 H# J
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 Z9 ^2 |1 V0 _: ?" G nPoint += 120;1 M0 c }! P5 W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' }) G; k' ?5 Q( N: n nPoint += 150; t7 g0 U9 r1 _" R% ?7 {4 L7 X
else if( nJob == JOB_FLORIST_HERO )
# B6 A# u' @" J( a' _ nPoint += 160;2 c" e0 L7 b& B1 N* D/ y0 a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
L; B/ W" I, M' B' R) [; R2 N nPoint += 180;* s ^1 E0 T* d
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 Y# T( |$ P" h! ~, v D# H nPoint += 390;1 D% Q8 S) T# I; T$ g0 o7 p
' Q; w G$ r) U: c" M# K
AddSkillPoint( nPoint );
4 z2 I& @& c6 J. C9 |+ j5 ?/ g m_nLevel = nLevel;: W+ P5 E# [0 @! g3 Z' O
3 o% j6 W3 e% ~1 M( f4 h! \5 t, n SetJobLevel( nLevel, nJob );
- D* m3 K: X5 [$ j g$ f1 j8 h m_nDeathLevel = nLevel;& N( I5 b4 e% b. S4 J! S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 _% _$ u3 A Q% K& x$ U$ V2 Q if(IsMaster())
& v3 j: y7 m5 V+ W' \ {
! i6 S0 w' r5 Y! \5 _ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, r, I1 s+ S3 K' r: L$ k) |7 u1 H if( nLevel > 59 && nLevel < 72 )% X7 O1 O7 {, R! j
dwTmpSkLevel = 1;
2 W' N# ]! k; h. m0 d& N, J% A else if( nLevel > 71 && nLevel < 84 )4 @+ t& p" s( x- A- R$ N8 p+ O
dwTmpSkLevel = 2;- ?3 I* ^* h( d5 v* u
else if( nLevel > 83 && nLevel < 96 )$ R" a) d% ?7 S, C1 x7 [- f1 Z
dwTmpSkLevel = 3;
" {% B1 K& E) R else if( nLevel > 95 && nLevel < 108 )6 _, b- s5 d2 P" b: G
dwTmpSkLevel = 4;
% q! Q. _. ]' O6 L! Z2 N1 } else if( nLevel > 107 && nLevel < 120 )
" B& O$ ]5 a( o4 Z dwTmpSkLevel = 5;
6 w3 n/ j9 W, ^5 r2 t4 E0 k for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 p- D( L0 `& `: c
{ ' S& ~; t& t. q% W% F( f& Z7 L
LPSKILL lpSkill = &(m_aJobSkill);" ]9 F: n* z: E) X N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( m- G4 S# z! J1 [ {0 b1 z; ~+ U P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 q& U* f! z) Z! J' X" {- ^1 b- F+ G
if( pSkillProp == NULL )
6 q4 x* x1 e& J9 _5 t; U continue;
" Q, w a5 v% G- S/ j# n/ a8 l6 [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 G8 P2 f: n- L0 e continue;
& b( k6 k; Q7 ^% [: u- @1 j) i0 U& R lpSkill->dwLevel = dwTmpSkLevel;% I% T8 p( U6 G- A1 ~1 |# n
}
( E4 v; a, d% i# a$ Q3 M }+ I# [+ V, c& z9 G" h
}
$ k" ^! s# {# g/ U: W& M" B+ t else if(IsHero())
; I6 R: R" f' y0 I% a( c. J# L& G {
9 L; Y% \3 z+ D# q( q' G1 l( a. H2 r for( int i = 0; i < MAX_SKILL_JOB; i++ ) , K2 B1 A, T Y$ B% e) R. b$ E
{ ! E" @* Y( M* q. a
LPSKILL lpSkill = &(m_aJobSkill);/ m+ i! ~3 D9 Z: ]( N) V1 d' B
if( lpSkill && lpSkill->dwSkill != NULL_ID )) ^& f6 c6 t2 k, Y( y- X2 v4 z
{3 u; w, V% u- r5 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! \* c# W6 ^; y" S7 J( M9 A
if( pSkillProp == NULL )
. Q8 m+ o x5 s& S3 F* g6 U continue;# d$ ]- O. n) _, U* Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' l4 h4 A( X9 u6 @8 ] continue;; b+ R; c/ R- R
lpSkill->dwLevel = 5;
9 l" N: j* S* K: a- d9 }! b- }1 ` }) Y. u! K) _3 l: `# x* x( r% d# u
}
9 q2 h1 W: q y8 S% i }
& y# S6 H7 ?0 C1 T* p else if(IsLegendHero())5 [3 K! X, o2 @/ b
{9 E! g$ i' z- W; _! a2 O$ `8 ^& R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 s' r) M. M- ?( R5 V, t% C {
, _7 @5 f0 t* q3 `0 _. H" u LPSKILL lpSkill = &(m_aJobSkill);
+ C" \/ z' _* N; u) { if( lpSkill && lpSkill->dwSkill != NULL_ID )
& s, U! V, f1 y$ ^) Y5 N# v# I {; M) j9 r, P) |$ l2 _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! p8 Z9 @. K& U1 y7 q
if( pSkillProp == NULL ); C: i0 _& @/ _
continue;
$ l; u" _) W0 _& @" W$ x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 l. i( }1 y( |# ?8 v3 v, u& m3 {1 z
continue;8 p5 J. n M" k8 i! L7 k
lpSkill->dwLevel = 5;! d* f9 m! E5 `; W
}' N: R; |+ S! S% M
}
5 O3 w/ Z; ^% P; Z! J' z }" z. }2 o7 C0 X- F( e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- y6 _1 s9 a5 Y if( bGamma )) N8 m# ~* l3 Z* O- `
{& T. i: |: i' S# W( t
m_nExp1 = 0;
0 }' x! x4 b4 o5 P }
" b' s2 X+ z# P" E) Q. Q" u: Q4 E9 o+ U) \' @# @: ^4 C
( (CUser*)this )->AddSetChangeJob( nJob );
: J6 ~, R7 _ L: X( K- J, ~ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" M2 s! Q+ Y! U+ e: H# M
3 M+ F/ z7 g$ W; F/ X! G
$ ~0 T4 A1 S6 {8 T. C5 H
#if __VER >= 11 // __SYS_PLAYER_DATA) A( F- C4 X/ ~/ r* N+ ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
?6 _" I4 n1 V0 l0 ] K#else // __SYS_PLAYER_DATA
' n5 v7 l) x' M7 }2 u g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 f, F! D* s- a8 [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- d# n" `8 C( w2 |: X6 w if( m_idGuild != 0 )' U7 o; ^+ e7 Q' P4 i( Y, U& M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; d' ?2 ^, ~0 Z$ S8 ]4 Y9 v. h
#endif // __SYS_PLAYER_DATA2 L8 c6 U R/ c; D, N
SetHitPoint( GetMaxHitPoint() );
; h8 m* Z! Z7 G+ u SetManaPoint( GetMaxManaPoint() );
: g4 ~ y: c4 q3 b2 P: s. Y SetFatiguePoint( GetMaxFatiguePoint() );
% \7 G, f0 ^7 C* x: f if( nJob >= 1 && nJob <= 4 )
% d* ?; O* H5 }: l. d8 A$ s {( _8 X7 n. T, x3 w. M, [, V4 j( C
m_nStr = m_nSta = m_nDex = m_nInt = 15;& k Y) k* I- O3 ^( X* d; C7 T# X& I' I
m_nRemainGP = 28;
; ?/ J4 H" s/ S }, y. T9 Z3 L: U; z: p3 j7 ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 Y1 U* _/ p6 g( Y
{
2 T6 j# f4 P2 |8 P0 z. g3 f. [ m_nRemainGP = 118;
w: Q0 Q o U# l' Z7 I5 y& _- Z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 N& @& c, [: J8 D
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 P1 S( o3 O& u+ x' K0 c; d1 U
}
1 A. Y. r3 j! D; B/ _7 ]' q! d4 l if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 R7 e+ Q ]4 S; c7 z! J2 `& ^ {$ u; n w$ j. `
CItemElem itemelem;4 K1 g: c- a. e, V" @" X, U. W
itemelem.m_nItemNum = 1;+ z: A# ?0 b1 N8 s
itemelem.m_bCharged = TRUE;
& D# _" K- `4 P; t4 `+ f$ i5 b* | BYTE nID;
( P7 Z" u/ U( n1 M+ X! X# y( r
2 {2 X/ N% e8 ?/ ] if( nJob == JOB_MENTALIST_HERO )+ l! E9 Z$ z# X* G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& O/ J, W* R& {3 @4 ?$ n
if( nJob == JOB_FORCEMASTER_HERO )& ]3 G% d- w2 t7 x) b
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 q; J! C/ D3 E
* t+ |9 D8 R) o: F0 D8 p ( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 M5 O' \, \# J4 ], @5 S }
) s& T/ l( d' q; ~4 J# `, b$ e# e% P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ e2 m T; [2 c2 l- ? A ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' K% `* \. E8 Q$ { ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' M6 H8 K5 Z7 c$ s+ h. ~5 v$ I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 [, U+ `% B7 ~1 |, o& k
( (CUser*)this )->AddTaskBar();*/7 u, a$ N) D. n
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ c( g3 F* |! L/ ~+ J r" J#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ y* x9 J# ]! {/ l
((CUser*)this)->CheckHonorStat();
/ K1 }& `! t" l4 ~$ o1 D ((CUser*)this)->AddHonorListAck();, c! {; {: p7 b* c- e, M1 U
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 G4 c \. ?- [1 F
#endif // __HONORABLE_TITLE // ′Tà?
9 J0 x8 F3 R8 X' G8 W+ U, l }
9 n' X: {* ^' K+ a& M#endif // __WORLDSERVER
, U) S5 T5 G* M9 }1 X5 A3 B} ' F9 V6 J7 _$ C% @+ x7 @
F* s8 _. B' u3 c5 z( k
然后你进入functextcmd.cpp并添加以下
8 F! M$ F; j8 u9 N# U3 c, \) Y$ f/ N, B5 H; u8 {% }! Q
代码:
# @- [5 l# Y, T3 EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# F% y7 z/ w# x0 L! v( x( Z
下面插入2 ~3 F. A/ J; `& e" k G8 a
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 5 i, c: L- p/ M* l, H. ?3 s
1 @+ |. u. r' E. I* U9 h然后你去. F4 Y- D+ D) N5 R2 g. }
% t H# x+ C8 A2 F" z
代码:
) L) m$ D1 E V8 U" h5 ?1 ]代码, L! U2 h, e- t$ [5 Z7 ?
BOOL TextCmd_ClearPropose( CScanner & s )
( ~: f$ }0 _$ P( a4 A{
% c7 v; @6 H5 |, @8 W8 e' ~#ifdef __WORLDSERVER
% Q0 [4 J8 r* c. u9 n CUser* pUser = (CUser*)s.dwValue;/ I/ j* E/ o' N' B
g_dpDBClient.SendClearPropose();
, J$ w1 o/ O5 `% W& o#endif // __WORLDSERVER
6 w. ]. O' `" {7 Q* }9 { f7 t return TRUE;7 V! O- Y/ z0 E' u' [5 g) D d
}- ~+ j# q# R4 x7 E% |
下面插入
2 N5 x T* \3 b2 P/ X. aBOOL TextCmd_rebirth( CScanner& scanner )
( z2 R {" x$ ^{8 R, w' v @& E- l' u
#ifdef __WORLDSERVER
: |/ w' _( ]7 \& b" ?. d7 L8 SCUser *pUser;
7 _# J2 M4 u/ A/ ~7 ~' O* p4 gpUser = (CUser*)scanner.dwValue;
5 e: Z, c8 T6 l2 o [: Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" k* c( \9 s @$ Z; epUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ y5 |5 r8 b, \/ c% Q& S' uelse; `: f: Q8 B2 A. m: \' h
pUser->AddText("你还未达到重生条件!");
" q+ |: o& [% @: a#endif
! h6 ?3 T4 \- H: |0 ~) c5 f* [return TRUE;
8 H' Q, H) N- M9 I/ O$ t) F}
$ F5 A" K& `; j( m+ V% V0 F
! I, l k, @' X* G- y* R9 J# C& e
/ {5 P. i7 _% p* d% ]0 }5 n/ R# x
8 \5 b' c4 K# \9 `$ p7 I( d+ h1 @, e0 M$ |5 j3 _
|
|