|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 c/ [0 j- {, y; O* c! s
& G; w) Y2 |$ K1 h+ U% |Mover.h* a9 r& T8 s: l& I0 m
代码:
/ O: I- H! B9 ^找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 n' T" t. l( A6 V6 v( y$ p' l6 m a% h" D& F
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # e" y! D8 \2 y5 V; O
) T+ f {9 | L* I8 z然后你去mover.cpp添加
% g6 ~- Y' c* z& B; L: v/ q! T- x
2 n) Q1 |/ r6 r7 p; h代码:, e' |$ C: k! x( P: I& V8 S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ R: d. j/ X: m* c{
8 a# \9 R8 ^4 i \, J#ifdef __WORLDSERVER w# S6 E: D& m& G8 r0 ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 o" M1 d$ n6 y. I( W* \
MoverProp* pProp = GetProp();" ?9 d' Z9 ^& E! R
if( pProp )
4 z( h, a }3 B5 M) m {
! X: z" T1 x' _ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% ^: k6 Z% c5 R6 T( m+ b f {
& C1 d L( r- A, L AddChangeJob( nJob );
0 h) s* ]3 f+ s+ R/ ?- g }else{+ W! B- A' [3 }" {7 ~9 T8 d& X( C
return;& `* e7 Y8 _ S- Y2 ~" n$ ^
}6 b! W4 ]2 O; E# c# t$ @5 O+ ]) F4 R
int nPoint = 0;
6 K5 B. L; k6 m) o1 [ if( m_nJob == JOB_MERCENARY )6 C; \# i0 O. o# J
nPoint += 40;
# }) v3 i' f& Y8 B' c* _ else if( m_nJob == JOB_ACROBAT )" }" ]% {( X! t) z2 M
nPoint += 50;
, I* V, y) k! U! _ | else if( m_nJob == JOB_ASSIST )
& j4 Z% d) Y! x/ F `4 } nPoint += 60;* l. K" H$ C4 D% t3 }( M @
else if( m_nJob == JOB_MAGICIAN )
& \9 \# B. S. E' G/ w% S, l nPoint += 90;2 F/ R, R1 S3 X' }. ? }: |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 `0 x* Z& O2 \5 G0 Z9 s7 [/ O1 P# F M
nPoint += 120;
2 G, @3 I" H+ j# S, ]4 i( U! g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 p1 k* q+ A+ s8 X nPoint += 150;
% \2 o$ u4 x" i' B else if( m_nJob == JOB_RINGMASTER )
; e! u& u% W. s0 W9 ^# D& U nPoint += 160;
! j b4 u& `% j) N( q1 V else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); o1 m% n- f: r7 Y0 m- E
nPoint += 180;2 R0 m& _& ]1 M, \% C
else if( m_nJob == JOB_ELEMENTOR )* E6 N. B' K2 N4 V
nPoint += 390;% J' w B, V" @/ r: i, B( n, C: G" A' x
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). g g1 U: K' d, E
nPoint += 120;1 n/ B2 U/ z! U+ L4 a1 `" s8 f
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 \" W8 W7 H; n6 z3 T& n$ n0 I7 u
nPoint += 150;$ J# L: |$ h# b6 `$ |
else if( nJob == JOB_FLORIST_HERO )6 F# D/ J+ X1 y1 Q# O2 ^/ R) b @
nPoint += 160;
. ~: C. M3 D2 ^8 k+ S else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) i l3 b$ @7 I/ u9 f) v! P
nPoint += 180;
- a J9 u! R/ A" P8 H0 U else if( nJob == JOB_ELEMENTORLORD_HERO )5 x' L& ~+ i6 X* `* o* M: `& w
nPoint += 390;; c$ f* B4 m1 h) f2 }; M/ h' k
1 S+ Z; W% B- k9 J AddSkillPoint( nPoint );; V. P. x! I* c, o/ K9 `5 x% ^
m_nLevel = nLevel;
! Z- z4 P2 F* _2 z# [- B) b; u* U4 u) e, @3 G& U
SetJobLevel( nLevel, nJob );
* d9 [4 \' f& q, g m_nDeathLevel = nLevel;0 r; J P6 u- ~1 q6 o
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( M% `) X! v u if(IsMaster())
6 Q2 h. H$ x9 M3 q$ c {5 O3 U6 ]4 E4 j) d; r+ n
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% z: i# f: D( i if( nLevel > 59 && nLevel < 72 )
; o# L @% t; Q% b% r# C! Y dwTmpSkLevel = 1;
1 G5 Y8 N7 O4 H: v, P' x else if( nLevel > 71 && nLevel < 84 )
$ j" `- m! v+ D/ n9 c6 y dwTmpSkLevel = 2;, d y& A& J9 q$ `) }
else if( nLevel > 83 && nLevel < 96 )9 `; p: H* {+ O% p% T$ J
dwTmpSkLevel = 3;1 @) ^, n7 b+ P+ Z
else if( nLevel > 95 && nLevel < 108 )
0 B6 _! \' g( _; j2 ~1 j dwTmpSkLevel = 4;
5 K: o- K" w' ^1 @0 Q Q b, h else if( nLevel > 107 && nLevel < 120 )
2 h) M) P! o' ]0 \ z, l# J dwTmpSkLevel = 5;
; l/ @5 w% s. S4 D5 y for( int i = 0; i < MAX_SKILL_JOB; i++ )
, X2 T7 c' q. F* l6 B {
* k' q8 V; @; } g: o* p6 ~7 v7 T LPSKILL lpSkill = &(m_aJobSkill);
4 x! L) |3 q$ Z1 p* U& g3 d. ?8 S6 ^) ? if( lpSkill && lpSkill->dwSkill != NULL_ID )- {0 b9 @+ a" S
{5 P; ?; ]8 E- l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 I7 f! T0 Y2 x) I& q: k
if( pSkillProp == NULL )/ f0 m* J1 J2 R x+ }
continue;9 R( v0 T7 v1 T6 I: }/ g" ?7 H5 R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 m4 M# J. X* o continue;
# n" I0 K6 F" D1 b lpSkill->dwLevel = dwTmpSkLevel;
5 K) L) U( W2 k6 u, i* ~ }
4 B! U5 Z/ T3 c2 E+ x }+ I( @4 u9 s T, j- y; L
}
; |9 `2 l* F" E2 C* O2 u else if(IsHero())& }7 I9 l6 X8 B+ K/ x
{" h0 h% e. {3 m! E! g+ f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ q/ l2 G1 |# c9 G( |. F {
7 C# s3 w8 Y' m* X6 d; A- X LPSKILL lpSkill = &(m_aJobSkill);- A: w) }; z# Y: v& s1 ]- G
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ ^ |. R- ?3 J. w
{3 R/ I) P# u! n. l* b$ q* @! |1 b7 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ?. J6 Z, d1 D% L6 ^
if( pSkillProp == NULL )1 r0 [* V3 {9 s: l! N. \- v
continue;" O5 H! t6 w" z2 t6 W0 n& |9 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( e2 J/ K$ {( p$ s- `8 d: L
continue;
0 O( d2 G" ]" [( ?% ^' k lpSkill->dwLevel = 5;* u% c( H+ s% f- j# p! D, R4 F
}
8 y6 _, W7 d' q5 R# N$ N }
) d3 i) x5 k0 x0 _, _* I& d$ H }# O t, f# V. j6 z$ i, I
else if(IsLegendHero())3 E' W4 Y3 G2 H! E
{
( H( s0 W+ i! X% u- c1 |; z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 @) b e# ^# J4 ?! H# Z$ S
{
& |5 o0 v" j" d, h) V LPSKILL lpSkill = &(m_aJobSkill);
5 S E9 O" t8 o2 E" S- q if( lpSkill && lpSkill->dwSkill != NULL_ID )$ |2 P! e& U7 l4 S |3 B
{! ?$ m: v6 d- m# _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : d& R, M ]. b; k
if( pSkillProp == NULL )
+ T1 F1 D* u$ e- n# t continue;
) j- A& V$ V) m& B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( U8 m& J4 b% m
continue;
; b& d4 D* X; Y$ ~ lpSkill->dwLevel = 5;/ L, }& v( x5 o, S6 i
}8 x! E) l9 I- w2 R5 J( a8 z" S
}
) |* k+ O% w* T C }
# K% A5 M+ D6 v3 N V r#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans S5 w$ _" e- Q: i* k: |' d
if( bGamma )
7 N W( T6 ?$ x4 @8 x {
: F) t+ c* u& d. U2 u m_nExp1 = 0;! {. y& m/ e; P0 z7 O8 Q1 u7 z3 _
} R' e! e' {! Q: C2 ?" Y
' G" K) w, u* q( k ( (CUser*)this )->AddSetChangeJob( nJob );8 z+ b) d+ |9 c$ X u' g0 C( t( G$ I3 H
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) d$ T6 T- M: C- R& k! u% e6 |3 @3 x$ t
; E9 I6 v+ C7 i. q4 j( x
#if __VER >= 11 // __SYS_PLAYER_DATA% a! j" a7 J, i. W0 A% r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 |1 [1 U$ b% s; F+ y#else // __SYS_PLAYER_DATA" a5 B9 V/ s" A) P9 B+ H6 {/ [
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 `, A" K' d \) g: I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* n3 t6 @1 B+ x if( m_idGuild != 0 ) |$ E, e% J+ t, k8 ?% U8 W# b2 E6 m
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; B" u( f2 @) m9 e* t" s b#endif // __SYS_PLAYER_DATA+ c3 q9 x% \) N3 }5 K: C% _6 ]
SetHitPoint( GetMaxHitPoint() );4 Z2 S H4 S" S# Y0 V( o: _2 y% _
SetManaPoint( GetMaxManaPoint() );" Q; H0 R$ C2 B
SetFatiguePoint( GetMaxFatiguePoint() );
$ e( o) H) M' F- r' \- C if( nJob >= 1 && nJob <= 4 )
7 x5 c3 s7 Z) W( |% c {
' ^- a/ G& D: f+ | m_nStr = m_nSta = m_nDex = m_nInt = 15;
) d' U8 c& M8 z7 c. z* k8 _ m_nRemainGP = 28;* z" d8 k3 l$ B# _
}, r5 W2 B, V' `4 A4 h% G e
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ g4 {7 a% i9 {: p! h: t {
4 g3 q8 L+ x( c" h2 m) K% T m_nRemainGP = 118;7 X) r2 V. H/ c0 l, ]8 o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; _1 r! |2 W1 j6 h! m% u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 o! Z/ G" f/ d2 [ }
! y2 y7 v9 s) ~/ Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" r- g3 W! G$ r$ ^
{
$ h# K( b- e' U T3 H CItemElem itemelem;
4 A$ S( W% S3 W( E: o0 |" V itemelem.m_nItemNum = 1;: s: h. E/ W; j/ n0 ]
itemelem.m_bCharged = TRUE;# j" N$ W; d5 t; K1 _) S& l
BYTE nID;
; `: \1 A# ?9 l- b3 p* B/ y" |! K' L+ ^
if( nJob == JOB_MENTALIST_HERO )9 P3 O/ T2 q5 `( E% x: |( q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 v! {# n8 I& {9 l, {9 E/ o5 C if( nJob == JOB_FORCEMASTER_HERO )4 }& W9 c. I! O7 Y$ x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; v5 O" Y1 |' E
8 a0 R$ H8 k: K5 |
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 @ U# c! w, ?4 e0 f; T }
" G7 r) Y9 p" B0 n* t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& }3 j3 l! h* D" }# l% S3 W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; I5 c; m9 b. {( u! e F: L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 w) o& s7 l, k5 j9 a /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& b& h. k5 q `+ z9 o$ l7 n ( (CUser*)this )->AddTaskBar();*/! [0 j" j; n5 [% g# h3 j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 @) Q( H0 t" |/ A" m2 B% ?" r7 ^! u#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& B' X9 B$ U' w7 W' W ((CUser*)this)->CheckHonorStat();; m( _# \5 {3 f; Q# T Y
((CUser*)this)->AddHonorListAck();
, {* Q8 y$ F/ J3 P g_UserMng.AddHonorTitleChange( this, m_nHonor);: L- a. n! J. k1 m O' N! m
#endif // __HONORABLE_TITLE // ′Tà?
& m% s3 J! U: V9 ^ }
7 T3 T# w2 [ N#endif // __WORLDSERVER+ i' R0 S7 A' d7 H1 ]- u6 `7 V& r
}
# E4 i9 _0 V2 H8 `6 L6 |
# L: K1 X( N/ L! H& i$ U; A然后你进入functextcmd.cpp并添加以下3 A/ C, ], i( n) X
8 B6 |' B% N2 R9 R2 d6 ~" H6 T代码:
, h0 n. W2 U. @% ]2 K( AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ }8 q2 E/ J! D$ \% z
下面插入+ H% L+ |) I4 Y2 s; x4 N5 ~0 g
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 b* `: M$ v* T6 x1 D
" c S. E2 m* l$ X8 j: z% o
然后你去
. `% s4 ~- C% c6 I) ?
5 r5 _% r, r# [" x; y8 a代码:* m, N5 A7 K: j2 e7 e
代码
( ?' P* b" ]/ M& b) z0 BBOOL TextCmd_ClearPropose( CScanner & s )
$ q" V* E) ?) T& x: h{6 Z/ A! Q* e4 h# A4 E- N. _
#ifdef __WORLDSERVER: [2 E: I$ B: x: V
CUser* pUser = (CUser*)s.dwValue;) V9 ^, j% `& d. a/ p* A$ b% m9 j
g_dpDBClient.SendClearPropose();4 {' E0 {0 X" F. c7 c7 H# u9 a& s
#endif // __WORLDSERVER
: v. [6 ^4 e W0 T+ [/ K, q return TRUE;; U3 D0 ]. s5 u8 @5 F5 ~& P- ?
} a4 ?! c ]5 a
下面插入3 }* P2 M8 G5 Y; v7 C
BOOL TextCmd_rebirth( CScanner& scanner )
7 E! F# R. J6 u3 k _{2 ]2 t- ~, t8 `7 j N6 Z8 O
#ifdef __WORLDSERVER' C. |- u' r7 X$ d; x, G4 O
CUser *pUser;3 ~$ i; b6 p! l, L' F- u
pUser = (CUser*)scanner.dwValue;( c. J0 t9 M/ i. P
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 ^' `- f+ i' [. ?7 V( V/ npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. [; l% D0 F0 v6 M `
else
9 q5 y6 E& P- `5 I+ upUser->AddText("你还未达到重生条件!");
' ?: v! } W) v. }#endif& c" E2 m$ I# a% Z
return TRUE;
& m+ E( ]1 \! u4 `! f. {}
- E+ Q- s, @# ]& s$ O% i& `( u1 D: y" G6 {3 U) T
( r+ C4 W; R' k* d- M. v1 c
' T, u$ H4 h B( ]; O$ W
8 ?/ o9 i% ^ `( @/ Y( b* f u
|
|