|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) O k7 ?4 u" Z, s( R% G
4 w; G' \8 ^) m ?/ j+ p, M1 a+ {
Mover.h
4 M+ L1 j4 @( \. j+ J6 b/ h代码:: _) R" N7 N3 S- e( b
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 \ a( r( Q3 _1 X6 V0 i% P9 C8 M
( N1 ~! F6 }, |' h6 h下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 e% k- s4 D! Y" \9 D! ^% t) J# r( S3 R3 s
然后你去mover.cpp添加
$ g. v: C/ N2 t7 @9 V% n" o$ C- C; z( S- f; `
代码:
$ m% G V+ o& Q8 ]void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' {8 ]/ G5 i; O! W. C0 n O{
& U( B0 ^" m: _* f#ifdef __WORLDSERVER% J2 ]4 I- _. }4 H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) D$ F. \5 y! G& f2 P, ] MoverProp* pProp = GetProp();9 W% }$ O3 O' U7 D9 y' r
if( pProp )
( ^. z" ~1 t; |4 y8 O) Y: y {
+ q/ a! M+ e% _ if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ `# ]; t- }$ M1 @2 v2 Z% \
{" X4 b+ ^. C8 i# f( f- Q
AddChangeJob( nJob );
6 L( @) Q& j$ S }else{$ T) U" a* n0 x
return;' V$ f* C* w# v# }3 w
}
+ g- V* _; V' N6 w# x int nPoint = 0;5 R! E% x- w& U# e! [
if( m_nJob == JOB_MERCENARY )
$ \, }! S2 ^3 d1 I nPoint += 40;
# {! [9 u3 ?, K' g% m: a! [4 ^; f* q else if( m_nJob == JOB_ACROBAT )& e- F0 s/ Y8 ]- O- Z, ^
nPoint += 50;
$ {' X2 ^8 b( [3 b$ ~ else if( m_nJob == JOB_ASSIST )6 p' P$ |+ a: W/ Y5 ~
nPoint += 60;
7 L) O0 z: ~3 K0 s) V4 j else if( m_nJob == JOB_MAGICIAN )
$ F6 F# D0 D& S1 z0 b% j! e7 M nPoint += 90;
- K8 I& x7 v8 J9 _7 Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 K5 G( E# `1 H) P nPoint += 120;2 K7 E, b4 j* B# H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ K& ], n/ }3 E1 _ nPoint += 150;4 |0 O4 Y1 {2 u
else if( m_nJob == JOB_RINGMASTER )
! C8 ~# f& A L0 H nPoint += 160;
/ u0 W v; A6 C2 M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" S3 i6 K; J& v$ \: v0 I nPoint += 180;0 P4 o ~* M9 \# ?
else if( m_nJob == JOB_ELEMENTOR )
7 V% j/ b. y$ o0 K# e6 o nPoint += 390;
- s* w3 Q3 G3 q2 ?+ b else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 B* e- @6 k+ H- Z* W/ F$ a6 q
nPoint += 120;
7 M0 @% @: a) h. p% s1 H1 T' n. N else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! Y& T/ P3 @/ ]4 ]9 q nPoint += 150;3 r% ]( J0 c0 ~4 R& {
else if( nJob == JOB_FLORIST_HERO )
; o* E, K* M. a( ~9 i) o! g, m0 I nPoint += 160;( H$ N) z5 H* \* e; F# ~) [8 J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% R9 [3 m) W" Z# S$ H
nPoint += 180;
% O2 J2 L( h6 d3 r7 S# Y else if( nJob == JOB_ELEMENTORLORD_HERO )% T0 ^( A% a" Y6 [, X% f
nPoint += 390;$ N& L' W6 K0 X K& v. m) _
. C5 i7 f, K/ o6 X* I
AddSkillPoint( nPoint );, u- v n1 q) p! Q% m! h2 ~( T
m_nLevel = nLevel;8 g4 f* F# e; v+ X7 B
( R. t. c( }1 r5 u' |+ p! u2 X1 c SetJobLevel( nLevel, nJob );
. w9 R6 Z4 | A8 ?& j5 G8 w m_nDeathLevel = nLevel;
& C2 R3 O$ Q) {4 _7 D8 |#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 \/ n- o" i7 r$ M: ~( [; K if(IsMaster())
% C. t% ]% W2 _. f. A) q5 _6 _ {
+ A, t, U& N0 h. T int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 b. v) r8 d5 j9 g if( nLevel > 59 && nLevel < 72 )
; j+ A" f5 o) Z5 g3 l* m$ b; d dwTmpSkLevel = 1;
) q8 H5 v. ]% U7 x else if( nLevel > 71 && nLevel < 84 )+ X+ v; ? I$ \! I' E2 J7 {3 J9 l
dwTmpSkLevel = 2;
' r! x) ~6 {1 d else if( nLevel > 83 && nLevel < 96 )* U" E% I- y# Q% d6 N* Z
dwTmpSkLevel = 3;6 ^! R: k/ r3 Z! O
else if( nLevel > 95 && nLevel < 108 )
$ K5 w* R# Y/ G# G' h, ] dwTmpSkLevel = 4;( D, v3 c5 W- T
else if( nLevel > 107 && nLevel < 120 ) {' h- ^% p2 ?8 \7 F0 \$ Z( a! {
dwTmpSkLevel = 5;
" l; n) y9 s3 o1 _* s k for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 B* r/ M: j2 V* | { : m. P; E2 s3 I ^. I! V
LPSKILL lpSkill = &(m_aJobSkill);
0 p/ N' E' R4 h# s* S1 ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 w& z2 S U/ r( K, i" ?0 O {
/ U8 W/ _( n+ M9 m; [; ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; N& H- u) d, k5 [" ? W v5 b6 ~ if( pSkillProp == NULL )
& ^& p) M0 u- Y$ h' D1 Y continue;& K$ r$ S% ~! E! ]: c- y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 b7 Z8 p2 U7 Z4 X e
continue;* b) { P( H# M. m+ E$ R$ H* ]
lpSkill->dwLevel = dwTmpSkLevel;: j/ r* o3 l6 k: m7 L& h% o
}- X8 H5 F; W' P( P- N
}! d( K* B7 g1 H
}3 E6 `3 V! f: v
else if(IsHero())# k$ G4 \8 k/ s3 y. h" o! b
{9 L. e9 A: m. b1 m& V4 V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( i9 U+ a: F; w4 i; _
{
! W+ ^: t% h& \+ ~% k# U LPSKILL lpSkill = &(m_aJobSkill);
6 o6 [% V7 `3 {, T if( lpSkill && lpSkill->dwSkill != NULL_ID )
* Z) m; t" K4 N {
& x7 b# v: r4 h$ L. Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 H9 c) m6 s6 H( t7 A# T
if( pSkillProp == NULL )4 ]: _5 K' L8 \: o, H! R- j7 @
continue;3 V' q8 B& C! q$ v5 w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ ~% G$ O- o2 w$ g) s. ~% f continue;
# ~3 g: e- h. ^) j3 g, y7 ? lpSkill->dwLevel = 5;
7 {1 g. \: R/ ^" F }# n8 @, K- ^3 m' D1 f$ h
}
, H% o; Q/ \6 c2 A* R$ v( K# h }$ f8 K( u$ S# D" Y/ N' }
else if(IsLegendHero())
+ |* h0 Q. v1 Q. ]3 }$ b. B7 ~( F {& f7 z: I B' k# R. I4 D+ {
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 n7 K9 t9 \& H' p) e/ W" K { ' n* \, Y- l& H9 G" m" u
LPSKILL lpSkill = &(m_aJobSkill);
5 K; p1 ?. x' }/ M* m" R if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 s0 v& _( T+ F8 b7 T {
9 u& c6 W0 N# M- o$ y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# S# s) ]: Z4 r* ] if( pSkillProp == NULL )
$ a' b5 s/ a$ s* k6 Z: `1 z continue;
, q$ l9 V+ x$ t4 j, Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' _0 Z5 @! J; B6 R% C' l7 h+ B* x
continue;
+ c( Z7 S7 W6 q1 L4 l$ v: D3 n lpSkill->dwLevel = 5;
6 t( n& F C0 b P- Z2 J; P }
# y. K+ d/ g8 j3 W" }1 B2 } }
( e, [" Z# K' D$ f5 t$ e }- ~ u5 ]) D; U. I7 [
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 o- t( r: w" [ if( bGamma )
1 C" Z: U& v4 X" a {* ^8 v& [, j9 S
m_nExp1 = 0;
+ E! T& G9 w d( g: p$ Q5 V/ i }
- J( ^$ |, Q* e( ~0 x& Z/ b' p* S3 x' L1 _5 d2 {+ a
( (CUser*)this )->AddSetChangeJob( nJob );
. k, h3 Q; Y, R6 Y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: l, Y0 K- N+ X
8 o* I$ h) [" r5 ]4 l8 r$ u6 C) m7 S6 F0 U6 l: P
#if __VER >= 11 // __SYS_PLAYER_DATA
3 q/ V- p. T% x; P g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; o+ p+ b3 T _; H2 @4 B. c" m0 ]
#else // __SYS_PLAYER_DATA' f, s" d# D0 j9 h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 {) ]% _3 G# v6 H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' T. b7 o0 {# m) Y& _) N if( m_idGuild != 0 )
- R: n6 Z2 y z/ R1 k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 l9 F0 U+ O+ e1 g4 d, }* x: w
#endif // __SYS_PLAYER_DATA3 \) n7 `7 a2 [' x
SetHitPoint( GetMaxHitPoint() );4 I0 G, X" ]8 i. C; G' P
SetManaPoint( GetMaxManaPoint() );. s8 Z6 q# R* S' v( O# P' r
SetFatiguePoint( GetMaxFatiguePoint() );
9 d4 `( g1 k6 g if( nJob >= 1 && nJob <= 4 )
% f# [. v1 ?9 N* y G8 \% O {
* m6 c/ S1 i+ r9 o5 |& x m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 i+ q# Y2 `3 _0 p W' I' Q m_nRemainGP = 28;
6 O0 Q D+ m1 ]7 L9 Q }# q) P2 R9 Y. f% V
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 b5 Q+ |2 X2 d! y Z u, N {
0 s& `; @% [5 U3 V* y+ v; j- B+ p3 d m_nRemainGP = 118;, c( \& m1 }+ ]; U( n. e3 k3 y* |
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 m, W6 u' p, P( k m_nStr = m_nSta = m_nDex = m_nInt = 15;( Q7 R$ q1 W8 }& }. O
}
7 M4 J$ V/ }8 ]5 N* t. D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, Y# `" M7 @ h {
+ b6 b" B$ U3 }) a CItemElem itemelem;
! G( y/ A3 t' j itemelem.m_nItemNum = 1;0 \' `3 e5 o# K( l0 r. G+ B
itemelem.m_bCharged = TRUE;; V. X( _0 T% q: p, a4 L
BYTE nID;
' \; c2 h: z7 [* e5 L6 i9 B" V2 w R" N8 ?. R
if( nJob == JOB_MENTALIST_HERO )
$ t( q: ]9 a. e% C5 ]( w itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- L( v& N" Y8 I: J if( nJob == JOB_FORCEMASTER_HERO )
, O7 ]8 D# F: d. a4 ~, B2 f itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* Y6 `+ P% U; m% E% @- {- X5 b& r
+ Z( m6 u' i' x
( ( CUser*)this)->CreateItem( &itemelem, &nID );' y& W5 z) @( |" T- `9 D7 L
}# T; e S/ p1 p0 b5 D4 k$ D* V
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 \! d/ S" k/ n/ d9 A/ t6 n0 U: K ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# r6 K1 k L& C' G" K
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 j0 ?" F/ d9 T0 H( [ v* {- p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 a) _ O5 n# {4 I- P, T
( (CUser*)this )->AddTaskBar();*/) S7 c. d0 o( E. |0 N
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 m$ z3 R1 ]. Y& e/ g& ?) _# _#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" g6 Y$ F& o9 c! l ((CUser*)this)->CheckHonorStat();- u5 O H3 [5 u- E) c
((CUser*)this)->AddHonorListAck();
: \: J; k# ^' s! A! s g_UserMng.AddHonorTitleChange( this, m_nHonor);3 r) v1 v P8 u$ {
#endif // __HONORABLE_TITLE // ′Tà?
) \5 I3 R. Q& M$ u/ R0 n }
) H+ w& ^ d- P* E7 g' c#endif // __WORLDSERVER- |3 p; S0 ^: G& D1 _0 f0 ] E
}
0 f5 b" z) \+ t& i. W$ x' u$ C. P
然后你进入functextcmd.cpp并添加以下/ E& `" m% Z: p( j! S2 V
/ d+ W5 a' C. {0 n! ~# @
代码:4 N$ k h( Q5 U7 i4 Y" t/ Z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 _8 P' B9 k8 Q+ b c; T( N% l v下面插入0 v8 N0 k: P+ Y. o' `# c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 E0 b* V5 p' U" M3 A6 x
/ q# X. T" |% [+ L \6 ^% V
然后你去
* ]+ }) D& F+ t/ r ]/ d6 _: `7 h; W% F8 @
代码:& u. ]. g$ [% H+ C
代码' C. L, r* v$ H+ L5 A- H9 \
BOOL TextCmd_ClearPropose( CScanner & s ). D* O* x3 X, E) u0 [+ r
{7 H5 |' b+ {9 ?* w6 H' a4 O* ]( x
#ifdef __WORLDSERVER
3 {, t' Y/ I7 ]$ x CUser* pUser = (CUser*)s.dwValue;
% \/ g4 R! Z n n, k4 P6 }+ g g_dpDBClient.SendClearPropose();/ k- p7 O( M+ _7 R8 O
#endif // __WORLDSERVER
7 ]2 q1 C( C0 T! L/ l3 X return TRUE;. s( [" @0 _0 ?9 L% J R) j
}
h( F, P# l- G下面插入
. }$ Y, \4 O5 Q- u# DBOOL TextCmd_rebirth( CScanner& scanner )# z7 B0 ?5 `9 J) e5 q/ f! y
{$ h6 E/ [, \2 n
#ifdef __WORLDSERVER
, M% q5 v+ H+ @8 |& s" P5 VCUser *pUser;( l) `3 I! z q3 J7 V0 v% P
pUser = (CUser*)scanner.dwValue;+ h# U% B8 ?; H' \1 ~
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' b2 J# P6 A+ q+ i6 fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
\6 Z6 I1 V" S+ I3 O- G* W/ Ielse
2 p! ^6 m' A; B! Z& hpUser->AddText("你还未达到重生条件!");
( V- K# P. S5 k/ R' h! t#endif. M ?) a/ d1 _+ |& \0 T
return TRUE;; _9 P, N2 Y0 \6 Z
}
8 a7 d! c V. U1 z, o; g8 o# S8 Z
1 g8 T' @* y, [4 b8 t/ p, }" I" N) }" ^1 {' k: h0 H
9 s$ [ n& ~- o5 g8 R* J: C
|
|