|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
` H8 z4 X5 Q5 w' w1 a; U9 H: w- \$ ~3 y& Z$ c
Mover.h
7 ^- C6 E0 z! t1 K) g9 o代码:
9 X1 W3 w5 y w2 k O! p6 N9 o+ p找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( l$ y; ~! l7 g% w9 | m2 E# R& {
: D0 s. y: E9 r& B2 ^4 i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) O( ^* p9 n3 }8 q6 ^
K0 T g3 @* O9 ~4 m- I- D( i
然后你去mover.cpp添加9 h- F/ h. C( x
& U6 `& B! u( k* u8 D代码:* C5 p @. h) l" Y* \/ L
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 ?# Q; P3 v. `9 X9 C' N{
/ g7 o2 q, n( Z# U' s4 C* F, O2 }% c#ifdef __WORLDSERVER( n, |% _/ ~# I. P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 Y2 ^9 i. L+ \& M1 |8 k2 }
MoverProp* pProp = GetProp();
8 ]7 Y* U2 _! P% G+ K- ` if( pProp )
* d9 @ N/ J/ v( Y! i8 e X {
0 H6 {3 B: |/ `( m: r if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 [% V& l9 W$ E9 q G# G {+ {' Y# O L! z1 E8 ^4 E. l
AddChangeJob( nJob );; y2 t. b* ?$ [* H4 b: s; N
}else{
; P+ F q! D! O y) e { return;- @9 `7 O# \* t' M9 A
}) x5 ^* p# }+ Z/ \- {
int nPoint = 0;
6 ~0 y- S# b+ j+ | if( m_nJob == JOB_MERCENARY )8 o5 K8 g/ h5 h
nPoint += 40;% p- t/ m9 E! Q
else if( m_nJob == JOB_ACROBAT )" w- ^4 y& c0 U1 ?# s
nPoint += 50;4 @ n! r/ |7 P C3 y
else if( m_nJob == JOB_ASSIST )4 ]* [& x* S. a! {# d7 s
nPoint += 60;
0 f- `. d5 w+ d else if( m_nJob == JOB_MAGICIAN )
; {, h( \ T) E$ R9 e3 j8 T( S nPoint += 90;8 Y* b* V( Y4 f9 y: G* p5 L/ F
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" e0 I$ A& |! I8 O1 \; c
nPoint += 120;+ z. J0 @4 x; S: m8 h: u3 y$ R/ J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* @& M2 W2 `" }" N6 I$ B! Z9 r, Y
nPoint += 150;
3 W L# s; y) r6 v4 T% ?8 r else if( m_nJob == JOB_RINGMASTER )5 U1 b6 _- U7 j( y7 u' ?
nPoint += 160;. a: v# H2 O: p0 [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ M. J, D6 t$ o+ ^/ B
nPoint += 180;
0 K: J, J1 l* ?# R: g- H/ I else if( m_nJob == JOB_ELEMENTOR )
( m; H+ t- K- Q8 m+ U nPoint += 390;1 a0 L6 D8 O, ^: O5 F8 p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 ~" m( B4 S0 o! n, v. i nPoint += 120;
! P5 j& ~# Q d; |& L% S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 m4 J# q' q4 t2 `$ w: [. \
nPoint += 150;$ S, ~. b; ~, J' R. M; ]1 k8 J
else if( nJob == JOB_FLORIST_HERO )4 u4 d9 K: m+ U: c# }5 I
nPoint += 160;, L4 O% c; N. U7 l+ z- T5 Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 \ U: {& Z& X! A8 I7 z1 w nPoint += 180;* T& ]8 b$ |: Y) `1 @' t
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 A& q' d! V8 P8 R5 M2 X nPoint += 390;
* @9 e8 q' _: O* E; t
/ t H9 F+ @. @, | AddSkillPoint( nPoint );
2 D4 P) W J# C: ?) x. o3 S& M m_nLevel = nLevel;* ]: Y* F! h; a3 i
: q$ _6 _) D$ ]+ Z0 z w5 o* c SetJobLevel( nLevel, nJob );
' k6 v Z. ^/ v6 H1 W) | m_nDeathLevel = nLevel;# c+ v7 w$ r/ M8 K$ L: |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: d- x! h7 b) N4 P) b% w
if(IsMaster())
4 n, H7 E1 ]- W% \7 @8 h, A' y {
" O. i% W7 _4 N, v' g; |) T8 f int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: _* i7 q3 l! |% ?8 B: u if( nLevel > 59 && nLevel < 72 )
- i7 [$ N$ o( ^$ h& z z dwTmpSkLevel = 1;+ |8 t! m7 i# M
else if( nLevel > 71 && nLevel < 84 )5 K( r9 D# Q1 ^7 m
dwTmpSkLevel = 2;- r2 e9 C) P: ^# p: P" U) D5 x8 t
else if( nLevel > 83 && nLevel < 96 )4 P ?9 j" m l0 o$ `
dwTmpSkLevel = 3;
, m( e: e- Y' h k, i, m* @ else if( nLevel > 95 && nLevel < 108 )
- Z" R) J$ ?" A; F: ^ dwTmpSkLevel = 4;
, j3 r. x/ s% m! H else if( nLevel > 107 && nLevel < 120 )
3 v- y3 ^) a( c3 z, z+ R& \ dwTmpSkLevel = 5;
( [3 D1 d5 v8 U0 Y% K+ W9 n for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 ~; ]" p* x0 _2 C
{
+ l2 X L. e2 \0 e! a5 T$ T LPSKILL lpSkill = &(m_aJobSkill);$ S* Z& m; s8 l5 B
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ m; W9 o; C' {* l5 X: K
{
Z( B! ^2 }! r; L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * L `( \- a1 V4 t: V6 p3 e/ v
if( pSkillProp == NULL )6 P' S- A* T. D( _9 I- v
continue;
. l* w5 K) ^6 G; \6 D. ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 _0 ]3 @* K' ]& i
continue;
0 ?+ y4 b0 A2 w lpSkill->dwLevel = dwTmpSkLevel;
% w, l! |: M7 Y# { }
, T: x' h- \. A5 R3 O+ J' V }# J' S( F# g" P- y# I: U8 E. z
}' `" d* ?, ~. i. I( w# {6 C5 [) s( q m
else if(IsHero())
l( U% B' G& _* ` {
# o* W, J9 H, l1 ] for( int i = 0; i < MAX_SKILL_JOB; i++ ) & r: l0 S2 a; S O3 F. P, ^
{
. z1 R/ ^ p( U% N% U LPSKILL lpSkill = &(m_aJobSkill);8 |( F' ]/ n: H; x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% ], q( y, S; d8 G {) }& T3 q; ^& ?2 f% r! e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; [9 }/ R2 o$ ^6 Q( t* e5 a# u
if( pSkillProp == NULL )4 E( H# p% V& R" P: L
continue;
4 L% g a4 c- _/ J$ z# k# { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) |7 J7 t6 i7 [ x6 ^. @( X7 u continue;% f; e/ F3 Z7 c0 s* ]+ A" y1 x+ r: f, }
lpSkill->dwLevel = 5;/ J0 d- Y9 J9 q, s0 Y0 r* J. O
}& n8 e) S: G1 |0 J5 t4 I
}
9 B% O6 ~" F# `1 V' u9 ]4 l7 S1 a ` }
# t% a: M2 K4 p/ T4 ]8 Q* X else if(IsLegendHero())
) B& `% b3 p7 f) C {( T0 y: x- W* f$ Y& Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 G( O7 P+ S8 X+ u {
, A/ ]5 p8 b2 m6 y) U, q; L& E% ]7 w LPSKILL lpSkill = &(m_aJobSkill);
6 B, e: R! j6 | |! ^5 w if( lpSkill && lpSkill->dwSkill != NULL_ID )( S0 I5 D' h/ P5 F C% n0 j
{
: U- r M7 _1 x# [- m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# X1 x1 d9 Z# `# c if( pSkillProp == NULL )
, ^* L1 H0 N6 V; T& ^1 l ] continue;
: r' U% h' _8 Z8 ^0 \& Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 @! m* d0 N, o5 h
continue;: P/ E% f, c( o; V# U/ h' Z
lpSkill->dwLevel = 5;
% v$ D& b* M: s E" i7 _ }
9 Q- b! L0 r/ ~% `" }" w# f/ G/ n }( e+ o8 Z, R# W7 N+ |6 f' _- R8 e
}
+ N7 Z: X- s7 ^/ J- A7 W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. u7 q* X& o7 Z6 T) G, E$ l if( bGamma ) Z- M8 u$ ?* s9 @3 k
{
& w& o8 Z" I4 B/ c% m2 ` m_nExp1 = 0;
3 S: y; R; s* W; b0 g7 q }, c+ r' T4 }( q/ d7 v4 [1 d' K8 s
2 |" x3 u* o3 B% }: s
( (CUser*)this )->AddSetChangeJob( nJob );7 v$ s+ g( d7 U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 |& S: [: g/ |8 ^4 O9 P
1 U3 I1 F1 [: P
- A* R- }9 ]( E/ G" d6 c#if __VER >= 11 // __SYS_PLAYER_DATA
( S' q E5 j& ~! Z+ |+ g, H1 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" n7 Z* o9 t/ l- Y2 b" _0 ^- r8 Y#else // __SYS_PLAYER_DATA. O! ^- ]. z3 a! m+ R* x" Z5 M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 a4 t5 t/ m H" r) F; q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# r0 |: \' b0 m- V, E" S
if( m_idGuild != 0 )
) \5 y5 L4 _. y q" H: k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 ]9 L Q/ c6 R" N: c E* w, s2 M: N
#endif // __SYS_PLAYER_DATA- I" Z/ G4 ?+ j
SetHitPoint( GetMaxHitPoint() );/ R9 N* s* M3 s. X- B( H6 p7 g" P
SetManaPoint( GetMaxManaPoint() );
) t. j$ e4 C6 i/ ` SetFatiguePoint( GetMaxFatiguePoint() );
8 M/ q; P8 Q! Z: w5 q) a3 \ if( nJob >= 1 && nJob <= 4 )2 K6 D( J* e8 F2 a+ t
{
. [$ e. @8 Y! K [$ \0 v m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ x/ f5 z; w( c( g m_nRemainGP = 28;
0 N4 j4 @+ f' O, O+ M& Q6 x* ^ }
" s% }- |7 W! Y' v if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# B5 P0 {7 q& \; M' [9 U
{! {' [! F7 F, p @6 ~% M0 T
m_nRemainGP = 118;
: R# C; o( v+ D& b% |6 s/ S) Z& \ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 y) B, @( J" _
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! K$ R$ E/ c& C9 G z ^+ y }, ?3 _2 n1 R9 G2 A6 _' ]- a; A, ^# |
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 a" J# q- X1 O$ g$ S {, u, s4 U1 X0 m6 u$ m9 v
CItemElem itemelem;( ^$ c: O( i( h5 }4 H6 ~5 O8 {
itemelem.m_nItemNum = 1;
% c7 x% q! z* W* ^ itemelem.m_bCharged = TRUE;
8 y( S K5 q9 m; ]0 T- I' a% U BYTE nID;) d2 d- }3 W. }1 b- n
+ O9 } H- ?3 C
if( nJob == JOB_MENTALIST_HERO )
, ^4 j1 }4 U, s7 {1 I8 } itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; g0 ]; T/ [+ L' w% J5 r
if( nJob == JOB_FORCEMASTER_HERO )# w) J6 {# }5 k0 k3 K( [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" L4 O3 S3 N2 m0 [- f2 X
4 M C) l! A9 b, J* {5 A6 T ( ( CUser*)this)->CreateItem( &itemelem, &nID );
& U" O5 S+ X, X( H& d }
" Q3 _# T! x4 Z, f g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& P+ L L) U: F0 W9 [6 F r ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: ~! i( Q/ U0 F0 r3 d N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% D+ M' Y" A+ S& t! o; B2 ?+ @ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( {% `( ^( _/ S2 ?6 W2 f
( (CUser*)this )->AddTaskBar();*/
( v' i9 b0 R/ u9 S5 c8 X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 u' I; g2 N1 J/ Y0 M; S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. e, I7 x9 x# B: X ((CUser*)this)->CheckHonorStat();( Y# K& {/ k6 o2 L3 m8 Y
((CUser*)this)->AddHonorListAck();
; c* ~7 y8 }1 Q9 _- H g_UserMng.AddHonorTitleChange( this, m_nHonor);
' S: M) ~; I } Z#endif // __HONORABLE_TITLE // ′Tà?
p2 F( K# p G9 v" f }3 K+ c( h& i0 z. I7 f
#endif // __WORLDSERVER: X( R" n, T \
}
3 U* F3 {, z7 X6 D) H' @( U
+ e. V% R) [* U( B) Q! ~0 A然后你进入functextcmd.cpp并添加以下
( t/ c" ]) Y. x( L. P( Y7 y4 n# m$ V7 c: w4 l" V2 x
代码:
$ b& T `, ^, G# g- pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, F2 d8 l) Z" b" k' r下面插入
4 F8 |- a% B4 e+ q6 l# {$ {% i% r5 zON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 [3 t. Y% s7 x" R& |7 L% d
+ C% B: [) H, `* B
然后你去
- w! Y2 T2 t6 {6 ~0 R4 P h$ Y' b
代码:
; P) z' {" ?) C3 F( O# B+ _$ w3 X代码5 w" B6 O/ q# [+ s5 G
BOOL TextCmd_ClearPropose( CScanner & s )2 U0 f9 s+ `; ~" Z- N
{
Z p6 _/ v8 I9 G) V#ifdef __WORLDSERVER+ T+ W+ |6 e0 R
CUser* pUser = (CUser*)s.dwValue;% @7 l j+ e8 S+ h; s
g_dpDBClient.SendClearPropose();/ ~, E$ }: E+ N) W0 J; Q3 c* E2 R# L3 r8 W
#endif // __WORLDSERVER# n$ @( i4 _+ g9 O6 R2 B
return TRUE;
, i c, S+ {$ O/ u}
* i7 V5 o; E" @$ O. s2 x下面插入0 Y+ M, @7 _/ m2 M' W z5 F
BOOL TextCmd_rebirth( CScanner& scanner )
9 J9 n2 x% Y' X% L* }( j* B! _{5 z- _! Z" m2 c; J
#ifdef __WORLDSERVER* ]" t: N1 c# P f( ~4 m" m
CUser *pUser;0 h" `- q- L& c" H4 U; y
pUser = (CUser*)scanner.dwValue;
( ]# F& k$ u4 Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 G# A# Z" ^: c9 y" G9 n; [- G! w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* A4 T N X0 u- a4 k y
else
8 A1 ~$ _7 ?9 b' B# WpUser->AddText("你还未达到重生条件!");
/ I; c/ x5 s' ]9 v3 [! ?3 z#endif
/ h9 F3 ]( P( qreturn TRUE;- m! H8 e* ?, a* `3 i0 Q
}
- b& R3 m; T* {/ {$ J* h
+ y+ |: k4 B. {0 `: {* A( s& X& D, M' R
5 @, `7 _" h+ {0 H. k! G. \9 ~, f* n/ ` W& w0 N( Z* G0 z
|
|