|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 F. k5 o. X: F3 }2 b
' o4 D# ~2 r6 l( E: Y" j2 ~Mover.h
$ g. L& h: r- R$ }9 q; |3 Y代码:/ B; ^/ ]: H* E: I# D& T5 G
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
|2 _! @8 N0 F! ?- o. b9 b* I
% C* H. f) m7 v, k9 _. b' T% c下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, R, U4 _4 t7 a3 J' A, V5 J9 A
% i% U3 d# Q v然后你去mover.cpp添加
& w0 F" Y7 ?& Z9 C5 U
. V" ?2 n3 k9 j, ?代码:% d- y. Y& Q1 S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 Q) V, S. U" C$ C% m0 j4 K{6 e; ~8 ]; G- S. X$ y4 e+ V
#ifdef __WORLDSERVER2 G" l- m7 G4 |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" p" L2 q: L& z+ _ MoverProp* pProp = GetProp();
( H. X% h/ O/ x if( pProp )
/ }3 e5 m M, Z2 |" j, \5 {" Z3 p1 S4 n {1 n, O: H+ d' e0 I( ]/ r
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* ]" ?" d# t5 l {. E- F( H* s- x$ t+ o0 B& A
AddChangeJob( nJob );
6 N$ C! [: q; c- ?8 f; y2 \6 c }else{& E$ b' n _+ ^! X3 A* F
return;" J+ R+ f0 `7 x m
}
% x, M: \. B) o% @2 W$ B int nPoint = 0;$ A9 k2 w5 o( w2 b
if( m_nJob == JOB_MERCENARY )
Q$ z" M, }" t nPoint += 40;
/ ?' _" Z' Y* l4 e& ^% c2 @4 u1 V else if( m_nJob == JOB_ACROBAT )
# p# ]/ F* S* {! F* a nPoint += 50;* t: q3 i2 O" L. T: u( d
else if( m_nJob == JOB_ASSIST )
/ ], p" s$ E/ V9 i nPoint += 60;
! s6 l7 H( v( T4 Y! f else if( m_nJob == JOB_MAGICIAN )
& c _3 ^ F5 f& u) O0 W9 @3 R nPoint += 90;
7 B. j% H0 Q7 h. m5 J else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 C; m5 [$ G) u! s, O- c5 g nPoint += 120;( F' V. R5 ]8 x$ { K) F- Y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) u( `8 H; R: y4 ?, r; U; x
nPoint += 150;% W" e# A0 i) c! i* g% n
else if( m_nJob == JOB_RINGMASTER )- ?, \" ^0 c' c8 b y' \
nPoint += 160;
* ~2 ?' e3 }6 `7 J) B: [ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% k% i' _7 t+ h+ H" [ nPoint += 180;
2 m* l, F' R! }2 s% ` else if( m_nJob == JOB_ELEMENTOR )6 h7 h1 o% f; }4 B3 l
nPoint += 390;. a2 y+ G- r2 s/ v0 A% u* |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 u2 v5 M; G+ Q$ A: _ nPoint += 120;
/ ^' C+ E4 Z1 ?- @3 G0 y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' v! b2 e4 h7 y/ Y8 M5 s nPoint += 150;
' q% `2 N* Q! k5 _/ l. G, M else if( nJob == JOB_FLORIST_HERO )
1 o# q( R; O; d5 k( g6 @3 l# |( W8 E% v nPoint += 160;; V" {& D" g; F L I5 Y* P% j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); g" e" e8 W- ]! A- e# c
nPoint += 180;
+ P" D; \& q' S; \9 b% s, ] else if( nJob == JOB_ELEMENTORLORD_HERO )
. c& T5 _# l7 o nPoint += 390;
. e% _6 ^* |, n+ V) h. j: k3 G. o- L6 A K& X/ ?+ u# U' t z
AddSkillPoint( nPoint );6 e( } D0 T+ u6 d4 K
m_nLevel = nLevel;# `; H4 B$ r0 g$ _- m& ^. e
5 `; s9 {1 j) K+ @& @9 U- X
SetJobLevel( nLevel, nJob );# Q& |+ [) j5 [* s. K
m_nDeathLevel = nLevel;
+ }/ E7 D7 {9 c/ I! V- f/ x#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 U6 a. f' `( y( t7 p& P if(IsMaster())- N6 b2 k& [1 Q# C
{% Q7 R5 J1 x: r' C: j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 |/ M( b" e( o if( nLevel > 59 && nLevel < 72 ). v' N& S! r8 c; y5 p
dwTmpSkLevel = 1;
% r9 b ~8 [( B else if( nLevel > 71 && nLevel < 84 )
' j) _* m8 a/ j5 h: R2 x; u dwTmpSkLevel = 2;, S. e3 _0 [: h- S/ p
else if( nLevel > 83 && nLevel < 96 )
9 v6 \* V) S+ I' p dwTmpSkLevel = 3;6 ]& V7 E r+ V; T9 e" m8 h. _( b- E
else if( nLevel > 95 && nLevel < 108 )6 o! x* w5 Z, f, E
dwTmpSkLevel = 4;2 _! G% I9 M+ g
else if( nLevel > 107 && nLevel < 120 )( S8 F- S7 h! D
dwTmpSkLevel = 5;8 ]* \3 s; j5 C$ d- o8 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : {/ {/ N0 }% V; J( ?) f, M, |
{ 4 \4 D, ], q' a( q1 F" Q
LPSKILL lpSkill = &(m_aJobSkill);
1 `, W* d1 a- _) I% g% x1 f if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 k' D0 Y2 ?4 C/ y# q$ N1 @ {+ ?. x) a+ g! L) ^9 h# T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; W: i! U' a# d& P J% _% t# R
if( pSkillProp == NULL )
( l: ~' Y" K1 q3 ?+ d; {3 H5 S continue;7 |7 A; [1 a5 {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ s4 _; S6 P, z7 w2 `8 u' H
continue;4 z8 V7 G1 u5 }+ J8 J
lpSkill->dwLevel = dwTmpSkLevel;: q n5 g A* z( i
}9 w" `) D3 g) `- q n, ~
}' W/ O& P/ k) M" U$ Q4 A
}; \/ \- f) u3 T* z* A; j! |! T
else if(IsHero())
, D' u+ @/ i" Q {
3 q! E B0 i! ~) d i0 ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
; q4 {5 ~! I5 C$ t7 W7 S { : z$ V) p, \8 {( e2 I
LPSKILL lpSkill = &(m_aJobSkill);4 p: N: K' F& P7 x' ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# u9 a$ ?, M& L' l {
4 i& J* L" ]) a6 a* E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 E: g2 C2 |7 ~* w* Q8 v, ~
if( pSkillProp == NULL )
2 B+ f ?: n | continue;7 ?: W, x# x3 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 T- U0 `2 c) b" J' s
continue;) f6 k/ r$ J& l
lpSkill->dwLevel = 5;# _: l4 @. ^6 Z* c L' g
}% o; E& }0 Z5 V3 G
}
7 ^: g7 e M, g" M% Y' b0 M }
( l& O. L* C$ C else if(IsLegendHero())
* W8 D* s8 k$ f+ o4 L. b3 y {+ H. d( F" Q+ Z0 d2 E4 T8 C9 t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 S; r& X! _" p! `3 W8 b
{
% N; U5 d( Z, } LPSKILL lpSkill = &(m_aJobSkill);
) J0 C) o9 z* u$ l M& N [! z* e if( lpSkill && lpSkill->dwSkill != NULL_ID )
' ^ X: v3 w* \8 x3 l8 w {" v% U" n$ e1 Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . T0 u$ P" ^+ F8 y) {, i, H# q
if( pSkillProp == NULL )
9 v. z9 p$ G( C7 B; h, \% Q$ p0 o* o continue;
9 c% l O6 M* r% _3 ?+ E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ A# u5 u3 v( {! d; K continue;4 Q i# }3 J3 s
lpSkill->dwLevel = 5;1 x+ L! Z0 Z% p4 l+ w) D2 B6 b
}6 e, m# S: q3 v# g1 E8 ]. g+ j
}
' D9 x# {: \- e, Y% k5 I }" i% ?% a1 q- n3 ?( y1 z1 b0 Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 S4 @9 \% z4 [/ D* J7 R& ^8 `3 O
if( bGamma )
8 d9 r# f+ J6 y$ q {
8 u: [) b P7 w/ E+ V2 b, m m_nExp1 = 0;
- C+ \% v2 W8 |. I$ a }
$ D4 `, Q) z2 P5 E" u* o
* h1 L# V0 ^1 l* v ( (CUser*)this )->AddSetChangeJob( nJob );+ x$ {' n( V5 V# Z1 m5 i4 w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: _" ~0 Z" x! B. p1 w: j
9 p7 A# [2 ?- m/ `' f' ]1 m
2 G3 u! z* ^* I' `1 w# m; S#if __VER >= 11 // __SYS_PLAYER_DATA
4 z6 U% s4 k& |5 i g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 Y5 C+ a/ Q/ G% E1 S+ }; u. m
#else // __SYS_PLAYER_DATA
5 q0 R! Y9 P9 X- m9 X* C g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! ?3 S( r% C2 s/ I! @3 i& C
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' Y: I: l/ v- x/ _
if( m_idGuild != 0 )' ^, q; F" W+ o7 p: J* s" x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! K/ r$ _& v, X+ u1 m, {+ Y#endif // __SYS_PLAYER_DATA, N- L, Q. s% d* _
SetHitPoint( GetMaxHitPoint() );/ g# v- x; b* ]' B# P
SetManaPoint( GetMaxManaPoint() );/ s- j: B- g0 {# {* x. h/ N- L q9 p5 t
SetFatiguePoint( GetMaxFatiguePoint() );
/ J2 \1 [$ j/ s$ _ if( nJob >= 1 && nJob <= 4 )
% v) w, O# \+ K% r {! k4 ~9 k5 B3 |9 F2 k
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ K9 `) D) y8 A+ W% R/ T
m_nRemainGP = 28;
* j! ?" H6 U% G/ `. i }9 h4 k! @: W, s; I" j: p3 {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), C- p( f1 Y- p
{$ H @: W" H; k& @6 G) q
m_nRemainGP = 118;
4 Q% I* Z+ ~- k/ } //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) U; A0 Z8 q5 P- n! h
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( a+ ?+ {4 C0 k$ e }% \5 M/ D4 r7 b# H
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# F2 A8 K, |) r9 v
{5 z0 \% O: I) G
CItemElem itemelem;9 j' k7 O# y4 R6 p: q5 y- D* g
itemelem.m_nItemNum = 1;
2 D/ S! q1 H; H; z& ~' } n: O$ s itemelem.m_bCharged = TRUE;7 v) Q7 m; R4 H2 U
BYTE nID;# [$ o5 }# v* {( Q
4 b% F% q- D. E0 }3 |& k1 W if( nJob == JOB_MENTALIST_HERO )
' H$ Q' Q; m' j5 { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# a( f w/ `& \. y6 z, H/ \ if( nJob == JOB_FORCEMASTER_HERO )
# |( @2 D- ^3 E1 O+ u# J* s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. k0 M$ p) I# \
6 j, i, s. o2 K' P; @/ V3 {' R
( ( CUser*)this)->CreateItem( &itemelem, &nID ); q9 C8 p* C( P5 z, Y
}
% E# ^+ n$ U2 a4 H9 K* l7 S) w+ x g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" W0 u. l" E1 N r
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( t f H! M5 h ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) B) ~2 X" t# f R- A( i% t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) A8 @; |5 q, j6 t6 X( r1 B
( (CUser*)this )->AddTaskBar();*/
4 G) i7 A: i0 K! r1 B6 T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) Q; J# s6 e1 l. R( W6 w% j7 D7 ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 j+ W+ H- D( ^4 Y; l% z, }) X
((CUser*)this)->CheckHonorStat();( D8 `8 b6 m) ^8 r: b4 l% j
((CUser*)this)->AddHonorListAck();% C$ Q; @8 V* u1 ]; N/ a# q' e/ ]( T; t7 F
g_UserMng.AddHonorTitleChange( this, m_nHonor);& q0 I) |: s6 l
#endif // __HONORABLE_TITLE // ′Tà?
$ `' U4 _* E) L& f( _) N }. X! E4 P; n3 a' l I: J2 l
#endif // __WORLDSERVER
" x" |# a9 |! \4 _. L7 E4 ?* O5 s}
& J8 P2 \0 s; m4 E9 U5 m1 W$ T/ O. I" ], J: s4 Q
然后你进入functextcmd.cpp并添加以下
) ?6 |/ L Z0 i- ]
/ ]& O- P3 p4 n) Y5 e4 C; ]代码:" a$ [+ e4 w( u* C* {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( `6 h5 w! j) r) p9 q下面插入+ Q0 w5 O' s! d6 o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' ]" g6 @, q$ g5 t
$ L+ z5 X+ U) R' d) |- {% p然后你去
$ ~( v; T: A3 d# S* q0 H+ {: R) C" S. w+ t/ L2 c4 S
代码:
% ~* G; g( r5 P- J* L! b代码) r2 W; T2 n. `# I: X3 b+ K2 t1 a
BOOL TextCmd_ClearPropose( CScanner & s )0 Z- }+ B# r6 c5 f
{: }; i- B }1 z, t, W8 ^0 {! A
#ifdef __WORLDSERVER
- l* r6 v2 s: ]* |/ B CUser* pUser = (CUser*)s.dwValue;
! g, D* |2 a; U) B4 k& [ g_dpDBClient.SendClearPropose();/ f" G! `; E M! B' B* T) t. {
#endif // __WORLDSERVER
, a0 \- \9 C1 o5 O return TRUE;8 |: n* L& v4 a7 ?1 e9 c
}
9 i$ U) w7 w6 U' e' L下面插入3 K( `5 K$ \: q+ ~
BOOL TextCmd_rebirth( CScanner& scanner )
2 i& _& F( T8 n5 z{# L5 s6 m; R' m1 o3 ~! H
#ifdef __WORLDSERVER
! T) C) d9 U* P9 M. W$ n! LCUser *pUser;2 p/ O% I, r/ J* V
pUser = (CUser*)scanner.dwValue;
0 |$ L# S4 p( g0 H8 sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), j; S3 N+ F9 n2 t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# g$ v( z7 z* z9 e0 Gelse4 A. `# Z% o% q+ U+ u9 {& D) c
pUser->AddText("你还未达到重生条件!");1 ], b8 ?1 ^7 K* \. z3 x
#endif
" h: b! l: A$ q yreturn TRUE;
5 A, {, k! h% K}
5 K1 z- [# D$ B, M7 x* _/ k
) `( X' }+ z! a: N6 c( y% }2 `; S
1 n2 R4 p/ m5 `$ x' R0 Y, n' k( Z# O
5 {3 C Z7 z% ~ S0 I2 v/ L+ V4 H( c; F1 B
|
|