|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) S3 i# T3 C5 z# g
6 m. i3 E& F7 |0 L8 j7 uMover.h
3 t' c6 P( w5 l! a6 R/ ?0 j代码:3 h* g! X2 ?' \5 C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; ^, T5 w- a% {, B' a, S
- G6 a' E9 L1 X$ N# _! O: V下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, ^' _* \/ r8 D/ w4 p9 Z8 c
! f# m7 {- m9 ^7 n0 \然后你去mover.cpp添加
$ R& w- z! K4 [% K8 P- Y5 P: s! D. S1 ?0 j
代码:& u5 N# a/ ^. [9 o% V# P6 A0 I
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
M& O& V) m& D0 w* ?+ W- j{% [9 x2 U; F- D- T+ c
#ifdef __WORLDSERVER9 f' R$ n: a* y* g' h- V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
~/ a' P/ T/ z: g9 p MoverProp* pProp = GetProp();/ P9 n) Q5 O; K" s; B0 W
if( pProp )
$ l7 p* I' V9 w/ |% W {
' H1 a/ ^# V# H8 t7 j5 K& S if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ m4 v( h8 X9 F- b+ _3 l
{
& K% q. R( Q" x* ?+ C6 ` AddChangeJob( nJob );6 o7 `# x7 s# D6 k+ V6 I' S6 L
}else{3 d; _& a5 W' h. W/ }" p: k( z
return;- |4 @+ X) N, t9 j2 h5 a
}
% L+ L0 L& {4 j6 ? N- ? int nPoint = 0;
; b* F% F2 u% p5 P3 S* A* s if( m_nJob == JOB_MERCENARY )- o* m: D$ O9 h
nPoint += 40;5 [2 f, F; N5 c# m5 u1 c5 q
else if( m_nJob == JOB_ACROBAT )
# P; ?0 J. n$ J; b) u1 X nPoint += 50;. C9 I$ U# v }0 D
else if( m_nJob == JOB_ASSIST )
' O3 J" E7 g( R/ b1 L, W nPoint += 60;
3 x, i; Z: w! t$ g6 Z else if( m_nJob == JOB_MAGICIAN )# a' w V7 M4 |9 m# G
nPoint += 90;$ G! Q- D4 n. B. |4 y: r1 _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); h0 C7 d' j" }5 `* O" ~9 z+ E5 [
nPoint += 120;$ N. I) q4 \8 Z" c, K
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 q6 J& |/ r) K' @% z
nPoint += 150;- m' ^+ [) U- U
else if( m_nJob == JOB_RINGMASTER )& S. a/ ]% R3 O8 j* ]
nPoint += 160;# S5 s" Z- A0 b1 H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! `" v$ p7 {8 q8 C5 _ B nPoint += 180;! I* r: k2 c+ {% x P6 g
else if( m_nJob == JOB_ELEMENTOR ) \) _; s" U5 Q/ l% w
nPoint += 390;
' W- e' x* G \1 _1 v5 J else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( \' B. @) S, ?$ `4 U. |+ a
nPoint += 120;# ^: H! l( m6 d1 P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& |1 u5 I$ E7 r+ m: g nPoint += 150;$ Y: z# e& Q {: S
else if( nJob == JOB_FLORIST_HERO )
: w* B* |. t J; I5 t" z; ]/ o& A* t nPoint += 160;
8 b+ O+ h: g: b/ A' O else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
\, K( o0 q& R0 o% B- Y nPoint += 180;. [' y3 K( q: n+ F1 i% ]) O
else if( nJob == JOB_ELEMENTORLORD_HERO )/ ?+ V% r. U, ^. t: \9 P; x
nPoint += 390;
& ]8 R: Y& S1 J" e% S0 f4 y& j5 D1 O
AddSkillPoint( nPoint );
4 X3 _* p3 Q- Z& W9 P m_nLevel = nLevel;3 @, X4 T! K% `; w
- V' Q5 l* e& _- d) Y% B7 z+ V SetJobLevel( nLevel, nJob );
9 K$ p3 L, L: P2 K m_nDeathLevel = nLevel;
' i5 j9 h2 j, h0 a+ G% c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans A- s' t3 m; D# C, y: d& T" F
if(IsMaster())
3 ?, Z; J1 [6 a {& S! I$ i+ M- w9 p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 R9 S6 T1 T4 J) Q1 Q1 \ if( nLevel > 59 && nLevel < 72 )
4 O4 T, S& \. X dwTmpSkLevel = 1;
4 [! }2 w9 l* V" ^& z+ e5 H else if( nLevel > 71 && nLevel < 84 )0 Y" U+ ]" l1 R8 J
dwTmpSkLevel = 2;
5 {; g I% ?4 b8 U else if( nLevel > 83 && nLevel < 96 )" ]( y3 O/ Q F+ w0 N. E( c. k1 L
dwTmpSkLevel = 3;
. U; m1 B1 c: U0 ~, h7 J; T7 t else if( nLevel > 95 && nLevel < 108 )
# T- P! I+ Q! Z1 K" K2 E; c dwTmpSkLevel = 4;
) x C$ i) ?' e3 q/ x% n else if( nLevel > 107 && nLevel < 120 )( y5 Z1 W5 v, {( D
dwTmpSkLevel = 5;$ d8 ?6 [3 x( I c' ~! J+ U3 L0 l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " t5 B8 Z* C2 e, K3 c" f
{ : B8 d( L. B- A
LPSKILL lpSkill = &(m_aJobSkill);% j! R6 l2 L9 b5 U2 M! z9 C U
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 k: l) s, B5 T/ Q8 M; R" S5 @
{
2 h0 T- }, r o/ h0 B# w" K O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 F1 l: p, J$ B/ Q% l- f4 H9 x
if( pSkillProp == NULL )
0 |' c4 n% a* \* C! Z l' y continue;
/ w3 `! @ L3 ?1 v/ P- Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' h \. s; |" {! B- l continue;
; `& F3 y# G, T+ ] lpSkill->dwLevel = dwTmpSkLevel;
' [6 r1 B- d- e8 G }
3 o6 H3 Z9 U z- {$ C& r, Z }7 ]9 b# v8 I+ z: G
}' K: N. ]# d" Z$ V
else if(IsHero())
3 Q: d7 [* b5 I1 B {
$ i! g* C1 Y, z' O: ] for( int i = 0; i < MAX_SKILL_JOB; i++ )
' G! o/ m5 T2 }! Z# z { 8 c1 I1 `; I9 Q3 P
LPSKILL lpSkill = &(m_aJobSkill);0 g7 _1 s3 U7 {+ [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& T* ~2 K9 S/ B( Q8 _% a3 Q" I {
& c1 ~0 ^; u6 G x6 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , ?/ Y! |" V; a
if( pSkillProp == NULL )) w+ ^8 Q3 G$ z0 {
continue;
- m9 ?2 S9 q2 e! j, ~# I! E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 B$ N ?% R& ]8 M% ~
continue;8 f9 e' y6 `& T7 C/ B! v
lpSkill->dwLevel = 5;
5 T, w( t' H; f }& w% g: R/ h1 u+ V+ m
}6 g# g( c9 k8 U$ R/ [5 {
}0 W+ X, M* \& ?3 e; ^
else if(IsLegendHero())8 `/ M; W$ Y% l9 A- |
{4 N Q+ W( _. ?5 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 e8 V; H( d A. |. _7 v8 _; {" g { ; Z- q3 |3 F: z, q
LPSKILL lpSkill = &(m_aJobSkill);' k5 |) j) }! m6 ]5 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; @8 V8 x7 e! P8 H {
& L) x3 q5 @- p8 B' Z; a9 C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : J+ k( I/ s$ ^& i+ U/ F
if( pSkillProp == NULL ); q: U# G/ G7 @) q/ y/ ?
continue;( K3 j& h: B" O9 C' n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 w# k& t t- w6 f/ L9 @1 O' G continue;- y3 q$ I$ j+ C" w; ~
lpSkill->dwLevel = 5;- E% G) w6 [3 o7 @6 Q3 _
}: n- ]) m" n* q$ K
}: c7 \3 t) a: m5 `
}
) `$ C9 u& f: ^+ J4 C#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 i" G1 s9 ^# _( }) Q5 F
if( bGamma )
7 n# y+ q7 i3 K4 B. C {
9 m+ M+ s* D* t$ A m_nExp1 = 0;1 w' ?* C. W/ m% A; Q# s3 }
}
& Z/ [) Z: R7 p
' b" K7 f3 |0 C* W, w- B ( (CUser*)this )->AddSetChangeJob( nJob );' g9 m' S8 U% L, t; M4 ` R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ D" B% O3 b! x% Y0 _+ ]
: b5 z( ]: e( S2 p$ k+ |2 L1 x0 h! z$ @6 t2 j2 {5 K
#if __VER >= 11 // __SYS_PLAYER_DATA
" `3 a* r1 H/ P' Q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' K6 j0 T2 P5 @" J+ P0 A4 R+ s
#else // __SYS_PLAYER_DATA
3 B2 `$ F" Y: [. ]( r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; `! D& A+ o6 B9 i8 q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 ^& S5 K& R+ @3 C. P, Z p if( m_idGuild != 0 )2 g0 g5 s! r& K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 u2 E) B0 M+ {8 j8 R#endif // __SYS_PLAYER_DATA
: W. a/ J$ Y% ~: u6 b4 c4 E! Y SetHitPoint( GetMaxHitPoint() );
$ X0 j! [/ \4 X$ V, } SetManaPoint( GetMaxManaPoint() );! ` C4 O: L5 r- q9 X* E& Z6 q
SetFatiguePoint( GetMaxFatiguePoint() );
: V* Y6 u8 ?5 p% l, ], g if( nJob >= 1 && nJob <= 4 )9 u5 }: w# V% Y: P$ e1 l5 Q/ P
{
# \* c0 X3 y9 L; X7 ]8 [: Y# w/ f m_nStr = m_nSta = m_nDex = m_nInt = 15;3 a( V/ |7 z1 W& J0 f( k+ \
m_nRemainGP = 28;0 `5 A" b1 O, F
}# d2 U K: I1 E: x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ v0 [3 {) T4 ~8 G- r1 w
{6 L: P* X) o/ a7 l& _( @( r" [7 m4 c8 ~
m_nRemainGP = 118;7 h0 R$ M& I5 U9 Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, f# d7 d6 l- m m0 A! n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: k: K9 b& T7 h' s }
: e; L8 J9 U6 H9 p4 X if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' @/ Z5 d Y$ D* p
{. x) j1 r. v1 l, M6 d [+ ` d0 B
CItemElem itemelem;! F# M% J& W! y- C' X
itemelem.m_nItemNum = 1;5 t& O3 N2 E3 A$ W1 C
itemelem.m_bCharged = TRUE;
/ I- D. g# r; D @# X* i" P BYTE nID; _( Q1 y1 ^( W4 R+ r
! V- v% \6 g$ I: w g( w
if( nJob == JOB_MENTALIST_HERO )
% D# d) p- q A: a* h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 W# Y7 \" W# J
if( nJob == JOB_FORCEMASTER_HERO )7 P7 }3 Y$ I7 L& K# H, Z/ c# R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 S7 J( H4 G+ d Q
6 \7 c6 o- P' A8 Z4 f6 c3 q) Y/ V6 Z ( ( CUser*)this)->CreateItem( &itemelem, &nID );: h B+ U6 ^( A/ n6 g
}/ y1 v% @5 q: \( R9 Y1 |/ f* T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 [0 K" j$ V, b3 b6 d# t ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 [$ u" p& Q: ^. s, h, `
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" m" l; R$ m2 [0 G* x0 ]! A1 D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! S0 X; [9 P6 w5 m5 P; L/ ` |/ E
( (CUser*)this )->AddTaskBar();*/
& X0 o$ z. L5 G ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 M% j3 a3 N) g5 C; K0 Z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( G& m& I, b, V3 Z6 j ((CUser*)this)->CheckHonorStat();- E4 X$ U& S! p; u
((CUser*)this)->AddHonorListAck();
9 p5 @: S e: T; i g_UserMng.AddHonorTitleChange( this, m_nHonor);, j3 ^$ |! R: N7 a
#endif // __HONORABLE_TITLE // ′Tà?
; G# ~" e/ T ^7 H }
+ _' B5 E$ i0 H3 @6 _#endif // __WORLDSERVER7 C4 ? V& i- @. p2 O [7 Y
}
8 p; D9 i1 X7 G4 _
3 f8 K# u& R' n* i, k- X然后你进入functextcmd.cpp并添加以下9 N. l+ O5 T/ Y [/ [
) d6 e: {7 G8 R. Q. S) y% {" |代码:
; } C' G* S& S: d8 a! f, Y( V3 mON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 V0 C; T$ R( d" l d. C, H0 V7 P
下面插入
7 w( M9 p3 \, P! k' c# L7 cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 o# m. \$ D& ]2 i2 V( d
" H+ e( c. L( }; \然后你去 z, Q/ C9 r( i/ l" [
. u1 N' x- p; d3 b1 h. q
代码:) X' ]) g( f7 |# p j# C3 K1 x- c1 M. @
代码- K- u" j) g3 ^$ N0 Z
BOOL TextCmd_ClearPropose( CScanner & s ) h0 i5 j$ Z6 l9 T
{
4 B9 a3 t; x) j7 @3 g7 w; |: Y3 v#ifdef __WORLDSERVER( z4 o) T3 w3 j, U3 s2 |
CUser* pUser = (CUser*)s.dwValue;* M" ]4 q( G3 u$ S A* {2 u# k. W
g_dpDBClient.SendClearPropose();9 r9 _+ x, a$ [7 d& u/ K \
#endif // __WORLDSERVER5 `8 ~6 S+ ?. S9 N+ {: `4 Q
return TRUE;) q+ @7 q2 T, O( W0 ]
}' `' [5 a' P( A" H W+ Z, E. U8 g: b
下面插入2 _# z, e0 u$ {
BOOL TextCmd_rebirth( CScanner& scanner )
' _: U$ \$ F' }* Q{6 S" L+ t9 Q0 a) A
#ifdef __WORLDSERVER7 \" I' T( s+ X7 c6 i7 ]/ N1 E
CUser *pUser;
# ]" D' L* D! X0 s8 {1 [) M1 XpUser = (CUser*)scanner.dwValue;( \- V" ?1 t# [
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ p0 a1 B/ S4 f5 I/ ~$ z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. i) Z7 j# G) f# _8 ~8 b& |" L% c' w- Aelse
0 {. s, p" V/ K1 k, VpUser->AddText("你还未达到重生条件!");
( q& K0 K8 b* D: O' `#endif% ^1 U% g3 O- y" ]" z s
return TRUE;; M$ q' ^; f# z
} ( v; P8 {/ ^& @5 p
$ F# w; u, e8 t0 B: [4 X( w
+ t+ t% B+ ?/ E1 @. k
+ f0 y: w" ?& _
8 b( l7 G: o3 r+ d
|
|