|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 l# j/ f0 L: K$ T6 l
" i" w6 H* q6 c- j' P3 jMover.h% ^ ]5 k' }8 B2 o9 P
代码:
7 c& F: I3 P8 ^' U5 |1 Z9 Y& i( z0 ?找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ ^, O e$ e# g
0 t+ I4 q+ N6 [8 `3 F; p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. O5 ^/ q( X% K3 t$ k# H: n( S* i1 h! d, h% _8 ~, ]' F, \
然后你去mover.cpp添加* _. a) g) U8 |" C2 \
4 F% `7 g7 `! P3 V
代码:+ W' {4 q! p+ k3 i2 G. T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& Z! w) f' s+ S4 N+ q6 d{
# \* C" y) I) e2 [- p4 f0 b#ifdef __WORLDSERVER6 d+ @0 M) g, o1 m! {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 c7 p. P5 {, r9 |4 s8 H
MoverProp* pProp = GetProp();
5 y! s0 ~- P2 M8 _ if( pProp )$ O$ i0 h7 w5 Q
{4 t6 H* t% F/ k/ ?# K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! H A1 ^7 g! M* ` {
6 p. W2 k) o% I' \) r. @. c' r4 n% L AddChangeJob( nJob );
* o9 k5 y3 N* F! Y! Y }else{: a1 `! ]3 e# w- ?
return;& I) d2 L5 v, \8 K' o7 ]
}
, N1 U- {; D1 X int nPoint = 0;4 D% Z: u0 z) \$ c: E2 I) o0 H
if( m_nJob == JOB_MERCENARY )
: i$ e% J9 a6 y/ _: M' a nPoint += 40;
: G& J8 G3 f, p" [7 P1 h else if( m_nJob == JOB_ACROBAT )
3 X+ G1 |6 }' p! u, a nPoint += 50;( |9 ?1 m3 M2 u! L: u
else if( m_nJob == JOB_ASSIST )9 q) e# U. z' w9 |8 Q6 A
nPoint += 60;
3 Z w- }) s& N# E, ]; Z% {# Y$ P9 h else if( m_nJob == JOB_MAGICIAN )
9 e& K/ ~: V7 ?) V9 ?6 m nPoint += 90;
5 F1 ?7 D1 p4 i# j. d4 f else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" u" x( Y# B8 M: g nPoint += 120;
# s5 a' M0 G$ t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): |9 B3 @0 k8 M- l
nPoint += 150;
! h% W8 l) A5 d8 g. I7 b else if( m_nJob == JOB_RINGMASTER )$ I. u5 @- W7 |& L V2 m7 {
nPoint += 160;
4 ?- c( i1 k$ Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 x$ w3 q8 m$ k4 l; H4 O# w
nPoint += 180;
0 D6 w4 z3 @7 N+ ]$ C" c else if( m_nJob == JOB_ELEMENTOR )2 ?9 n: X; T6 r: |
nPoint += 390;* @/ b; n, {2 R# r, q3 K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); E2 n! V% a; k5 h- `- H
nPoint += 120;/ X* z0 `1 f1 t0 @1 p1 V0 s- x4 L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# R& T2 G C. |. P+ R- ?5 ]/ p7 T& Y" K
nPoint += 150;
5 f$ j- {' S- b2 T: G( v5 j else if( nJob == JOB_FLORIST_HERO )3 y* T) n9 k9 q( b0 o
nPoint += 160;1 u$ J1 ^. X* X7 I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& \5 t& Z. x! v4 L
nPoint += 180;7 F* U5 Z+ F% ~6 q) {' W$ b7 r+ s8 _
else if( nJob == JOB_ELEMENTORLORD_HERO )7 ^" Q+ a+ c7 v% M
nPoint += 390;
0 \" w) Z0 G4 f! }- |5 t' X9 [; n) I# S. s. _
AddSkillPoint( nPoint );. O. ]' R- R6 n
m_nLevel = nLevel;9 }$ |) j: I& }9 e
& E! x% _8 R. C# b SetJobLevel( nLevel, nJob );
; x4 F* r, L* n6 r0 b* W2 w m_nDeathLevel = nLevel;
3 \, U, {8 {0 e* K/ }- J2 L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! N d8 G& ~$ C1 }# f( x( F
if(IsMaster())( @3 U1 L, a: Q8 P' a* z3 p
{3 E9 z4 \ U& v3 ]4 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
Z$ C1 N9 W2 X7 @% L if( nLevel > 59 && nLevel < 72 )8 Q( s5 q1 s9 ] o0 `# x* }
dwTmpSkLevel = 1;
2 B3 M# G+ s3 M0 i% T else if( nLevel > 71 && nLevel < 84 )
( |) c. b) w5 c0 O2 q: p6 Q1 N dwTmpSkLevel = 2; u1 |6 @# }4 Q3 \( H n R
else if( nLevel > 83 && nLevel < 96 )
% I/ H# Q9 ?2 o/ F5 M: ^, o' N, q! \ dwTmpSkLevel = 3; R+ W2 t& P% l" L" P5 }
else if( nLevel > 95 && nLevel < 108 )
) h' X2 `& n2 }0 Y3 O" k+ P dwTmpSkLevel = 4;1 X1 A. g2 L P6 {
else if( nLevel > 107 && nLevel < 120 )
- j) q" s+ F8 i5 {1 d% `5 h dwTmpSkLevel = 5;2 |: J9 u) X" Q& S5 g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 Q; Z+ s D1 w/ c2 D {
& N: K6 N! Y* R LPSKILL lpSkill = &(m_aJobSkill);) J r; k2 x2 y; h1 ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. Y& f4 X: X4 q; ~ n! ]1 S {
1 o1 ]6 H9 m* @% N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: X" w. p0 |9 M if( pSkillProp == NULL )# N1 ~. k) b: x6 `! H6 {5 D" M3 g
continue;
( q* B8 U3 u5 o9 f4 u# |* \7 m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 P8 e* X2 r6 D1 f9 r9 y
continue;# E6 `6 l& |# Y) W; R
lpSkill->dwLevel = dwTmpSkLevel;
8 }8 g1 Z. q, V1 _! x9 [: h }
, f$ [8 Z: F$ X( \+ U }) z8 u* ]; e: P2 l7 }
}6 R+ g# O. e. c$ ^+ e
else if(IsHero())- E. i2 x' O1 V, [8 F( H X1 |# ~" {6 v
{
" V! U% J, X* ?1 A for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 {5 m/ U; F+ b# F! ~& j5 [4 d {
% E3 q" i8 ~2 w2 ] P8 I( J# W LPSKILL lpSkill = &(m_aJobSkill);
7 T0 _/ w. }+ l/ l, Y if( lpSkill && lpSkill->dwSkill != NULL_ID )
; |4 q }6 ~* [. [5 C1 h {/ _, \' G- @& {" _8 I6 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& {- z9 h3 s* Y if( pSkillProp == NULL )4 Z- @6 p i7 H. l8 t( G/ i
continue;) T1 ^. s8 V2 Z/ l' i6 N/ O9 f0 a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* a3 ~0 d* e3 q4 n( a$ x continue;
# Z- _: J; V9 d @, ^% l* d lpSkill->dwLevel = 5;( `$ G( h, }( ], {+ F& I
}
9 O% h( [: O# L9 d3 u+ n }
3 z0 i' n2 Z$ V' F } F8 [4 N' W" Y& z% ^- ?
else if(IsLegendHero())! i. n+ r# ]7 w5 m
{
z" [1 K& M- i" @8 D for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 A3 A+ y7 c% N {
8 e k% e; [8 ~: |0 N LPSKILL lpSkill = &(m_aJobSkill);
% K+ V. s& v* F% Y if( lpSkill && lpSkill->dwSkill != NULL_ID )% ? b/ H }! I8 }2 \7 f" f3 w
{
# A. [* }% ?. J; p f4 y7 G7 { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 ?4 t/ E& O0 \' _! M0 j5 x L if( pSkillProp == NULL )* z4 h$ Q F+ V8 @" m; ^
continue;
' z B. w* D* H! ^% D8 \/ D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" h' a# S: \ H. L continue;3 F! ]+ U0 k$ |( H, m
lpSkill->dwLevel = 5;* c3 P- x" ~$ b @) s
}
( G4 h3 j8 N4 t3 g6 z% Q2 s }
" s0 U7 ?& D3 s# p) \% Y7 ? }* X% w ]2 W# V, `( e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* d3 Q. I; d6 q$ |" l! ~9 c if( bGamma )1 B1 S4 X E) \5 M
{
* c" e8 B" u0 d# r4 {& g m_nExp1 = 0;
& s' |" |; ^: X }1 f, i3 B, b# S7 G
2 ~ r1 R2 i- t% h ( (CUser*)this )->AddSetChangeJob( nJob );
5 N4 v$ D# M6 W% M' ^' J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 {& |4 c7 c. T: z6 E% K0 [8 c- J( I6 F3 X. I v, @
+ b+ V4 O3 w0 \, F0 o
#if __VER >= 11 // __SYS_PLAYER_DATA
9 Q7 }3 s, r2 ^. X" q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% C( F" E! c1 A$ t+ h8 q5 o
#else // __SYS_PLAYER_DATA& {& s$ f* P; @8 O
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; v' X5 s) l3 d( I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 V# ~9 ?' V& O4 k2 G% ]( ? if( m_idGuild != 0 )
: W. J+ M+ e9 K g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );! y. M+ j) b2 E
#endif // __SYS_PLAYER_DATA
: a' ~9 p3 `3 X- _ SetHitPoint( GetMaxHitPoint() );# E: S7 j% A2 }. d- @/ i3 ~; u% }
SetManaPoint( GetMaxManaPoint() );8 Q; G Q8 G3 G( q! n
SetFatiguePoint( GetMaxFatiguePoint() );
2 I3 f- A$ B" X* a/ ^: C if( nJob >= 1 && nJob <= 4 )) D& T( s1 {3 R/ J8 R
{
* L D# e$ s, \3 X3 A$ Z m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ O: O9 q3 Q# D" n m_nRemainGP = 28;
/ t* {3 ?' C/ U- H2 D8 `. X }( T6 ^0 ` j) k9 r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); A6 |7 [- K" k2 ]
{
7 i8 [2 V& [" d3 u4 q! P q( S& i' I m_nRemainGP = 118;
" a% |- ]6 G. q& O8 D1 H; ` //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; C: b8 c9 B U: m0 N( k m_nStr = m_nSta = m_nDex = m_nInt = 15;7 r( H; z- R& S8 j
}
# ?1 R' a6 @0 K( g; |* Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 S3 y5 p0 Q. }
{
# l- D( J3 Y5 F! X* _ CItemElem itemelem;
/ z* G! o1 r% z" @4 L8 Q( Z itemelem.m_nItemNum = 1;
- _1 D6 D8 D& w2 w- y' u itemelem.m_bCharged = TRUE;2 U3 ^4 b/ f+ Z% ~ S: _5 s' \
BYTE nID;' G/ _7 D: b% n. H" I- ~
6 _' U& \& v- X1 n( Z ?+ S if( nJob == JOB_MENTALIST_HERO )
1 y7 T) y# Q" O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ f; L9 ]) }+ c- b2 R: ^! M
if( nJob == JOB_FORCEMASTER_HERO )# v2 }4 g" n* j6 N0 e$ W+ }
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- R6 S2 ?) ]) r8 A3 |
" y8 |1 }" v* `1 R/ m+ u
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 {7 e1 F M" u% P1 b8 O( R; j }( q) \. g& ]$ D7 M( x0 B0 E# ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 @4 M( o- O- }* k ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ T2 f; T" s1 \* L( X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. n5 ~3 s) M( p) b9 b9 q6 C4 s /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: F2 t% I7 w. ^" ?
( (CUser*)this )->AddTaskBar();*/" R/ h' d5 ~+ p t) q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 j' G/ w6 G* R: |, {2 }6 P% O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! q; x. p& f1 A' ]3 [ ((CUser*)this)->CheckHonorStat();
( D" V. J" r4 Q ((CUser*)this)->AddHonorListAck();
3 @0 d: z- \# [; B) Y1 R* t g_UserMng.AddHonorTitleChange( this, m_nHonor);
' p6 {! s, d2 K#endif // __HONORABLE_TITLE // ′Tà?
; F' v. i6 r+ c$ d4 H$ ?- O: U* c) } }* Z4 i8 p( R2 |- D1 e/ o* }, O9 R. }; j2 ?
#endif // __WORLDSERVER# v; _; c+ I3 F" E B# |6 k
}
9 V4 d5 [4 C) [( k+ y5 [ o( u% c$ S7 x- P/ v2 u/ L( t! D
然后你进入functextcmd.cpp并添加以下
' ~# b$ N2 W; W) X, S7 Q, N t# v g$ h8 S
代码:
! i# ~! h; b: o( i$ [3 _ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ b, t8 B- o/ f1 {/ {( z8 |( W0 ] ?下面插入6 K' m/ [: u* H& J0 {3 Q1 y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; r5 n4 O/ g1 t) _9 L7 L' K% K: n: K( N0 i" r
然后你去
7 A6 c* I1 p8 _6 C* R- ~2 D* [$ _7 ]- [3 G/ K. K
代码:0 Q z* R7 ^, u8 K: F
代码
1 }5 Z1 ]9 h- r& g: ?BOOL TextCmd_ClearPropose( CScanner & s )" k$ Z' i* q7 h4 j% x
{
, J* j& J3 L# N# t2 x. e& h#ifdef __WORLDSERVER
' L0 P7 ?. X2 G+ g9 H6 @ CUser* pUser = (CUser*)s.dwValue;
; J5 h/ i4 W: G7 ^: N3 s g_dpDBClient.SendClearPropose();
: k) Q+ [ h" T% C, _0 b#endif // __WORLDSERVER
# \# y" c4 D4 @& V return TRUE;! B2 ~! ?. g1 {2 p
}
0 H4 x5 k0 K9 x/ B" ^9 F下面插入
8 r- o; f& y) g8 p' \- OBOOL TextCmd_rebirth( CScanner& scanner ): s* e( Q, s& Y9 v8 ^7 ^7 _, _
{2 K; \% o) [8 P) |" n8 X
#ifdef __WORLDSERVER
* `9 q8 F( j X$ P4 y. RCUser *pUser;: P( G' H' B' @5 |5 E. j
pUser = (CUser*)scanner.dwValue;
6 A: `) e. Z! U. p& sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( P% S0 `' V1 c5 K( ~: C* kpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 Y/ R- z" l% x3 \4 l8 Felse
& T7 G! e) g- J* F/ G7 rpUser->AddText("你还未达到重生条件!");9 w3 Z2 n2 [+ J; ]
#endif, B* M7 R0 R. N! b0 k. }
return TRUE;
) E9 V. g+ n4 Z1 _; ^} $ r' w$ `, l+ T! e. V8 s
8 d% v+ ~# A3 v! i# }9 O1 I3 R( d* n
. p# ]0 g( B- _ R
! W. [+ W) v) `0 _
|
|