|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 W/ x2 Y& @+ w9 H- t# B$ X. d" _. [. F! w' j+ V5 i2 q9 V
Mover.h6 {1 i& D9 w7 E9 H, {2 g
代码:
7 m9 z8 Q& ~% i" U! f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; v5 T2 M s1 t
~. \6 |( n- N/ t. n" @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 F2 v+ ]. U* |- x; c. v9 L, K8 {9 C2 D0 e. e/ Z
然后你去mover.cpp添加
5 q9 P E6 l6 @! z; q6 a# y g
/ `3 j1 ]" ?0 C: _/ y* g. f代码:' B. f) m2 @2 l e |
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* {- j* k! x* U
{+ N' ^& q$ G1 F, x i/ y
#ifdef __WORLDSERVER7 k5 F3 [1 W% [) ^/ P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ q; k3 O2 T! v4 x
MoverProp* pProp = GetProp();0 ?7 m6 G, F o+ R M2 P! H
if( pProp )
' k& A& y, t& K {
1 Q9 }; s1 o( Y; j/ W( E' |1 K if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 u$ |7 L; }, |2 a: ^- A
{
, o9 k% w8 T/ L% O; V+ L AddChangeJob( nJob );
9 i4 Q# U9 F5 l+ J$ W }else{. J5 k; S2 Z, M+ S: s# m( f
return;
# M! c" R' _( Z& j2 W; {, w; { }
& ^7 e0 [% c F8 \/ L. _* h! v, ^ int nPoint = 0;
# X4 D" |1 @/ N if( m_nJob == JOB_MERCENARY )
& `) W3 Y' x4 c* S1 X2 v. F nPoint += 40;/ Z% A+ t r8 O4 x4 E& Z; V- }! Q
else if( m_nJob == JOB_ACROBAT )* s- I8 K" b/ y
nPoint += 50;; t/ `* v- S7 F4 P* r' p; a/ T
else if( m_nJob == JOB_ASSIST )
* M+ }4 y5 w. e) q2 [- H8 R) g nPoint += 60;# E/ W2 K. P1 e! l! @
else if( m_nJob == JOB_MAGICIAN ). o1 V, j' {' t
nPoint += 90;
+ K4 ]( O1 g( F& ]" N; v( L% c) p else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); s( i& j% e" V/ }, a" Y( k
nPoint += 120;
+ W2 \: `+ ~! a! G9 E else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% {5 Y" [; i* ?; f6 o. A nPoint += 150; H9 @0 K4 ?& k1 {# T# S+ A* z* @7 i
else if( m_nJob == JOB_RINGMASTER )0 x. w) Z& K2 D
nPoint += 160;
- [! P. u2 p: R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ n/ e( P8 P: L8 H3 i: s3 O
nPoint += 180;) M, D4 \* u, A1 [. ]5 e
else if( m_nJob == JOB_ELEMENTOR )
; ~! A8 k+ t8 L$ f nPoint += 390;5 b3 D) s% S$ u2 K+ i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 J0 G( E5 P, u* X' d nPoint += 120;$ e/ l- s/ l1 Q- z* t3 Z- D
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# V( e1 w" A3 Y. G
nPoint += 150;: p- }( {6 G8 N; t
else if( nJob == JOB_FLORIST_HERO )
8 b; u9 ~8 G: L- e1 G4 F# W; W* ~; }8 O nPoint += 160;
+ o/ C! y) U2 _0 } else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 Q; P* }7 C, V& U" _& S
nPoint += 180;
1 R9 B H# T @! F" D- @ else if( nJob == JOB_ELEMENTORLORD_HERO )
+ O! w( c8 V% f8 ^ nPoint += 390;
' L4 V! O* D6 e! t: i- b( v
3 P! Z# ?3 t! E( d AddSkillPoint( nPoint );
# W( f1 d0 F/ ^9 O5 J+ Z m_nLevel = nLevel;/ P: y" l. S9 }0 V" V" @
3 m: D$ R, W9 h X0 f SetJobLevel( nLevel, nJob );
& T L; o- i( k8 H$ V" Z m_nDeathLevel = nLevel;
' e# L, M1 D+ O& F: ` v% |2 K#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, [" I& E% s, H- j4 ^; } if(IsMaster())
1 j. |$ x/ b# N$ J% c/ A& s {! f/ E' V+ G( y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! n3 E! x [" C if( nLevel > 59 && nLevel < 72 )
, A3 `- }- W, j/ q dwTmpSkLevel = 1;
- e% ], N; g0 {) V H else if( nLevel > 71 && nLevel < 84 )8 i+ b. s9 u- F/ q7 R
dwTmpSkLevel = 2;/ ~5 H* ~& i4 F) h9 E) L
else if( nLevel > 83 && nLevel < 96 )
3 E( E: ~% F% x$ k9 c9 _) ` dwTmpSkLevel = 3;
, j, Z* v( x6 J4 N* F* e else if( nLevel > 95 && nLevel < 108 )! p, d$ S- E& \
dwTmpSkLevel = 4;
; ]- U* z7 r% @ else if( nLevel > 107 && nLevel < 120 ) z, N, f8 K# c; E0 c
dwTmpSkLevel = 5;- O* D# j: @6 h1 g4 t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + z+ s4 l0 r( ~
{ * \' K( W/ T8 ^2 s% W
LPSKILL lpSkill = &(m_aJobSkill);& l8 o' Y7 C9 D; A* l d
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 p% p, s/ W4 f* [
{
5 D! w: {9 r; W. V9 f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 ^: X# H8 t/ g* j if( pSkillProp == NULL ). W) x, O+ R3 ?' ~
continue;( |% x3 m& Y( ^; b9 G$ W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 u2 m, o7 ~1 A
continue;% [/ {, g5 Z/ `( g" n2 C; |( o
lpSkill->dwLevel = dwTmpSkLevel;
$ x5 V. q& Z! X) u) A0 u }, E* b4 }. j) E; m: Y( h: J9 `9 n* @
}
7 v6 \7 f5 R+ c7 X' v. w }
W9 D4 f# C$ \! F! E% h' _ else if(IsHero())" s' L. M: u, E' C' R4 K. r
{. m9 O" I' Y. d+ ^& o. y9 [
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : z' Y9 K0 r- B4 e/ H: @; c
{
3 ~3 h; r' h5 D1 ~5 }2 R% P LPSKILL lpSkill = &(m_aJobSkill);
' J* G1 x# {$ [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
* |( j# t/ s! _- V* N {0 Y6 }; a1 Q3 a6 s9 Q# d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: ?2 J0 G3 Y1 M4 R! L8 S if( pSkillProp == NULL )
0 B5 s/ b, X& M% g& t continue;1 d- M* R# C* x9 J- p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ b. @, r5 G5 h- [ continue;
4 J" K9 G& o+ f5 p lpSkill->dwLevel = 5;! E: Q9 v* q; @- \. m
}
' s8 k6 }- `0 ~3 R# W }) t3 @/ N: B+ A: H( Q& R
}
* p8 w) ~9 W' ^, B0 R" A1 { else if(IsLegendHero())
0 e& L. S6 M- O' [4 W {# b! N, {" R. d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . y, [2 m) B3 y" I3 b6 b
{
1 `4 Z) w) t' H$ f. l LPSKILL lpSkill = &(m_aJobSkill);0 ^4 J3 l; \- W1 \
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 o) Y- P* P$ b) E& {4 R
{* T$ k6 N! i* `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- J l3 o0 N0 N& H) F2 t if( pSkillProp == NULL )5 B5 q9 J, S8 U+ q6 b3 {
continue;
{ Y' \; Z$ d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ l& Q8 w0 `. D( @0 c2 X% H1 J
continue;
7 T/ T" h/ k' w lpSkill->dwLevel = 5;( j! e3 e" d5 C
}: ]0 J! A; Q3 S* O) K9 T
}* I4 i; l9 M( b+ d/ Z
}
( Q& V& M# k* a/ N! @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 @& A8 A# d& s% q
if( bGamma )1 W( D( j: y8 A& _
{: y( F, a+ f7 r! X
m_nExp1 = 0;1 E& \5 s- n. O E) f& F8 u
}$ A5 ?" G/ Q+ \8 d5 s9 C
" O" l' p5 h3 V; i" w+ p ( (CUser*)this )->AddSetChangeJob( nJob );. r& f% M; m, M- N# z, F
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* N8 q0 P. s+ b) u# q- s
7 L: C0 T0 Z" T2 K* |( m
& w1 c% I' C/ M: s5 B! l7 u#if __VER >= 11 // __SYS_PLAYER_DATA t# L* a* F4 R
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 r9 p" O. p" A w; R
#else // __SYS_PLAYER_DATA
' q: `5 J+ r' O4 C g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 S0 \: x+ K& ?) G5 u: s8 h+ E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 T* o7 M9 w! C: n3 `
if( m_idGuild != 0 )
+ f9 B1 p& w# g' i, y7 {# Q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 S- u$ h$ ~- |' w+ z' [#endif // __SYS_PLAYER_DATA
+ d1 {8 p; n: i; n% h SetHitPoint( GetMaxHitPoint() );
1 C+ e- k* r2 D0 u. G( O8 \ SetManaPoint( GetMaxManaPoint() );
2 O1 \$ r6 A8 a' b9 U- M SetFatiguePoint( GetMaxFatiguePoint() );. v' _7 ?7 o \$ g5 @3 w
if( nJob >= 1 && nJob <= 4 )
5 r8 ~3 V& n# @# ~8 v7 X# L {9 T. \) e* E* |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 l% z; e; ~" w. ~8 X* t m_nRemainGP = 28;0 q4 D6 r# d) g, L$ {' ^
}! G& b6 h7 ~1 \) l0 U) C' E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); E9 }8 X3 h' C% ~7 Q+ y% w8 k9 i* B
{5 }6 `) y1 T7 x7 K
m_nRemainGP = 118;; P/ `; ]; t" v I$ s! F% w) B
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 n2 z. j5 C% u4 O [- Z2 `
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# @, N; D# L% f. ^2 n$ I }7 V2 t, T# K# G; j9 o6 N( a
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 y. V2 T: X! z z {
3 r9 k- L: V( i9 a. i. X, g CItemElem itemelem;2 D5 I4 c# F; F: G' n
itemelem.m_nItemNum = 1;5 I" X( b) _5 |9 J( g: }6 r! [. g
itemelem.m_bCharged = TRUE;1 q/ E& s: h8 b$ ^/ K- P/ Y) n3 ^
BYTE nID;7 E0 r A" E$ p+ Q0 T1 x5 {5 ^
# B6 Z/ F0 T( X" w; R) y
if( nJob == JOB_MENTALIST_HERO )
$ E; I2 q. \9 ^! {- A. h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% b- e- j+ V2 q- h7 `+ A. j8 Q) m
if( nJob == JOB_FORCEMASTER_HERO ), }' q! n, V' ^) N% w
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ e2 B6 @- C% O- \# u, F' N) B# I& Y' [* Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 L6 @& j: G/ e8 @5 J# H }: u( F% P2 c) S7 Z! u' z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 B' Q, q3 `" X0 q6 Q: B8 c. s3 \7 w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# z3 ` g- w' g6 [% C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% W. Z3 ?) U) ]1 c- y! p8 _7 } /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. a5 e/ T0 @1 v c
( (CUser*)this )->AddTaskBar();*/7 ^( `$ I. s3 f/ H( g
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, b- o/ U. |- D0 u( p#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
m6 w3 U ~) \9 ^ p. r1 o ((CUser*)this)->CheckHonorStat();) l- G9 v" r7 J* `
((CUser*)this)->AddHonorListAck();
# {/ {+ X! ?# w; x$ G2 w$ F g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 k7 @5 f/ v r% s# B, T6 \, w8 B#endif // __HONORABLE_TITLE // ′Tà?
, h, A5 z) \1 z) p* O# Q }
6 d3 }! |" N/ l3 n6 s' m- n; J#endif // __WORLDSERVER2 ~: @1 p4 c4 }5 s( o% D" J& e" \/ y
}
}1 S" h1 V- R% Q/ M1 K
3 }& e: M) T- C然后你进入functextcmd.cpp并添加以下5 j6 X: _$ {& N) y( g
* d$ N' e, c8 {+ Z8 h- ]
代码:: A0 ]8 W3 n9 [/ x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# _# t" C* m$ d( y. S1 f; L下面插入& P# ]6 d# M# M; s. C' |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: W; r) v/ G+ d; X: q; _6 n8 v- s2 B7 H0 k
然后你去. E) f! ^4 ~& z* n% m+ X
3 v: C0 U0 ^* L代码:- W8 b; M% k) @7 n4 U
代码
+ _# d9 @4 O; r" j- DBOOL TextCmd_ClearPropose( CScanner & s ) Z1 Z) i. C( \- c' n5 s6 |7 {& X9 ^
{
; \8 E3 _( x1 f& }. B#ifdef __WORLDSERVER
/ H4 W9 P% `8 r7 C* B0 _5 y CUser* pUser = (CUser*)s.dwValue;6 v7 x, h; k: s! c7 T" X+ f
g_dpDBClient.SendClearPropose();- S2 t8 I2 t1 Y0 K n( j1 Q
#endif // __WORLDSERVER
$ j. G3 H% {, f7 Q return TRUE;
" n$ i4 w5 k7 f; h# I}
/ C* q( M2 b+ K下面插入
. Q+ Z9 G# M$ o; R' MBOOL TextCmd_rebirth( CScanner& scanner )5 ?8 L- m$ O/ K2 b
{
/ c+ t8 ]7 z/ T$ H#ifdef __WORLDSERVER
4 V* p% ]; K0 F/ y9 A5 I VCUser *pUser;+ n# F9 y. A; S7 V
pUser = (CUser*)scanner.dwValue;# | E/ U1 \+ O! g, ~
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' M7 a& T. R3 a3 g9 S7 L L% U% L! f
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: E9 }2 M& @+ o! u, e U9 Selse( Q7 l3 F# t4 G: _4 p
pUser->AddText("你还未达到重生条件!");# G: i/ d; X- O
#endif
& T) O" Y/ G3 T' w. i4 A1 P) ~return TRUE;
+ b6 L0 f) O8 D- ~8 w3 h} ; {8 J7 y& P& G0 Q
. o, A& K& R+ \& C" c2 s. `. d
! \$ s5 G5 ]0 v2 }* f
' v5 f5 Y# }4 {$ t$ H7 q# ]# k, N7 r4 l3 J4 l4 K
|
|