|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel1 ~: I8 F+ m/ e
! d! d, z6 i0 v, w% Y$ T
Mover.h$ O4 x6 Y# O5 \* a+ Y$ c
代码:. M* I6 R8 n J! e7 @8 B$ |$ C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: Z8 v8 j }: K2 _
+ C5 j/ q, a5 s8 `: f( l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* s" O9 q8 r! X9 p3 n, Z; {% b" ~2 x5 F
然后你去mover.cpp添加( t2 `* M' r% ?1 b. `) N$ i
8 P& g6 x8 t6 O* S9 f6 m
代码:3 }3 L( f5 Y0 u0 c& [) L
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ E6 i/ u; U6 a. s
{
W/ F9 }) C+ Q) J. n, r#ifdef __WORLDSERVER
1 w* S6 @9 g7 Y# h e. s8 _ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ t2 h' C. P% W MoverProp* pProp = GetProp();
: s# m! d+ s/ U) p F3 h if( pProp )+ N+ {; E* [; ~% V* V9 B
{
; w) w- O6 j. Y$ C- _7 L1 D' G if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 L) C* @3 |1 w- r3 w+ n! Z
{
+ V9 y" M& m2 K( G0 ] AddChangeJob( nJob );! }- P/ b1 g2 I+ s0 Q/ j
}else{; A, @2 L( R0 @
return;3 x0 o. ^. ?* K/ V
}
. G- x8 E: p8 i& M int nPoint = 0;
, {" \6 U {' K I* R if( m_nJob == JOB_MERCENARY )
2 C6 p V+ z. m, g* m$ e6 M/ S0 ~ nPoint += 40;8 \ O& \+ R+ W: ^) r" Z1 N
else if( m_nJob == JOB_ACROBAT )
) D: A N2 |$ D2 @0 [/ B nPoint += 50;) j" \ V3 u/ ]5 T6 }- S s0 B
else if( m_nJob == JOB_ASSIST )$ C* r. C/ Z; t7 |
nPoint += 60;! @+ U) L4 g2 ~4 M$ M( S
else if( m_nJob == JOB_MAGICIAN )
1 Y1 A+ ]- J9 { y/ i/ R( F nPoint += 90;
$ j4 Q# w- q4 x z- n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# P h' X+ h( \5 I% i! t; M nPoint += 120;
5 r5 D* I! w- N! F( {- X o# J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
m! V7 ]/ m6 q5 |& F% l nPoint += 150;6 c" f- m; z. V5 G. _1 K# t: `% w6 q
else if( m_nJob == JOB_RINGMASTER )
) k7 F/ g6 V6 o; W( s. _; M nPoint += 160;
; ~% h7 |0 e% l+ ]7 W% i- H" y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
N8 _/ M$ S" t2 M+ w# N+ v* l: `7 n nPoint += 180;
2 R: X! F, ~1 C0 ^) j+ I else if( m_nJob == JOB_ELEMENTOR )2 L' n$ [9 E" J! o6 w* L' u
nPoint += 390;
- ?+ Z, h$ ?& k else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, A0 v1 {4 [8 m5 z nPoint += 120; M3 y7 N( `: c+ W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 U& u% R5 a8 e# G- D* } nPoint += 150;
1 I J: s+ I3 e$ f' l& e: _: ^ else if( nJob == JOB_FLORIST_HERO )
0 p3 D$ ?1 }0 g; { nPoint += 160;8 q! a, M; Q& L$ R* u8 l% g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( G. m) y9 {6 X* `5 k
nPoint += 180;. V9 d2 | k, }( X
else if( nJob == JOB_ELEMENTORLORD_HERO ), S* E. ^" U: W
nPoint += 390;
, L( X5 X0 X& o6 ?$ a% D" o: H3 A. P, H4 @& ^
AddSkillPoint( nPoint );
8 z8 i2 ^7 [% Z* K, }5 b m_nLevel = nLevel;; h |7 k' d# Y7 h) K. V
" c: [, ~- ~; r) ~- u1 P
SetJobLevel( nLevel, nJob );0 i8 x d+ d" s; Q% T% p7 l
m_nDeathLevel = nLevel;0 a% ]0 E, E; S: j7 b( ]7 ~# c
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 t; a( ]" g6 _+ W
if(IsMaster())
! A9 }1 M) }9 U$ E) d# h% z {7 M/ a, n; G7 N# H. p+ F. ~
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 \# r+ Q; P1 q8 F if( nLevel > 59 && nLevel < 72 )1 |2 T X: {+ P
dwTmpSkLevel = 1;; n) ~3 V3 |+ b, \- N0 z3 X
else if( nLevel > 71 && nLevel < 84 )6 O! E* G5 ^6 d
dwTmpSkLevel = 2;1 R2 @; @/ Y& h+ R
else if( nLevel > 83 && nLevel < 96 )( x9 W! ^+ h% Y
dwTmpSkLevel = 3;
$ W2 |# k' O% A: a9 I4 G else if( nLevel > 95 && nLevel < 108 )
( h) a& g8 G- K! {8 E, b6 h: q# w dwTmpSkLevel = 4;# V6 m) Q8 W+ |& w' }6 k
else if( nLevel > 107 && nLevel < 120 )
" t" p" l7 E7 A2 c: i" z; z dwTmpSkLevel = 5;
# w. B/ c+ ^+ ?4 v for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 x' M: t! A7 ^. r) q: O {
# @, Z k9 P6 V" O8 Y$ D2 @ LPSKILL lpSkill = &(m_aJobSkill);
( f7 o" P4 |" q C. J' j if( lpSkill && lpSkill->dwSkill != NULL_ID )3 ?: ~' Q& U% `
{
1 O. m4 P" i2 T* o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * G& Y. K W: D1 r+ ]& s
if( pSkillProp == NULL )
$ Y' Q9 d) O3 f7 d* k. Q, W continue;, t% A5 v* R8 r6 Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% J. r5 O; q& Q
continue;
. n. `( z. s ?# n lpSkill->dwLevel = dwTmpSkLevel;
9 o( M c, f& V& C; X: Q }$ l% p. R& [5 ^- p+ P) J
}
9 |: X+ c2 l% S" ^7 U }0 b! Q4 ^( L5 Z3 ]4 O7 K6 y( M1 c
else if(IsHero())8 d# D+ j$ w0 y3 E; Z
{2 k" U7 L' v0 D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 P4 M, {6 `0 D1 y; K6 J- Q( k4 I" x {
n! {7 J8 g Q0 f3 } LPSKILL lpSkill = &(m_aJobSkill);
. a+ P) x% S0 s$ k2 W if( lpSkill && lpSkill->dwSkill != NULL_ID )
& i$ q; G" B s {
' [; C3 O# d ^) s* r2 f4 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, p' L% j2 x1 a+ L# y+ j if( pSkillProp == NULL )
1 Q% d1 c9 K: K* |7 m3 h continue;
% T% n3 X! @ X5 I. \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% l, b- s5 h. l$ ] continue;" X3 T b/ A5 k/ t2 u
lpSkill->dwLevel = 5;# k7 K$ D7 d3 Y5 |* }: L
}& Q( u. p- a1 c# i7 e2 ]
}% x* i% |1 J5 n; ?+ N% B* C
}
- z' z' }1 V& n* B else if(IsLegendHero())
- h. m2 m$ L: F& ^ {
' F7 A2 J. e* o4 K, @7 n for( int i = 0; i < MAX_SKILL_JOB; i++ ) * y% r4 |) H9 f/ w O, e0 i9 Z' T
{
6 t. T* f3 P( N3 [ LPSKILL lpSkill = &(m_aJobSkill);) a- ]) T% N" _; E% H- A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 r" ]) W ~; z" f {( e4 M/ l& Q; J# N4 I, R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); h7 h* u8 K; u$ i A1 i
if( pSkillProp == NULL )
& i( E, j" Z( K+ V! r7 } continue;7 }5 C1 h0 G; U6 z6 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, q& a% o; l% Q( H* p0 p% l% J% N- ] u continue;
% r9 p, v8 e5 J- T+ o9 \ lpSkill->dwLevel = 5;
9 r3 Q: e8 d/ h3 X6 B6 ~ }
/ E- J1 f1 m; ~2 n }/ f! L7 ?' S. t" L9 P$ m
}
1 D! y" k8 k- L- K4 D#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ {1 t/ e! I" C- O if( bGamma )
2 M# M8 C7 Z+ h, @/ a2 K$ |4 L {( Y" t7 E" z& b0 x; h1 o* [
m_nExp1 = 0;
) u& L: S$ i7 c k2 y3 f9 |( ]& b }
7 X( U0 I. x) p. c: l8 V8 ]5 j( d* R) y9 b) Z
( (CUser*)this )->AddSetChangeJob( nJob );0 o+ } G4 R/ ^5 O/ c
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* j& W X9 ]* }1 _, G
1 l/ n/ f. V# Z9 `6 e) O
9 }1 a7 V4 l2 E7 C& f" ]#if __VER >= 11 // __SYS_PLAYER_DATA
2 R. b0 Q6 a& q3 H g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; W: \. n: | m; X* |3 \- w
#else // __SYS_PLAYER_DATA0 ^3 w' w. A4 h5 I* E% |# |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& Y8 y( p! }5 m- d: i) r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 i6 J# \8 G/ [: _1 C
if( m_idGuild != 0 )
: T% F5 X0 Y) H$ ]1 ? g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( L: C( m8 ]- Q% w
#endif // __SYS_PLAYER_DATA
& i( A9 V( q; \2 ^# p SetHitPoint( GetMaxHitPoint() );/ ~6 I: u# l% ^" d. N! r) p! u
SetManaPoint( GetMaxManaPoint() );" Q2 z8 K2 B# H: m
SetFatiguePoint( GetMaxFatiguePoint() );
( ]- m; g2 n6 r( a( D if( nJob >= 1 && nJob <= 4 )
8 X$ T; h2 M! | {
( G# @6 n: b z" l& O! P m_nStr = m_nSta = m_nDex = m_nInt = 15;# u, u: N/ w9 D6 A+ E0 I$ g( ]
m_nRemainGP = 28;
* Q- }) v9 g0 b }
& } y: ~" d# e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 s4 R% N h% Y) @9 L' v7 E {. [, u! f6 u9 D' P1 J) H
m_nRemainGP = 118; B7 M* b* ]9 C; z- v% q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 V4 {( w+ z0 K* ? m_nStr = m_nSta = m_nDex = m_nInt = 15;% |& W: ?5 W, a( }
}1 J+ u# E3 O ~) `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) ?/ F5 M/ B3 o6 {$ Y, c3 n0 ? {; K9 `& o0 @) F) N5 B* p# }
CItemElem itemelem;. r6 a% C9 q5 C S. g1 w
itemelem.m_nItemNum = 1;
# P% U. d3 R0 A$ S0 y5 M+ y# ^ itemelem.m_bCharged = TRUE;6 j5 m4 K( D1 ? C( i D% [
BYTE nID;
/ i9 G0 K) l8 D( { k
: N7 r) p2 A8 W/ r3 O if( nJob == JOB_MENTALIST_HERO )) u( q7 `7 A4 B+ y+ _
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ D9 q: t8 t" O* t
if( nJob == JOB_FORCEMASTER_HERO )
! ~$ @/ G# K& Z6 [4 l2 _9 G! c* J4 d itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& m6 U) O2 s- q0 L6 c
* I7 b* Z' R* W& r% O
( ( CUser*)this)->CreateItem( &itemelem, &nID );6 r8 [* [) `; z! g
}
4 O0 X: B+ }( `" F2 p# o$ I g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ J* W( z* J/ y: n, E O0 p+ V0 j
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; g# J( K! g# `& N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 P, t& n% Z+ R5 u+ z- |$ S/ ^$ s/ d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. K3 z& [! s5 ^7 u6 V) I ( (CUser*)this )->AddTaskBar();*/4 E* f8 _) A) B5 x
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; X( A& M- d3 ~! f0 f$ F; u# h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?7 ?2 R0 V2 J4 R# G
((CUser*)this)->CheckHonorStat();, p: v8 |5 K3 y' k
((CUser*)this)->AddHonorListAck();
" ~: G8 d" o: H$ V4 [" f* \; z9 ? g_UserMng.AddHonorTitleChange( this, m_nHonor);8 Y( T1 O4 R, V5 ]
#endif // __HONORABLE_TITLE // ′Tà?
3 F% U4 {0 i3 i }
. e9 O6 ^( s W0 v! m: D! a#endif // __WORLDSERVER
5 H% P* c- d( z# q}
g* n! `& ?. M3 g
1 ^6 c" g3 d: [' z: ^然后你进入functextcmd.cpp并添加以下
# }2 Z. f3 X( c9 q: C. y$ D' O( h' p- \' E7 S) A4 H
代码:
5 C- |4 x' }6 ?) d& t# AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 I/ C7 [+ M% d, X下面插入
6 c6 b5 o7 O- f3 A- JON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# |3 O! W/ W3 {" X# N% h
/ ~2 _* E, z: D2 t' V然后你去
% u/ z* W+ j @2 N7 T+ p- l |' A& T( S/ o
代码:! e. z1 _. X& p6 Y/ P) |# r1 P' E& m
代码
: @- c% a9 y2 o; ~6 @$ qBOOL TextCmd_ClearPropose( CScanner & s )
3 S: g# e3 P, ]" e& p- V/ K{
9 R- H6 _# @1 }- Y. f8 S1 o6 H7 Z#ifdef __WORLDSERVER
+ f1 {2 F n7 b/ {; C, {# [ CUser* pUser = (CUser*)s.dwValue;
) ~7 ^/ `' h& e g_dpDBClient.SendClearPropose();2 N+ A! S8 {, E( j3 h7 K& ?
#endif // __WORLDSERVER
9 Y {$ j3 R6 I7 d return TRUE;
) s- ?: K0 n* z4 E}
" b3 p! G9 G" f3 I3 d# p下面插入& }, y$ t/ t4 R: ~ y
BOOL TextCmd_rebirth( CScanner& scanner )
" `& ], b* `2 W5 I# M$ ~{
. x. E* u: |1 g3 d! G#ifdef __WORLDSERVER0 b: I5 H8 l0 |$ ]) V
CUser *pUser;
. Y( K8 A* \' s* M7 k {$ ]pUser = (CUser*)scanner.dwValue;2 I3 a. i% M, b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ G0 E; e' C& _+ }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);- D! Y& [) }; l, u* F6 S
else: I9 i# c$ N0 x% y: K: T. R
pUser->AddText("你还未达到重生条件!");& V9 ]* L! X" o/ u8 x
#endif
5 \+ x2 N' B y2 S; _/ @return TRUE;0 V5 z3 d& t/ T4 x' ], ^" U, E
}
8 p4 X! d% x: Y: F4 _8 D5 ?
5 A8 Z2 w: z! ^( _! Y' f9 e
5 ?3 ]7 O9 c$ U: q) q5 M( L8 M$ p1 Z w& e) m
( B) W( f+ I, J' D
|
|