|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& M( _. U( \. V1 R/ Q/ o
3 D. ?" L) N( U7 w+ w7 G+ z UMover.h
0 \; K9 @; G! d ?/ S8 ?5 i代码:3 f" C! Y% \1 {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" F! D b+ H. U1 J. B3 C1 ~
3 V5 c! N, G/ @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( F7 M( d; H# l3 y$ W/ Z# ~3 G
" X4 B( ~: F: N3 L2 T# D% F然后你去mover.cpp添加$ q5 I6 p! X: c! T* v) D
. N) E$ ~* ]+ P& v+ }) s7 J代码:
/ ^ D! g' |) a8 n6 h- d: Svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( A- f0 E1 w, g# h{6 S [: r3 k+ W
#ifdef __WORLDSERVER; M6 j* w2 k" b# G% y4 t0 e: X2 a
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 D. t1 u& I' C& p MoverProp* pProp = GetProp();
( K) |0 h, M- g) Y- c- t if( pProp )( L# K- d6 o7 u7 a+ Z! E
{% k* j+ Z& I- K3 Q* m8 |" a% N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
_3 K) J L W7 N$ K. Q w3 ~ {
( u* Z) n2 w: }* J/ R4 }1 A AddChangeJob( nJob );! V' r7 t& g2 u+ `' j
}else{
! N. }' W8 ~2 J, J9 F; n# D return;
- K+ D+ k/ u; i- b+ h6 [( R }
( F6 {& u7 n0 ^0 |& I+ @ int nPoint = 0;
/ G; z$ n! @, ? @6 K" k+ m! c if( m_nJob == JOB_MERCENARY )
+ Z3 r. c+ ? R" _! s! o+ T, E nPoint += 40;" I! i/ Z, Q2 W2 Q
else if( m_nJob == JOB_ACROBAT )2 G! g% Z; `* y7 @8 f$ h
nPoint += 50;6 ~) y, D3 W* `3 A
else if( m_nJob == JOB_ASSIST )
5 q* f/ d8 K. {, X nPoint += 60;9 O" H/ K8 g. B( H/ E1 c/ @
else if( m_nJob == JOB_MAGICIAN )5 V: l! c0 Y2 j* o' V
nPoint += 90;' c& _! `" ]) ^* d7 H# {
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 k3 T8 ~$ X+ k2 ] nPoint += 120;: e' S+ U- b% E3 F1 K) X4 B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! f' c" f- G* a( Z0 G nPoint += 150;) s) q; ~ W4 f! e* m, T! Q
else if( m_nJob == JOB_RINGMASTER )
/ j2 e$ x, ?# b nPoint += 160;5 v5 \! Y+ C, ]3 d! K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- T! J; B/ z9 p4 j! o8 @
nPoint += 180;1 {4 f7 T* j+ b9 e
else if( m_nJob == JOB_ELEMENTOR )) l' P4 t4 c6 R/ ?( {" T% M
nPoint += 390;9 \. W; Y+ y1 u# b" Q( v! H
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& J/ u* H |+ ]* g- l% S
nPoint += 120;: }* {, n, l8 [- e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). { e5 ~6 Q7 v% ]( U/ Y+ X) Z
nPoint += 150;
@/ j5 ^( u& b" {7 y5 t. B9 \/ d else if( nJob == JOB_FLORIST_HERO ) U5 i' s# p2 W$ i
nPoint += 160;: q2 N7 W/ v* t/ b
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
\7 F$ B" E3 ~$ c nPoint += 180;3 G+ o% z# q- R: D% ~. n1 h8 ?
else if( nJob == JOB_ELEMENTORLORD_HERO ); P+ K6 T( R. {
nPoint += 390;
$ E0 c; j( l) u# O- z4 |6 l* ^
% \' ~ c$ ~- @. S. R& K- q9 Q2 l4 Y AddSkillPoint( nPoint );1 I0 Z, [+ ^# ] e' z
m_nLevel = nLevel;9 X. U1 n6 V0 }( }7 ~
6 v1 _, A5 }4 d4 ?6 Y1 ` SetJobLevel( nLevel, nJob );
* n* u1 ]4 s2 ^ h: H7 @ m_nDeathLevel = nLevel;
: f4 a4 q- K' a- F8 V' b% m#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# h; }: k( F! z- E9 \' a if(IsMaster())0 h/ A+ V9 h3 Q+ h
{
1 d4 m0 U' K; r5 ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( G0 d7 {, W- S+ R if( nLevel > 59 && nLevel < 72 )
, g$ I0 \2 N5 |3 ^$ e dwTmpSkLevel = 1;. B2 T: w$ h9 [
else if( nLevel > 71 && nLevel < 84 ). t% |2 c3 M9 g+ `1 t0 k0 M
dwTmpSkLevel = 2;4 f V; G- @# i2 @: R' k1 G# N
else if( nLevel > 83 && nLevel < 96 )8 W& G" [. B8 w, K$ |6 ~5 z
dwTmpSkLevel = 3;
! P3 K: Z0 o8 S else if( nLevel > 95 && nLevel < 108 )
7 ]1 m) x5 M7 Z, M' p6 A6 q dwTmpSkLevel = 4;
5 I {& J) ^% U8 g7 r& Y* y else if( nLevel > 107 && nLevel < 120 )
6 t- p8 `# H+ `( c; I9 ? dwTmpSkLevel = 5;8 k M' Y. @# ~2 b+ x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ q5 F' X2 z: d/ ] { / `3 D) I: n, f' X; d) E8 C: y
LPSKILL lpSkill = &(m_aJobSkill);* V3 l3 x$ ?& z# X( ^/ T% z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' I2 k- b+ Q1 D; H/ z2 f {
( T2 x# g. ^' j9 I% } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " V; J& T4 h: a4 E% N& }4 l
if( pSkillProp == NULL )
& s3 A- A% h# f' Q: q" V continue;
# \3 j" ]% t: f: b% e( s/ N& ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; G. m+ {) N1 @" h4 y( \$ S continue;
! C( a B5 u9 P$ P lpSkill->dwLevel = dwTmpSkLevel;2 |; y/ q4 X7 {5 E; N* c& L
}
, F+ r9 z: Z, ^' X }
5 m! d- `& p2 L- [/ g% [ }
5 ?# ?# C; d& A: F% d else if(IsHero())8 m4 B4 G2 @+ f. |5 ~- s& C
{
7 E( ~# k9 h2 z* T6 J* U+ P. D for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 v. Y8 M1 w7 l6 e) K: A { 3 u. G# |- b( W
LPSKILL lpSkill = &(m_aJobSkill); }, ^- b5 q9 d( B/ j4 g& B
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 l( W1 U8 _3 V7 ~! H- f! @5 V
{2 m8 Z4 n) D5 z) y& W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . y9 Z" ]6 ^4 \; l$ {6 `/ Q
if( pSkillProp == NULL )
2 d9 W- A6 ]2 c; |( O6 D9 ^( ~0 E continue;
# f5 l X3 w& \9 H* H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ G0 I1 D8 Y+ w continue;
1 o X( a- {8 ?( V& L) M% L lpSkill->dwLevel = 5;7 H I1 @6 @9 F8 `* \
} ?7 j& M" k% u8 G
}4 q$ z0 x: e9 N) S1 H
}
) p6 E# a( C" O6 s" [7 K6 i# { else if(IsLegendHero())' b. M2 s, p$ g, G3 N- \( ~: N
{
V+ I1 a) Q' C( t3 } for( int i = 0; i < MAX_SKILL_JOB; i++ )
`! p! w* _1 @3 ?! y' Q$ V {
: Y* G) V. o! J* r5 ~( y LPSKILL lpSkill = &(m_aJobSkill);
% U' p8 r6 b6 \4 |8 K if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 ]+ q, r* o8 ]+ U7 y9 B. f {
3 ^% w6 y4 G F; y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , [0 ]7 k6 S6 o/ V5 R5 a
if( pSkillProp == NULL )
1 E* E" |1 j% Q: L# L7 ? continue;. w( v7 g' ]" d' u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 f8 j& }) @( }6 I9 m6 K continue;( L6 a# W. p6 ]4 K
lpSkill->dwLevel = 5;
' ]* c9 H3 Y; L }4 G7 W5 \9 Q; J
}
0 a" W P* m! y; s$ v1 U+ d }4 ]# K. `$ [: \
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! `+ D3 }4 P5 r) R
if( bGamma )' [8 C, j& L0 C4 B0 R% I) Y' I
{, R# Z% M* y/ m0 r+ ^( n5 O
m_nExp1 = 0;
. ]7 D+ y' f* Z6 L2 _ }
$ e& D4 r' ^% i% m- W( v2 j8 n( o A0 g+ u. M6 [7 {' e3 D
( (CUser*)this )->AddSetChangeJob( nJob );$ ]& h1 ]9 \1 R' F- F* X5 i
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& y1 f' a; {- e( Y, s# j
+ O8 n" v* Y/ R) q/ Z
) ?+ c& l( K) e#if __VER >= 11 // __SYS_PLAYER_DATA
: D6 w& y( I8 R/ h7 ~- m$ t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' F5 v3 q$ M2 L5 B/ S+ @
#else // __SYS_PLAYER_DATA$ D3 a7 i, z8 L
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- \; d H) R, z" V0 W4 ?& D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! ^3 V" F8 ` m1 F; D& {
if( m_idGuild != 0 )
5 [( k9 k N3 u- y; o g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" s' \( f4 K" k$ w1 K+ p6 Z* Y
#endif // __SYS_PLAYER_DATA
: V+ f) K p- n$ z# l6 L SetHitPoint( GetMaxHitPoint() );2 Q8 |3 H; f% E
SetManaPoint( GetMaxManaPoint() );
1 b5 J$ R: {9 p+ e" a SetFatiguePoint( GetMaxFatiguePoint() );" j3 D. ? x9 T2 n# b0 u9 [
if( nJob >= 1 && nJob <= 4 )! r7 Z% I8 r& H+ c7 b, P+ T. P( e
{
6 z+ M7 A" {( F# g( h* g# o m_nStr = m_nSta = m_nDex = m_nInt = 15;
' X9 Z$ n6 F( e" b/ Z/ J m_nRemainGP = 28;
1 f' E( ]% o) C+ p( q1 _0 T: ` }
( D. s! J- ? \; m: S4 t& _ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ ~5 Z% w2 `2 h: o/ H. Q
{! e2 R7 O) N) M, U0 F3 Q/ K" O
m_nRemainGP = 118;: U( B m! r3 a6 i" G
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 ]/ O* @; G: {9 y' N( H, r2 q m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 n4 K+ W- R5 R4 o8 o/ K }' g0 d: X6 r% Y8 r$ Q6 d: |
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# p' d6 ~! ~# J: ]3 X6 p {
9 L2 i# f/ o- M+ ?2 U CItemElem itemelem;
+ g) j( z- k: V9 D) r8 b. A4 f" [8 u itemelem.m_nItemNum = 1;9 x6 J o& U8 W0 Y6 y$ o
itemelem.m_bCharged = TRUE; ]4 T1 {9 e6 l; E x
BYTE nID;$ d3 {2 W! J |9 d
2 l/ A$ V$ z! [8 K" T- M
if( nJob == JOB_MENTALIST_HERO )! T5 T( ~ W% ~2 r: G& u: \# _
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 g; ?/ T; w3 V. V" @ if( nJob == JOB_FORCEMASTER_HERO )
/ b' ]. K! B3 K itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 o/ z4 I$ N1 U/ T4 R
$ G; i# n1 E* Z
( ( CUser*)this)->CreateItem( &itemelem, &nID );
: L/ m9 I. q: m }7 H8 I* [" @ j% M0 e/ \, i. R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# w4 m+ I8 V" g. ` L+ }
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- Z9 P4 S: T. Q3 N7 z2 j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 {, Y& R2 J- {1 r /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 Y* k& M2 N) P5 F ( (CUser*)this )->AddTaskBar();*/
. q4 b- c/ [; z7 `) O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 v. w) o7 h0 e# z0 T#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 l6 {: Z, p: B
((CUser*)this)->CheckHonorStat();
7 X& G5 Z, W% h ((CUser*)this)->AddHonorListAck();
4 W$ B' Z3 B7 T% s' y, r& M8 u g_UserMng.AddHonorTitleChange( this, m_nHonor);
% u% G* u; c3 r. [# R. }#endif // __HONORABLE_TITLE // ′Tà?7 ~( g! j- J1 }; k4 O
}
( i& A* X, M# R* L#endif // __WORLDSERVER4 I2 N8 y; a3 E
}
9 m: b% D3 S, j6 J) s# b
" E$ q8 o/ k1 i) Q; w! _然后你进入functextcmd.cpp并添加以下
) y# \$ M- `6 s7 E# q y! z* p# \% b; @. Z$ m0 ]9 i) V0 t8 o0 U
代码:
% K/ n0 Q: f( P0 I T" LON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% M5 b$ }9 p2 j
下面插入) Y! e6 g4 C1 t) `+ Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 h8 h |) A) b7 @, x9 b' r3 e- B% p
然后你去/ p% m7 f( P" `
6 ~ _% u) I* R2 w$ a代码:
. j1 E! O8 `/ ~% v6 m代码
9 W1 _, e( l) @; ZBOOL TextCmd_ClearPropose( CScanner & s )
: {# J) T9 C R- O7 R8 x0 n{4 U7 B3 a. o+ T5 j* H3 Q
#ifdef __WORLDSERVER# P% ^( b3 g2 U7 |# m* U
CUser* pUser = (CUser*)s.dwValue;
9 X' w/ f: _6 \ h7 W$ {- D7 e g_dpDBClient.SendClearPropose();: m" |; _- f2 K$ X: r* c
#endif // __WORLDSERVER7 f. r9 Z @2 \/ Z& l$ @3 n6 j
return TRUE;9 L1 D. t, N3 q6 }! w9 w
}
7 M0 _% o9 T J下面插入7 C6 V( n/ L9 o& B
BOOL TextCmd_rebirth( CScanner& scanner )
6 @. C1 ?/ [" k' J{
' q+ h. D2 i2 S0 P#ifdef __WORLDSERVER
9 E' X4 s6 }- g5 n3 }CUser *pUser;& p6 ^5 T* O8 k: ~
pUser = (CUser*)scanner.dwValue;$ {+ v% K# \( b/ w
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 j! y, G L. R9 _" U8 g' X. upUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 K2 m7 \2 m' M& \
else) ?8 i w) h/ _% r1 q' ]- `
pUser->AddText("你还未达到重生条件!"); o" T# e7 ]7 F+ \, n& s6 {
#endif/ v" ~( o5 w1 }' ` r. X& W( {- H( p
return TRUE;
6 P$ Y# _& H0 ]( `& I- Z} % q: K5 H5 A/ i% W2 e0 K
; ]# X+ T! x; S( U2 V N$ x
8 L1 [, C ?) A" V7 L. g
& o+ O+ ~; P5 q$ B9 F0 u. a) L' [
|
|