|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 N* A; c8 w" u6 `5 D0 f3 o( c* u
: G( J! X7 W! e) }Mover.h$ V: e, \* c8 z0 F: z$ d
代码:
: S2 E+ q' u! Z: r找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 y1 c( T- t$ N/ F: }( W% t a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ B; Q$ ]1 N; I, { y+ {
2 h" J& Q, z# T( _+ F然后你去mover.cpp添加! J4 P( h! n( I
. G0 W5 X9 F0 f8 j
代码:
4 B" g/ O% B) F1 X3 N) tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 D+ L- @6 v0 m5 Y# p{3 ~# g) d6 c0 c7 H2 q
#ifdef __WORLDSERVER
- m" P% N5 U- _3 ? // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: n! \% A, Y+ ]* |5 {& `, l
MoverProp* pProp = GetProp();
; a: V# R) n& g# S if( pProp )
7 a3 l F( v, i& E- V' p! |3 C {, }4 c0 _ r. w+ ?
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% H4 c$ y" w" M# z% K n {+ V K; Q- r5 b* J
AddChangeJob( nJob );
- P7 S% m {9 Q) Q/ V# S* F, v9 J }else{0 Q/ r( n! E4 t6 O$ W
return;- S( ? S% A7 h _" n& N" d: P& O
}
) g4 o& X. A# l Z int nPoint = 0;6 z! v8 d! D# Q4 `$ j2 S2 Q" @
if( m_nJob == JOB_MERCENARY )8 j# s8 L7 R/ ]7 [4 \, r
nPoint += 40;
$ H& _) I. P. Z6 X) ~) \ else if( m_nJob == JOB_ACROBAT )9 O, Q! {+ Q0 ]
nPoint += 50;, O3 I _0 R# Q0 K m* G9 X5 d
else if( m_nJob == JOB_ASSIST )
6 \) H) T: _" ` nPoint += 60;
2 _! ]0 w; I1 B- g; L# a else if( m_nJob == JOB_MAGICIAN )
) q4 {& o4 c: q: O" Z* E nPoint += 90;
0 ^ Q/ M7 x$ Q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 U5 n& u" l5 V( K! T% _
nPoint += 120;9 k+ `) Y8 w3 }2 o- |3 X" e
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* Z9 \1 }& `% h, q
nPoint += 150;
v D' m4 r. o; A& ] else if( m_nJob == JOB_RINGMASTER )
: u4 x/ d# r3 U( F nPoint += 160;
8 x: h* J) E7 O, v% S4 s* p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )7 D. z1 \3 q8 A" ] Z
nPoint += 180;
+ s2 {3 `1 C2 P+ n* A else if( m_nJob == JOB_ELEMENTOR )
# |5 x# P; \3 {( n nPoint += 390;$ P' \5 J' H* v
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! T; ?" g4 U/ d! X2 Y% F/ z* T4 k nPoint += 120;
$ b- c2 e) H# g/ K else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* J R7 G+ l* S6 v$ y* l nPoint += 150;
/ E" W9 b/ ^& ]8 w- F' T; s, X else if( nJob == JOB_FLORIST_HERO )# p6 W, @% ]" j' @
nPoint += 160;7 g7 R1 `# }! F- S1 D6 |! e7 _2 E5 u' d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) G e5 L" @8 [, \ Z- G" y% ]
nPoint += 180;6 J0 ~2 |3 n/ D, E. \8 K! R7 q
else if( nJob == JOB_ELEMENTORLORD_HERO )
, m7 U$ K5 O8 A0 g- A7 O nPoint += 390;7 i: m) Q% b# p* i, m8 f$ [
' F' G! k* A) J8 c) O AddSkillPoint( nPoint );" U; d$ r8 z& k7 p( V L
m_nLevel = nLevel;" l3 T# \9 p: u3 R
* A$ k z0 K) ^3 _! r N7 E" l: _
SetJobLevel( nLevel, nJob );
) m6 a! F) M/ G5 } m_nDeathLevel = nLevel; ]4 k" |' c+ n$ T, q( _, M. v! ?% ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* ~: q* W ]- k% m
if(IsMaster()) N4 i9 \% ~( [9 `
{9 O, d% X, a( U! Q1 e9 } i
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 J: I: x: ~3 H: t* N if( nLevel > 59 && nLevel < 72 )' l' Q# ]6 E/ m/ D3 j
dwTmpSkLevel = 1;) ?! o0 l7 ?1 R) Z
else if( nLevel > 71 && nLevel < 84 )9 D% i, J3 N4 T' F) s
dwTmpSkLevel = 2;
" R; | [2 }4 y6 i& Q5 T/ ?. A O) b else if( nLevel > 83 && nLevel < 96 )
$ _# `/ \9 K! I N$ U" R5 G6 j dwTmpSkLevel = 3;
: h1 x( y; e/ a' o% h& [ else if( nLevel > 95 && nLevel < 108 )
4 Q. z: w4 K1 x3 C; b! [ dwTmpSkLevel = 4;
7 Q- w3 p$ U' o- I else if( nLevel > 107 && nLevel < 120 )
' ?# c* O( }. Z8 C* \9 _ dwTmpSkLevel = 5;
$ u( p/ e8 u7 b# o- m for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 j0 n* Q; W: ?+ h' n% V+ s5 b {
2 F, ~& j# {0 a2 I4 F LPSKILL lpSkill = &(m_aJobSkill);- H( h. _4 }: i7 k0 ]8 `" B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% ^+ p* Y- V# T0 b7 y3 f5 J# {: ~0 N {; t W/ r! P4 Z. M: W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. w* c4 Q* T1 ^$ l1 Y2 m4 ^ if( pSkillProp == NULL )& C) m0 h4 d$ C" r) i
continue;$ P! @5 K' c) [; @. W0 i( `5 J+ e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' n- m4 I5 V- | continue;
3 Q2 Y) T% q& P7 g$ Q) ~9 n lpSkill->dwLevel = dwTmpSkLevel;
! O2 M* j1 w; c2 I }
" S" |3 _( ~4 U& }( F& s" A }
2 W% L0 U- R8 \* W7 I; a6 S }4 A) l* ^8 D% y; f
else if(IsHero())
$ R' M: i% N% h% p {8 j6 C6 q" \# b+ N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, p6 c' F' U4 ~8 U5 m6 F0 d* n { 4 D# O; F' Y; F) i E
LPSKILL lpSkill = &(m_aJobSkill);/ M1 Q$ f8 _+ t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ U, z2 m6 Q3 l( T1 H" j {
; J/ v# a1 W s. E% g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& U2 }+ Z" f# Z; P if( pSkillProp == NULL )9 F. G: \) F- B, m7 e% B
continue;
% E6 \! ?& F3 T) x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; K! D7 C3 ~: Y/ N% j( L continue;
* x( U9 R9 U% r7 F; q. r lpSkill->dwLevel = 5; u7 H! U8 }5 |$ |1 [
}- F- x7 J4 j( I
}
$ s* x2 H5 J! h7 P }3 M1 J3 s( m1 a
else if(IsLegendHero())
2 F y* g- u6 ] {
+ s6 F! w* n6 @) B$ g for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 ?* \& u2 A4 i( V% [6 b+ o5 Z8 ?
{ ) M; C4 ]/ B% \1 J- R2 F Q
LPSKILL lpSkill = &(m_aJobSkill);& r2 S% E3 w$ `+ a8 k( }9 |2 p
if( lpSkill && lpSkill->dwSkill != NULL_ID )- b3 I% Z% n5 F+ R5 h+ k. |
{
* ]% u' v( j! P$ B: c& A" v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 Q4 p. \3 }8 O7 e5 ]7 D3 V
if( pSkillProp == NULL )0 i$ B' y" w+ f' b7 h( I
continue;. e2 r0 C, a( Q, U7 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 o6 h3 B& B" B
continue;- b7 \& B c M
lpSkill->dwLevel = 5;6 A% K4 j5 g. C" N9 o: y
}. i. y4 G5 _& ?. b
}
4 Y# ?: r4 ~4 ?5 }; U) p5 I! a }
4 C0 b# R! l0 |7 v& C' a2 D- O& s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% z# z# y$ x2 e6 z, N, T# d if( bGamma )
7 f) c' }9 O& n {
$ a$ g& D1 n! r8 O6 T$ O! a m_nExp1 = 0;+ o/ ^0 E9 U4 U2 s! ?+ u+ [! A
}" \) r' g* K# r: B6 M& I- Q- | ^1 k
& ~# N" S* M7 z
( (CUser*)this )->AddSetChangeJob( nJob );
% S' p" a$ _( _2 C% N5 S) T% f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! M6 {6 x& o, j7 j" g [8 \" X+ j4 D, y5 V, j x
# b* K( G" q8 F2 G; u2 G9 Z" v
#if __VER >= 11 // __SYS_PLAYER_DATA/ L3 F6 s& ~. f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ N) I n( A3 [: s, N
#else // __SYS_PLAYER_DATA
# ^1 a# \0 O6 }+ K4 R g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ z, `# r* n4 Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 z7 R Y, n4 N5 {9 Y7 r if( m_idGuild != 0 ): p$ z, c7 e1 Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% ~( O# g8 Q2 Z. `
#endif // __SYS_PLAYER_DATA4 I5 Y$ e% U }1 x( c/ _1 x
SetHitPoint( GetMaxHitPoint() );
5 n4 y1 O) f: j+ z SetManaPoint( GetMaxManaPoint() );7 K; Q c3 u, J) U+ G
SetFatiguePoint( GetMaxFatiguePoint() );
4 g$ {" R% G' ]; S- V if( nJob >= 1 && nJob <= 4 )# D) j6 _& H9 g% M, N G
{5 l7 A. I! P6 O) [5 D3 K. c
m_nStr = m_nSta = m_nDex = m_nInt = 15;" R }/ ^: l( Y2 L2 q
m_nRemainGP = 28;3 D- j7 j- C# Q
}
8 C9 t; I4 b! T% E! u" Z, g if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- Q5 Z- h! C5 U. j- V s. t
{4 c& j' L$ m# z# Q' l8 c
m_nRemainGP = 118;# \% D9 l6 z3 `$ i1 C, V
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. @' h, W6 m) s* y# T m_nStr = m_nSta = m_nDex = m_nInt = 15; ]) p0 U9 J& F9 l2 d
}
: q7 ^5 N3 ^0 S! Z4 d$ Y5 c2 q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! w3 A$ U8 S3 @, j {
1 J: T- ]7 l3 V, ?- P CItemElem itemelem;
}0 p' O3 _! p+ T" r itemelem.m_nItemNum = 1;
+ |. x l4 y0 D, T# B8 E itemelem.m_bCharged = TRUE;- s6 E$ @1 l' N6 M1 ^
BYTE nID;
' y3 a. ^: s! |5 I
! ^8 k' F' d: j) J if( nJob == JOB_MENTALIST_HERO )" Q! ]- \# s1 \5 C$ {/ B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 F# s0 l1 U' M3 } ^+ Y! w
if( nJob == JOB_FORCEMASTER_HERO )
) ]9 P, |# ]$ ~ ?6 F- L itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 Q( S3 p4 q) Q& E% R. \1 h6 |! D) f; h; ?1 d8 u6 g8 C9 i
( ( CUser*)this)->CreateItem( &itemelem, &nID );" O/ }6 H0 T' I8 I
}3 Z, \* G% [' E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. O @* G: `9 U4 A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% L8 z' c. m }0 Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; @: k8 f1 }" T* B /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 d" Q$ ?+ o- ?) O$ ]% j, V
( (CUser*)this )->AddTaskBar();*// M9 F Q W# ]/ `6 T: T* j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! \6 v3 N& k& p' p#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. c& G3 U* O# d; j* ?" | ((CUser*)this)->CheckHonorStat();
x) C( `( U6 C( V5 X+ i1 d ((CUser*)this)->AddHonorListAck(); N$ b# k4 O2 v
g_UserMng.AddHonorTitleChange( this, m_nHonor);- n4 I k# F% P/ [2 ?) f
#endif // __HONORABLE_TITLE // ′Tà?
/ e2 p, ^* r7 `" } }
: X/ {" I7 l, I% R7 ?7 h#endif // __WORLDSERVER
# ?& Y& u& g) Q z' L# n} ( y$ q# }) s! s% v) x( L8 u4 ?& _9 p
' S- ~ D( O8 t然后你进入functextcmd.cpp并添加以下
* Q* @4 u; Z( d+ x: t+ x0 e: M- F$ p# h3 Z
代码:/ Z4 [1 |& j* y4 ^5 k$ O% x% n6 O
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ ^# L, B+ p5 M) H下面插入
* H2 a: r+ R# lON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 Y2 f" n( c2 U3 K7 E( ~
2 w$ e5 j- e' ?6 L$ a% u2 t' z& X然后你去
, z( K2 ~* c, Y
3 [8 E7 `" L3 a; H# N# b, b. J代码:& h/ t% h, ~. [
代码
! ]; ~- p# G( G' }7 v6 \, J& F+ RBOOL TextCmd_ClearPropose( CScanner & s )
; L9 C2 |( X- h0 ^. X/ a) j+ a{
0 b+ L/ G$ K; M$ T2 C! J5 C#ifdef __WORLDSERVER8 k" k+ I" [" O+ f& ?# f+ c
CUser* pUser = (CUser*)s.dwValue;0 f( u# M0 N5 N: t& m: ?
g_dpDBClient.SendClearPropose();5 z0 K4 p2 h n- ?$ H8 R: X
#endif // __WORLDSERVER9 i' i+ ^% q7 e
return TRUE;3 s5 K! ]" y/ b$ w
}
3 p+ F1 @- y! d8 W; I$ G" @下面插入
8 P# C: I$ X0 f' q: x LBOOL TextCmd_rebirth( CScanner& scanner )
, `8 d2 x. o, \* l{! g6 I6 e, u0 C( t6 O
#ifdef __WORLDSERVER
7 v3 Q+ l+ O! q' G- zCUser *pUser;5 T' Y9 N. [6 A6 L: S$ t/ R6 v
pUser = (CUser*)scanner.dwValue;
5 s! H4 t: S0 r6 {. O# J* r$ `if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' E0 |' h& _# ]; l1 O8 I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 A1 T. H$ B9 N$ a! ]# o1 | q8 v6 X2 ielse/ e( _5 G3 V7 S. @6 P3 z
pUser->AddText("你还未达到重生条件!");
) j0 n' G1 O B#endif9 a* D& w# g) d$ L4 Z
return TRUE;+ T4 h' j( W* S
}
R% A& B" L8 E& q) [" j3 o# ]0 {. `
a9 q& F. w' ?4 ?$ {
# C, ?3 d: j2 q+ f0 {% @9 J
l/ `8 g' }* o' }( M; c) y# `; p9 x/ V+ {8 b
|
|