|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: p. O- u2 p" G/ l
3 B: t9 h; X0 f: eMover.h2 c9 o, K" Q6 h
代码:
+ G2 J& q- O# T; e' B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) k( M* o" g" i" |
, ?- {" C% X, s! W下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: ?: L' }3 I' W) K* n
; J4 X+ L5 M; G& C1 D1 r然后你去mover.cpp添加
/ R% w, L9 k/ m: g1 \5 {# Z; J6 y) y
代码:* q! V8 t$ |4 o4 J- C ]% @" W* d
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ N$ c; z! ~1 a0 L5 Y
{/ l9 g1 g1 a1 C3 `$ q7 P
#ifdef __WORLDSERVER
- t! ?+ f2 p$ b9 e% d1 C% Y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; \' Q, T ? A5 P
MoverProp* pProp = GetProp();( A* r# i" Y7 `
if( pProp )
. V& W: Y" h* H {# N( v- @( z' k5 n( |* L) \
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 c0 v8 r8 j. C3 X; H, m" y {5 f" g }- i c' c+ j- h% a7 k8 _
AddChangeJob( nJob );
+ t& ]( J7 Z( b3 [9 g& v& ` }else{
: [ g. ~4 h/ Q% H" V& F return;6 a: e" r; A" V Y3 H
}. ], c/ \6 {5 w8 a& c
int nPoint = 0;7 @% T% F4 R% u2 r7 ]# y& G
if( m_nJob == JOB_MERCENARY )) g1 \( h+ M" ^! Y7 Y
nPoint += 40;+ ?5 t$ `# C2 D( U
else if( m_nJob == JOB_ACROBAT )
. d! N' {/ @! b nPoint += 50;
b( h" A7 o+ ?" O6 o! E* V0 R else if( m_nJob == JOB_ASSIST )
6 ~* p: w+ h- b6 F$ [, N2 b% n nPoint += 60;8 f$ T: W, g1 ^# q+ J6 ~1 u/ @ l7 h
else if( m_nJob == JOB_MAGICIAN )
$ L9 S) S6 `! M1 \& T nPoint += 90;
4 y; @! X4 Q$ A2 F else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" E+ }' T5 L4 b2 J. ]0 d6 r4 j nPoint += 120;
" t/ M7 @8 C9 f- Z) M' W else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 w# i/ r1 |# H5 e# H: ] y
nPoint += 150;
8 Y$ A* g+ V; Q4 s2 S else if( m_nJob == JOB_RINGMASTER )
2 m) P* ]* I0 Z% a) Q# k nPoint += 160;
8 g5 V* i" F8 y, {2 q0 x$ X else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# t9 [; o- S" H( L! f
nPoint += 180;6 Z7 a4 A1 {2 H6 c# t
else if( m_nJob == JOB_ELEMENTOR )
5 ?- c8 Q4 h6 {; ~0 i8 m ~4 l nPoint += 390;) i* T! b) y c) K, O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 j' K; }; Z$ l: @8 f nPoint += 120;+ p- _ o6 H0 X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' m& Y& k7 Z* }- s
nPoint += 150;4 t+ \ z8 @# g
else if( nJob == JOB_FLORIST_HERO )
) ~; P: |. q" O# o, _( W nPoint += 160;* [2 r, G4 L; @* H( Y1 E- K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 a. p" h, q9 f1 ]4 P) L
nPoint += 180;
- Z- b' W3 f# R8 M: ^ else if( nJob == JOB_ELEMENTORLORD_HERO )
% E. C/ q2 k8 w; y. ]" w! E! V nPoint += 390;
0 o8 Y+ a& X8 b( \& P
. ]' e, K" ] a# y$ b! J3 m9 x0 E8 W3 R4 ] AddSkillPoint( nPoint );. i q% ^0 Y l- G% i" B# Z
m_nLevel = nLevel;
8 a" s3 `( |8 l* [6 L! Z! v) X" b& H: F0 j1 u6 g+ b
SetJobLevel( nLevel, nJob );7 W2 Y2 J. D9 Y9 v: S4 M
m_nDeathLevel = nLevel;
$ f9 r7 _- O- w1 D( u* |6 V#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ n/ }# K( E& a, F( o2 E
if(IsMaster())
: O2 h) d# k: m8 c9 M {
" U& G3 v6 o2 m: V5 ]; C: [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% K' g |& P1 D3 `- c: v if( nLevel > 59 && nLevel < 72 )$ T, C* n# G, j$ ?3 o6 Q1 e
dwTmpSkLevel = 1;8 w6 @$ W& \: \6 Z: B8 Z0 L' z1 u% n
else if( nLevel > 71 && nLevel < 84 )2 d; X( ~6 M5 L: d
dwTmpSkLevel = 2;4 d. E+ N# B) | U0 I7 J
else if( nLevel > 83 && nLevel < 96 )
; V8 B8 O9 L% z dwTmpSkLevel = 3;
& |5 r7 Y& Q+ p7 Z) g7 h# V else if( nLevel > 95 && nLevel < 108 )
& W8 y/ G- I' B5 ?( g% W, h6 P0 s dwTmpSkLevel = 4;- T4 }5 o; ^5 C @5 L: U% V
else if( nLevel > 107 && nLevel < 120 )
, Z% D% @- F5 L1 A0 S dwTmpSkLevel = 5;# S' ?4 `4 N+ L" v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 x0 |$ ?- y3 Y4 L) Q4 m" e
{ - m# t4 ^" [) d+ a) A" i! b
LPSKILL lpSkill = &(m_aJobSkill);$ R; t1 p/ W* I' Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 Q, s* `0 Y9 x' d* F {
. w L. v- u ~" Y6 K4 ^1 M& |! C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; R" A9 i, ]- e! y1 o' `% A0 X
if( pSkillProp == NULL )
+ w% r8 }8 G! u/ p+ p- q* h% F continue;, B) Z6 `2 \' d- `( C: F7 R: t; n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) T0 \3 p. W* H, I0 ^# t# l8 Q continue;
2 F* }( Z4 X1 P8 R- [ lpSkill->dwLevel = dwTmpSkLevel;
# Y k! t' s6 R. V }; t- k: p" Q! s' Y0 S0 v
}' x8 V$ V+ V# z, b
}6 w: w' A! J j2 Z5 I& ~
else if(IsHero())2 r4 S! }7 O5 N; |* _* ~( R1 O
{% K2 `1 I7 b( I$ [& K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
?9 E; F5 k. H& w, v v. H { 9 m& x$ u7 k5 w
LPSKILL lpSkill = &(m_aJobSkill);
, u2 {! B2 a; C4 T" h! b8 m4 Q) t if( lpSkill && lpSkill->dwSkill != NULL_ID )
. t4 i3 z, A. h* w) t {
1 i% _3 H8 K4 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' B U9 \) u8 a& w6 N' e if( pSkillProp == NULL )
: t6 o# @/ w. o" W1 _' ? continue;" J' @+ d5 R% s ^. T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* S% c j3 I% Z$ z2 y# _* p4 h8 y
continue;
: k Z7 X! e/ m- R lpSkill->dwLevel = 5;' _+ A4 {2 u; S0 _% M/ t
}( O8 e A9 C$ h. b. [' w* k0 d
}3 r4 l3 H- J1 E; C
}
1 L. g$ g9 o6 v8 V1 O3 D3 ~9 ^ else if(IsLegendHero())
2 Q# x# O9 x- Y3 f5 K5 Q {' }2 d! c( {1 w" T. q% V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( ?8 s3 o# n( I" y7 Q2 O
{
$ H% u7 S0 c1 U s* s9 I# u9 f$ R0 \ LPSKILL lpSkill = &(m_aJobSkill);. s x+ W' n% j' S) T6 \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) N9 q0 ~! W, m) q' c* [6 b {
4 {6 B4 n9 ]1 I G: N, U: W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % t" R/ x7 w$ u; y3 l
if( pSkillProp == NULL ). {5 Q: \( f0 N }( V
continue;
' u% A, a3 h8 Z) H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: b( X8 D: G! S" C1 ?& V7 b. ] continue;
3 T# j" W: q7 y/ y/ }3 R0 c lpSkill->dwLevel = 5;! M* x8 D- j4 }; t5 V
}
: F: `/ H8 u5 b }
5 X, R X; e4 }4 T2 @/ \1 p- ^ }
1 }. z: b% Q9 w1 U4 V# |#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 R% ?" J9 N3 [
if( bGamma ) @, F2 W+ S0 I
{, h3 J& e7 q* O5 A+ @$ m$ ^6 ?
m_nExp1 = 0;0 f7 |) I6 s) J7 u& I) A
}8 `5 l. G) r# Y9 W5 f( q7 X
2 v& x3 J( E8 v$ ^2 q
( (CUser*)this )->AddSetChangeJob( nJob );
5 T8 o% l( _7 y/ J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ [* @7 c) Q; r2 ~7 A3 N& r, p- i/ z9 M+ T
0 B- s8 S. M# w/ ~( U
#if __VER >= 11 // __SYS_PLAYER_DATA6 C6 {/ `& Y) b0 b/ h" M% T% c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 K' p4 f/ h1 M9 R
#else // __SYS_PLAYER_DATA
+ q8 U6 m* C* w9 v2 g: u4 X" u g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" N4 W" \4 z- _) @% m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ R h: X* d5 S! |- P) F
if( m_idGuild != 0 ): j$ v2 X, q- P6 X' O# N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, k% T ~9 |5 q! o+ w
#endif // __SYS_PLAYER_DATA1 C3 O' ?% L+ o6 q2 K
SetHitPoint( GetMaxHitPoint() );
* w7 T* K/ F }6 t SetManaPoint( GetMaxManaPoint() );9 R* i, Z; H0 T5 T! y1 J
SetFatiguePoint( GetMaxFatiguePoint() );
1 E- I! Y3 Z3 f7 J3 ~2 j- U if( nJob >= 1 && nJob <= 4 )
( c7 |; C8 H: F( r8 Z# n. ] {
# j$ O* `" a" P$ n- j m_nStr = m_nSta = m_nDex = m_nInt = 15;1 t3 x' k F* a( d5 a3 f
m_nRemainGP = 28;
# U; i, ]. Q* a: P }
) x1 U0 C' r. {# m0 o+ P$ s4 ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% [( |5 z7 K3 g3 _: J5 p. R
{$ W3 [9 A! `( ]" }
m_nRemainGP = 118;
) x) V* x7 X1 N) F" |9 q9 k //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) b( p& Z% O; S. ?7 a
m_nStr = m_nSta = m_nDex = m_nInt = 15;% ^6 O5 u" I+ p( U2 F7 g, ]5 b
}* U$ p& U8 l6 M2 V) l' L* u: C1 o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ J! c$ \# C8 R& h: l% Y {
0 A) q" r& W* [- k% T/ \1 V9 ^ CItemElem itemelem;) B% C' }, f! g
itemelem.m_nItemNum = 1;
( u \/ A+ w9 q! Q0 y itemelem.m_bCharged = TRUE;
2 j# w5 ]2 K& {: c# X: |5 x BYTE nID;
% f0 D7 ~4 `! E. }3 J1 `2 G: |7 p f
3 Y" ~3 d; R0 `# K% ?/ Q2 X if( nJob == JOB_MENTALIST_HERO )+ l+ Q. ~7 Q* }) ~+ T
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! V6 q4 A K2 G if( nJob == JOB_FORCEMASTER_HERO )% p' s% Y8 q" ]& N; ]0 q/ i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 |. A7 G7 Y- F* h. s% L2 r8 d
# a/ ?; X- D& ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );, Y0 W% A M' i1 f$ z/ ?8 s' v
}
6 p3 K6 v8 O( S3 j5 K; w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. S/ q; `" J- C" W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
c9 I5 {* g) N( ?$ n0 | [! [ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) r% m2 F. ]3 M* e/ Q, }
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: C- D; ~. K% l; e2 Y ( (CUser*)this )->AddTaskBar();*/
% ~5 [0 K: e1 F+ @# c# H/ c& A7 R' x! ] ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 M/ s" R6 r1 F/ u& r8 h, g
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% H9 V; e) |$ ]+ `6 X1 o+ R7 z
((CUser*)this)->CheckHonorStat();( @5 ]5 j; i0 I/ ?
((CUser*)this)->AddHonorListAck();: J" i, g1 w" \: d
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 H8 |! @+ H" X- @9 h9 A/ O& T) C8 @#endif // __HONORABLE_TITLE // ′Tà?
$ k4 I- }$ I0 d& V3 \. g y }, A. I6 \# L8 q/ N( z
#endif // __WORLDSERVER
3 x9 j0 X' L& T. y! T( J9 w}
/ j$ i2 C) D& C6 v( @) g& B+ A& C1 \" G# y/ a
然后你进入functextcmd.cpp并添加以下
/ s# [$ e$ v' B' D C
, ^5 e7 V3 Z; l代码:9 [% k% }) L0 J/ x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; ^2 ~+ h$ r+ a" E$ g1 K下面插入
. e |3 Y) L! [6 `0 m6 X4 uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 U1 V7 r7 j+ p% m* O2 }% \
. I# M/ K/ o1 F然后你去
) ?; m8 r9 W2 ?2 ?2 s1 j
/ t* X u: c! e( s6 ~. E7 \2 I代码:, @" b5 K& h5 q4 i' o
代码
# P( }9 O$ u/ Y7 y& U! qBOOL TextCmd_ClearPropose( CScanner & s )
6 Y1 ` J v" i/ ~% p{7 _& S) [2 l" ~( e8 N
#ifdef __WORLDSERVER' q* J3 u+ \# X9 w
CUser* pUser = (CUser*)s.dwValue;
# v8 X Q( `9 H& c2 W g_dpDBClient.SendClearPropose();
% a1 ]3 K6 R) n0 H$ x#endif // __WORLDSERVER
8 P. k( \8 o P. K+ b. } return TRUE;
) l+ K9 I- z% m2 G2 a}
& w0 U* n9 }( P6 w- _) q6 x下面插入
" \' H' q. w9 E8 _BOOL TextCmd_rebirth( CScanner& scanner )
7 e) S8 Q+ z3 P{
/ q; j8 i1 _+ ] C3 I- S' S#ifdef __WORLDSERVER
1 z6 {7 ]' J0 J$ u6 R8 eCUser *pUser;
- O8 g) X9 n# }' ]2 i- YpUser = (CUser*)scanner.dwValue;/ u$ K4 n2 H5 \4 s9 _* u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), K3 u: U) k9 G' X$ M, t* B
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ T7 {1 E4 H# G9 U G0 Belse. c" u# ]7 m U. r: ~
pUser->AddText("你还未达到重生条件!");5 W2 d% G+ ~# S4 M$ c) M
#endif- \. a. D9 k$ q# L; e: r8 |8 v, I$ R
return TRUE;( T) l3 c0 Y; K9 ]* w$ E- D
} - N; @7 |( j, f2 _8 l: s& y! ]1 c
, H/ F" B8 |( h; n, d# Y( N1 x0 ]
1 C( d* W5 t# S4 g' X8 @; F6 {
5 _$ O9 O) O; K5 T6 p
% G7 N0 L; r3 Q' J' `9 E |
|