|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- X# B+ E4 q2 N
$ o5 g, U& O* ?- S1 r" a" C" X8 JMover.h
7 P! V3 f5 m/ ^! A$ @% M1 F* I3 c代码:! Y( I. [7 R$ n- k9 c
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 \6 ~$ a! R+ c* j& G
8 A! _8 O0 r% t& Z( u6 O
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / G @7 T: j$ w7 Q7 G
$ V8 x. r/ M( |. v3 G6 Q. v3 g2 `然后你去mover.cpp添加6 Y; u; u* g! w- W$ E" B+ q
) u) Y6 m p- ^
代码:! O+ s5 Z- i3 a& F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& K8 Z6 a4 P3 ?, D{/ e2 Q! B1 O2 h1 j* J
#ifdef __WORLDSERVER
! U. g/ w2 Q0 A' J( j5 c+ @1 f // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. H# E$ H9 @* e, m$ @6 Q
MoverProp* pProp = GetProp();' c/ f1 v+ E4 ^0 U( w5 ?* c
if( pProp )( M" T8 T! k P7 z7 y
{$ m6 T5 a9 ]7 ^% D
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), w2 n0 ^, R( j; f& ~' `' G& ^
{
9 E# U" [8 ^6 m# e AddChangeJob( nJob );5 W$ q1 r0 @2 @% C9 N( ?) `8 v9 w
}else{
. d" I3 ?& u4 G7 }, J8 _9 N1 } return;2 l, \. E; r6 E0 q
}$ ] F; ?( I* W3 h( B" B& @
int nPoint = 0;# C# q* _) G& j. q! O
if( m_nJob == JOB_MERCENARY )7 g8 Z6 d, v Y9 |- [8 }" q% L# ^
nPoint += 40;
, f; @7 I5 P& q4 Q# C else if( m_nJob == JOB_ACROBAT )3 h) T. |1 ]( L/ F
nPoint += 50;
# ]) K% ^; ]& U# l! d0 R+ e/ } else if( m_nJob == JOB_ASSIST )+ _2 {% w0 k, S' y( H
nPoint += 60;
; ~, d( n. u6 M0 ]* I else if( m_nJob == JOB_MAGICIAN )) x" I/ M5 k: r/ E6 @7 q, Y
nPoint += 90;+ Y7 D# K0 K% U: h- h1 t/ I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" d" e/ M0 L/ a4 `% P$ A! A5 `
nPoint += 120;# m9 O! f1 E% U; l, Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): ?9 @6 Z' E) W6 M7 @* z( G8 p
nPoint += 150;
q) w, a; p9 F else if( m_nJob == JOB_RINGMASTER )2 M2 ?- ]) N/ Y) x6 C1 K, O* F
nPoint += 160;5 \, |3 I' q8 V' |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); f, H* B, g/ d8 U; U( z
nPoint += 180;7 i# ?- `* m/ l; O. @( v4 `/ C
else if( m_nJob == JOB_ELEMENTOR )2 a. C* e5 t+ l& q( I
nPoint += 390;$ A b/ n/ y6 \7 b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! c) c- x) P9 O; G nPoint += 120;
1 M( ^+ j' I" B3 f- G: s else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; q( m3 E+ s& o5 s/ ^% ?+ A" V1 R nPoint += 150;
, R" q/ d5 w V! g( q; A I( P else if( nJob == JOB_FLORIST_HERO )
. G, ]! p2 r9 r0 g/ h, R nPoint += 160;
/ r% ?* H4 p$ x4 e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( V( l" g( L, Q7 J" p! ^6 ^! e
nPoint += 180;7 K! b. a$ m1 {/ X) E, n
else if( nJob == JOB_ELEMENTORLORD_HERO )# e$ h5 x+ u6 V9 w
nPoint += 390;- U: i# I6 Y( L( V. C: q
+ r7 K- S% l- l, ?! s: w& p AddSkillPoint( nPoint );
/ }. A0 U8 u* I6 M \6 B m_nLevel = nLevel;0 O% O. @' J" Q3 ]
5 w/ ^" c$ z4 }: C0 a, S3 ^' R
SetJobLevel( nLevel, nJob );
6 r7 b" `% D6 D! G3 V) b m_nDeathLevel = nLevel;
4 g! z6 u: r7 S#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 W/ N: N% B# X1 i+ h3 C
if(IsMaster())
1 j4 N1 }6 Q9 p {# x- |: w3 J- F- H) H( z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 ^) k& v9 ~ U- [/ t
if( nLevel > 59 && nLevel < 72 )
7 ~7 S9 d: c; [ E. {; u! w: m9 i dwTmpSkLevel = 1;
- i, f# T; Y5 ~4 R- ~/ R& k else if( nLevel > 71 && nLevel < 84 )' b9 }% M1 ^* U+ p: I: E
dwTmpSkLevel = 2;' L* @7 e: C3 w- w
else if( nLevel > 83 && nLevel < 96 )2 N6 K* h& s9 z9 [$ r0 H& }3 I
dwTmpSkLevel = 3;: E. T$ G3 ]5 U% c3 {. N
else if( nLevel > 95 && nLevel < 108 )9 y1 t6 v9 Y: x+ g7 I; ^- j% q
dwTmpSkLevel = 4;
1 i5 z+ z% N5 q6 J% s; u else if( nLevel > 107 && nLevel < 120 )
% i6 B9 K1 O- d dwTmpSkLevel = 5;
5 s( p3 p/ d8 |7 A# _9 Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ _$ o- T M9 b0 d' A' b { / I3 R. [1 u5 u4 k1 H2 E
LPSKILL lpSkill = &(m_aJobSkill);( G) ?2 f8 Q) S4 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )) ~. _5 V2 @# U5 j' f
{0 d) O5 B4 n4 D" T H0 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& P9 S$ h" I9 @' S; [% ~& e7 H7 Q1 k7 `2 A if( pSkillProp == NULL )) E' o- V( U: C V+ ^1 [( K
continue;$ e7 a! k8 c2 w4 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 B: V# @) N2 `3 f& ^/ q continue;
( d- ?4 ]! p; R9 [/ v! p lpSkill->dwLevel = dwTmpSkLevel;, H8 c. T7 {% m; ^- e
}" _) C% q- i) s) g
}
1 U% f0 g8 p1 ` I }
% R+ u/ B0 Q1 h6 R else if(IsHero())- |- x a: A3 S: D' s4 X5 I8 n6 U
{) ?) x& T [5 ]4 K$ W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & k) X: i9 | E$ e
{
% C) ^5 c; U7 } LPSKILL lpSkill = &(m_aJobSkill);! Z- z' Z6 p9 m8 x8 a' ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) w% ^% [* p! v! ^ {
* E3 o1 X Z6 g- E7 ~1 g- H* \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; w2 `; m3 A( G4 F* h- G if( pSkillProp == NULL )! w, `! J/ v' V6 E) {8 G# I7 ?
continue;3 w" n& e* a6 k6 R& v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( Y" Y6 t) l/ e) Z1 r continue;
6 K# t# F9 T" e# _+ `3 p lpSkill->dwLevel = 5;
. T5 m; r" `% a% e- l. Z }# f) a! S1 d+ |( P0 Q$ V( c
}
( p& x, T5 b8 Q, t$ | }. s3 @$ h; Z& G- V' x ?- a0 ]
else if(IsLegendHero())
" K- r0 e7 C5 k3 E$ X {
v, ]; i$ U) W3 c for( int i = 0; i < MAX_SKILL_JOB; i++ )
; N% g8 B! H) f. V- l { & O- N3 U* c2 q/ |2 }. b% P
LPSKILL lpSkill = &(m_aJobSkill);
5 Q' Q; f8 \" d/ z if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 u0 Q; L* y8 t! ` [ {1 E; q$ M7 e# `; X1 L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 M" Q9 v% M7 R1 b0 I0 I! N if( pSkillProp == NULL )! W: T+ g t6 F6 ]. X! _& H8 v
continue;# G6 ]* n, U3 W( q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) E: t5 v7 D* I) R, ]4 m
continue;
2 H. `! A7 K6 i. ^/ U7 W lpSkill->dwLevel = 5;0 B3 G& Q6 ?$ V7 s' k' `# s$ z: M
}
8 ]" _$ Z- P$ k7 F" V3 T! k) D }
8 p: S N2 T! O4 J% X0 W }" A' T: `9 Z, I3 k
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 j. P2 t" c; w( G# r; A4 x- B9 ?& x
if( bGamma )
0 N* x8 K* s; |8 [& @+ K {
8 V2 Z6 b, f! x+ I% k1 G m_nExp1 = 0;+ V* R% Z1 w( ~, K' ~# t! Z+ u$ A
}
( O. R9 s' t c5 E+ U5 K% l# a9 i
( (CUser*)this )->AddSetChangeJob( nJob );
- S' H6 L" L u/ Y9 D$ E g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 F8 q+ T* E, {# P5 B' K
3 P$ d/ l/ ?+ E9 _# @9 Y5 k5 o
5 C B. {# w) p$ c& ?#if __VER >= 11 // __SYS_PLAYER_DATA2 v; h' ]( J% l1 ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ F- _+ h8 m4 V- H& y$ [4 S
#else // __SYS_PLAYER_DATA- h' m1 b, z) Y ]- |$ ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# I2 y" K9 H; a8 [
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) f' c! x( `3 i8 ~' w if( m_idGuild != 0 )
% Y* W, n0 n9 {( v! N* F+ z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& l) K. c8 o; O) M$ x9 @1 d; o7 f( X
#endif // __SYS_PLAYER_DATA8 _; U! B8 w5 }' v- ^
SetHitPoint( GetMaxHitPoint() );- C' |3 J/ k0 \$ n4 K3 w' T4 g
SetManaPoint( GetMaxManaPoint() );
! G5 C1 Z" F4 o: v SetFatiguePoint( GetMaxFatiguePoint() );, X$ {* t/ u9 Z4 a
if( nJob >= 1 && nJob <= 4 )
+ i4 `& X* i# t: E* S {, u& Z- I- D: U, v8 M2 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, t) o x) D% z. V9 h3 K5 ~. S+ d m_nRemainGP = 28;6 B: o9 [& O5 r6 I7 u* `
}
6 j2 o& t9 C* M0 } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 i. f; `0 D+ J$ {5 E$ `! ?9 r
{
. O6 P& o/ D/ u/ e m_nRemainGP = 118;+ x; D `, N( T- k6 m( [: v' y/ }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 K0 U6 s2 ?6 h$ W2 ?$ s1 @
m_nStr = m_nSta = m_nDex = m_nInt = 15;- C% l2 K9 A1 s0 b" |
}4 ]) {- ]* m4 Y: J# L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 k9 a$ [8 s# U- G$ m
{/ v6 j9 y) g# ?; l
CItemElem itemelem;
, x; v" x! U2 G" l# ? itemelem.m_nItemNum = 1;
/ V. h) i( c1 ^# K1 B. a4 m0 e itemelem.m_bCharged = TRUE;# ~: _! \- @" {3 Z5 ~
BYTE nID;
8 N K0 Z4 C( q* ], K/ C
3 y: m \) f' { if( nJob == JOB_MENTALIST_HERO )2 q5 Y$ J! q( f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 s2 Z# T1 I7 J, d if( nJob == JOB_FORCEMASTER_HERO )
2 W* I5 |8 n$ E4 P3 W1 n, k2 |9 g. D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; D8 v% n4 ^, F2 ?. O8 l/ W
% b; O& |7 j/ t+ I* E; t9 M ( ( CUser*)this)->CreateItem( &itemelem, &nID );7 w$ q4 e S& D* ` n# Y9 O
}
5 i' U5 ^/ K0 Y! p X) D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! [7 u- X4 C8 i+ }6 S4 N) X$ j ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, O8 p: v* N! T+ V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; O2 j& e1 h7 }( @5 z/ s
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: A( |( K# P; a+ f* Y7 Y9 M' x
( (CUser*)this )->AddTaskBar();*/
& s# G$ v- F* W, y, l' M ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; ^; }! E; `( D# z0 \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 ~- n W6 v) i, l6 ]9 u ((CUser*)this)->CheckHonorStat();+ o( V; x6 A' b7 I- i
((CUser*)this)->AddHonorListAck(); x# T% l# s) _5 a0 u/ ~2 c, h
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! o6 }7 r8 X6 d#endif // __HONORABLE_TITLE // ′Tà?& o2 l; \# @! Q' ]2 P+ o
}9 i4 M' a5 v. T8 m# o
#endif // __WORLDSERVER
# f* Q% D: ]8 p j( D; h: ?} * k& k- Q/ O' V# }
q3 J4 n) l2 O) K) `/ v2 ?然后你进入functextcmd.cpp并添加以下
5 F8 ]% p4 P" ~6 u0 Q+ \, o% D P. g# j8 }4 D4 b
代码:
: V& U7 {) `: E' O1 f5 KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 H" m' R. | O1 F下面插入6 k7 W w9 h1 R& v$ J6 _; L( n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( y5 ^( c3 Y* `! v/ Q
2 o& p0 _) \& [/ s0 `然后你去
# ]! F( a7 ~* S- k! h1 s$ p" a8 K- R& k+ x1 V
代码:; J2 C) k: o" I$ _/ j0 n
代码
* q- Y t! `3 R( O# eBOOL TextCmd_ClearPropose( CScanner & s )
3 B9 L7 K, D6 c* i2 j{
2 i' B+ d, R/ j; d+ ]#ifdef __WORLDSERVER' H% [# r' F% c( v3 N$ w& `
CUser* pUser = (CUser*)s.dwValue;# n. u! z! g8 t5 E
g_dpDBClient.SendClearPropose();
1 @7 K% l6 }+ \1 }; ^#endif // __WORLDSERVER' K( l( L/ S; J, _1 i/ h- T
return TRUE;4 C f( G+ R7 A6 ~
}6 g3 _) h+ o' Q
下面插入% L9 B0 A( f! n6 g! m
BOOL TextCmd_rebirth( CScanner& scanner )5 H3 }3 Q/ p0 A4 ? Y5 \
{
9 @( k( N9 B$ a5 \# G#ifdef __WORLDSERVER
1 h" J# n' D' O( k+ }- h7 E/ _" ECUser *pUser;6 ]+ }3 s3 Z& p5 {1 v( P* U4 r
pUser = (CUser*)scanner.dwValue;0 V5 k1 k8 F& y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 h) G* W0 X& k; }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 e8 B, ~' y: O7 h& i0 relse. X; x" ]: g5 t$ r. }
pUser->AddText("你还未达到重生条件!");
: c5 E6 \% Q& e#endif, {# d: Z, v \6 X2 F, |3 y9 h
return TRUE;
" {6 g' Y- k$ }; y} + Y# R1 J- P( u0 E* u! J
" f# T4 Y& |! H, k/ { Y. M
6 q) K; U. A' Z. C- G3 S! \/ {; M6 o( p0 [3 {1 R9 P. v( `
; G. i( C, a' s4 ^" e |
|