|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! Z- q# |' h( U6 R
2 ~3 ^' v3 n C8 P7 {/ q: EMover.h6 ]7 R$ j; ]- ?. D" C8 T
代码:, _; m( ^% V' p1 q/ }6 @8 d! K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. e9 ]# h9 Q2 |3 O( q- F+ F6 c+ M
' y, R3 }. t( l7 N下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 F* P8 j% E# G- C3 d; o
8 L! f7 G5 B: M# U+ ~" S$ @& C然后你去mover.cpp添加6 l* S4 e9 E u; j
6 u$ a* H5 D4 M# m代码:
$ Q* l; P7 a& V4 q( ?% a% xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 a/ H4 `0 ~' X. l' ?! {{2 L, E1 W7 B& |2 V9 o
#ifdef __WORLDSERVER1 J3 \/ I, A/ E& V1 ^ P: t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó, s1 [1 M0 A6 g0 J
MoverProp* pProp = GetProp();
$ q5 M" n6 K! e P if( pProp )
3 o' G s9 q u8 i6 Y6 n$ a* V {" f3 I0 l8 K' D# M2 Z" L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; A; b# H1 _# D7 K {
6 J) S. t/ C! |- N9 b. h AddChangeJob( nJob );
$ K" p+ F5 e9 g E+ ^. l" n }else{9 q. v$ G% q: M
return;' c6 l" A: k7 N4 p& K# a/ ?4 v
}: b d+ ~! q8 r' w
int nPoint = 0;/ u2 Z- `/ N3 Z% y: l
if( m_nJob == JOB_MERCENARY )
1 O( i: ~' B6 h: v4 L* o& G# y nPoint += 40;
8 ]$ E6 U* m6 b# _1 v* ?: C+ c else if( m_nJob == JOB_ACROBAT )5 T& g; J g; o+ y9 k" L( S. r
nPoint += 50;/ J3 v% n" D2 @, H& p* m
else if( m_nJob == JOB_ASSIST )1 e9 E6 V4 H. M7 u" Q" v1 d* z& m5 ]
nPoint += 60;( b2 K& e3 I. d0 d0 \' C: q
else if( m_nJob == JOB_MAGICIAN )2 z7 c4 i$ e& T+ O% Q" ^
nPoint += 90;5 N! F) |/ c4 _" M+ q( `
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. e9 t( l$ d0 ?1 p+ n2 c+ C$ ]! H$ Y nPoint += 120;4 R) }" M! w* l' o/ |' z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 z9 g. ?# r. o5 T1 y2 X+ \- z+ o; ~
nPoint += 150;
# `+ V: T- ^4 P& p else if( m_nJob == JOB_RINGMASTER )
) O) T. D- a" q nPoint += 160;0 d F8 l8 W, p9 G4 o" z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& P% }6 ] v6 y& y! d
nPoint += 180;0 I; h6 n7 @$ N g& y3 v
else if( m_nJob == JOB_ELEMENTOR )6 s& w9 F, H/ g7 e: g- `
nPoint += 390;
3 K+ L3 i/ G4 A, e/ E0 u else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( L1 e8 `# o& h/ Y nPoint += 120;% s: ~7 x5 |2 c1 r
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: K5 j, m- @1 b; s# Y nPoint += 150;
7 _" A9 y+ j" H. R else if( nJob == JOB_FLORIST_HERO )
7 d5 ?5 I S& e& w" O2 ^5 D nPoint += 160;. P$ g; ?# d4 d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( D; u: M. }2 T# A6 h( K/ `1 L
nPoint += 180; k! X! H, @+ I( i# Z, q
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 q8 Z! _9 @0 j7 l, f1 y8 i( v1 Z nPoint += 390;% |/ ~5 U6 t5 [3 P* n2 x, `% i
* `/ _& I2 A: e6 W3 A AddSkillPoint( nPoint );) @2 p( B( c% \' @ C
m_nLevel = nLevel;
) I) C" h1 h6 l6 w! b
5 O* b- s! T' d- r/ Z4 [ SetJobLevel( nLevel, nJob );
* y: r4 K u$ D/ \# |" E0 ]* n m_nDeathLevel = nLevel;( o$ }4 y# A5 K. D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 u- y- Q' [$ c# q+ F5 R( M if(IsMaster())* u/ k( G& N2 x: `0 Z$ t. L' e- f
{8 j6 v5 }+ x% J- I2 X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- w4 e, x1 l1 U) h: ~" R
if( nLevel > 59 && nLevel < 72 )
* y3 L& I1 {+ @8 [) B dwTmpSkLevel = 1;
8 F+ n+ I3 a c: c else if( nLevel > 71 && nLevel < 84 )
* @: s" p/ y+ N- |9 [ dwTmpSkLevel = 2;
2 j- _. ^$ Y0 e; s7 [8 ] else if( nLevel > 83 && nLevel < 96 )
6 u' j1 M$ ?1 ~3 a. V! _ dwTmpSkLevel = 3;. I" A$ E' b2 h3 o! U) x
else if( nLevel > 95 && nLevel < 108 ) j$ a, ^0 u2 e; B! U' K# N! q
dwTmpSkLevel = 4;% c7 e' r5 |, N( X: X0 H( p
else if( nLevel > 107 && nLevel < 120 )
. Y' Q* E& q- t q8 A9 W dwTmpSkLevel = 5;3 ^4 x# \; E$ H. a& J8 J2 `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- P7 ^7 a9 [6 ^5 ]5 V {
, i5 P4 d" q# P4 m( O$ O& N LPSKILL lpSkill = &(m_aJobSkill);
5 B+ N+ P- O$ h( i$ T2 R if( lpSkill && lpSkill->dwSkill != NULL_ID )' v# l, m5 H6 w+ }8 h" d
{5 `) e* ^1 O( |+ U" ~7 q4 ~" U T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 K; M" g. K! t if( pSkillProp == NULL )* L' z% y& }* e2 _# \* Z
continue;
/ [1 F( q* \2 P7 d Y* L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
{* K# n1 ^* N6 j continue;( O d7 q- ]: Y. |4 d
lpSkill->dwLevel = dwTmpSkLevel;7 H) n6 E, M/ S
}9 T7 e" n6 l4 c( N. v9 F! _, R
}
' k! C3 y& t- n1 A3 Y }
2 \: f9 i! W9 \8 K else if(IsHero())% B0 i' h; u V0 v
{
# N" u' P. U4 f4 n for( int i = 0; i < MAX_SKILL_JOB; i++ )
) ]" ]8 a1 M/ E0 z3 H# F+ W4 w, O {
" y+ g/ o4 y+ a6 t$ u7 m# G9 j3 U LPSKILL lpSkill = &(m_aJobSkill);
$ H$ c0 X0 P* }! J5 U( z# }" Q* ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )' G3 @+ a6 Y4 G% }7 y" T1 b, a! _
{
$ ~+ V2 s y( ]0 H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 @2 [+ r+ @! a& c' H if( pSkillProp == NULL )
& H& `4 d7 P, R' C% v continue;- D* c/ N y2 C1 s! _' y2 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
D2 ~( ~6 f- _% [: C continue;
0 t% X7 S S( D+ n p/ n; c1 k lpSkill->dwLevel = 5;
; ?- q# q* |0 B0 D }
8 j4 Q0 ]9 x9 A }" L$ n4 D$ u* W
}
- P$ J. l# E! M9 Y" R& M else if(IsLegendHero())
' s- C- E. p7 H9 D {% C- G8 s" Q7 f6 E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : \! B" N/ a) A+ ^- ]
{
9 J# I) p( ]' @$ @3 t& y LPSKILL lpSkill = &(m_aJobSkill);
0 v0 Z4 Z- O2 \3 h4 R# w% _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 @/ m0 w, b# }9 d) E: h {
* ` G9 u9 `& e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. @. b$ M1 K7 N$ a/ L; P if( pSkillProp == NULL )! G: J5 s& h& R; C& e
continue;
" g9 k2 [% i$ g( u/ V7 J( T) u a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 k) h' T0 I! ]4 D. ] continue;% K2 j c3 R, G8 p( C5 K2 b
lpSkill->dwLevel = 5;1 F0 `3 `# J! E
}
8 V" y: D/ i' V& t" ?8 y }
! f5 T( Q: |0 f* ]" K }# A, C! B; p3 I( B. c
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 `) H* H3 u# i! K+ n
if( bGamma )$ M/ M+ e% K0 b; G
{
5 u$ ^9 g5 N5 c e9 z3 z m_nExp1 = 0;
+ @% \& T: ^) c1 d }
$ U5 S3 Q# B; \8 y3 y
0 C: Q5 ?6 B) g: {' Q ( (CUser*)this )->AddSetChangeJob( nJob );/ a# E* }' W/ d( U! {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 V/ @; A8 z8 J w" w0 k* m
1 \+ F& m: a+ X1 [7 P( E: N0 M7 R% `4 ~* L2 k7 P/ E0 _2 k1 K
#if __VER >= 11 // __SYS_PLAYER_DATA
, `4 K6 I7 U6 c( @& Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 i0 W6 }5 s7 u- M( \5 t#else // __SYS_PLAYER_DATA
" u6 }6 B+ a% R+ H8 R2 g: F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 ~+ \9 W) D+ H% v8 k5 q" X m g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 B& }! i/ ?* w) G4 g if( m_idGuild != 0 )8 E ^) c- L6 c! s9 g3 T; s: E1 D/ x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ l+ M: m- C3 q0 W/ `. n7 h4 d; \
#endif // __SYS_PLAYER_DATA1 g x' X4 {. c: ^ {: Z1 J2 ]
SetHitPoint( GetMaxHitPoint() );
5 @- j2 ]7 L6 g; v SetManaPoint( GetMaxManaPoint() );
& N( q- F- |/ T' G1 A0 P* I5 a) Y SetFatiguePoint( GetMaxFatiguePoint() );
, Q, P5 v/ h; \7 X if( nJob >= 1 && nJob <= 4 )
% D4 g/ T; \ H {- s( ?6 g, A% Q' C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( K& \' s& z; {8 z m_nRemainGP = 28;
) @" R/ r6 { j5 w6 M+ H5 r }# ~, N5 C- D P9 X0 ~: U, K2 ]; X
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 e& n" G5 R' e4 G- U {
" O: m$ Y. L' Y m_nRemainGP = 118;2 p! }& ?+ m8 w5 y$ f! f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 _+ t P7 l, v- {6 T m_nStr = m_nSta = m_nDex = m_nInt = 15;
# R" A9 a; K& L: n. O' P& P& `+ f/ h }. H; u6 {2 R, c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* j% z6 G1 D0 x2 v6 q" U
{3 f8 x6 I9 @+ Z" @
CItemElem itemelem;/ `& K' W, X. m- o- `* N
itemelem.m_nItemNum = 1; P2 d! ~& a" d# T1 |- ]' e! g
itemelem.m_bCharged = TRUE;
2 @3 A; w' j+ m, J BYTE nID;
* |( v+ [# `; N/ i" E6 S6 T, V& R/ I/ D, d0 S
if( nJob == JOB_MENTALIST_HERO ); Y/ R: F6 Y' f8 g9 S/ K; E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! |% Y# Y8 @4 g6 h2 c1 K' ]
if( nJob == JOB_FORCEMASTER_HERO )
# [( ^; a( r4 @2 P' }6 i' w itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
O! h% k2 c4 {' {: [; K L2 S# k" S8 M2 \6 n# g% I
( ( CUser*)this)->CreateItem( &itemelem, &nID );: I+ J6 A! \+ M
}
1 w7 i5 c" G8 ^+ Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 p. \. `# g: a# C; y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 O# F, ~. h$ G( Q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& `/ X( y' p; p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# [% H( n1 {* {0 }0 p! ~' { ( (CUser*)this )->AddTaskBar();*/) b5 U8 m6 o+ z# B$ z& z- h6 z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# f* B8 O' T3 e) D5 o; j+ G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* u3 U; y8 ~6 o% U1 x5 s4 k A3 O' A ((CUser*)this)->CheckHonorStat();
" Z$ q" o9 T4 A& S) Q) @- c3 a ((CUser*)this)->AddHonorListAck();3 E. v" A: d8 Z0 h& |3 k
g_UserMng.AddHonorTitleChange( this, m_nHonor);& Z! p8 S& z" r L& Z5 G
#endif // __HONORABLE_TITLE // ′Tà?. |0 Q9 G+ @! i6 l5 R
}$ ]+ v* S5 Q) K
#endif // __WORLDSERVER! p' w$ a# d/ K! X) Z" ]$ S( U
} ( m8 l" \4 G3 _4 s9 E3 F+ n1 a
8 y$ B. ] _: i9 h4 w) U
然后你进入functextcmd.cpp并添加以下
; a8 ^4 ]! F, u7 a/ h) x6 H; B/ z$ z4 D$ a8 L7 R* j' s
代码:
- M1 S; B8 g) t2 H/ lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 o u N i' ]" V5 W( ~下面插入 b7 \& Z4 X4 z; g7 Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : X: t: m: O" l8 E, \
% Y9 M9 }. [7 N" {' O9 f3 ~8 O然后你去6 P2 e" O1 F9 x! \# c4 t
, H5 [$ J) _6 W% X, j4 f% }8 p: T* \代码:
4 U# Z! N5 S0 ^7 P; K代码! ?- \; _' U& S& ?4 N! F$ |
BOOL TextCmd_ClearPropose( CScanner & s ): a4 o; a8 \3 s
{. e( N# @' y7 h2 |: |; i0 R5 d: Z
#ifdef __WORLDSERVER$ v: \* l) u( K# x+ |
CUser* pUser = (CUser*)s.dwValue;" J4 M8 z' o2 A
g_dpDBClient.SendClearPropose();
1 b; o3 J* A7 ]- V b& U; l#endif // __WORLDSERVER9 w6 y# o& X. _. p' Y
return TRUE;
/ w5 t! T! R! C6 R/ l, r}% d0 P- V/ G6 p. _1 U+ v9 Q+ ~0 e5 |
下面插入
2 J: g* ^% s8 g" X* a' WBOOL TextCmd_rebirth( CScanner& scanner )
! V$ ?8 @( m8 p{
. E& V# @* N% l- n( C' z7 l#ifdef __WORLDSERVER7 r( p6 o2 T% B
CUser *pUser;. p( v# W! r4 h$ z* x/ G7 B/ [
pUser = (CUser*)scanner.dwValue;; G2 {" O. W) Z% H2 \' e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 a X: J8 o) G! G4 e! p. C* G, h
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 h& a; G* t7 y2 N' G5 i. E2 {- W: G
else
$ A7 k& ]$ [/ I3 Y' @; I H' \pUser->AddText("你还未达到重生条件!");
& R# Y; M1 i) U! D, R#endif- t' {4 }2 t1 \ x1 A$ f1 L
return TRUE;7 @* R% {2 X a( E
}
: w9 U H H7 c4 d0 a( E
2 Z% @% {1 v- [" |: P& b+ W: J1 C+ m% V: e: K/ h
; o$ g% q) C7 S0 q! |
9 s3 d% K9 b! @& i+ v6 g |
|