|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 @5 R1 T5 y6 H0 o8 G4 ], _0 ]' S- t$ m4 K
Mover.h% z4 I4 ?/ l' Y7 H- Y8 H
代码:" |& z9 j3 H9 I" P; Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% d" x. P0 x7 i
) f& V% ` M5 U! y; l# }0 B! @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + a! j( Q4 E8 \1 o6 p
" _4 H( ?& I7 D+ J5 r然后你去mover.cpp添加
2 F5 Z% j9 N U% ^1 z5 ?. z3 x! y; ?6 R3 ^+ J( L! d
代码:8 w" B' _2 M; ~, d4 I; n) [
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), E7 b- p/ g8 \9 J+ i
{
* Z8 b; K4 p) Q+ s8 ^: [/ q#ifdef __WORLDSERVER
8 o: \$ E: z4 a% W2 W // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: a5 k9 v# m7 ]* g
MoverProp* pProp = GetProp();+ E- d2 q7 i# E, t9 L
if( pProp )
3 w5 z# y* A, R {3 s6 U2 ~1 q1 w( V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 x; @7 d* u. W; z, B- h9 `: ~, A, F% e1 ] {
6 {3 o- V5 d b* O9 j. \9 j' V AddChangeJob( nJob );- N' v- N- I/ j- p
}else{, h7 w( l4 r# g2 c* Z1 g' y5 p7 B
return; P! T+ e5 \2 d( c% O
}
' f! C6 p/ Y; q6 f1 F2 `3 p" F0 X int nPoint = 0;- d+ T- S/ i. ?2 X/ ?* M0 q6 t
if( m_nJob == JOB_MERCENARY ) }* o3 ~. b: V- p2 e& e" d& H
nPoint += 40;+ J5 E# w7 R) ?/ s5 g5 J2 }3 X
else if( m_nJob == JOB_ACROBAT )
+ {7 l3 `/ ?5 L+ g) J4 X% w9 h nPoint += 50;
8 J8 ^. k& v7 L0 c7 U. X" J4 Y Z else if( m_nJob == JOB_ASSIST )
$ K1 {/ W5 n6 r nPoint += 60;! M- `% D8 E9 ?/ ?
else if( m_nJob == JOB_MAGICIAN )
$ y! c; j1 U4 n: o nPoint += 90;
$ R3 n( G" x* \) K2 I else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! j( e& y. `4 ?& k7 l" R* K
nPoint += 120;
9 B6 c# p9 R/ K% j; g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) T; L- c+ V* M/ h$ m
nPoint += 150;. m# L$ ~: o* \! t" N5 ~5 i7 H2 k
else if( m_nJob == JOB_RINGMASTER )3 L0 v, N' q: b6 n. T
nPoint += 160;/ z, o! m6 j9 w8 l- F4 ]! W% d
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 `) T; n ^* F! b nPoint += 180;
9 `, m$ y6 C, C else if( m_nJob == JOB_ELEMENTOR )
' e8 H: b0 }" _ L nPoint += 390;1 D3 F1 y3 b* V/ _9 L; F: F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
c1 h# C0 e7 {9 w9 L$ I nPoint += 120;- i1 e& f/ s( {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ N7 Y1 R5 Z+ i% ?
nPoint += 150;7 p3 `5 F% t* J X; s* M, Y
else if( nJob == JOB_FLORIST_HERO )
( H. Z+ Q% y6 D nPoint += 160;7 b' Y, U/ Y$ U- P. C$ W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 y* S5 F- u" v" k. g& A5 q
nPoint += 180;7 P1 T3 @! L. q( Y' O% \" z
else if( nJob == JOB_ELEMENTORLORD_HERO )9 N1 p" L) a, U+ R+ K* B7 S
nPoint += 390;
3 g# C0 V" F2 w' C& }
# J* {, m9 r N4 F3 Q AddSkillPoint( nPoint );
, O5 j6 {3 @0 Z) p' L% H m_nLevel = nLevel;1 V; d% Z w4 r! g3 f) i D; q
! I) w8 I+ I, ^% j; p SetJobLevel( nLevel, nJob );
. O, z3 k4 s9 z' } i m_nDeathLevel = nLevel;( J* {/ |4 o3 o4 \
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 R5 J+ w4 w( K4 P8 Y' D& f( Y
if(IsMaster())
* G$ C% [! k- }* g b8 X+ a {
5 c- g$ [7 d% s% A' S' h, H int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 K0 k4 ^( h, m
if( nLevel > 59 && nLevel < 72 )
/ R: I. q8 T5 u% M1 H: I dwTmpSkLevel = 1;7 r0 @2 u- J2 L; P- u7 U
else if( nLevel > 71 && nLevel < 84 )4 V/ h" N# V! M, F5 L4 k
dwTmpSkLevel = 2;
$ w) M! _5 Z" r9 D7 x; U else if( nLevel > 83 && nLevel < 96 )
- X% V: X6 L- a$ c6 q3 t dwTmpSkLevel = 3;: P/ h3 C6 x$ Z) I9 b& d2 H
else if( nLevel > 95 && nLevel < 108 )
. C0 R B, r9 f3 x2 D7 E dwTmpSkLevel = 4;
0 O8 v# L+ x/ M6 Z6 F else if( nLevel > 107 && nLevel < 120 )
+ D, I& @* @6 V0 l' K' f# ` dwTmpSkLevel = 5;7 q0 `! ?' p( G7 F) C0 C' u% c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % m: }4 T% H7 V% s; ~( Z1 Q7 J+ {: j
{
2 p6 u! v1 f$ z6 T6 q LPSKILL lpSkill = &(m_aJobSkill);
( g& z- Z0 w6 G if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 v# U7 a* [8 a) `! T/ i0 m8 o {: }/ p, I; w; v2 S( z# M' U* v* L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . X) s: Z; B2 S! D2 D0 G
if( pSkillProp == NULL )
4 B% J1 v. Y9 p continue;
( q1 M# a1 a( N& S$ { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% S, f4 j9 ]' p: c i4 c continue;
3 G! ^+ B- ~" W6 I2 T lpSkill->dwLevel = dwTmpSkLevel;
+ D% ^4 J3 r( N+ }$ E0 ?' L; C }
3 X' S8 m7 S1 u: m+ P! C! d }
; Q6 w2 z7 \6 W! M }
" E* a# J4 G! r' i( E else if(IsHero())2 u3 j. l, ?, n0 k4 ]$ X) y* [
{+ D! z1 p+ m! z t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( l1 U. [6 Y* G! O
{
3 h0 n9 V- J: a LPSKILL lpSkill = &(m_aJobSkill);
- h0 I2 k- x. M6 g. N' ] if( lpSkill && lpSkill->dwSkill != NULL_ID )9 u( @. M; N7 m
{ u5 D3 D' d" I8 j/ D3 @+ b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ {" Q4 {8 E% F& H, R if( pSkillProp == NULL )* w# h P, M7 u3 M) }
continue;8 _; c- U0 j7 f0 O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 r9 W* l W$ |: A
continue;5 E, T$ b' j/ m2 t9 `
lpSkill->dwLevel = 5;5 h7 Z7 ?$ D7 ~2 H, r8 l/ P
}$ B' j" T$ l( h) `
}
( I; M' Y, g4 i( L$ K# \, ?! Y- l }
0 h) B6 j4 m0 L- z: |) N9 \6 g else if(IsLegendHero())
; x5 h5 O# f2 u2 T {
* ~% ~5 L8 a1 ^4 n5 F. o" x" x for( int i = 0; i < MAX_SKILL_JOB; i++ )
" h$ E' k0 I' E- v$ D; ] {
* V' v6 E! u0 ~ LPSKILL lpSkill = &(m_aJobSkill);
2 y* a& r- K( ?' B. _" v! I if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 m- T* }+ S P3 T4 l9 ^ {5 g* q' {* L% D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 V3 O( G' \% R0 T if( pSkillProp == NULL )- Q+ c3 X9 P" g6 P9 H+ G' U8 Z
continue;
0 z4 ~7 x* M2 v1 L( ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 `) B" e7 y% M* d continue;
& q! @* Z3 w Y# b, d lpSkill->dwLevel = 5;# d% u; q8 a9 o" r
}
' I2 ~. k* P) A& H( p( N }
5 h* w5 X5 Z0 T9 o$ l }
6 ^& s5 V7 o2 y7 S2 n0 O* S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ D* b% o0 O7 A+ Z6 \
if( bGamma )2 ` I3 d+ X7 z
{
' k" b; l8 x0 r, w8 `; J3 S m_nExp1 = 0;( r+ ]4 h; y# |
}
) J. k% ^. p8 _4 j* j9 P; s) b* L5 |7 i# G
( (CUser*)this )->AddSetChangeJob( nJob );+ H$ u& o. m4 g, l# X. b
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* N: q7 t- g* k; x) B, Z* c$ w# C" @. s }$ R. F% z1 H) O7 ~2 U( f+ L0 m
6 _- _& Y3 a2 r#if __VER >= 11 // __SYS_PLAYER_DATA
' f. b2 L7 Q- P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 i! l A4 C2 ?. R- v: C' c5 ^3 q#else // __SYS_PLAYER_DATA! d: e0 ~ _1 R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ _* c/ |7 z$ l2 ~. N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% h; ~3 E$ m# ]# I7 l if( m_idGuild != 0 )
. f7 x D: w! t g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 Z& k% M! O# l/ j5 C4 S#endif // __SYS_PLAYER_DATA
9 E; R: J2 [8 d8 j5 Z SetHitPoint( GetMaxHitPoint() );
4 A0 r k8 E' J7 |) e$ z SetManaPoint( GetMaxManaPoint() );; F- h* a, y: y& \" c9 O7 v
SetFatiguePoint( GetMaxFatiguePoint() );
0 V7 p* v! h' O) R9 p, W if( nJob >= 1 && nJob <= 4 )
! v2 S' I9 z/ v6 n3 Q s {' X, I& b% e2 i6 E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 k* A' j' y' ?9 D M m_nRemainGP = 28;
4 u2 c9 n" Q$ _8 W. q+ J- e9 n }
{9 z5 [" t3 X4 e( D- f if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 |) c% Y+ n. ` u5 y/ B {
' C! d, F8 i1 u3 C m_nRemainGP = 118;* w% j) N( M4 h& G3 ^" K% q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) ~- n: K& l; F# V5 r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 d% y( Q* o0 t1 A9 j: g }
% `1 g5 C# P" H- | if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )/ ~* [2 A8 ]. Z$ o, Q( a6 d
{5 v. N& q. \, f! U; y4 G8 E2 m$ o2 Q0 d
CItemElem itemelem;3 [1 }1 o( C- Y" Z2 O8 \. f
itemelem.m_nItemNum = 1;
. @$ Y% _, g' s; Y/ p itemelem.m_bCharged = TRUE;
+ g- K H! `( h! Z- `2 Y2 a BYTE nID;- N0 z2 { V4 u, F: k
1 r1 ` f; U% `& w& d5 d6 N+ S
if( nJob == JOB_MENTALIST_HERO )2 Y5 z" t1 `1 Y# [0 B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 Q- Y6 r9 ?/ R$ W( F! r- C3 Y
if( nJob == JOB_FORCEMASTER_HERO )
) ?+ `; D, n8 c7 G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 W; o+ v# {. v2 v% L# J0 V' l3 V0 z) y6 v5 n$ {
( ( CUser*)this)->CreateItem( &itemelem, &nID );
; C% l/ V; @. ~1 `$ g! ^" ~9 J1 i" W }
$ R$ S5 Q7 T0 A g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( @6 a) d% E h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 V; S; g. z) F$ X6 N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. G" z% V& e1 J+ ~, m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );6 S& r. W% t& k9 w6 ?
( (CUser*)this )->AddTaskBar();*/6 K! P5 ?& Q% {7 }8 `: o) [- D1 \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& [. f' A- I6 v s#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 e9 O: N2 g# r/ ^+ F
((CUser*)this)->CheckHonorStat();
9 N! S" c. i$ ~7 K4 G: k. D% u6 D ((CUser*)this)->AddHonorListAck();
. l. }# D K9 F: Y9 l' J g_UserMng.AddHonorTitleChange( this, m_nHonor);2 _# }5 C9 g. X" {0 r3 D
#endif // __HONORABLE_TITLE // ′Tà?
# [- P; v/ s1 u0 B( p }
- I9 ]( h+ b& _( c# f, ]$ b#endif // __WORLDSERVER
9 `- J- S6 |+ p% [3 V" ]}
, z1 n |" ^& i/ [5 J# g/ N" @$ ]
然后你进入functextcmd.cpp并添加以下
' w- _" t. b8 ~/ r9 Q
, j1 v E5 F* o' x) k* H代码:
) d. i F$ j# g& N2 j8 i3 jON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); Z; z8 f. I5 K C
下面插入
/ g" M, D2 w- ?+ Y9 h5 YON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* u% k7 o* B8 K0 `
" K! t* r+ j6 P) p- u! \* A然后你去, G4 _; V$ z+ a- n
$ b4 k. F" @4 u" Z
代码:
. l) o' B. I7 L代码9 \+ f& H% f+ j" B9 W- E1 J
BOOL TextCmd_ClearPropose( CScanner & s )
1 J! R. a# c8 O{& i7 W/ {% `" w1 ?" l/ [! z1 U
#ifdef __WORLDSERVER
o; C8 x! j# j- X CUser* pUser = (CUser*)s.dwValue;
; [/ k" ~3 u4 t" w g_dpDBClient.SendClearPropose();
: u, s' l' t) w; p7 s. W% M/ p#endif // __WORLDSERVER
2 b) [% R' U0 N( @ return TRUE;8 e; B( M" l1 P- e+ i3 ^0 t
}
$ U' e0 e$ |# ]+ W7 Y0 e下面插入
- e' x6 ^& K. y9 U8 o" ~0 ?: {BOOL TextCmd_rebirth( CScanner& scanner )9 n# \: d& n5 ]) l& E
{
) }; g8 m4 `7 F( r( K#ifdef __WORLDSERVER2 {% E* ^( W3 T( c$ A
CUser *pUser;
1 h+ g! Q! A/ zpUser = (CUser*)scanner.dwValue;( Z# l2 W# s+ \' e% n' h2 P! K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ E. e; g f6 z* }: lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) S8 M# s9 b; S5 v+ welse
9 l# C' A8 N' i8 Y* c* P9 g) ipUser->AddText("你还未达到重生条件!");2 X3 N" _6 X' b/ X3 t* H5 v' K
#endif6 S4 Y! k5 k( e. ?# T; m: I- C
return TRUE;. m* Z2 Y6 Q! I: |
}
8 g3 i) @4 j; G8 H' A+ ~. c. B' g& u3 p% d* S' d% t: r
) `4 }/ M+ k; j4 g
1 D& W: ]) ^8 E# i/ ?6 J
; t$ `3 _% ~5 j' i: I; p |
|