|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ N- o( H. A7 |, k1 Q0 N+ j [$ E5 S- Q/ M$ F p: B. Y
Mover.h
H& w/ Y4 M6 S9 u" y代码:4 W$ e! M" V W( g; H3 r6 g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 h! C0 N; |" F5 \" @+ Q, l- m
. |7 }1 R# S$ O# l4 X9 ^下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- F2 a K4 b& l# a! Z$ {2 m" E" ^$ c; C& s& c3 |7 o7 `
然后你去mover.cpp添加! K% ]+ p$ r4 m, r7 v9 Z
! h9 a5 ~! @; p7 Q9 J6 N/ `
代码:5 x6 ~$ I2 J) p9 Z1 X6 }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 n, e1 F* W1 e- e! D1 l
{) ^8 X: u* L7 f+ X2 Q1 z
#ifdef __WORLDSERVER
/ h4 E4 j! l, I% z& G- X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! G2 P" e5 A3 h% `
MoverProp* pProp = GetProp();7 a! n9 x6 w& g, r& W( ?
if( pProp )
( m t, D5 h1 ~ {
9 m( d& s( b! V, P0 X. `7 C6 M! x5 _* y if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 i G" E1 [, H) l9 l: W" P {3 f, Z6 P* ` I5 j+ t. y
AddChangeJob( nJob );- W8 I% P% a3 J- Z. @" ~, e
}else{0 G/ `$ Z. C8 D" f
return;* K' N5 P' T& _) k: E
}8 @) K/ W4 n/ O& a8 J5 \' A
int nPoint = 0;
/ x; T- u( p3 a9 P" X if( m_nJob == JOB_MERCENARY )( r$ `2 Z! O, h
nPoint += 40;
" i) ]$ N. X; h else if( m_nJob == JOB_ACROBAT )
* V* {0 o( c; l N, }5 ?9 o nPoint += 50;
7 m `4 R/ I* F else if( m_nJob == JOB_ASSIST )
2 [ y) r" g9 C nPoint += 60;' b9 {/ }; R8 p& e. Z: z
else if( m_nJob == JOB_MAGICIAN )+ X, I- E, [/ u3 z T& J
nPoint += 90;
5 s* H( b$ D t, y. e' i else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). I0 V2 k5 E ]: L) I: x n" r
nPoint += 120;
8 i g0 k: z" m( O else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' M2 B8 q7 l+ S0 o
nPoint += 150;
- I+ `2 p F, M6 E: f( H9 V* Z; X else if( m_nJob == JOB_RINGMASTER )
v6 L# k4 `6 c2 Y7 l5 ^ nPoint += 160;, L9 ]2 V9 ]! A' o
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 Q, K( k% B* [) F, k( z3 T
nPoint += 180;
4 h8 h l. x* d# {0 c _6 w else if( m_nJob == JOB_ELEMENTOR )
n2 H |/ W9 z/ D nPoint += 390;
0 }" H- \, o5 r; r, ^0 P% T else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. \" z" j" p+ I6 E% Q nPoint += 120;
4 h! Q4 ^5 Y! t; m else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* s, u* J$ B+ `" Z nPoint += 150;
: w/ {' u- S7 u, E else if( nJob == JOB_FLORIST_HERO )
( M$ ]3 |1 S0 x7 O nPoint += 160;5 F/ F3 X. w3 U9 m, F# {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 i: j) U* b9 f) k P/ x
nPoint += 180;; j4 s7 [" }; s4 G- E* Z
else if( nJob == JOB_ELEMENTORLORD_HERO )
5 p% S8 F8 q, R+ S) d% R nPoint += 390; E1 i2 I8 ~+ P( f$ `; W0 |2 K5 v
; c; l2 I$ X$ b" n1 z m" j AddSkillPoint( nPoint );
+ o5 q$ f M8 ^ m_nLevel = nLevel;$ f% V% K2 V# ^# D' e3 @
B; R+ G; T6 Y( r; ^
SetJobLevel( nLevel, nJob );
- M( U: |' ^, r7 P5 Y% R m_nDeathLevel = nLevel;) a+ Z8 |( ` f- i9 G! k
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- x* p6 Y( o/ E if(IsMaster())
8 S8 @9 E" z+ x4 S4 Z {
2 N& }1 v1 z @, C" e$ Z' C int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 j3 Z' v4 \& B# N( R if( nLevel > 59 && nLevel < 72 )' q- L+ ^; r* z- c# b6 ]* C
dwTmpSkLevel = 1;
( f+ p t. t( P; e5 x+ a- W else if( nLevel > 71 && nLevel < 84 )
. B& x7 s7 f9 I) i$ R. I dwTmpSkLevel = 2;
3 ~. Z8 O. e, k+ A. L: x else if( nLevel > 83 && nLevel < 96 )7 w2 K( W3 B3 J0 Y
dwTmpSkLevel = 3;. t/ e* I9 i. c& F4 e# B0 I
else if( nLevel > 95 && nLevel < 108 )
8 ~+ t: z7 u% s) x' } dwTmpSkLevel = 4;( j8 E9 a8 J+ H
else if( nLevel > 107 && nLevel < 120 )
; `- G- q5 Y" Q E4 }/ O' O dwTmpSkLevel = 5;
/ c* b- c; @$ o7 K0 J+ ?5 w for( int i = 0; i < MAX_SKILL_JOB; i++ ) : D; Y" u+ F& o: M3 N
{
' h. x: G" W2 |# u' j3 A LPSKILL lpSkill = &(m_aJobSkill);
1 l- e |" ? s if( lpSkill && lpSkill->dwSkill != NULL_ID )
- N. a- |, Y e" q; B. H! u# n( p {5 j9 ^5 A- {/ z& n1 a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 A1 t* X! j, J6 Y
if( pSkillProp == NULL ): B! D+ M1 V+ B$ P2 E$ x" w% j+ K
continue;6 s9 r* Q/ \- G* G9 C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 K# ?) l; q2 ]* l0 ?2 c0 l
continue;9 I% h Z4 F* Y. V
lpSkill->dwLevel = dwTmpSkLevel;* N- c7 l% P1 D, l3 g* r$ A
}
6 T: ~. I4 W) Z8 u. n4 Z% Q& k }" j2 P g/ p1 ?! x' Q4 ?# R
}/ F/ L* f3 N( m$ ]+ h) C9 l- K- q
else if(IsHero()) i0 ~9 k8 a a- _# K( S9 w5 }4 D
{
5 i, Y! n I5 m8 J for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 V# [. c6 T% V$ d% u c" u- F% W
{
" g. b, Y6 r, V0 i9 @- l# i LPSKILL lpSkill = &(m_aJobSkill);- \3 i9 p, p6 \" U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- @; e3 s, z- @& a {
z. t; s% Q7 L, f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % j2 O! C& Z6 V3 n. K8 U5 x- J2 p
if( pSkillProp == NULL )
4 @$ z# n( n2 f6 `7 h* p1 h continue;
( h! R1 w2 r% k, e0 f7 ?' b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 Y0 L! `- ~9 G% b+ S
continue;
- f% W6 Z0 ?% S1 ^, u$ | lpSkill->dwLevel = 5;
3 |8 ?5 X1 K3 N% W9 q }
$ b; [, _, O0 f1 C }
* r+ `: X+ V4 @: H" z6 s: E }
+ f' J" D# j( N5 T8 H# y else if(IsLegendHero())
' E* C4 S" b; } @, p; _8 A1 k7 { {
: Y0 V; Y+ _, |" i4 B$ \0 a0 a( F$ ` for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ V# {" h7 o$ ~, ] { 4 B' O, M# g) G. r+ }- G, ]
LPSKILL lpSkill = &(m_aJobSkill);/ P0 f+ F' f$ C) _/ M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! g( C* I" u7 r! l' R/ h {2 r9 d2 ]1 S9 z+ W+ ], G7 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + }. |* Y- D! c1 G$ u3 _( g
if( pSkillProp == NULL )
/ H$ Q$ K6 \9 I4 l4 k G continue;
2 p, b, T8 r4 c1 n7 k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
O5 ^- f/ I9 b: |2 g; \) L1 q continue;
/ P5 B; F- X* \2 X; I/ ^5 S lpSkill->dwLevel = 5;' s P" V3 H' z( q. G
}' E$ E* x/ ]" h3 s+ Q# I- Z
}
, v! J6 t7 c9 N% \+ u }
/ g2 @ }; G3 R, O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, y9 E; d* Y& R3 z5 N0 C" n1 G
if( bGamma )
" G7 \' r7 v- i9 z {
: Z( y- ], `' x, |: e0 d8 d( H m_nExp1 = 0;# C9 Z9 p; ?# a/ {' a% _% c
}: ?* N/ @' o- N w# U' ^
/ \& a5 f) [- r- ~ ( (CUser*)this )->AddSetChangeJob( nJob );
& p% y5 P) p; g/ p g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
z A- r$ R" @8 }% b4 u
4 x6 E' L/ f6 `) O1 b( e L3 o' Y
#if __VER >= 11 // __SYS_PLAYER_DATA
% E% i4 d0 t/ k g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 y: C* [6 E% b6 w, T! f#else // __SYS_PLAYER_DATA
( m% _, E1 j: U( C3 O. }6 S+ O) x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ u5 z" ?2 T+ I7 ^7 {/ I' G- H6 f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& y9 t2 y' Q1 d& N. k+ l% x
if( m_idGuild != 0 )& E; s) l) j4 T4 j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; h) @. k$ C! ?% M, y# ~#endif // __SYS_PLAYER_DATA: E1 Q; E. D/ A: T
SetHitPoint( GetMaxHitPoint() );* u& p, g6 i! H+ t1 p _
SetManaPoint( GetMaxManaPoint() );" m* d7 I, g9 k! k
SetFatiguePoint( GetMaxFatiguePoint() );7 O+ f& F' S! W) T
if( nJob >= 1 && nJob <= 4 )4 R! x/ A5 V8 v% B" t0 g
{
+ x; k, c2 p- ^' z: p m_nStr = m_nSta = m_nDex = m_nInt = 15;
" Y5 R, x9 I. p5 ^! R( s: J m_nRemainGP = 28;, d. X1 V6 {+ Z9 n2 n
} C n9 h( s( \/ s# y0 ^- f
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 Q' d. D0 \ J& L; G
{5 k+ v! }* } ?
m_nRemainGP = 118;/ c9 k; E2 `: l* k: J" A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; S9 V* H- b2 n4 `0 v/ b m_nStr = m_nSta = m_nDex = m_nInt = 15;9 w6 j5 o5 s0 H4 s
}
4 U! H2 Q) U6 a& }, n3 d if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 q5 U8 d% R0 T {
, l- n6 \/ @ j# W. G CItemElem itemelem;. t: r; [# p* f+ K4 H+ @
itemelem.m_nItemNum = 1;: j4 }. b% T' I1 k
itemelem.m_bCharged = TRUE;
3 k' G+ d2 k8 P+ M BYTE nID;
% }0 B& }# d1 I, c+ I# `! l# m8 d
0 t( u: m, ^4 [, `3 V* X$ I if( nJob == JOB_MENTALIST_HERO )* ]8 s9 {# ?2 Y0 q( }9 O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) [6 W7 Y' ], n% y2 l6 z+ s
if( nJob == JOB_FORCEMASTER_HERO )! L- k+ l5 Y6 J" j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: @% w$ [6 u2 r% D) u- x6 `" V2 n7 ~6 p
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ s( A2 O" T7 X8 l }
7 E1 J4 W! d9 W4 l& i8 ]5 X g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 J0 q w, I& i. ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& c/ M; ^1 p9 o; W- ~2 C1 K: F0 [
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- d/ B/ k& [" Q, a2 f+ F& Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 A0 x, x" `% _$ H# @ }
( (CUser*)this )->AddTaskBar();*/
2 O7 A* B3 | Y+ {7 ]8 Y ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ J+ ~. L+ h# E2 E# A: F
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. G( p3 V% _: {/ a0 _. N
((CUser*)this)->CheckHonorStat();0 x4 R( m6 G, Z- [# n; q. Q
((CUser*)this)->AddHonorListAck();
% I9 }# Q1 j( y$ |! P g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 b$ M# l: y# Y- g#endif // __HONORABLE_TITLE // ′Tà?
. h- R* }, I4 E }8 D% @" K' K4 I9 J
#endif // __WORLDSERVER" ]) Y5 D9 b2 Y+ f! `$ {& E
}
9 f: B/ F; }) |9 N3 e3 ^" }$ p* A: O( D$ d) D9 v- S$ h
然后你进入functextcmd.cpp并添加以下+ O& Y5 t8 W( t! M0 w+ i& g, L
* V" M+ p5 }; ?0 E
代码:
) ~, q8 u; S% ^- B2 {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- S; {# J6 k+ M
下面插入
7 z; M8 G- E& W$ iON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# ~% t- k, [) z/ b( p
2 C) {/ B& L# j5 y然后你去
% k! M4 \6 n" x) n% w I( l- |
/ I9 ?% D6 S e4 P3 d' H代码:' ~- N7 S- V% y0 v/ p& l
代码
2 L% u' |. C8 S1 W4 [& Z7 b: LBOOL TextCmd_ClearPropose( CScanner & s )
+ W- i4 l7 i; N2 D" X) q{5 y3 v. \7 l, a3 A
#ifdef __WORLDSERVER
* {# p1 O m1 c r2 N( v4 W CUser* pUser = (CUser*)s.dwValue;8 S- o( B1 z; J+ k; a, B, w d7 u
g_dpDBClient.SendClearPropose();9 u1 i' I, m3 A3 ]3 s W" e
#endif // __WORLDSERVER( w! p) |" W1 k, ^) W1 i
return TRUE;
2 m3 j9 E- B- L" k}
+ V7 s& \ h0 Y e3 l& C下面插入2 e. `7 c( N7 s `2 g$ n
BOOL TextCmd_rebirth( CScanner& scanner )6 r% u& ]! S0 O. V- U" [/ O
{8 b6 o5 u8 i: D6 b/ d; `" a
#ifdef __WORLDSERVER
% u" `0 F7 U+ b: [' | _ v: MCUser *pUser;
& G* s2 }8 L* s) q NpUser = (CUser*)scanner.dwValue;
! u7 K8 Z9 B9 k9 o( Y' ^2 p, j: ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& F% G. _. U. J* b/ ]pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: `1 Q0 k/ o0 l4 g
else
, ? t7 m/ e$ Y& opUser->AddText("你还未达到重生条件!");
9 q' I/ I. u, y#endif8 D9 e9 I3 _7 Q- s+ k. H* O, w
return TRUE;
4 ^ A) h. ] |" \} 0 ^% e! ]- K$ u2 o( k) N! @2 b* O/ g- ]
% {- Z, G" z5 B$ b# X0 h
/ l8 T% Z+ T8 z4 n/ E: g& {+ a' w) `
( J* I4 m9 u/ E' l3 l( w; `. r, ]( U, D, f1 \2 M! J+ P, m ?
|
|