|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! Z% ]3 T# Q! [' B9 c; P6 H" l- j2 e, k# l' _- c
Mover.h3 _ z" [- I& V5 Q
代码:
6 n! C' ~0 F3 E6 H) z# I5 q0 R找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, E" g2 r6 V( d L" a5 ^8 C! W" j* C! i# y" o
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 T Z( _, r" w( M8 A$ J. ^5 E% Y8 l; f3 L; c+ b5 V
然后你去mover.cpp添加9 S9 `! {4 r2 N# p r, D6 i2 A
2 L- S" R. e7 t& e代码:# B( C- \+ K% f; V- @3 K
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* V9 P, U$ p% m! ~{
, g: v l! F/ w: R: c7 s% [9 {#ifdef __WORLDSERVER! v1 t+ y/ N0 V! Y+ W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. ^4 Y+ `- `0 z! I* @ MoverProp* pProp = GetProp();
5 s* C" r4 d/ V; [' e- `0 X- r if( pProp )! G" m# `% n: v. q
{
4 @6 H- s+ d' L S O if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) U9 k! m2 T* i7 B# c% f# j$ K: G {
* J6 u t7 o% Y- S' B5 P- A AddChangeJob( nJob );! k: r" d7 O0 d7 v! e' @
}else{
' e$ ?1 R. n" J3 ]/ g return;9 d* C7 D/ @, D. A" m6 Y- h) E
}% s, f/ H8 {) L" r9 f& c& b
int nPoint = 0;9 G1 k/ Q$ }( z* v0 L1 N+ N
if( m_nJob == JOB_MERCENARY )# y) h1 _( W! v P" e
nPoint += 40;
& ^. I/ m+ C) \8 u6 ` else if( m_nJob == JOB_ACROBAT )
3 q, s8 t+ |5 w( X/ V+ h6 i nPoint += 50;2 L1 g" v" s p `6 u, Q+ }
else if( m_nJob == JOB_ASSIST )+ e$ Y |( I$ A
nPoint += 60;/ a. \7 K2 S, g- N
else if( m_nJob == JOB_MAGICIAN )
" O1 k1 B9 w5 Z# B7 b4 o! y nPoint += 90;6 q9 Z% l3 H9 x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 j0 S, d$ a) [ nPoint += 120;
2 a; @) {% H/ Y$ {9 \* G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) U% a6 b$ i4 Y( ?! D5 v* Y nPoint += 150;5 }% v) H2 L: _, R
else if( m_nJob == JOB_RINGMASTER )
) ~& k% R2 H; H9 m; L nPoint += 160;
% a# y* \- b4 f+ p! I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 N7 _6 E. I5 D% G/ E* T0 }/ c% { nPoint += 180;
( V& d: U; }. |4 u else if( m_nJob == JOB_ELEMENTOR )$ {9 e* [- C* I
nPoint += 390;
) S7 e( Z- a1 H# c$ @8 h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# P, t3 N' e# A' z$ t nPoint += 120;
0 a) `5 C* @! e8 w1 c$ I7 U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 f4 w3 G) ^/ O" C' J& T4 u6 u2 N
nPoint += 150;
! `% g' W. S7 g3 A3 g! i else if( nJob == JOB_FLORIST_HERO )
) E1 s' S+ V2 ~. I8 {4 J nPoint += 160;
' G8 z e" C! M7 O1 Q6 o else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 D. H! H X/ G2 r. ^3 h& T nPoint += 180;
# E5 W4 J( t9 \% H4 a& I else if( nJob == JOB_ELEMENTORLORD_HERO )
9 C, I' V' V% n0 I nPoint += 390;
" M% v4 t+ S5 O, i- T& d. t
: p' N9 h; d0 S2 m! d' N AddSkillPoint( nPoint );
9 v. B; O$ E7 e8 U7 V m_nLevel = nLevel;. Y8 D+ q; U& c3 j' c: M7 p# l" N. _% J
( `! w$ B5 L8 U2 n SetJobLevel( nLevel, nJob );
) C' [* Q7 D) ~3 v7 `1 [" M9 w m_nDeathLevel = nLevel;( W2 Y6 t& _, |% j$ C$ K' d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans f& d. p T$ c' ?6 L2 D
if(IsMaster()): c: k0 w9 ?1 y! O% ~/ w! q& H% z
{4 C: |* C8 L" R( [- x
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; z. r$ t5 }: R; ~) N F; m if( nLevel > 59 && nLevel < 72 )
- m7 L R7 e7 C/ T dwTmpSkLevel = 1;1 S4 o, \5 B f: R2 Y; o
else if( nLevel > 71 && nLevel < 84 ), P) G [5 J) l6 B* A l+ F) W
dwTmpSkLevel = 2;5 U* c6 i; |& Q
else if( nLevel > 83 && nLevel < 96 )
; o5 X! ^+ J6 }* @2 f% h7 i dwTmpSkLevel = 3;
' W m9 y$ l9 g6 i# b, S0 b else if( nLevel > 95 && nLevel < 108 )0 S' V G5 E( L
dwTmpSkLevel = 4;
0 C/ g/ r( r# o8 q! J& H else if( nLevel > 107 && nLevel < 120 )
7 B+ h4 D. B( R dwTmpSkLevel = 5;
) b2 q' d* }& n for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' o% p. m8 R4 R% x8 R1 k1 ^; b" b
{ . h0 z9 e f7 u
LPSKILL lpSkill = &(m_aJobSkill);! u: N0 X& w" @3 d$ k' ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 N6 e9 i4 T3 U6 ~3 ^. L3 N
{0 u1 U, V$ {1 s" z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 A; `2 q6 X9 D. i1 m
if( pSkillProp == NULL )7 b, r. g1 O2 l+ t9 W# O
continue;* w; `: N, f; q' Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 x5 Z/ G$ p# h5 ], `9 q continue;
; M: D4 G9 W' E' u7 y4 e lpSkill->dwLevel = dwTmpSkLevel;* j% f" s, u( Z1 V9 Y2 x0 Y+ @
}
8 n+ Z- p0 R8 M, _; J }
- L" p2 z \: }& Q P2 B, p& W9 x }; q7 ]1 O3 | o' {- W
else if(IsHero())9 o" N5 W! [0 v, v* L: \2 X+ @
{8 s0 |+ G/ R0 u8 G, \, r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 b) t0 j0 b6 q4 }( H6 ~3 T
{
. {5 H5 E1 M+ R1 J7 Y3 Z" ~! L% ?% } LPSKILL lpSkill = &(m_aJobSkill);
{( C5 f! b1 q& E5 | if( lpSkill && lpSkill->dwSkill != NULL_ID )) j" }3 s1 p& z3 L5 k
{ p7 n% q6 S5 r5 X. I( F' H, W7 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 O1 [. c% a# p6 g& J if( pSkillProp == NULL )
- B/ j0 X! t/ ^ continue;
/ y- s: J! `. K/ b) x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 o4 `+ D" i/ L1 _+ H
continue; s: }4 g: N* C; k
lpSkill->dwLevel = 5;. X5 G3 J/ `7 p$ }6 A
}
! ^5 G; X6 J7 E8 f5 I# ]4 J }" s: m: v1 l0 O0 Z
}
0 W# B; L" C4 @7 f" R/ [4 ? else if(IsLegendHero())
1 ]/ w d3 q0 l; `( |6 z! n9 U {9 b; H- j$ p: t, ^, T/ _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & _: T* u+ M0 d9 ?* Q q
{ , C- ~* a. x5 V, Q
LPSKILL lpSkill = &(m_aJobSkill);( G; _( q t# [* c2 z3 }2 _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 V+ M0 k. v! u( R$ N ^& _$ C6 W- | {
4 n6 h! ]7 q* `1 b5 j ^6 ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' |& l5 s$ Q3 |8 |% z$ Z if( pSkillProp == NULL )2 P' R. r. q( O. T7 m) o" V& k
continue;4 x2 P- S2 H5 {% l9 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 x) T+ J- L; f5 \. c continue;
4 h3 x0 t; Q$ X/ w$ O lpSkill->dwLevel = 5;+ _- V) K+ m& y( b$ w
}
2 N; V( s+ o! C3 L }
! w: C$ E3 F( G: p) C }
/ ^' x v+ x; |% q: m( t2 p3 m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: R- t2 L$ J6 T/ i2 H0 {3 G4 m if( bGamma )5 E1 d# C* x3 L6 e
{
* ^; p" s' j% P/ N m_nExp1 = 0; `/ `5 t4 F9 @9 C3 h: v# _' k
}8 M1 a& I# O$ G! `+ g
& ]7 @9 [/ W# a( m ( (CUser*)this )->AddSetChangeJob( nJob );
7 p* K3 \4 t/ |3 F3 R g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 K, S1 {! {; H: P l% q/ Z: k5 ?! E. I$ K6 P8 w4 y
( y* O$ B; X% O. A/ X2 p8 Z3 m1 C
#if __VER >= 11 // __SYS_PLAYER_DATA: k8 h5 B0 i8 e3 N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' H- |- X: O: E# s) j: q! ?$ X- b
#else // __SYS_PLAYER_DATA
% V- V2 k" E7 k3 S9 d+ e g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 C! _; i0 }+ K8 B) W$ } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& t4 }/ K7 Y) |3 o0 k' ~
if( m_idGuild != 0 )
+ L5 Y" U% A& |: v! ? g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ l5 Q2 p9 C- `( K( x2 q! N
#endif // __SYS_PLAYER_DATA* o4 Q2 |( u# o3 G" l: F' |
SetHitPoint( GetMaxHitPoint() );6 x8 U5 q( G/ W9 J% Y( ~& y
SetManaPoint( GetMaxManaPoint() );
% U: q- P" L( c7 z( y6 b( x SetFatiguePoint( GetMaxFatiguePoint() );
3 G0 Q: m+ L- y5 n5 e9 ~3 q if( nJob >= 1 && nJob <= 4 )8 c' X4 Q1 o: Y3 @8 K0 v- p5 _
{
5 K1 M# }( M: H9 d' r m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 \) _4 `& R/ D9 Z- H6 ~ m_nRemainGP = 28;
- x! @! _- |, u+ {( _ }
# P0 W3 X( A/ N. V if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) j. `5 c/ f: w1 q, Z* V
{& w% K2 i' D( y/ E/ Z1 F
m_nRemainGP = 118;, d5 ]/ x( b( j2 V
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# j/ k* ~$ F! O) C# Z6 M, L# r9 G
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 \$ S$ \6 z4 q5 ^2 s+ t
}+ \5 a$ x: ^+ {, Y3 P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 M6 @) W1 q5 u
{
& D& j$ P1 \& B- M5 g# D CItemElem itemelem;, I6 m' B. l7 l7 t
itemelem.m_nItemNum = 1;0 L* u! S. P3 J; ^+ h, }5 n7 |2 w
itemelem.m_bCharged = TRUE;. K9 {" ~& |1 v* }: _
BYTE nID;2 W% x$ V! y4 ~1 i
F5 K# g% X/ A' Y8 f5 M4 S if( nJob == JOB_MENTALIST_HERO )7 K# N, D7 S" f' P
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 `( \- t4 h. u4 _1 F& d
if( nJob == JOB_FORCEMASTER_HERO )4 G4 W4 U7 m8 k$ ?( x5 Q+ S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 s2 _. Q4 }! i% ^- U4 V
6 A" L# b% k" r5 H% C' s ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% V" p# d0 ]: u e0 k7 m }$ ~' W( b6 d5 X) Y/ @+ `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# O' p2 w/ J3 V* h% ~- c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* M* ], s( p6 ~7 n5 y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# V' n4 r* y8 ^" W2 h# | /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 f* M- @' b% W- d9 L; R5 s ( (CUser*)this )->AddTaskBar();*/
3 k# K7 L5 K7 j/ \ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 T' g/ s* X& I1 D: q8 ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; }, K+ m; P2 Y# t+ V
((CUser*)this)->CheckHonorStat();
% i* S6 [& X8 d/ X/ c. p' N ((CUser*)this)->AddHonorListAck();
5 A( P& B; X, D+ H% q g_UserMng.AddHonorTitleChange( this, m_nHonor);
) q" M! O: N3 E _+ f( \4 k#endif // __HONORABLE_TITLE // ′Tà?4 W& r. \# I$ f/ t5 q( V) L
}
6 F; ^1 y. f3 v; D3 U. S. [+ j#endif // __WORLDSERVER. ^9 t# w1 V$ A% D# l1 M
}
4 l: M8 B9 j* H$ g3 \( }9 T+ j, Z1 R5 ]8 J; X* b2 @
然后你进入functextcmd.cpp并添加以下. K% F7 a% z3 E& K$ j
' K3 H5 t% p3 a. }) q代码:6 `5 a4 g6 V% ~7 K, ^
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 a+ c# [0 l- C! @" E& J1 }下面插入& o; \. n6 L9 m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ Z7 l) d+ k& z, X- ~0 W6 v
) M& E- k7 u7 p( v% Z然后你去
+ [* N% [# e: J2 b3 {
5 F. e6 s: \2 F: ^6 p# c8 I6 h, n代码:. K6 W0 A4 J) T3 x% z
代码
: c; z5 X5 u, ]3 ]BOOL TextCmd_ClearPropose( CScanner & s )
) N4 q8 @/ I* B3 R- @" U! ?6 L{ ^2 b O, V3 k4 v1 j* r& X
#ifdef __WORLDSERVER
; a1 n! m+ `0 z' P0 r/ c; u. y" u CUser* pUser = (CUser*)s.dwValue;
6 a# h, Y4 U0 Z' {$ { J: W g_dpDBClient.SendClearPropose();
! P7 D2 J1 z4 X3 d& G* i#endif // __WORLDSERVER: `1 b5 u! U0 B. |/ K3 X/ f$ `# `7 ^
return TRUE;
. \ L* D$ ]) ]) X! M3 P}
% b( J4 h' G2 i- ^, Z下面插入
, y$ e' y1 h! z' QBOOL TextCmd_rebirth( CScanner& scanner )3 R1 N4 M( Y' S/ l5 |
{
8 c {: g/ x4 r! g* Z#ifdef __WORLDSERVER. s ^ a& `+ b p5 ^
CUser *pUser;
3 R3 k% w5 y9 ^pUser = (CUser*)scanner.dwValue;/ Z+ _1 d, R& V& l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ @5 X4 {, c2 [3 U4 Q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# Q! [- _9 y, G, U) z: r( [% m7 r- `2 {
else
0 S% H) x. T6 x3 `) R# d+ ipUser->AddText("你还未达到重生条件!");
7 g$ k4 H, i- e#endif5 F5 y2 j; O8 x3 n1 P
return TRUE;
+ d/ [3 T1 H1 l2 x0 ~} $ d$ \$ y4 |- r! x' C/ {2 H6 |! z4 @: z
+ O8 O) n1 H; T- F; o t) D% z8 l7 S% n$ b# w. N" s# c
7 N0 D6 h, B3 m) q" c3 ?: z
% D* z; ~5 U) ~3 G
|
|