|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) l# Z$ H+ U; r! R3 P
8 g/ T- S3 w0 J8 sMover.h
4 j8 K" z. \( V$ E代码:
2 J5 Y( P. \& F2 t" n/ J2 m找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü c' r$ ?4 ]' k6 q) w1 F
1 E7 Z6 x) h5 N2 E$ Q( L下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! p% Z8 `1 @4 |1 S
6 N% h+ [3 J c( `然后你去mover.cpp添加/ E0 U; u6 O1 A7 r T
/ @) h d, T p% F
代码:) Q+ n! s' v, B2 n/ ^: X \
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 W* p, q6 m0 A6 |5 i# e+ C{
; l% t2 [$ t( k' W#ifdef __WORLDSERVER
1 Y: d8 U- t% a; D // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 @0 n4 c9 y x& }/ b
MoverProp* pProp = GetProp();
3 ^* X+ H9 h5 F) J& j3 i; Q if( pProp )
; Y# w( D* O! |! l {. S3 p9 x/ ^2 z8 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )( z% m( G! x: J5 l7 O7 c
{, D/ I6 I& x/ z2 I1 |( W
AddChangeJob( nJob );" ^+ b* Q1 p6 G+ x2 k
}else{' l# R3 k% f. V" m3 A- I
return;* {! k9 k( i+ ~$ `. s/ o+ i- u
}
2 x& r E0 p3 x Z: m6 y int nPoint = 0;2 d: W. h ` w2 c- i
if( m_nJob == JOB_MERCENARY )! M( e' z% D1 a" N8 H
nPoint += 40;
! U, b9 Y2 c! j. i; @ else if( m_nJob == JOB_ACROBAT )9 ^/ a* p. h# x- T& t/ n
nPoint += 50;$ \1 `/ F! \ L5 `2 g4 O
else if( m_nJob == JOB_ASSIST )# \5 D! q$ Y0 R
nPoint += 60;
" A; l- c3 n# F3 }- Z/ K else if( m_nJob == JOB_MAGICIAN )6 z6 ^3 d: h' Y9 P& ?
nPoint += 90;
0 y; R1 J* W% F& k8 B else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). Z/ S) b' L: x9 N6 E& h) t7 J
nPoint += 120;
2 T5 y& L8 N* @* i' C else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ O; E) ~* O5 m S$ v nPoint += 150;
; U4 S7 t# Z/ U& z. x; V else if( m_nJob == JOB_RINGMASTER )( P2 \/ Q+ N6 K3 _: E
nPoint += 160;
6 p3 N3 F/ W3 e( N* @. d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 X+ i, f/ H( g1 R nPoint += 180;
I8 F1 `: w3 h5 T! F; b) P7 r9 D else if( m_nJob == JOB_ELEMENTOR )8 f7 g( l: W% }" e; z' @' ]
nPoint += 390;
7 [" A9 y' ]# k2 { else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 a- G5 o0 B; G4 ~: S2 s nPoint += 120;# i/ v6 V9 W- e, X& }7 l
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
W2 M% s" g5 [/ D1 ? nPoint += 150;; M* w+ ]- s Z+ |
else if( nJob == JOB_FLORIST_HERO )
$ e* ~/ O$ X2 S nPoint += 160;4 ^: k* b% o, |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- Y% p4 h5 h( F
nPoint += 180;5 j: q2 n/ y, f: N, k6 w
else if( nJob == JOB_ELEMENTORLORD_HERO )
* w0 e: }& ]! Y, h* L) W; @- F nPoint += 390;
( g7 ^- D9 G- [, @# B J
3 d# ?$ e9 |. U; t: O) v AddSkillPoint( nPoint );
( `; m: L& D: S9 w m_nLevel = nLevel;, E* t9 V7 m; t4 c- A
& ^: J0 w$ e q, ^, |/ h% ~
SetJobLevel( nLevel, nJob );
& r2 V) n2 s% p* Z; L m_nDeathLevel = nLevel;0 J& ?5 |, C9 l$ l0 Q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! |% N7 A0 D( |2 B. `* }
if(IsMaster())
?- U7 }7 Y( P9 _+ m* ^% C6 s {
0 A" p" @4 ?/ E* M& Z int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 k" o, {. N) ^6 H0 a0 Z
if( nLevel > 59 && nLevel < 72 )5 r. V8 D( h9 e. t2 S' h; E
dwTmpSkLevel = 1;$ b# k' Q/ ^+ L7 S6 A3 R
else if( nLevel > 71 && nLevel < 84 )
_- i- x( k( ]' c dwTmpSkLevel = 2;! j {! W' m+ J) e* M
else if( nLevel > 83 && nLevel < 96 )
, y% s7 w1 _- R8 Q* m( ^1 [ dwTmpSkLevel = 3;
' L0 m4 u$ N8 S, W6 y9 [ else if( nLevel > 95 && nLevel < 108 )/ V7 n' J! C; n% v1 K' ^; M
dwTmpSkLevel = 4;( X. r# R% {% o/ b# s8 O5 s$ i
else if( nLevel > 107 && nLevel < 120 )& W; ? ?+ |7 x
dwTmpSkLevel = 5; t/ E) q# {5 P1 E# J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 u& y. E9 m7 S6 l8 a8 D {
0 v; b; M0 l+ F0 i% k: f ~+ N LPSKILL lpSkill = &(m_aJobSkill); O0 v# h6 W s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% o1 ?% h' y9 r9 |6 T0 W$ v" e {8 e- J( j) p/ T. n. w/ p" O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / b/ ?1 {0 V4 f2 P& n4 X6 i1 K+ Z) i
if( pSkillProp == NULL )* d) q6 {; P' z. L0 J+ d% o) l
continue;/ {, X% A6 ~- c8 @& Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; F; \) s/ w" J9 Y' d continue;' \6 U, s5 L: i+ o2 w- Z
lpSkill->dwLevel = dwTmpSkLevel;( A3 l9 i* b' O- _" K
}
, d# ?* x: |/ l0 l1 T }2 ?0 \1 W/ _; {6 m
}7 }) |/ W3 Q. x0 ~- G3 {0 `
else if(IsHero())" M0 F% ^9 G8 q
{ j% N0 S& }6 \- p$ M& G3 g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 h3 U) _: s% k; v) O0 } { : M: c6 a; ]' W0 L" a# ~. i
LPSKILL lpSkill = &(m_aJobSkill);; p3 Z: G5 R/ f) Q$ h
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 U' Z, ]- F9 ^7 u5 R/ J
{
H5 U6 Y2 U# V/ h' h; k% x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); Y/ O- u! |% Y! b5 T& b
if( pSkillProp == NULL )+ s3 P2 M0 ]5 u) R. U
continue;: _7 S( e. b7 Z: |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
X' c4 m/ X! \+ A0 L& y; L continue; g# R" M$ R! j# O* C
lpSkill->dwLevel = 5;( j, ?6 _2 B( }! P5 Y4 k! s/ k( z
}0 p& a% `( B; j' Z1 G& C1 K) W
}4 U9 G: E% y% H" N
}2 P7 P0 E! c7 |
else if(IsLegendHero())
# l# [1 d2 Z- U {
( D! B1 X3 E/ u1 U. h* \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) , v `0 @: y3 @6 G! f
{
( i2 F* U7 Y6 ^( `3 h LPSKILL lpSkill = &(m_aJobSkill);5 C1 [- Q8 _/ v5 q5 b8 q9 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! V o* J- e3 L @ O: n {
' M6 c4 L! E* t$ A# p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% v6 a) a6 L* d/ _/ }8 y if( pSkillProp == NULL )8 `( l. G' H3 N3 H: F
continue;) D' q E4 s+ J% V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! c4 K9 {5 X4 P, n
continue;) t$ _7 N M: X5 j1 o
lpSkill->dwLevel = 5;
# G# I( B, F) `9 H }
9 E9 i' @4 Q; Z& ^, V% V R& J- H( f }# E' p& I0 a9 `- A* J7 t
}
5 L0 k% q2 ?- c/ ~2 J1 U3 p( u; t#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* W6 ?& W- ]9 H# r2 U0 a* p3 f if( bGamma ); o3 _8 E* _: y
{) Q8 C7 A; n) O+ H) |6 k$ o4 l
m_nExp1 = 0;6 i8 H8 p% Y2 j9 H1 r1 d. [ x
}$ [+ o" V2 k: T
+ ?3 S6 }1 n4 L* z
( (CUser*)this )->AddSetChangeJob( nJob );/ P, y6 n; F1 u" w1 d- s( }
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* P- `& U4 Q) j$ K
J% a8 u/ e! s4 w; c
! o/ b/ ^: q1 M" {2 X: Q/ }3 c
#if __VER >= 11 // __SYS_PLAYER_DATA* ]' x& H4 ?0 \
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. s9 d) D7 b) ?5 R9 U. ]4 |#else // __SYS_PLAYER_DATA
/ O. I& h4 o: S" A+ n/ Z3 k; H g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ u. e) C* w- {$ W/ q( V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( x d7 v! R' E& n1 o if( m_idGuild != 0 )
5 F9 c' I( F$ c! o* c" I% q/ i' h1 A g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. Z9 O+ o2 T. D# R+ p4 J: Q
#endif // __SYS_PLAYER_DATA4 C$ @* g* t% N2 |. P6 D
SetHitPoint( GetMaxHitPoint() );, p2 [* W2 r) C
SetManaPoint( GetMaxManaPoint() );5 |& R, R9 Y* h) M
SetFatiguePoint( GetMaxFatiguePoint() );
! h" i- f' Q O3 T% u if( nJob >= 1 && nJob <= 4 )
7 t) b: {3 H' q7 Q$ x9 y) G {# a' p6 W$ V. O/ M+ Q. Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;, l3 V8 F, ~5 h! r
m_nRemainGP = 28;2 ]- G; h; n# g5 F7 o
}
( y& `8 q$ H. c- F6 {& Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 i3 j3 V6 F5 a( e% N: Y {
, Z& N' ~3 [8 y3 _" C* j1 d m_nRemainGP = 118;- c) _% G. v' j' I1 }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. y) x) k# H, m& b. R- }
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' g4 p3 z) T) e6 V/ O, u0 L& q }
% x7 F V5 b% x' u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 g* {1 o# E- B8 v" c$ e {
3 L& x7 g1 K) }& B CItemElem itemelem; ^/ U2 S& q! `' H0 q5 G
itemelem.m_nItemNum = 1;! I) X z h/ E: [
itemelem.m_bCharged = TRUE;
1 J3 @7 y! g( @% [% X BYTE nID;
; `$ j3 N1 d. |5 F, A# B" s, z
if( nJob == JOB_MENTALIST_HERO )
4 y. T1 ^! \! S1 n6 ~% W itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; b, x2 s9 E/ G" \; t
if( nJob == JOB_FORCEMASTER_HERO )
9 t- |! r" u/ c# I% [. }+ W itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# g8 I( z3 b3 u
3 b8 N. ?2 w0 K6 h ( ( CUser*)this)->CreateItem( &itemelem, &nID );- N2 {& A1 {. I4 d7 O
}
3 _. n1 {( b7 P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% y% L- x/ u5 m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' S& C9 F. x. C& n3 F# @) X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, ^+ ]: f/ T$ _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );0 W% e# T# a5 \1 z$ S
( (CUser*)this )->AddTaskBar();*/" ]) N% \9 G" G& C
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' N P& ^0 Y+ z0 y0 L) a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 {( Q$ l# s' }" B3 F( u' Q2 X ((CUser*)this)->CheckHonorStat();8 N6 P8 D8 T* Z/ O6 Q) C
((CUser*)this)->AddHonorListAck();4 y+ }( }3 [( ~2 s
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 o& n% I. T/ R. `+ l
#endif // __HONORABLE_TITLE // ′Tà?& M1 }$ h& S$ ?& G: k/ X
}
7 L `& {. O+ p! J$ h#endif // __WORLDSERVER9 R) r! ^2 ]0 J. ]% f
} + r3 ^" J0 e5 R6 X% ]
; L: N! n% l& S. t5 f$ V0 O然后你进入functextcmd.cpp并添加以下: L3 N1 R' i6 v: s: l9 X& z
( f7 X; n/ f( p2 M6 f$ a/ g
代码:
0 W: e5 s c% ~) \5 }6 s. p eON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- R" O: I3 D! b3 t下面插入 B4 l+ _/ u) [: v: g& B7 @
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 t, a* {$ l: L- |, K$ C5 o. m; s$ q* p* I! \) \
然后你去
6 `/ ^4 e( u) i3 B9 L" ?) c" v5 M7 }' F
代码:. I& F1 q* r. A' ]$ Y# X+ |0 f
代码$ n* O! \% I6 {9 g8 T: W; N- e
BOOL TextCmd_ClearPropose( CScanner & s )
5 q* M6 L5 Y8 K2 \{
) H" u0 _; V3 C( F* g$ Q. \$ w* G#ifdef __WORLDSERVER+ N: [6 b2 o* H. P2 G# u5 ~6 _
CUser* pUser = (CUser*)s.dwValue;7 G% b2 Q; ~. s) h; j
g_dpDBClient.SendClearPropose();( h9 A0 l7 r9 u8 O2 {/ z3 q9 n
#endif // __WORLDSERVER
i0 N# g4 |" c2 | return TRUE;: U' ~/ k7 `9 e1 p+ C* B
}
- \& b5 d9 l' X下面插入2 X1 G$ e0 ~6 B, w5 p1 G
BOOL TextCmd_rebirth( CScanner& scanner )( X3 f8 r: O. t% B& {( L2 H6 x
{7 W, z) S* r5 I6 ]2 e' ^; s' @
#ifdef __WORLDSERVER
! ?8 o* ^0 f" l! Z3 bCUser *pUser;
/ D! ~% c2 H) _: `5 l0 SpUser = (CUser*)scanner.dwValue;, {& F9 t+ m& K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 R+ ~. {* C. s4 JpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" I' p& Y9 @- X* t; z" [ l& ?
else- N, { ?5 t w
pUser->AddText("你还未达到重生条件!");0 @4 q! G+ r7 b: h& p% t) N- [; p9 ]
#endif* H6 X5 p& ] [5 t/ g2 x
return TRUE;% A4 F- g* P7 b' j& ?' J
}
1 _) N: w% c, w* z+ ?* ^
/ h4 [/ L% Q; Z2 Y/ \# ^. K" N1 o: H: z1 t" Q4 u5 p; i' b
% z: z1 ]& a( R3 P& x! h
, L3 m2 @- e5 r* e- }. W4 H
|
|