|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! X) D5 r f4 d1 o
% C6 ~" e" o; u' U" b6 ?) x
Mover.h
- z( X( ]* d& G3 V0 V6 F代码:5 t$ b/ P; K8 A: K1 A' L8 i% d
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* J" O) e4 h0 Y2 D7 p% S" Z' i
5 g+ R. P. G$ B% m下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) Z6 \4 X2 T1 o( L' U0 V- }1 D; f, j' e5 B! W
然后你去mover.cpp添加( e) |7 A. s8 n
: s& p8 Y' B4 |% j) R代码:
4 t. j: { D8 A1 {2 A: Mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 G! n& n$ Y; O1 I9 F: L/ `& u
{
' I3 T) h4 Z4 d# W+ I) N' c. e% k#ifdef __WORLDSERVER
/ T Q4 S& {# C0 P // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 R5 a/ i! O0 N( d3 Y- l& Z6 m
MoverProp* pProp = GetProp();
/ K s2 k5 E' A R7 o' y. p if( pProp )6 r7 _3 }! u c0 G& A/ T
{* Q8 T$ ?( E1 s# J) \
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ [3 p6 `0 l. E- G {/ F0 O' j S* B
AddChangeJob( nJob );0 t1 i f5 s5 B8 f* r1 |
}else{
$ f/ S: B( O. X( a0 g9 b, W; f return;
. [* j! ?* H% t: D1 U }% b/ U3 Y$ W4 C9 |/ l: h
int nPoint = 0;3 s2 i6 l4 ]# f
if( m_nJob == JOB_MERCENARY )/ s( ]5 O' G& T2 M& j7 X% A
nPoint += 40;! j9 h3 z0 q! {1 [/ P$ _0 J
else if( m_nJob == JOB_ACROBAT )
2 `" ?! O. Y* h0 b/ e* K6 i @5 V nPoint += 50;) w( y3 f# I+ X9 p$ J; A
else if( m_nJob == JOB_ASSIST )2 a) i' [% D4 g) W R) Y
nPoint += 60;
0 R; o% r2 ^0 K a) }, H else if( m_nJob == JOB_MAGICIAN )
5 b# ]( X. U5 |* C0 s* A nPoint += 90;
4 d, e) r* B! m else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ r: ~( o: q8 J6 S0 U
nPoint += 120;" X8 i C3 x4 [, R& J5 K' T9 g* }, R
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, A% D3 Q* N1 t2 d4 ?: v$ q nPoint += 150;
/ ^; j3 I9 }1 n; j; w else if( m_nJob == JOB_RINGMASTER ), g0 s7 m$ a/ Z7 n% }* u# l
nPoint += 160;0 d! Q7 q& `$ `7 h, s
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ m- q! O& D$ c
nPoint += 180;! l0 ~# Y2 g! S& X8 s
else if( m_nJob == JOB_ELEMENTOR )9 L t3 }; [" p0 y3 y
nPoint += 390; L( m* M2 y* @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 j/ A) _5 K0 J0 J, }4 p0 Y nPoint += 120;
3 O. X* u' ~0 y3 @+ d else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 e6 G" k8 h' ~3 G nPoint += 150;
. z/ D- V8 S; Q! f/ a else if( nJob == JOB_FLORIST_HERO ). {# C* d9 r4 g2 d% E0 z
nPoint += 160;
% d6 v6 I9 Y1 ^0 p0 F. d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ W. T& E# s2 U* E- D nPoint += 180;
. _6 \! S. W& P6 @9 g& ` else if( nJob == JOB_ELEMENTORLORD_HERO )
3 ~/ d) J2 u4 y! G( J nPoint += 390;
! o0 p8 o& G- B M* b1 T4 F# L% ?0 i
AddSkillPoint( nPoint );% {- k0 ?0 ?( Z7 n L/ r0 n3 W0 W
m_nLevel = nLevel;8 R" ?) `; a2 ^
3 [- I6 ]* `4 x* b* M
SetJobLevel( nLevel, nJob );; f/ @/ R& x: `8 S8 a7 Y8 }8 s
m_nDeathLevel = nLevel;
1 g; J3 D1 |3 S4 r1 c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 u1 [3 ?/ ~1 B- M3 ? if(IsMaster())8 s2 R7 \) A2 w% \
{
! \! h J! ~9 K/ x% D% ] int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; K3 a$ Z9 m: }' ~ if( nLevel > 59 && nLevel < 72 )9 ~, A4 g+ L% G0 x9 S$ Q. I
dwTmpSkLevel = 1;+ d" |+ y5 X* o, E6 k/ z
else if( nLevel > 71 && nLevel < 84 )
0 t) C3 _9 q4 q \$ D7 X" Z dwTmpSkLevel = 2;
0 V2 d4 h5 D$ q% ^+ D% M else if( nLevel > 83 && nLevel < 96 )
6 C+ r) C: @8 @, m+ `& | dwTmpSkLevel = 3;( r9 A2 W( @5 X2 b1 |
else if( nLevel > 95 && nLevel < 108 )
1 e- [# v% w4 A; N, A dwTmpSkLevel = 4;
2 `# R+ V3 E- G. ? else if( nLevel > 107 && nLevel < 120 )! `. I1 i- T8 Q8 A, l) Y- M" A- s
dwTmpSkLevel = 5;
% L' f( f3 G+ K for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ M0 C0 J. \: ?7 T {
. l' s% M( z$ H+ { LPSKILL lpSkill = &(m_aJobSkill);) h. d( p% P) q# K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. r2 }' h }/ E4 Q {& L4 b F: y& ]* r- _! i# A, J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 m& e! Z8 F- Y2 f, g* ?
if( pSkillProp == NULL )/ _6 `+ k+ s9 k1 N1 W f/ B/ l( O
continue;8 m9 _. C6 B. H; G$ I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 {! Z2 X: `+ Q5 K
continue;, L' L$ C# y* C* s. x/ |) d
lpSkill->dwLevel = dwTmpSkLevel;4 `. d, w/ @9 Z: c6 T8 Y' k
}% I1 G, e$ v, K" v- `4 Q" O
}, q1 ]$ p: y& E, \" L. f" |
}1 E v8 `" v# Q/ c
else if(IsHero()), c. K6 {* C; X& ?$ x* a
{- e' s% \; n" C+ B0 j6 w! B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 ]9 Q; A" j; [) G/ j2 R2 Y- j
{
( D) Q( \- _ Y! W" u LPSKILL lpSkill = &(m_aJobSkill);
5 p+ b4 z8 X! A1 d7 h if( lpSkill && lpSkill->dwSkill != NULL_ID )% \; i2 U! ^/ F" _5 n/ ?
{# t3 e, u3 t7 H; F1 j( G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' a; Z5 o% T7 O1 D9 C5 p- k if( pSkillProp == NULL )& `/ o6 h8 U% K7 u" a
continue;
; P1 \" E& [( p* x9 _/ y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ {/ K; N8 x: i continue;
& g2 ?* R" J, ?0 E lpSkill->dwLevel = 5;
) ^+ Q; N4 k5 f% R( S5 l }# Z; o: { I" K6 F+ R
}
7 m( a8 h8 w. @+ b# I4 t }
# O: G. `: E& z, [! X+ k, q else if(IsLegendHero()): a- p+ G' L3 @% j& E% K
{
' t5 D- @( j4 s% F/ F, J for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 F$ @( w- y* n0 Q, l6 B9 ^ {
: a* o* Q3 p. O' c LPSKILL lpSkill = &(m_aJobSkill);
- X$ B! P' f2 I1 x# ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 F9 U* _! f: @) p7 G4 U/ g {/ n2 ?/ ^5 n4 d& \1 D1 Q y! H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 `2 k5 z. X( N% O! q: ]2 G
if( pSkillProp == NULL )( A% x( U3 N* z3 t
continue;/ ~0 l; f) C, e9 O: Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# E+ h& M+ X& b8 X
continue;6 u# Y8 X; i( W) N0 s) t& {
lpSkill->dwLevel = 5;+ T( U$ f! ?2 u% M! b7 P- n5 E+ l
}
. Z2 t+ y# f4 h! H4 E6 X/ c }# ^+ p6 A- B) G1 M% _, U
}
3 Z! n- R! ?+ s" O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. p( ?6 s) }, C# b" |4 y- [/ K if( bGamma )* D4 n( R- }* O7 Q4 L6 ]/ L, B
{: C) \- R* w W+ ~* F
m_nExp1 = 0;
$ y- |& n" W8 b' Y& i- c }
. p6 E! { [2 N1 c b4 y. Q' ]8 X
; q+ @% y8 B6 T$ d( h( f ( (CUser*)this )->AddSetChangeJob( nJob );
( `6 L+ B6 W. z7 U7 ]" H% O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 r) |/ O4 H; g
' L% Q$ \) B% |: q6 V0 A/ g. |- e2 N* }5 v* R; o
#if __VER >= 11 // __SYS_PLAYER_DATA
) a8 { x% C0 u/ E3 H. ^ N g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 e7 d" L) B! ~
#else // __SYS_PLAYER_DATA
0 [1 I- q, c& }2 `( M- [ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 n0 N2 X$ F* S4 ]& W! N7 q7 }- r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 h# T9 ?; ], K# z9 X if( m_idGuild != 0 ); p9 i, g- g! n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 o& N; E/ C( o3 x#endif // __SYS_PLAYER_DATA3 R7 Z1 J# A* M/ N7 X
SetHitPoint( GetMaxHitPoint() );
" j4 h. J: p+ x. F: T SetManaPoint( GetMaxManaPoint() );' j1 j4 a# Y D+ P8 q/ q8 Q- G' I
SetFatiguePoint( GetMaxFatiguePoint() );
4 T2 y1 u1 U) k if( nJob >= 1 && nJob <= 4 )
; w) f" f7 |# k% @% g {$ R* a+ a6 o8 m7 O* W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% s( o$ H9 l; t& E5 {; ]$ [& k m_nRemainGP = 28;0 M% y& L* V2 \' \% n: N3 u2 q0 w
}" ~& y4 _1 F! p& G/ x- i. Y8 j
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 v! O; O7 \0 ?5 [
{5 x# |4 C5 p& s+ S8 J" Y
m_nRemainGP = 118;* y* x4 a( ?0 g! Y/ x# X* R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* y0 ~3 ]# g, |$ K m_nStr = m_nSta = m_nDex = m_nInt = 15;
& J0 G2 `; w c+ H* f7 G* q }: @& `: g2 m4 @; ~! l5 }. S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 q3 D4 u: P3 K5 Z) H* E
{$ `5 h- U4 H3 n0 K: d* c
CItemElem itemelem;
! I. M+ ]: y( J) x itemelem.m_nItemNum = 1;
& N' x) P i! U1 }- z itemelem.m_bCharged = TRUE;
1 B. I7 l7 z( y5 Z$ [( M# y BYTE nID;
0 M# f9 [" ?$ |( P" b( {# `" f+ u: l" I/ \: r
if( nJob == JOB_MENTALIST_HERO )# O J9 \ { A+ W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ ?" d# x( }2 E# U! g8 [) f" {0 F if( nJob == JOB_FORCEMASTER_HERO )
; u6 w5 v& e' h itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 C% N/ _* B; G, V% B% ^. x- _8 p$ {; q# H- C
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 a! i7 o/ d5 z. k* e: l, q }# `% r5 I2 }: F/ Q' j; ^( B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 F6 L8 b- `0 x* E; m ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* j, v0 w2 x+ F) j% D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 s2 X( ~ z/ U. g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# Z8 u: W% a9 H1 ]$ a) ~+ Y! `
( (CUser*)this )->AddTaskBar();*// Z1 f" o% O0 ]. l% |
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* [0 r( d8 J1 @3 R; d# F8 ^
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 T% H1 V2 B" |- F
((CUser*)this)->CheckHonorStat();) \5 X; x+ H' l
((CUser*)this)->AddHonorListAck();
- @1 u* x$ C. \. l( ^+ j5 R' _ g_UserMng.AddHonorTitleChange( this, m_nHonor);! U. Z$ ~/ g) P: c$ B
#endif // __HONORABLE_TITLE // ′Tà?
5 A. Q9 I7 ~+ r" @# D% S7 Y }
; J2 |$ T" Y/ u#endif // __WORLDSERVER
9 e8 X2 n7 w5 B) t) }} 8 ~' z4 g$ s/ P# i" E5 D0 k
; j: q' m9 l' Z7 C4 {; j- I
然后你进入functextcmd.cpp并添加以下" [' Z3 D; N" a9 }, C. N
% M* v7 o. d) i+ T' [
代码:
3 t. u; J/ q0 [( O: yON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 c! c! t. N7 }- u
下面插入
; K8 f" V+ c2 J/ ^) MON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. M' l0 [: x0 E( d
0 U( b% }( l$ \然后你去
- @% p4 t5 |5 }0 j- B0 D8 g, s% w- o0 D/ i! c
代码:
9 p3 K* \: G9 Z) x/ w1 V代码/ m% c9 \* g* |9 E) n) s* i- c: g
BOOL TextCmd_ClearPropose( CScanner & s )% _3 s1 u6 n0 a9 D
{
% C' r# l) |8 m a# Y. G#ifdef __WORLDSERVER' ]& a5 B/ b* e2 h A, p
CUser* pUser = (CUser*)s.dwValue;. W8 E$ h) m8 r
g_dpDBClient.SendClearPropose();6 r- z) V% ^% \8 ?2 m( J6 r
#endif // __WORLDSERVER
2 k# j2 r9 G6 `: [; o3 M return TRUE;
4 P6 a8 \3 Y0 e/ |) }0 E}
, Z8 |' B' o/ w3 B9 P# G下面插入
$ t- @, B9 I1 I# N& HBOOL TextCmd_rebirth( CScanner& scanner )
9 I3 b" P5 Q. [+ _{ A3 C$ K- P2 q8 R2 y- ?) z
#ifdef __WORLDSERVER
) _/ }$ m" F5 x; L8 Q+ B: M1 |7 dCUser *pUser;( d& p o6 z+ l/ X4 q: p# z. l
pUser = (CUser*)scanner.dwValue;
& [6 d* X4 @! ?' `0 c- ~& w# Cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' B' O4 w) z/ ^1 w4 v) m) r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( Z5 I3 ?8 q7 z& y8 f4 g$ q
else
1 h/ i$ r( }, S+ {* FpUser->AddText("你还未达到重生条件!");
( ^& M+ z$ J& k' @#endif
2 O+ z; L ` `3 R( p* o) greturn TRUE;" H4 n# [- C$ r( ^6 S
}
& d, k" {! F& A3 z( M7 W1 n# z: Z5 \* ~8 K4 d0 L A
+ L: d- z% C; m
: y3 f2 _2 P$ Z$ W/ b. j$ E& M7 H3 a: C9 E J8 b! [& W
|
|