|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) S9 t: j; e' r$ j
4 L5 k- |, N3 n
Mover.h
O4 Z6 [9 R8 ^6 P& d2 w; l4 O代码:* L. N) B7 k" h) I4 i" P/ ^; R3 q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! q; f* Q" p8 z8 P! D3 y
( Z- Q. o: V5 u2 d% u1 @7 z3 U下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' c- e4 k* N2 _" W* _, h
2 x( q& f; i5 Q4 n然后你去mover.cpp添加0 _" l- z& X1 z+ Y
5 t4 r) X! R' m1 s
代码:: G, [, w% G# [1 j) z9 y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 v4 @; [$ @ @/ [{
0 ~9 f2 Z+ J6 w% q6 ^$ T/ _#ifdef __WORLDSERVER
0 U+ W" ]! c+ {2 x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ i4 v8 V% O+ T
MoverProp* pProp = GetProp();
: S3 `, r+ H7 x" d if( pProp )- a4 @7 i: d# P8 h" f+ s
{
2 P S$ _3 f4 S$ Q& e' T$ V* x1 i% | if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ a7 X5 l6 A( O5 n* j, P {/ t r" |, E0 r$ l4 d
AddChangeJob( nJob );
# b% I6 E" y# D p7 r( |/ l }else{1 T! p! m! s* d; a
return;" b0 s7 X6 v6 N- e( m: L& }
}/ Q6 l1 x8 F* g1 S" o6 f
int nPoint = 0;# {2 Z* Y+ q; w$ E2 [( l
if( m_nJob == JOB_MERCENARY )
/ E8 W4 N% X) b( z5 o* O: Q nPoint += 40;6 |1 T6 v# u7 c% u1 V
else if( m_nJob == JOB_ACROBAT )4 I$ x# Y1 M1 W% M! `" S+ T/ a
nPoint += 50;
4 E* X! }# f- Z9 Y0 \ else if( m_nJob == JOB_ASSIST )
1 i: j9 x; R) _# h$ t nPoint += 60;# F$ W# g7 \5 Z7 ?7 `
else if( m_nJob == JOB_MAGICIAN )% M5 Y6 v& U" o# f
nPoint += 90;
9 C3 j) [% n- k5 S5 F* \ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( F1 Q+ @ O/ ]+ q% m0 { o/ X nPoint += 120;
+ `+ a/ h9 V/ S! A else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 I# u, R f* s; V
nPoint += 150;5 a: U4 v8 d ~+ m, `
else if( m_nJob == JOB_RINGMASTER )% t9 `' |$ I+ b# ?. K0 d" D+ Q) H
nPoint += 160;1 {. n2 J) V& k: g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); M# q9 ]- |1 x4 W1 E0 u: L
nPoint += 180;; x7 E: f4 y1 o$ j
else if( m_nJob == JOB_ELEMENTOR )8 t+ A+ S2 I- ^3 P+ y
nPoint += 390;
) y R% I6 O" P+ n* r3 u else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. ]3 ^# ]3 |: U2 F nPoint += 120;
" j! y" h! t7 `# r6 x5 Q else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 r; |- Y: x/ H4 a9 k" P
nPoint += 150;" I- ~& q' x( {- b1 i, U6 n
else if( nJob == JOB_FLORIST_HERO )( D6 m6 G4 {0 ^2 l" k
nPoint += 160; F' v. o) m' j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) O" v8 m9 X8 K8 g% a, @! c
nPoint += 180;
1 F! G5 J u8 t1 A/ D else if( nJob == JOB_ELEMENTORLORD_HERO )7 H3 b; B; j! a/ `- {1 e- }, F
nPoint += 390;- u' Z3 m" O5 g9 G' E6 m/ A, t$ M
3 R' T8 y5 e% a: A8 P7 e
AddSkillPoint( nPoint );
& |; E {" h0 | m_nLevel = nLevel;
: W: m \9 R5 C+ f9 ~+ g0 @: S& w2 k3 O8 Y7 { m# d
SetJobLevel( nLevel, nJob );
' X6 t1 B/ a+ S7 U" E/ {: H m_nDeathLevel = nLevel;
9 r/ d" D3 o) `& t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: k- B, B0 d8 c S4 J$ C9 C if(IsMaster())0 G0 g+ V3 r8 t( Z2 f% x
{
0 d+ l7 W6 J6 M, |8 W int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& E7 Y/ m7 N3 n C# ?5 n0 c8 ^
if( nLevel > 59 && nLevel < 72 )8 i3 ~6 \6 O4 X0 d, @+ x
dwTmpSkLevel = 1;9 R: U9 s) \+ I0 [3 P5 h
else if( nLevel > 71 && nLevel < 84 )
6 Q R2 A0 ? Z0 D2 y2 i( n dwTmpSkLevel = 2;
/ F. I" X: s/ a8 ?1 A else if( nLevel > 83 && nLevel < 96 )% ]" K, a" G p% M N
dwTmpSkLevel = 3;
' B# v6 u+ M/ U1 s: d else if( nLevel > 95 && nLevel < 108 )* I! D$ \- v+ l4 b: H
dwTmpSkLevel = 4;0 T6 m1 x1 c+ B% r, S9 I
else if( nLevel > 107 && nLevel < 120 )2 j. M& z8 d: @7 X$ s% \
dwTmpSkLevel = 5;2 D/ B3 d0 }# f8 N* o9 Y Z3 e5 l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 d9 F7 \" D% P/ Q { ( H2 M `7 k& C" M$ s5 G( l
LPSKILL lpSkill = &(m_aJobSkill);
5 [; h7 S* ?- q3 y, r- l. \8 ]: L- { if( lpSkill && lpSkill->dwSkill != NULL_ID )& S( s9 r2 U( i+ }% r: X6 Z
{9 s% n9 S3 j5 u2 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 }3 J& S: Q; E: P6 f4 ]
if( pSkillProp == NULL )2 A* I" U! s- J& u7 x
continue;$ Y. g+ e* P1 z) I% ]- _ n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& g e0 N9 p; a* f8 ? y continue;( u* R" ~! Q; ?2 d# @
lpSkill->dwLevel = dwTmpSkLevel;
6 s" v9 C& v4 j; L }9 b% a7 E* V) d) v. g( |
}
& ^* J& S6 ^7 W2 r, x }
3 F# T: N& M: o" G( P3 x( A4 U else if(IsHero())
/ W4 n: I( O' h0 n1 s {& j, t# `; v6 z& w% k; @ F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 d+ k y f e9 p4 z% V! i4 f6 l
{ 4 ?) v! Q; B/ d6 A5 S) T7 w
LPSKILL lpSkill = &(m_aJobSkill);
. n& q- `3 i5 D. c1 N9 W9 A if( lpSkill && lpSkill->dwSkill != NULL_ID )1 A' Z& q% B4 I/ h
{+ k0 c3 {! p$ B" w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . h& ?8 m$ |) ?
if( pSkillProp == NULL )) I6 s( n# O6 D
continue;
o+ F0 Q, e$ i9 Q3 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 F! u/ W( y8 ^6 L8 V
continue;3 {0 ^* D4 T! N, m
lpSkill->dwLevel = 5;6 X& b& J k8 T3 Y2 e& k7 U
}: Q2 x5 R2 Q9 }, |5 i m- f
}
$ [5 z Q% [; I* v1 U( f# U }
. a4 a [( G& r1 D2 D else if(IsLegendHero())
$ B( n3 ?' p+ X7 X, [ {# l8 a4 p$ `5 L7 b2 f! q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # \ x$ K( K# t0 B
{ 1 [. P. k: M: F0 H }, U7 ]
LPSKILL lpSkill = &(m_aJobSkill);
0 l! a( S% b. w. ?5 \( q3 @) u if( lpSkill && lpSkill->dwSkill != NULL_ID ) T0 \- G2 _: t s' q
{& n4 w k; Y4 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % `; a! [" B" W( M! J. X J x
if( pSkillProp == NULL )
, t2 f$ I! a! ~2 ~8 y continue;8 T( a0 t& t/ Z8 |& G8 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( p) {, B0 M4 Z' b! o
continue;
& P5 y6 g0 O: j1 p G9 q- e& H lpSkill->dwLevel = 5;! O: T8 c% `6 b9 M" S6 y
}
" c5 G$ K" { O1 |! ~ }; \# S, [$ E& V/ ?( h8 j
}( X! K" H3 R% U6 b i9 a% _% J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, s: I# p* ^1 O1 f$ _% N# r3 s8 O/ O
if( bGamma )( L3 x9 p. D( k9 D+ x) V! J2 e$ |
{
3 _0 V* X7 O. @6 ?5 R$ l m_nExp1 = 0;
: z8 ^. E6 q" \3 U4 e) q1 k }
I9 a' Y6 _" Y1 M5 D3 b ^& N, @' N/ K- F$ z6 O: S- S
( (CUser*)this )->AddSetChangeJob( nJob );
- q4 O2 \* j( L2 h" T( w, [ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 O, o) l" L3 n0 S& e: q: Z6 `0 W- r; l) e% b
7 m! {& X3 \; t4 s
#if __VER >= 11 // __SYS_PLAYER_DATA
# |/ w1 b6 P& |& U f g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 {' l. D g3 e7 @) r8 Z& b#else // __SYS_PLAYER_DATA! G. [ U+ D' D- X8 N
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* a3 v$ a* A4 n8 I- L, O6 {, T
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 Q0 D' y0 N: Z. t" ?; o2 u
if( m_idGuild != 0 )
( Z8 y! }! a/ R+ a% ? g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 {, ?9 z( L5 b, }#endif // __SYS_PLAYER_DATA
( R' P# z/ s# A7 y* u. s; u6 ? SetHitPoint( GetMaxHitPoint() );
! H0 l6 r$ a2 }8 M6 \ SetManaPoint( GetMaxManaPoint() );
7 n6 w& \! t% ?4 E A: x& S% x SetFatiguePoint( GetMaxFatiguePoint() );% g; a0 k6 y7 i0 i% k4 D
if( nJob >= 1 && nJob <= 4 )
' s0 }9 Z; y; l& q {! T. d' j7 G4 o' L& U' @, a. [* z0 `
m_nStr = m_nSta = m_nDex = m_nInt = 15;* u$ O. {: S+ H* G' ?2 n
m_nRemainGP = 28;: {" |( f+ E( t0 ?# j/ J7 n
}
x" [. `$ I7 r# ^1 H( b% } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" o2 r2 n7 [) T. _" B
{
& w/ j0 l0 f3 Z' H0 x8 h m_nRemainGP = 118;# e7 v9 m$ a% H% k
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 q0 u7 E1 v. e7 P' Y/ o" u
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 v7 i5 c3 j+ T
}2 ]. M5 p3 ^( ]5 x; Z, o% i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) H2 p+ U5 w* Q" C3 @4 X7 l
{
9 L- J: o, X* F2 \3 A CItemElem itemelem;
% R T7 J8 Z6 G( g! z$ A7 H' h itemelem.m_nItemNum = 1;
% d4 L1 I4 K/ z( Z( {/ P itemelem.m_bCharged = TRUE;
3 ^8 o) g" W$ v5 i' X0 b: G BYTE nID;: y: |" \& @4 ]- a
8 m4 q4 X9 [/ n- O- a
if( nJob == JOB_MENTALIST_HERO )
) |( v2 `- Y3 n4 @' \( E" O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" T+ C4 j! {7 D* w6 S
if( nJob == JOB_FORCEMASTER_HERO ); Z8 s8 T- z$ f4 }$ q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 y% q/ m9 f+ e" n2 v+ _0 j6 z. d1 o) E0 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 r9 W$ z- J0 z; W' M) [' q! C- J }8 ^" b3 @6 u# }' A6 ~) f6 r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 a& O5 F1 @2 l V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 v! V+ t: e; l# E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 | A# c* ?$ [# n/ n/ U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, }% U3 V: b4 Y7 }' F
( (CUser*)this )->AddTaskBar();*/" f6 D& y8 Z- c. v) m2 R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& d/ u; v/ Z2 e1 M5 q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ M- ]; i [; h2 R% I2 e+ u ((CUser*)this)->CheckHonorStat();
* d, M# h& W$ Q! g# M+ h& I' s ((CUser*)this)->AddHonorListAck();+ Y6 L" A5 N' _$ D' S
g_UserMng.AddHonorTitleChange( this, m_nHonor);; D( x5 m+ z" J, V
#endif // __HONORABLE_TITLE // ′Tà?
. ]7 f, ~& b: \, f) ~ }
! Y! L S- f$ C$ u/ @" A#endif // __WORLDSERVER
4 ^+ c. N: r& | I} 3 T+ H ]' Y& m4 o' o/ M4 C5 B5 `
v" `& I4 q! q然后你进入functextcmd.cpp并添加以下
- d9 o. _# j8 t4 Y2 K x0 P d3 h/ A
代码:& Q$ L- T1 w- K- e/ l0 q! k w
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' t# Q; z7 S+ ~4 o+ z下面插入
9 }8 Y4 H4 }- {+ t6 b* tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. n2 l/ Z6 T4 o
* C0 v( n6 H9 l8 Z, D然后你去; z) [ U/ B# i9 ?/ y4 S7 r
' O2 Z, o7 P! n9 v- o* [代码:# M% ]+ J, }* ]) e' Z, Z/ q
代码: @% T) f) D5 k' \- Y. p
BOOL TextCmd_ClearPropose( CScanner & s )' ?9 U K* S# q! v) `, i4 p; s
{& _: c2 k5 S" U4 c. k8 N9 d
#ifdef __WORLDSERVER( j3 Q& |& r5 Z4 r; |/ y- y
CUser* pUser = (CUser*)s.dwValue;
! L( `4 @* B6 h" Q4 V g_dpDBClient.SendClearPropose();2 Y3 G5 X' `" m% u$ ?. e* K
#endif // __WORLDSERVER: f: [ N" F/ E) M* E$ c: I
return TRUE;
- A8 K6 D0 [+ C8 t}
# y9 f. v7 c+ }9 g! q5 k- u下面插入
1 b3 x! K: p/ g5 w4 \5 dBOOL TextCmd_rebirth( CScanner& scanner )% B6 h8 u, ?+ D( e# p, Q
{+ V; b1 f2 d& e- h2 [9 @
#ifdef __WORLDSERVER3 y: ~; a3 ?$ @4 c& l% A8 ]
CUser *pUser;# V" Z+ |$ u8 V; a
pUser = (CUser*)scanner.dwValue;
7 Q6 I5 W5 \" m. n" dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 L* {0 ~1 k& u- J
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; H8 ]2 |6 u5 h4 O
else: u9 D' O+ P0 k) i+ U
pUser->AddText("你还未达到重生条件!");
# e1 C" Y' T! x" K* O2 @ Q. I7 |#endif) x6 l" B' t) p: b: K0 d0 h
return TRUE;
9 O- r; N0 q# L1 E4 c} ; r6 h( h9 h- t7 p( |( ?: x
6 X3 {9 y1 q1 J1 D5 R4 B
% w4 V) |1 K T# I, C# h$ ]
* n3 P$ T+ @- }. ]* U
, O+ d# a7 f& q" ~0 t% M |
|