|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! k2 I2 h1 ^! |! A* E( B( U* J# O1 E( l
( b7 k4 q# Z; b [1 O
Mover.h
3 T& _5 m+ r$ v" J代码:
" q" p1 T! ]4 @" K! A, |! h F) `找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; a* [% B: {( u$ l
) w U( Q8 ?9 S9 l I+ W7 I1 P: l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 {: e1 u1 s5 W, J7 `& q
. C; v% K* s2 I然后你去mover.cpp添加
3 [ h/ d4 h ?, r# s/ y6 p6 v( ^7 c5 j" e/ d g1 o
代码:: T3 [5 ?2 a; L1 `& s# b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 l0 b- v! i5 d1 M4 c5 u
{1 g. i( W! w: ? R, N( v+ R
#ifdef __WORLDSERVER0 k3 f L; U/ k1 s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! a, l, a" R: K6 c1 F" _ MoverProp* pProp = GetProp();
& p8 K* `2 f6 e7 C$ W9 P" H7 s if( pProp )* H& Y4 ~! y' V
{( O. J: _% N& b4 _' e* t; ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 h) C1 Z6 }) l. h, v+ s1 l9 l$ M0 Q
{
, o- \" P6 M0 A+ N7 c6 T AddChangeJob( nJob );
; i( Q& X' ]1 Z- D* |# ^+ D }else{
9 u, L! a0 s% \9 m& z5 \ return;
7 N: B- b( d/ \1 x: l8 p }! _+ s" ]6 ]6 T3 u) H
int nPoint = 0;/ S: M2 a1 u3 W2 K2 a, ?' ~& h5 ?- j
if( m_nJob == JOB_MERCENARY )
3 U9 N! ^$ X# C7 F8 I* N* ^! T nPoint += 40;" A! s2 ]+ Q3 b
else if( m_nJob == JOB_ACROBAT ) ^& \9 D; z' _. E$ S' l D& |7 O" B/ P
nPoint += 50;
* f) W7 ^( l9 D0 h; T- D* P else if( m_nJob == JOB_ASSIST )
7 t% u& W7 N( `" S; k nPoint += 60;3 ]( p. N0 R5 t' Y* r: p
else if( m_nJob == JOB_MAGICIAN )
0 U0 o# I# W' Q7 o0 ]; I nPoint += 90;
* f% z2 ], o+ R, C; C else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, e5 t W8 n B3 O nPoint += 120;
7 i8 a f8 n4 N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 m6 M) u6 c& R0 _1 I) ~
nPoint += 150;" {7 D6 q0 [5 ~! d. g) X
else if( m_nJob == JOB_RINGMASTER )' H* q5 _9 j9 V! Z
nPoint += 160;
1 `, h8 g& ^1 w* n# N9 A else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% m# t) b1 s& W; t; |4 c7 U/ G nPoint += 180;
& {, ]; ~& W# v else if( m_nJob == JOB_ELEMENTOR )/ B! o/ e) l- N) P1 b
nPoint += 390;
6 m2 l4 K' H. `; i$ o+ W else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 L' A) B: N* g" t/ z. k
nPoint += 120;
; {8 e+ E8 ^4 T; F( C7 ]$ w) U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 p/ l+ \) G) _ t# u
nPoint += 150;
6 j( c0 X' I) F( }6 e7 F else if( nJob == JOB_FLORIST_HERO )
' B' ~1 Z6 @1 R S: Z u$ F& Y nPoint += 160;, q4 N4 l5 v2 V0 X x7 N0 E
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" Z9 w6 j( D% s) O/ w
nPoint += 180;
; ]8 q" r/ e9 f9 } ` else if( nJob == JOB_ELEMENTORLORD_HERO )
1 A! ]: o2 u2 _- m' t& ~) _* s1 l" M nPoint += 390;8 ]; {% t4 a& a) ]" A% V
4 e2 r# f6 N( @ AddSkillPoint( nPoint );& O. Y# ^( l& b; }) Q$ h1 W4 `
m_nLevel = nLevel; G: Y% r; j& K) ], t3 D+ k
3 m/ z; F: F; D d SetJobLevel( nLevel, nJob );8 x3 M: w, w% L9 i
m_nDeathLevel = nLevel;+ v* ?! T, N4 h C! m# [1 M0 |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
F0 X8 S2 K3 X5 u if(IsMaster())* M9 V2 V1 K. i% n( V( F% _
{
f4 L. ~( e3 | Y$ S- Z( G int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ B, \# K$ ^. v) k
if( nLevel > 59 && nLevel < 72 ), I4 [6 Y: Z$ @
dwTmpSkLevel = 1;
( e6 R3 a& [5 \' j, r else if( nLevel > 71 && nLevel < 84 )
* }0 X4 w( V. d( H' @2 C. ? dwTmpSkLevel = 2;& N& p. \# [5 |/ a# f! Y2 L
else if( nLevel > 83 && nLevel < 96 )
# [+ j) M3 I9 \+ q" O dwTmpSkLevel = 3;
, r5 h. ]( P* `- F else if( nLevel > 95 && nLevel < 108 )/ E/ i1 B- Z# C8 r6 t2 X$ c2 R5 q7 I
dwTmpSkLevel = 4;
$ H. L" M% A) @+ G4 z0 C% v else if( nLevel > 107 && nLevel < 120 )5 M! K! c% P; S: @) A6 [
dwTmpSkLevel = 5;) e5 G0 m- I! E" N3 V5 M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 |# }( C" M6 \# t$ X& C+ R5 Q {
5 ?* t4 b- H: E8 Y* x* B3 } LPSKILL lpSkill = &(m_aJobSkill);' a, D4 G6 N. `( z- W# P- `4 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )' q3 H6 t0 L8 f
{% {0 y6 q8 ~( h: k4 y5 `4 f& I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : @! d) \+ @2 o: x% K9 H- h
if( pSkillProp == NULL )) G* V$ q+ f3 i3 Y/ O. [4 G
continue;
9 s6 _* s M8 [/ g5 R7 M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( m" F/ H% O0 ~" Q: {
continue;
; z4 ]8 c5 A. O8 E$ m$ L lpSkill->dwLevel = dwTmpSkLevel;4 v: z; W! n: L5 W- O( I) \4 h* ]
}
! B, } V+ f' g1 c }
, ? l. p+ ~: i' F4 f! d }
4 J; M; C4 s& }' \: Y" V else if(IsHero())( H# N9 k t0 S& R4 m
{
' F# |/ C: I& T9 e" {7 F" ]1 | for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 j$ J: O( F6 ^' Y1 H
{ # @/ E7 g, f x& ~" o
LPSKILL lpSkill = &(m_aJobSkill);
8 _: e. X) w- t. X if( lpSkill && lpSkill->dwSkill != NULL_ID )) V% O: R7 e, _9 A
{
2 c8 J! ~8 ?) Z& E) |9 o3 {5 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 d; e' y0 p8 [" l
if( pSkillProp == NULL )4 Y8 v/ a& _$ p& G0 a9 a: c+ q
continue;" ], Y+ z8 @2 ^2 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& e# ]0 H/ ]7 e0 \3 |4 g, V
continue;
; G1 x" y% D- c& P( \8 Q7 l lpSkill->dwLevel = 5;, b* N O+ @& m! k
}
; n$ {% {6 \: d, b6 a! ?6 y }3 o: ?0 t! t6 {5 C/ O5 V
}1 P& H, R1 n! \0 v v. \
else if(IsLegendHero())
# t3 i3 k* [- s( G$ R8 ^# L; H( U" b: T {, u; d- r! C# X# O0 W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / i# l4 m# E1 y2 X5 y# p
{
# A# U; K+ K) T4 T h1 r5 f LPSKILL lpSkill = &(m_aJobSkill);
6 a6 h. L# p: s# J! H4 W b: |: e if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 {* M* U9 d6 I5 y* N- b {
! W# T$ b' ?! a }8 P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 p7 e( g! I; u* M
if( pSkillProp == NULL )& U: V0 b3 k% p4 Z6 B* k- l: N
continue;
! k @8 A: U: M9 y7 N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ L2 Q- S1 N- k. [1 {& p3 X
continue;
# U" P+ ]$ z M6 @0 H lpSkill->dwLevel = 5;; Q" q! z/ D; m' R# [
}- r9 a* m- e6 o3 i/ |: b
}
2 ?% x6 w) P7 w6 M1 W0 d: j1 n" R }
3 {2 i% u) f4 Q. u) P#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' J8 a* f$ E5 h/ h+ ^& l+ y if( bGamma )
: E+ l- ^/ k' Y1 ^& B {
! t" x' l- k" v% D m_nExp1 = 0;
0 x0 R, m% I$ f/ w } t7 ^! _7 `: c" L5 P/ g" [
3 j. u4 x6 A, W! d0 B9 c
( (CUser*)this )->AddSetChangeJob( nJob );
, r5 W5 ]4 U: ?( T g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ G/ F+ [4 T; j+ E, ^$ B) ~0 `" T6 E
, a8 I* F3 u" m0 d#if __VER >= 11 // __SYS_PLAYER_DATA- D& V9 l' m& g4 i3 R) ]: d4 P) n4 A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 S5 I$ X n3 g) c
#else // __SYS_PLAYER_DATA' f' s5 Z" {& I9 I2 | m, w; C. v7 |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 s) a) F, O3 X" n9 L+ l g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* x5 ~( a! ?, Y; K& t
if( m_idGuild != 0 )* m( `! G; H( G3 Z9 Z+ m) Q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, r* g, P1 R5 m2 r#endif // __SYS_PLAYER_DATA' A; J: J1 W. m$ x
SetHitPoint( GetMaxHitPoint() );
+ a% h+ p: n \8 ?7 V% O/ C/ _7 r: g SetManaPoint( GetMaxManaPoint() );7 V( \% F: P3 X, C! f
SetFatiguePoint( GetMaxFatiguePoint() );+ R7 l+ h+ J' m3 @3 O
if( nJob >= 1 && nJob <= 4 ): H( k- z1 s* t7 r r
{. k2 V* w( ?' F- B1 O
m_nStr = m_nSta = m_nDex = m_nInt = 15;# S' e \: t4 c' u2 v' j9 q8 Z
m_nRemainGP = 28;/ r2 N# l$ [& m/ ?1 Q3 ]- z+ [; i# x
}
) i* k* B6 k! t if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* Z. x3 y% E7 `! v! V {( x' W8 n, v! g) c7 w
m_nRemainGP = 118;1 H5 X' ?8 Z; }$ N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ r& e% x! H% E/ @% k j# N# E
m_nStr = m_nSta = m_nDex = m_nInt = 15;; j* J0 `. Z0 ~/ m# {" k
}+ Q$ q4 `. {1 c5 h1 b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 b5 i; }& l% m& I+ x
{
; a. O$ u& U3 v G M3 l. ?# M CItemElem itemelem;
( ?' m; c0 H+ ~0 I; d6 o itemelem.m_nItemNum = 1;
# R: `1 }/ B$ S" {8 E8 O/ @4 y) f( V itemelem.m_bCharged = TRUE; K9 `8 A9 _4 N* ~: E0 d) s- r
BYTE nID;
( q- G6 z& Z6 L w8 x+ }) P/ B
9 f8 g$ {3 D0 ~* b if( nJob == JOB_MENTALIST_HERO )
+ S. L" X" | v; U' k. H itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 ~6 U |, [: T7 @$ J6 [: d if( nJob == JOB_FORCEMASTER_HERO ); I! I# V2 ^% {7 {' b7 P
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 x# K5 K3 g9 X! r$ T+ [ l, a
6 ]+ S+ C6 c% Q, E
( ( CUser*)this)->CreateItem( &itemelem, &nID );) @# Y: V0 Y. g2 q$ }4 M' a
}
, V1 I, f. t% y8 O+ }, m! R6 r$ G; q! v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 A, V8 o& {) O ` ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ B3 F$ [+ p7 H
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 \ c6 b+ s* T+ Y3 N5 b q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' d. `" _3 i; r8 o
( (CUser*)this )->AddTaskBar();*/
8 O8 X$ j- F. O8 u# m, Q) ~ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* H0 @! u) U q: {7 n- n+ e
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" Y6 v3 f3 _ l$ H1 @
((CUser*)this)->CheckHonorStat();0 R! j0 ^8 ~3 Y W' g3 |
((CUser*)this)->AddHonorListAck();7 x& o! B; x% b: J5 Y* J
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" o8 @3 c$ t3 x1 K& N9 i#endif // __HONORABLE_TITLE // ′Tà?* d2 u$ u! y; D
}
+ s( b! M( c; L/ I#endif // __WORLDSERVER
5 q6 J* `3 B$ n4 y8 K. O0 z* H}
& E9 e% b! I0 R) h
: b1 @ f9 K. h* O" i: W然后你进入functextcmd.cpp并添加以下
7 z6 v* A7 C, K8 a( }3 g
9 \" P7 C P9 b. ^$ P! r& }代码:
! N* r/ v' _5 x4 fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
X. q4 N6 k2 [+ r8 P R' M0 r4 K9 E* d下面插入
9 q+ r1 E* D/ Z8 y4 U' t$ ~ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ t5 \ v! n- Q3 Z u( i2 m% [* u
然后你去
* w* \7 J& p1 P! b4 \- T2 v# B2 }
, r, x' X# S" }! D% P( |/ Z4 v代码:
4 j2 D( F1 m8 ~) n6 I* t代码
' s3 |+ b! b/ ^+ uBOOL TextCmd_ClearPropose( CScanner & s )
, x, Z' j' I6 v: B{
' W' L2 g: {5 P1 K& B% M#ifdef __WORLDSERVER
- W2 i. B- n) w! h( P) F5 m7 @ CUser* pUser = (CUser*)s.dwValue;8 B7 p' P8 P6 p8 m- @) ^$ R
g_dpDBClient.SendClearPropose();
$ s3 \! Q0 \9 P& j#endif // __WORLDSERVER2 T- T0 f: A) z6 T
return TRUE;
& x7 _# z6 l5 z6 u' \}
. \5 z/ ~% v$ J, F下面插入
7 r4 @ M! J, w0 OBOOL TextCmd_rebirth( CScanner& scanner )6 W! F7 X* m) Z4 \% I5 f
{: N/ E" H+ _" g! H6 R0 o
#ifdef __WORLDSERVER
/ N7 B3 P- n# {0 NCUser *pUser;+ |0 P% `* C" N7 f( ?" ?
pUser = (CUser*)scanner.dwValue;
: I! T; t( K4 i8 yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 [" [$ U+ m. B7 `8 k% ^' V7 J
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! Y7 K( {+ O6 j' _else8 I8 c- o: N f& s
pUser->AddText("你还未达到重生条件!");, t5 p0 y9 y/ F% {! _6 |
#endif
# g0 H k6 q' nreturn TRUE;
- D" V9 K1 l. p9 l7 j p+ g3 g6 l2 U4 s7 f} 1 \9 K1 c5 f- }; b/ Y( e2 }" R
; d7 D2 M- c$ E/ |9 ?
# t9 o. ^5 A* [& _1 @2 V
+ q1 T1 g' s: v2 ?; }% i1 a# z
. G# H& s; S: ^4 a# e |
|