|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ S! p4 Z, i( Y7 p3 j" y* j
$ x: q- [6 V7 D+ N7 h9 ]; qMover.h
; f$ Q% O, ]. c( y- \6 u代码:
1 |) x1 Y+ y/ M# B5 H/ A找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 j: i; a# \3 ~% T
3 H7 I$ [8 f9 O# d$ j下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 Z* T2 w; F1 n+ e6 G# }! g. j6 w& u* n& y2 h9 z; d: ]
然后你去mover.cpp添加9 v+ Z6 c. g( k
/ T& Q9 E& x/ P, x( e代码:
6 B* d: B: T- Svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 E1 ]5 Q$ \$ E5 _9 L& G
{- T/ h. b! _* H" C. H$ Y9 _: s- b
#ifdef __WORLDSERVER3 a$ m- {) g! B% Q$ k
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 c j5 A6 g0 h: c# d5 S* A MoverProp* pProp = GetProp();: C7 Z) m [, X0 s/ @% o) b% z
if( pProp )( o2 r: h; ]3 _& j* O! k; \
{! G! E( ]0 M4 `; P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- s6 t& ?+ e0 I4 ^ {* N+ m6 ?: `6 \
AddChangeJob( nJob );
7 F4 f# Z4 r1 X( j }else{
( J c$ e7 A! ~ |) k5 t+ f return;
# O0 B* z `+ t, N N& c5 r4 y }% O) M1 d. s5 R- U- h/ z
int nPoint = 0;7 }0 T+ x/ q; C( T2 M% P' P0 N5 L
if( m_nJob == JOB_MERCENARY )2 I" Y+ {/ N0 ?) O# q4 ], j7 W2 w% j
nPoint += 40;7 _1 J5 H5 ~4 m5 M
else if( m_nJob == JOB_ACROBAT )# z% ~6 F, G, [: f ~ p. t
nPoint += 50;
8 E! k0 N4 v3 }1 z- ? else if( m_nJob == JOB_ASSIST ). X3 r6 s$ B5 ^6 i* J1 d
nPoint += 60;
9 n$ {. J- A' x7 r5 o' V r' Y else if( m_nJob == JOB_MAGICIAN )
+ z$ _* J* ~0 r: u; x- m. j' e! K3 M nPoint += 90;
- G) s' K! P" l! y3 F7 h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* p' J$ E" b" a7 E
nPoint += 120;! H! q6 z# @3 b0 I
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% V( J, N3 f8 p! Y4 \+ L
nPoint += 150;% E& [. K h+ f- }
else if( m_nJob == JOB_RINGMASTER )$ T1 E3 L3 a2 g- V" G. t
nPoint += 160;
3 A) O' j' M2 B8 M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( ?. m* K9 p1 s9 N+ ]% y nPoint += 180;$ ]0 \- p T/ b
else if( m_nJob == JOB_ELEMENTOR )
2 x4 ^0 i" w7 r7 l nPoint += 390;
9 k; h4 V: Z. ]2 c+ m. J else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 G% l$ R! { ]4 G; F6 j- y1 c
nPoint += 120;- K% H/ }& a, r- I# p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ U" U& u z+ Y1 Q, d5 T
nPoint += 150;% r; B- R7 d Z3 O$ J
else if( nJob == JOB_FLORIST_HERO )
/ }+ L# _# ?+ C nPoint += 160;
( D3 G/ F5 g" O! B3 J. m else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ ^; k- q) n: m( `4 e
nPoint += 180;
! D2 y/ j% F: O( X1 k$ G else if( nJob == JOB_ELEMENTORLORD_HERO )
7 z1 J9 K5 n4 S* |/ |5 Z, y nPoint += 390;
5 P( {. l- Y0 a8 ^# b0 W3 P
( z3 m' }" ]8 [ AddSkillPoint( nPoint );( u) D, a( z" u! \" o
m_nLevel = nLevel;
" ~6 L* e) ~* O% S- Z, i, f$ Y' K! G% m* a; z( Q# K' Z
SetJobLevel( nLevel, nJob );
5 @* f0 o& G$ v: `, G2 E m_nDeathLevel = nLevel;* D; W- [/ d' T; A8 ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 G \5 \) j6 d! Z' `% L2 U if(IsMaster()); ~6 [8 ?/ c7 w+ @2 N
{1 _7 l$ m k' E& b1 u
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 D: n2 E2 P! G4 m# A
if( nLevel > 59 && nLevel < 72 )2 }9 `4 D! A: V
dwTmpSkLevel = 1;
2 f8 [( i v0 M0 \/ U else if( nLevel > 71 && nLevel < 84 )% e; n* a* l& u" Y2 t
dwTmpSkLevel = 2;
( k4 u2 V: [+ l' e- y J else if( nLevel > 83 && nLevel < 96 ), x5 T \2 z: X# v8 V
dwTmpSkLevel = 3;! Z0 o: h/ ~$ L' t" B
else if( nLevel > 95 && nLevel < 108 )
% v+ b- u+ L" ?7 U dwTmpSkLevel = 4;& U9 Z: l0 d8 H& }- W2 Z6 |) ~9 t, a& ^
else if( nLevel > 107 && nLevel < 120 )
7 W' Q" v0 K+ P/ m) z) ` dwTmpSkLevel = 5;
7 R ]( C E# R6 e ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) d" ~; U1 Z" J0 ~0 F
{ ' `* R2 Y/ f3 p- ]$ C5 C. }
LPSKILL lpSkill = &(m_aJobSkill);# A: h( A+ K% n: U) [# K. }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* L5 c2 x5 x8 g- R1 i {& r0 R) y, u" u! `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' a5 B! k0 H7 }( m if( pSkillProp == NULL ) ~% n% G: T' `$ O& V: \
continue;
7 _* h6 } H" T: P; ?1 q) z3 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 t7 U+ a5 |4 ?/ @( Z* Y
continue;& u: w _2 e! e8 j* S
lpSkill->dwLevel = dwTmpSkLevel;2 ], u# j# a1 f3 F" c7 H0 l
}6 A# U9 n9 `, `0 }
}* a, C( n7 C: R( _: _/ J
}
6 Q6 c; d+ y+ K' [ else if(IsHero())
% A2 c P8 h7 G8 q {9 h# {" Z$ V2 y/ k% H* U1 o& ^6 a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! F; j2 W7 U- B1 X
{
, f5 f' z5 s9 J* |/ ^) B LPSKILL lpSkill = &(m_aJobSkill);
. K7 F( U. E/ ?) j; L% x if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 E0 `4 ~7 e- |; s. Z {
. R% G/ ~+ g) R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* x) v" x( R& T5 i$ }) t7 s! `) Z if( pSkillProp == NULL )1 H8 v0 Y7 Q) | h
continue;
7 l6 _. b4 q# R' ~& d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 X/ g0 r$ t+ i( y5 C0 ~ continue;' P& M& G* ^0 ]" [: _
lpSkill->dwLevel = 5;0 ]2 t0 e C& o! {% L0 p' X
}; m( V5 V" K* J; D S
}- v/ f* w# `# w) N9 Y0 Q
}7 f# O" }' T* o: ~8 ^
else if(IsLegendHero())
7 Z) q3 N7 {7 `! Q {
+ {; b ~3 e" X8 _% N for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 ?' |! K- o' o {
- y/ e P6 h. ~" r/ O LPSKILL lpSkill = &(m_aJobSkill);
) M% j2 P2 Y3 k, R3 [! y3 d) o if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 Z' j$ I1 G% O) z# }3 d {
% D3 N' T/ X8 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 ~: [6 k+ Q" W1 C1 B* ^0 W, D
if( pSkillProp == NULL )3 C' G; c4 S9 z) v, M7 ?
continue;
5 T7 R) _( @' C. y$ x# S! }1 R; D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 [4 v, M% r: G/ N* r
continue;
$ q/ x6 P: u# \5 C2 |& f lpSkill->dwLevel = 5;
( K4 y) p3 R+ e }
( D& W* @. b) q }
7 X3 C7 W* e2 } c J }
$ F5 ]! @3 V& {1 f7 p9 Y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( X2 ?3 w9 W8 S+ L. e" X
if( bGamma )0 m u' D1 e5 i: j, _
{3 A' ~! ~) ~ u+ `1 q' A4 @) o8 L
m_nExp1 = 0;
! j" l" |4 I) I6 M" M- q& } }# m% w* S) {1 V7 m6 t
5 Q8 b$ s$ R8 E+ | U6 ~; R
( (CUser*)this )->AddSetChangeJob( nJob );1 p# ~6 }* v3 S+ t1 ~/ G* ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% f: _. R; ~; r2 G+ y, O5 n
+ u# K' I( z4 O1 O
9 J$ z8 j0 C k2 @+ W. W#if __VER >= 11 // __SYS_PLAYER_DATA
/ x0 g" ], S9 i2 L' g. m& W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) a. [" _! t3 \' x
#else // __SYS_PLAYER_DATA$ j" W, ?2 P4 }/ ]6 C4 e8 |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 p) @2 b" M, N( _' M, h$ _ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 I) Q6 M$ _4 @9 A: X
if( m_idGuild != 0 )
9 J( K( Q. u: v; }; _( ^; V. ^8 e g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 L/ ^+ U0 e" h9 R2 ^
#endif // __SYS_PLAYER_DATA5 n3 a: W7 L. J; B2 U
SetHitPoint( GetMaxHitPoint() );
# V% z% L* k @1 t: E2 e SetManaPoint( GetMaxManaPoint() );
3 h7 m# x7 x- B* y8 ?5 x SetFatiguePoint( GetMaxFatiguePoint() );* r5 [ X5 `$ G8 y
if( nJob >= 1 && nJob <= 4 )+ l/ q1 f& C$ i4 t8 x8 @) J! |
{
4 h; C& k' J/ O m_nStr = m_nSta = m_nDex = m_nInt = 15;7 l D1 ?( _, N Q! N' w
m_nRemainGP = 28;' Q% e7 m5 z3 X+ ^2 g! q$ b m3 Z
}
& t5 _8 X9 V0 [ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! \0 D. @% G1 f
{
/ N5 O1 I! @. q) a0 ^+ f m_nRemainGP = 118;" z5 w! v! g9 J. x! Y+ V) b
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 b; J& {8 ?; d4 O. Z7 }
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 M2 N! S1 z8 P# r) ?" f
}- V4 \4 k- G/ ^1 H) q" E: S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 c2 g6 X, R1 n9 S7 m4 s' C& G
{4 p. q B5 _0 [& J" ?/ o4 `& H
CItemElem itemelem;% n* ~8 |2 R% I- R1 P/ n% i
itemelem.m_nItemNum = 1;. d/ I; z. g* ?' N. o
itemelem.m_bCharged = TRUE;* Z- o6 i0 }" j1 s5 H* w) L
BYTE nID;
7 [: `/ ~% v9 E, B( D
1 w" T& x# @( g$ o3 h if( nJob == JOB_MENTALIST_HERO )' [- }8 ~ _1 d5 z5 `
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* B8 i8 ?6 n0 f7 X4 @& y0 u if( nJob == JOB_FORCEMASTER_HERO )
. W, n& J5 g9 R6 G- v8 J1 Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 \9 {4 E& O; S# j! O8 S: z3 d$ {
( Q0 o! k4 H# O2 r4 _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );. p, N: E8 v0 B8 F" V! i8 H" N! H
}: t1 l9 A e) R; N: X3 X% L3 S
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ `3 }: ]3 P" { ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% k3 n' }$ ^4 L2 n& z6 R- `& E9 X4 M ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 X/ h6 V) q* Y" P& {, H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 R* A6 G/ q( b( T; G( L7 f1 M ( (CUser*)this )->AddTaskBar();*// P2 p( Y+ J6 Z! i) i+ h
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ A6 ~9 e0 r" K* Y3 [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 B' k. ]- I2 |) o G7 c ((CUser*)this)->CheckHonorStat();- j* ~- {( C) [) ?7 y
((CUser*)this)->AddHonorListAck();
) M5 V2 g& f) Z% P+ r6 M/ N g_UserMng.AddHonorTitleChange( this, m_nHonor);4 Z9 S1 g/ }3 ~- h9 O
#endif // __HONORABLE_TITLE // ′Tà?+ }1 F- p# y7 O# S8 {; \) u
}
2 h! P0 P+ h4 C9 `#endif // __WORLDSERVER
' I$ u M9 O; Q; [6 @9 r/ A" D) P} 2 f' v! Z7 S" E B3 w6 \, x) {" {
" ]# S. Z& ?3 _. ]+ f9 j& |. Z$ n0 p: h
然后你进入functextcmd.cpp并添加以下
$ s9 @# W) b, M. g' }& F) T j5 n+ F; J+ D" E5 p1 M, `2 v
代码:
6 G, y( u# |6 H. i' HON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ z {) I; i4 B# u/ @. U4 H- v
下面插入0 g0 Z* i# B- `; f( Q, t6 L0 N
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 b( p$ G. d% O* C
( Y9 A; D% U& W: l
然后你去
6 ?- D* U3 U3 \* v) F* K
3 _; [% [( z; N) l' D! [代码:
7 x8 z s/ m) \4 \4 H$ `代码
8 g2 C7 t7 A& n6 i, UBOOL TextCmd_ClearPropose( CScanner & s )% U9 r7 \7 n* `2 x
{
$ L! N0 m6 Y* f' C) j% x# B/ Y#ifdef __WORLDSERVER+ i* T8 {1 @$ r
CUser* pUser = (CUser*)s.dwValue;0 `1 _: E/ ^: e8 H
g_dpDBClient.SendClearPropose();; \4 Q Q) V) p: p
#endif // __WORLDSERVER) l1 G, `3 B" R
return TRUE;
( |' d6 f( x7 e5 |3 W}. `" p8 e2 f6 S( i' S3 H
下面插入
6 r) C! u& p, ]* I% ^/ s- ZBOOL TextCmd_rebirth( CScanner& scanner )
6 {2 n5 b7 h. t& x1 _) x) K5 F7 O{
) I1 q+ L- @0 a8 U" k#ifdef __WORLDSERVER8 ?0 h) }( d3 ]/ a2 o2 w1 [
CUser *pUser;) }* Z/ P* ?" k
pUser = (CUser*)scanner.dwValue;
, H% [. }0 X- S- v' ]3 Vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& a8 s! ], u1 L/ ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; l; s+ n7 x" X9 Pelse
; u" D9 q, o# R! J9 X7 YpUser->AddText("你还未达到重生条件!");) g6 V7 f+ B' c( D3 p
#endif
- ?; z0 i/ K0 ^4 q; D7 c' H, r% {5 Breturn TRUE;3 h, z9 D; l# a4 \
}
& s- R2 b& e% o! a
' Y8 q$ V1 Z$ _- P% V: ?
/ s; F" {: K/ Q! B
/ H$ K/ n# w6 t. A& `, G; F
* Q0 _# n6 J( D: x- Q |
|