|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
w4 Q$ p8 |# I5 h4 K9 j# d" w$ S! ?
Mover.h8 _. x$ U+ _( _9 l: c
代码:
+ k5 Y4 I) S7 o# t! Z8 Q2 }6 I( y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. H$ ^* P" _! o4 P$ H1 [
5 ~' Q- M* L/ p; u! l6 d下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 O/ H8 E7 f4 A& h% z
! B* x0 b- f: a: k' P
然后你去mover.cpp添加, Y$ f: J0 k5 q/ X" B" n% f% A: O
. w, z. L2 e2 I8 i s" Z9 u. @代码:: |/ o6 b$ o- D& J
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 u' U; U; `3 L. S* D{
$ @) }# T) f2 A#ifdef __WORLDSERVER8 G$ O- f6 g- @. e0 s1 t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( C6 n+ J' j6 c+ i! l8 f
MoverProp* pProp = GetProp();. t/ w, [6 i: S. a8 S8 b* t
if( pProp )
# A; r1 _1 o/ S$ ~# ? {" [2 e8 G7 |9 F- J4 G. ^6 O+ x
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* c9 v7 |3 t6 |4 B
{6 E8 J2 k( K7 _% ? o! Q) k6 V. v
AddChangeJob( nJob );$ P/ C: R; c/ b! \+ [( F' K$ i' U
}else{2 N$ q+ H+ r; v
return;
) J8 C9 E* v: u$ u; E& |7 X$ j }
% m6 j5 F, g# {6 f0 ~ ^ int nPoint = 0;3 V( C5 q" r/ l5 a9 N
if( m_nJob == JOB_MERCENARY )
$ N7 P# B# S6 v nPoint += 40;4 m5 p: |) z8 C9 M2 v+ g
else if( m_nJob == JOB_ACROBAT )
* ^8 f6 Y: u& |/ U3 l7 G nPoint += 50;
/ U7 H8 H" T: _+ j: v( R else if( m_nJob == JOB_ASSIST )
) O+ k8 a4 a; p, I9 r$ T) j4 N! d1 b nPoint += 60;
0 J8 F1 M& Q0 K" B L else if( m_nJob == JOB_MAGICIAN )
9 W3 m& d0 S& ]% x# \0 S( [/ m- V nPoint += 90;
7 ` N) _% _! R3 [0 H% @' N else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) t! M/ h( ]1 h, E
nPoint += 120;
, l5 [5 F( X8 t2 _ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 W \' _1 |+ M- f J% e* x nPoint += 150;
, Y0 M$ }% G& N5 ]; F' B% V else if( m_nJob == JOB_RINGMASTER )- s+ m7 T9 o5 m2 _" w; @
nPoint += 160;+ L1 ^7 ^& i8 C4 u2 \& p& D
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 ~2 z3 V p5 K7 I5 @9 k" g nPoint += 180;/ E" R5 c/ c2 f5 E- L
else if( m_nJob == JOB_ELEMENTOR ); H" \- z$ S* ~) m5 P% V3 X
nPoint += 390;& S9 K! Z7 Y( n! G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), H/ a( X( D$ y$ }) U! m1 `% [
nPoint += 120;5 `+ W1 \" J0 _- a8 [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& _5 G+ F: }3 A3 A& D
nPoint += 150;8 M+ h: l w. P1 @: D s8 N( s
else if( nJob == JOB_FLORIST_HERO )$ g1 c5 k D6 h; q+ ~. p
nPoint += 160;
8 X/ ^; [, i& C) Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ y3 U/ K' C& y& S8 d; E nPoint += 180;
" }0 |0 A& U0 H+ Z else if( nJob == JOB_ELEMENTORLORD_HERO )
( k) [2 s# S) H6 u% z- W nPoint += 390;4 P9 B/ G# l. y, r% S$ J
1 @/ m( m+ r! Y4 s+ Q AddSkillPoint( nPoint );
( F1 l: x) @" c1 s! P" n m_nLevel = nLevel;# S/ n, r$ D& e+ U
6 |& X$ a/ t! j3 m SetJobLevel( nLevel, nJob );
& C" V$ D R- K) [/ C q& _ m_nDeathLevel = nLevel;
( Q9 q2 n8 f" w& ]" c! k#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; L3 B, H& D& T& J4 G/ A
if(IsMaster()): t$ B4 ?5 e( P
{& p" y* c% e# D
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 U9 n( b$ r3 Y1 u if( nLevel > 59 && nLevel < 72 )/ h+ {$ [) C8 P* z4 m! h( Y
dwTmpSkLevel = 1;
5 e7 q# m8 q) l/ \* k) i1 ?# [ else if( nLevel > 71 && nLevel < 84 )
9 g1 ~( h& v+ @+ r$ A! F; _ dwTmpSkLevel = 2;; P/ @* j) H- Y. T, b# b5 u# T
else if( nLevel > 83 && nLevel < 96 )
" r# r1 U2 a! V( J8 c6 r dwTmpSkLevel = 3;
+ d0 b+ u2 {- x6 A else if( nLevel > 95 && nLevel < 108 )5 _' _/ K% J% n5 e9 S
dwTmpSkLevel = 4;
; Z9 O5 X5 q' i$ C* V) B else if( nLevel > 107 && nLevel < 120 )* G; Q& A! T9 q5 ^4 i5 A, P
dwTmpSkLevel = 5;
; c F- ?' j+ F7 U+ P for( int i = 0; i < MAX_SKILL_JOB; i++ ) / K4 I# E ^7 R* |4 w* R/ k4 ]
{
/ c' E5 f' v3 l6 ~ LPSKILL lpSkill = &(m_aJobSkill);+ M, C3 q" f! m2 a0 y% w+ G3 N; @
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 @* c, t1 d1 o0 ^% r* |2 v2 @
{
* f7 o6 t( G! H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * t; E8 O9 m2 ]7 f7 X" V. G$ N
if( pSkillProp == NULL )
3 W" c$ e8 m: Q( R continue;
9 q; p9 {3 Z! E, g4 X7 S3 e! D. n: ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& x( K% r' L7 t% X& t; } continue;
' v D3 s9 g2 I$ l; R! Z0 y lpSkill->dwLevel = dwTmpSkLevel;: M' c9 d6 f" w8 S3 l, }' ]
}
5 l2 ~# O) O2 u- x9 e) w7 A }
7 i7 n4 y( l7 @) e }( y7 }9 `+ s5 X
else if(IsHero())# i# J' w/ D5 @& L. q
{: f" v" y0 Y$ n5 m0 c6 K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. x( Q3 A( c% ? I& q* h. O {
* m' O( X* {7 i& j4 | LPSKILL lpSkill = &(m_aJobSkill);
$ v3 Z& n& M) ^) ^! ?( [, ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
' s3 J, l0 B6 p5 o3 P1 q: V+ D {6 r" s: [0 x! w$ o. g: w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / ^, r. Q. t; C4 x: F7 b0 v
if( pSkillProp == NULL )
2 l6 E) V$ Y$ u& a' ~ continue;
* E a" t2 U( K. y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- ], W; Q1 k: z, r; T& y6 \; i, I continue;# B3 I K3 Y7 g g5 B7 d
lpSkill->dwLevel = 5;6 o) m# p6 C. [5 n Q
}
! m$ I6 Z3 S1 I }
. c# c) U6 {) ?8 E* e! P* p }) ~/ v1 v- O/ D, J
else if(IsLegendHero()); r% P8 f2 G, U6 Y( Q* `) c2 R
{
& C$ @6 g1 s( u3 g' d: ]3 Y& o) [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 ~9 ]) {/ t: O7 S7 R' a1 G) w
{ % R6 V3 [1 `$ b9 m
LPSKILL lpSkill = &(m_aJobSkill);
9 H t5 ~" E$ D: Z# c7 `9 k* Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 l8 C2 y) E3 K8 F2 E# y {
- h* u. b+ @( h3 P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ W8 P6 A6 N u6 L$ I2 W' ~% }+ { if( pSkillProp == NULL )* \7 `& ^! j* i1 u8 v) W
continue;
6 ?7 d7 j" ]. K% i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 j5 |4 g0 j' A; [: {; y continue;+ L2 `( M5 [' \& [
lpSkill->dwLevel = 5;. z1 B& _) X) _, M! O
}
* o1 @) \5 S4 J2 a }6 P9 s, B+ p' l7 N3 U
}& T# R H! k9 T0 ~! }
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; S8 z4 n& j* G' V if( bGamma )8 F* E6 K% l( W. F
{
7 ]0 m2 \ J* `* y. @4 ?4 o m_nExp1 = 0;; h5 Q/ k$ T( q9 @/ S; u: m
}
2 p! e9 \0 E7 J. p; n
$ E# i) q8 u) B( x! w R3 ~. U ( (CUser*)this )->AddSetChangeJob( nJob );, J$ t( ?6 }8 ?' ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; A7 B, J; g2 v% \9 ~3 w/ W( e2 y. c; E0 c6 B3 G
& {8 w( D' ~8 o' ~5 {3 B4 U) |#if __VER >= 11 // __SYS_PLAYER_DATA
4 }( B6 c' ]# W; X. z% X9 b/ f1 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 E: [5 X+ f! |8 l/ a- y: [3 S
#else // __SYS_PLAYER_DATA) \7 ]- Q9 O2 ^# p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* C' P6 ^, ^7 k1 b
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. J: ?7 D! v/ r# e" Z# U if( m_idGuild != 0 )$ I+ ]- P; ~* K: l
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 B1 L) X9 u) V0 I
#endif // __SYS_PLAYER_DATA
3 N2 x' [+ f* g' S SetHitPoint( GetMaxHitPoint() );
9 w- C3 k' t3 L- @* \ SetManaPoint( GetMaxManaPoint() );* {# X1 l! s# B- {( B/ c
SetFatiguePoint( GetMaxFatiguePoint() );4 Y+ {/ R7 P* S0 }% Y4 M
if( nJob >= 1 && nJob <= 4 )
7 w: o/ q8 |1 h5 o' [6 X, w {6 Z& G. j4 G3 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ c/ o5 G$ q- l' ]# G$ b( G4 a
m_nRemainGP = 28;$ s( z* ~; @; w6 a
}
- E; p7 p6 U u5 g0 I; m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ S& B3 \& \# s1 t9 b, D% t# _' H
{
4 ^- ?/ ~5 S0 \$ X* S m_nRemainGP = 118;
( B% @9 h w# X5 C0 G$ w8 X1 ] //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# N: R" r* T8 J+ C2 d m_nStr = m_nSta = m_nDex = m_nInt = 15;$ o' K ~6 T; t7 c, y1 E* y" ~$ q
}
8 t0 |$ H$ T+ P4 F; _5 Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' ]7 g2 [0 D( a/ V) D7 L {
5 k0 n3 Y, e( x$ n1 w CItemElem itemelem;+ S( ^9 L! X: f) z
itemelem.m_nItemNum = 1;' J% P5 w& h) ]: K% b7 ?" Y0 @9 o
itemelem.m_bCharged = TRUE;8 B* J: m6 j% K
BYTE nID;: M9 H* y/ L% ?' \
) x: x: {2 h& V) ~8 s
if( nJob == JOB_MENTALIST_HERO )# D- a$ `8 I d [) |; q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 a1 e4 ~4 N# v; T8 V; i
if( nJob == JOB_FORCEMASTER_HERO ). ^9 n3 B# b5 g5 L. W5 S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% l+ f" H' z3 H" [
' G. I2 T3 J8 I3 O
( ( CUser*)this)->CreateItem( &itemelem, &nID );6 y2 [) `& H# x _, U
}
- z- f2 T! i; y% i5 L/ O+ t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 K* R) V$ K# f, k# x- J ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
G1 ^5 D2 }# s- u- E' ^" S ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 D ^* q8 L2 t* ]' s, ], F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 [! i2 ?( o' ?
( (CUser*)this )->AddTaskBar();*/
" p- ?2 t( h/ K2 k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. T: q& @; I8 ^; c4 J. p6 U#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, Y5 x* u7 m% `0 s8 @
((CUser*)this)->CheckHonorStat();5 a4 k3 P9 O' T3 I s8 W, N) [
((CUser*)this)->AddHonorListAck();; m$ M. _7 Y, @! i: S" e9 Y. ^( v
g_UserMng.AddHonorTitleChange( this, m_nHonor);
z6 U8 x$ n- K* v2 C" T+ b#endif // __HONORABLE_TITLE // ′Tà?
7 ^8 H: n8 }$ s" |; ?) }) e) C }- h# j& c. n. J, h3 B6 v7 q+ s3 j
#endif // __WORLDSERVER
* W3 h/ w$ l1 `- [5 m} ) ?0 N8 m+ p9 C' d# b2 Z8 P
! ^. ]" R! A$ O然后你进入functextcmd.cpp并添加以下' v. N- h8 D$ r
2 N' [ S+ K2 @2 ^# q
代码:
) F/ w( `8 v) S, xON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 k' ^& b/ A9 y/ B( t0 I! x下面插入
! t9 j' l4 P9 ?9 [5 R' SON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ j* {* J& Z+ n
% f4 {- i7 Q" k+ L9 x+ Q/ p) a然后你去
+ L8 t; z, e/ U* m* c0 r4 r: {, c, Z# S* u4 N
代码:
# \- P8 |/ @, R, ?0 L代码
7 ]# q+ T" z' D6 r& c' k3 eBOOL TextCmd_ClearPropose( CScanner & s )
' s- ?0 T8 ]# z) r{- c9 ?. ?4 ?* P& P! Z- B
#ifdef __WORLDSERVER
+ w6 \6 M2 \3 R: i, j# k5 _ CUser* pUser = (CUser*)s.dwValue;* ~; M' }' I$ B
g_dpDBClient.SendClearPropose();! C; _* J5 `" P- l4 D6 U
#endif // __WORLDSERVER! e/ E- M, q# h
return TRUE;& T" ?& o' H0 x4 e, R$ I
}& \! {: W! r, g* H& g
下面插入
) q5 ~' g0 ?9 QBOOL TextCmd_rebirth( CScanner& scanner )- l. }( Z( d9 _" e( _ \; y, Y
{! T4 H3 G0 ?, H& G- A/ i. w/ J2 d3 Q
#ifdef __WORLDSERVER
5 ?8 T- u4 e( k7 }; M: w/ y7 g# g# DCUser *pUser;
5 m* o7 l. G3 \4 g3 t2 t: EpUser = (CUser*)scanner.dwValue;
6 _" [! Q* U) \, K0 ~# e1 Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. }5 j% ~/ c5 h6 m5 ]pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& N; U& M" n- k
else
- S/ O$ Z' o Y, S+ j2 k KpUser->AddText("你还未达到重生条件!");$ y- S7 }1 Q& |# z
#endif# A2 y" l# t+ j& _" l! l6 _
return TRUE;
! U N9 z- f- W9 X}
1 Z( q9 I+ y9 T4 [& U) c/ D2 D
& p, `" _" w8 W$ t& _
) P+ L( [. U8 q6 P! Q- R9 b4 N% h8 ~
& v/ q- o& n! d8 T% C7 c |
|