|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: ~& w# g3 C4 k7 _" v1 U: w
( E! C% y; n/ F: K" C; a4 I
Mover.h
! e: m* e; e# I" p* l; A$ D, E代码:
2 e5 i6 _ M" q+ X- _0 W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, f- m, I1 |; M5 q% Z
( C8 |% @$ c: f, P1 U下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : x/ _8 u+ T# F5 \. U
( r/ ~* k! {/ f: W! A: a( {: k
然后你去mover.cpp添加
. ^ V, x; p! t! ~3 i& A9 s
! t: G0 i! O0 |7 v8 y代码:! d8 v' h( U3 m: f5 z0 ^
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- A9 r& I8 _) U
{
* i8 _# D% O- S Z: f* V. }% O/ I#ifdef __WORLDSERVER. k' E# E4 {4 ~6 J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 M% E, ^3 E6 k8 v. v
MoverProp* pProp = GetProp();
$ ?) Q- l; r6 g$ _& j if( pProp )- g8 m' D3 P0 x6 L4 n3 z5 J
{. I2 o2 ~: c: ]0 ~& P/ a
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" |1 s1 o* W& [6 N5 `4 I/ _ {9 H" X1 z& w/ B9 K( v j
AddChangeJob( nJob );
5 H' p B% c. L+ } r }else{, F. F C. L8 @
return;7 D8 K" l3 U- j% T
}! k+ s S& x9 }( W! K
int nPoint = 0;# {9 k a# e7 |
if( m_nJob == JOB_MERCENARY )! N/ f9 z* |: I! G y5 T1 r; E; h
nPoint += 40;
1 [! A7 j O2 H$ g( V" r( S H else if( m_nJob == JOB_ACROBAT )! R% q2 X/ X5 `6 u1 Z, n* d- F- t
nPoint += 50;: {7 P! e5 f. Q1 U
else if( m_nJob == JOB_ASSIST )
- B8 h2 ^( D+ M+ e nPoint += 60;
3 h5 @" T0 k, K8 _; ~ else if( m_nJob == JOB_MAGICIAN ). h; a5 J( ^/ c& P
nPoint += 90;
8 j! C. @( c5 q" E1 g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" ?3 a% J3 [" @& l5 l/ m# ~
nPoint += 120;
. [% |; `( M. V% x' Y% S1 U, f/ l1 F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" p; {0 n. F* `$ I7 X- Q! S nPoint += 150;) k% f1 k$ H3 M, ]& _
else if( m_nJob == JOB_RINGMASTER )
" J& z6 ?$ R. ^& U! Y+ b2 Y0 u- e nPoint += 160;: r5 f" Q. g4 Q! I" _
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) u( j' f3 S! e7 v, i
nPoint += 180;
' Q2 T7 Y3 ]! {6 Z2 `; G* O) j else if( m_nJob == JOB_ELEMENTOR )% P( q! n* x0 y% L* R% i
nPoint += 390;
+ o% l. o' f+ P) e else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) \' _0 @* R- ?+ t; e6 O nPoint += 120;% n) x, D+ Y4 a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' L4 Z0 D2 H1 c% d+ A
nPoint += 150;* w5 A E8 \( I! V) x# N
else if( nJob == JOB_FLORIST_HERO )! B! H$ T2 J0 H+ J* _' h; o
nPoint += 160;
) k* _) _& C$ I& A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( K0 H1 Q, z$ ?8 R
nPoint += 180;4 G' J( f" \; ^& L+ S
else if( nJob == JOB_ELEMENTORLORD_HERO )' f# P j2 Z8 p$ J
nPoint += 390;
9 Z: m. R. A% x! X9 k* I* y4 Z$ B/ n
6 b" {9 d0 h& D2 I, K+ x AddSkillPoint( nPoint );, }; c4 C3 a6 ?1 C; |
m_nLevel = nLevel;8 M, m. t. l8 h0 I
2 m# y: n: |% P% x( _0 n# ?
SetJobLevel( nLevel, nJob );
* d( l- @ B, z5 F0 T m_nDeathLevel = nLevel;
, c/ S! @( w9 L }#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 R8 A% K n. ^- M( [$ N4 y8 N if(IsMaster())) K( _% J j* ?" A
{
; F) }* w4 C/ F' f) R7 L' R7 j) ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 E; a* A# m3 o8 p" B if( nLevel > 59 && nLevel < 72 )
& h' Q& [$ N+ p2 C3 d& J dwTmpSkLevel = 1;
n3 \5 ]. L+ G0 O$ s else if( nLevel > 71 && nLevel < 84 )3 A' u4 n }) w$ ] i4 L- O
dwTmpSkLevel = 2;
3 p* A( \9 z9 t( U1 \4 T- V, d$ i else if( nLevel > 83 && nLevel < 96 )
, P* ^9 K+ S7 Q1 a( L dwTmpSkLevel = 3;) S# P) R9 g2 q* h. {) u! K f
else if( nLevel > 95 && nLevel < 108 )) ^6 m" O4 J# j6 ^. n
dwTmpSkLevel = 4;
0 t" H2 F; H D else if( nLevel > 107 && nLevel < 120 )
2 W7 D3 Z) C0 S$ I+ c; |0 ` dwTmpSkLevel = 5;; s8 x4 Q7 I( N( v- D' w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 q7 e8 [. o5 w( K1 e
{
7 S! |# ^" `$ A A3 F2 U LPSKILL lpSkill = &(m_aJobSkill);, ~1 p' ~, o" X1 ]' u [) _ v
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 `. z* [( n& T1 j
{
7 Y6 H' q) C3 c8 Z( E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- s' Q! c8 l$ K9 N; g. B9 @ if( pSkillProp == NULL )5 [1 D6 M% t+ W6 V+ z+ w3 E
continue;
8 i3 G* b( _9 ]" M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ Y; s& u+ b, A4 V7 ^1 ~7 n
continue;
. _5 C; n: }$ `* l+ | P( N+ z lpSkill->dwLevel = dwTmpSkLevel;/ H+ l* E3 `& k* R! M5 ?6 Z( J# A
}* _+ p \( f( b8 P
}
) D6 ?/ u& `" u8 s8 C, z2 w$ T, ` }
0 [& Q3 S3 ], U* Z& v, B. p5 O& d else if(IsHero())
$ u1 J: ?4 ^1 U( U0 w& s; W {
# j( ^+ `8 _ g' x7 w for( int i = 0; i < MAX_SKILL_JOB; i++ )
# w K g* Z6 G! c v' |0 w {
" S: q6 i) ^+ J5 M( w3 ^ LPSKILL lpSkill = &(m_aJobSkill);
. h1 `6 o$ d+ R! E3 [ w6 X( [ if( lpSkill && lpSkill->dwSkill != NULL_ID )$ G- {0 i7 F) H1 E$ W# g
{
9 ?0 N$ u2 B3 _" ~' _& h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 Y L5 T5 o3 }. s
if( pSkillProp == NULL )
) X' u! h. B% ?$ O1 h0 E, t9 S continue;0 e% K" o i' p" b3 ]0 b/ L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& o9 j. @3 S& L5 J continue;
8 C7 v" i" e3 ]9 Q/ W) c lpSkill->dwLevel = 5;
3 H' X( E- y4 s! \4 ~9 s }8 D& x& [! P9 ^4 q% y& ~; f
}
/ `& e8 i) g3 I; ~5 d: Z: B }
$ A7 E/ b, n) p( R6 W1 A( c$ F else if(IsLegendHero())8 t. D# [3 `1 @. M6 ]) p
{/ X3 r# b$ ^+ b' {: k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: ~8 S9 f' N* O) Z1 B7 Z' t3 g, B {
% l9 |% l) `* R- k; m LPSKILL lpSkill = &(m_aJobSkill);4 k6 o4 z& d/ w. `; p
if( lpSkill && lpSkill->dwSkill != NULL_ID )- K- n/ W4 }. j: ^: J4 U8 m/ r
{7 e) z* M( M6 t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! H* S+ _& X0 G) n2 [- c% ~ if( pSkillProp == NULL )% a7 w. Y6 I! R+ @. h! E3 n
continue;# i* K! F& ?/ C7 z) d* y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 m6 B/ r2 p( w( o5 i continue;3 _8 i) d7 d" V) ~5 S" }
lpSkill->dwLevel = 5;
: U! @1 P( r Y K+ R( y' g }9 }+ Z" [; l" v7 X8 {
}- N9 |! n% R* y( @* @
}6 g- I3 o3 n( B" A; ?
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 T; ^! Q; K. p4 ?2 P7 p
if( bGamma )
% [* _$ T/ k6 \5 T {4 Z% i/ b/ X5 l& f
m_nExp1 = 0;2 ^; E9 Z0 k6 G n, J0 `/ B
} U. [: \6 k- y
D/ s3 t0 C! }' s4 _# D6 a- X ( (CUser*)this )->AddSetChangeJob( nJob );+ N2 D+ @$ E3 Y/ T4 J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 a# R: ~& V1 j8 C* Z
/ S D" c2 z' {* |$ ~8 v4 N, r- Z
& Y- N! u( e3 V! ]; J1 E+ }
#if __VER >= 11 // __SYS_PLAYER_DATA
$ l4 L" l1 \* y5 e g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" S# |; H- G( [" e# E
#else // __SYS_PLAYER_DATA( t+ [2 a1 y0 Y' v5 A
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! B" }- l/ a) G2 |, L" Q3 J
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 R; {: z2 f& p) G8 r
if( m_idGuild != 0 ), z6 B( B0 n7 c3 g' U- |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* N, s q* l- h6 Z* U3 Y#endif // __SYS_PLAYER_DATA) J; Y& x2 z/ k! b! Z
SetHitPoint( GetMaxHitPoint() );9 Y; H$ M/ K1 C; t2 h
SetManaPoint( GetMaxManaPoint() );: _4 n% l' P' D
SetFatiguePoint( GetMaxFatiguePoint() );* n {+ @$ y( q! x) D3 B
if( nJob >= 1 && nJob <= 4 )
: b, m2 v! h7 Y5 y% M$ N; t {. {/ n" a7 ?5 Z* W/ n7 L9 ?( T
m_nStr = m_nSta = m_nDex = m_nInt = 15;; _3 n3 x$ u3 V6 t0 C# {* @/ H
m_nRemainGP = 28;/ a9 \6 m) E) Z0 l( x. r8 ]% E
}, E$ d$ r8 O- v( c; B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( b( F4 \9 G3 p1 E; M2 } {
+ |$ D" ~* A; N" v9 G+ ] m_nRemainGP = 118;
# @! _: ]# L2 D4 C' K2 U) y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& N" I; p% b! ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;# Q! N7 h Q( t {( H4 z9 H
}8 ?' o+ G- E" U2 z9 q/ p8 p9 u
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' ^: K: H3 ]: ~* d {( N9 x! [: S/ L5 ^2 x
CItemElem itemelem;3 w+ G/ C) x- y+ z# k. X
itemelem.m_nItemNum = 1;
/ N0 h6 H! _; | itemelem.m_bCharged = TRUE;0 {9 t; X# G" C
BYTE nID;0 o) b. s& X. I0 m* s' K, z
- R$ T: K% N* m% R" G if( nJob == JOB_MENTALIST_HERO )
# B @6 a, S% p9 f& |# M& ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) X; U& F4 h- n5 j
if( nJob == JOB_FORCEMASTER_HERO ), s0 x+ y( A/ n5 F5 W2 I& L
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- R" M0 ?' x" G: m2 q
5 M6 v; T- E9 a' t7 t8 L ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* d$ [: X5 u. Z; [9 A }2 t* p7 F; ^, v, t- y0 O
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, t: Q6 P; j$ O) E, |" E ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* E1 o, ~ @$ E1 c# ^2 e1 V. Q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' q! W2 W! `% j6 {7 r& u6 q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );6 h7 b! k" _( d& r
( (CUser*)this )->AddTaskBar();*/
5 H; R+ O: S5 u2 x$ P ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; V. l5 t5 P8 D' t- I
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 |' U4 ?$ g0 G- N+ G# \ ((CUser*)this)->CheckHonorStat();) z' I- _5 F' |$ c8 t/ T
((CUser*)this)->AddHonorListAck();
5 T0 ]" i7 _" m! M4 m9 A2 r g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 x: Q$ x1 x- f8 T: l% \#endif // __HONORABLE_TITLE // ′Tà?6 X6 T/ V' D5 I/ @
}
2 D2 M' b0 j- |. d" {( W#endif // __WORLDSERVER
9 ~8 Y! U! s& D# L1 l: A- W} 8 B1 \. M7 P5 j8 ]' N6 s# ^
2 @4 L) Q% u; L" i, m# E" G+ {
然后你进入functextcmd.cpp并添加以下
?: Y; E2 Y' C% N# }. A$ y& T Z
3 p2 u. H/ Z: t代码:2 T; v% M w7 g8 a& [
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* ?" n$ u1 z, u/ U% ?下面插入
' ~2 V3 z& d, r' ?: _1 h0 M: [: C, ION_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( b2 ? g2 U1 \/ q( @
" a8 o. f! _; h' [* {然后你去7 y5 ^8 }8 r: K0 r) S
: \4 t W$ Z' ?7 v) `# B
代码:
" F) D, A- E3 \" N. }3 W, E代码+ O- Q9 Y5 C4 W, ]4 }
BOOL TextCmd_ClearPropose( CScanner & s )
& W# R5 k5 e( K' X7 y6 T+ h" g{
+ F/ E \( D, `/ y. X#ifdef __WORLDSERVER% |' s, I- ]* z+ r/ Z
CUser* pUser = (CUser*)s.dwValue;) L( {( Z# K8 C9 n
g_dpDBClient.SendClearPropose();
1 T; P$ ?6 Y4 m) \8 e& n#endif // __WORLDSERVER
! c% g% x/ ~ k; ~9 e" V# V return TRUE;
2 U( p: y4 R- @/ y}
: d8 N, t! H9 b$ V9 d$ r& |下面插入
" E+ s' F% T, v$ r9 ^" n+ `BOOL TextCmd_rebirth( CScanner& scanner )/ {( r& q% o% T
{
4 I8 D5 q o7 k/ H#ifdef __WORLDSERVER
5 E: l3 z* p) X m8 f! WCUser *pUser;
+ w' _3 \$ J; R1 ?3 O9 L) p5 |pUser = (CUser*)scanner.dwValue;
5 K2 W8 }5 o }$ q3 L+ |2 L) }/ Yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% A3 Y2 V- a- l/ z9 h- v, QpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 u( d0 L' h/ E+ C' Z+ n
else9 W! M9 c4 R1 N1 E4 l7 V
pUser->AddText("你还未达到重生条件!");' h- ] \+ X, ]- x( | L1 {% Y
#endif+ E* i) }6 o1 g" N/ B
return TRUE;" ]+ t5 |) j8 Y5 D" `8 ?6 y
} 7 E) Y( V- j! C7 W2 C0 m
) X; i1 M5 u1 c7 E) |0 U5 E2 U8 A, u% p$ \5 i- p
" e( m! e" }8 @. o$ X
8 C$ V: s" |) Z+ X8 o3 U3 T
|
|