|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* Z. O) G9 h1 t/ N
0 f1 d6 B* Z/ p- u2 i& hMover.h* Z' F# f7 v- O$ h
代码:
( a+ O" u# _4 D2 Y5 K1 W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# @: x( m3 t5 L) F
7 R6 z% j/ G+ k1 {下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& A; f7 R" E( g. {6 H4 s8 o7 w1 r Q) _
然后你去mover.cpp添加2 f1 i6 R. m: n7 _$ P
. O) Q3 A9 l, w" L, r; C1 S代码:3 w0 @# W+ }. l2 T2 {
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 P" z: o3 A1 j' j. G; v h{
! j2 I9 q/ G+ B7 E" x! |#ifdef __WORLDSERVER3 h3 m1 }0 \: l$ \ x- ]8 l; g4 y4 m
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- r+ M0 w0 U W MoverProp* pProp = GetProp();
9 l( X5 l; b- \3 F% s6 a1 f if( pProp )2 d3 q0 f' M4 q, ]: D% @
{
# @1 G" ~: ^) [, L' j if( nJob > 0 && nJob < MAX_LEGEND_HERO ); W- b0 Z; C: |4 ?/ y* p
{
8 m% r6 L% E( z% {- v/ B! A2 o N, R AddChangeJob( nJob );
0 v. z0 ?" ~% f- ~6 T }else{
6 w5 d- X2 c1 R return;
$ N+ v& c. ~. W( t }2 I0 C, J% P7 {( u! x) J
int nPoint = 0;' e F: p% h z: P2 Q
if( m_nJob == JOB_MERCENARY ), {% U0 |0 A1 {* u
nPoint += 40;
9 x7 v# C D: }0 [& Q4 p- ~ else if( m_nJob == JOB_ACROBAT ): i) i- N, X! t0 |
nPoint += 50;" @- l; u0 m; {/ A9 }" `
else if( m_nJob == JOB_ASSIST )$ ~5 M) ]! A7 m+ H5 i8 ]2 L
nPoint += 60;9 G0 T% D$ }5 M/ p6 b
else if( m_nJob == JOB_MAGICIAN )% p% ]. b- f6 ?
nPoint += 90;1 J: {0 b3 ~" l, p
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- e4 n9 M& E) t9 ]) T# A nPoint += 120;4 F3 L; C. |, _0 H# ~4 [: r! R v1 b
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 P( p/ N8 C8 v. e: ?5 H nPoint += 150;
- H7 O; n9 B* B, A, h else if( m_nJob == JOB_RINGMASTER )
; R- C! X- S5 ~9 l6 n nPoint += 160;
3 g' d6 Q( g! a+ ^( h7 @, E; P else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 W J" O9 k7 ~% ?$ K" g- S2 c
nPoint += 180;
8 O6 R/ a8 V8 x% w else if( m_nJob == JOB_ELEMENTOR )8 [& S3 w8 u8 x% C: O3 m. @
nPoint += 390;
- K! f! M$ Y) x# m; | F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' m6 E$ ?8 m6 V7 F5 n
nPoint += 120;
: C8 A. F- `+ O, B else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- s" b- B* F: K; I1 D
nPoint += 150;
/ K9 V/ T8 ], ]2 l7 q5 f' A else if( nJob == JOB_FLORIST_HERO )
- V& M! ^/ |# F nPoint += 160;
" I) ?/ V0 W( g' S% _. I0 c2 R* \/ G else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- y* P- T. }& m, D# I, n
nPoint += 180;& e) O3 u) b6 g: c6 e; S3 p
else if( nJob == JOB_ELEMENTORLORD_HERO )
" l: }4 ?7 G: l7 _( e \ nPoint += 390;
' {& ]5 ~! x9 S- F C
5 ]2 {( F& P( \+ O0 c, ^ AddSkillPoint( nPoint );
1 ]; ?1 g. a) D0 k9 C m_nLevel = nLevel;, u/ u! @# }, H! o4 A2 H
8 Z6 g0 a/ x5 s+ F
SetJobLevel( nLevel, nJob );
0 L- ~1 g4 D% t( D m_nDeathLevel = nLevel;
" J5 J* d! f" c. q$ B% l#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! B7 g; s6 q8 ]7 a% R5 n: ~8 X+ N if(IsMaster())8 b. f5 Y7 S; I5 |
{
! p9 K7 K' I' z4 j4 W int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 n% P% U v9 ]+ @. m' l- i if( nLevel > 59 && nLevel < 72 )4 a9 H/ Q( m% ~+ G' l8 ~
dwTmpSkLevel = 1;
9 g Q8 A" g k else if( nLevel > 71 && nLevel < 84 )
1 D, u% u7 s9 i2 Z1 D dwTmpSkLevel = 2;
2 V7 N0 o. |* ]& I else if( nLevel > 83 && nLevel < 96 )
% |- R2 Y; Q" M. L0 o3 y, c dwTmpSkLevel = 3;
" R' ?, }2 p, w else if( nLevel > 95 && nLevel < 108 )
0 \/ h7 s+ |1 T dwTmpSkLevel = 4;
" ?; _1 X& ?( F$ l$ O else if( nLevel > 107 && nLevel < 120 )% A2 L" F" Z4 L5 L0 `
dwTmpSkLevel = 5;
3 H8 r$ x) l' z1 b7 b# Y/ g for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) m, X/ R- B5 _3 Q7 N0 C
{
* y2 a+ e o- q3 r6 N LPSKILL lpSkill = &(m_aJobSkill);. {* h5 ^1 o9 R5 t; H2 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 B' K4 ~2 }& x, O$ t
{
' U( }4 O: p. \7 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 X1 U. x& s8 ^
if( pSkillProp == NULL )
8 b5 s. z7 B5 \$ p: C- i% R) W& z continue;
% h# ]# O' W# I3 ]" k" c1 h3 V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" e# H1 s+ g( y Y: r! w' S continue;/ V0 x; `* X6 v" G% C" N
lpSkill->dwLevel = dwTmpSkLevel;
8 O5 U: c8 | l1 R, o, u# _ }# U- v* p: G2 v; y1 Y. V
}0 d- G- H% G z6 q* a, ^# f1 j# E
}
8 C4 d3 N% ^# e7 R2 o else if(IsHero())
. N% T$ [; [) H: E1 F" [* ]4 d {
2 B; _2 {& N) H. T5 e. I6 I. s for( int i = 0; i < MAX_SKILL_JOB; i++ )
& F6 @0 i% l" r: b' I {
8 W- w+ P6 d6 [! L4 T8 O+ H LPSKILL lpSkill = &(m_aJobSkill);
! D# k1 b( [3 e+ i/ d+ p2 _" T if( lpSkill && lpSkill->dwSkill != NULL_ID )/ v8 j& {. B' P$ l
{
4 y Y9 c' d, y; y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: ?% i6 K2 Z. W6 w/ y k5 {1 i if( pSkillProp == NULL )( z. t; S, _- c% A% U/ s
continue;. w2 k: E" w9 d9 }0 i( |: W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 b+ m. V1 I. A- k! K
continue;+ a; d9 o1 P8 M4 Z
lpSkill->dwLevel = 5;
1 Z/ {4 ^6 `2 G. c2 f; |; F }
1 M0 Z0 y `( V. |& m1 x }+ S7 `* C$ i$ o: G1 G( q# }
}, m3 m" q+ m+ l0 g# A2 C u
else if(IsLegendHero())* E: }" P: E( Y% q H
{
' ]- _: T; C6 f! I& [; ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; ~+ w8 X( S) }/ q# |- t) g+ u: d- p+ g
{ - |. m* w8 ?: O" b
LPSKILL lpSkill = &(m_aJobSkill);( q: F( F) R e4 ~8 o' x
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 _* z: ^; y' s0 k8 G" z- F! x( b
{
% g3 n7 l1 X/ _7 t' ]8 _0 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 }- d, p5 S$ k; C+ Q2 o; p
if( pSkillProp == NULL )- j: q5 [: n6 K! Q7 a( A
continue;" L7 Q$ B, V7 R- w& r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 [5 U0 F9 j: u$ m# ?% B' q* g2 c continue;) q# q( M. m& p# x
lpSkill->dwLevel = 5;. p" [6 r N+ i1 C. q- `
}
- h% N& _# h& J$ H# v6 @ }
. X F8 j; r- [: H }9 U7 I) G; } K4 ?# e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* B1 T) b3 ~$ U! X$ _3 q- m- \' ~ if( bGamma )' C" d6 p6 X9 L% e- Y0 M
{
. ^" |# `, U) G+ }& D m_nExp1 = 0;) E' G: P9 ^2 p: N2 ? H3 d
}; Q$ F, r5 o" N% A; x4 l4 h
" M! }, l( @' C8 i$ E ( (CUser*)this )->AddSetChangeJob( nJob );
8 c/ w- m4 w: l1 r0 E6 Q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' V) g" ?6 }, L5 g
* Y. ^4 r% Z& q6 r5 d" j% Q% C2 b% S& A9 {
#if __VER >= 11 // __SYS_PLAYER_DATA) w+ U6 M% k) G. @# O$ C
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( N8 M. d5 z$ U# c( a
#else // __SYS_PLAYER_DATA
1 S) c0 A, I$ M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 ~0 Q+ k# `" H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" Q) Y( s: K+ ~ if( m_idGuild != 0 )
2 U. A) w, D# n- c g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 z* m }9 h* N2 Z#endif // __SYS_PLAYER_DATA
0 k$ K& l" e. W; j SetHitPoint( GetMaxHitPoint() );& ^8 d& s4 ~/ K; }5 g5 b3 P
SetManaPoint( GetMaxManaPoint() );
- k5 r) u3 k9 n/ a SetFatiguePoint( GetMaxFatiguePoint() );
* X$ `( i4 J4 ^1 _' F if( nJob >= 1 && nJob <= 4 )9 r6 D [, J* F4 f4 k6 U( j6 D& B
{8 P' _( |: ^) Q: P3 i) W( o
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 h: C; \! @0 w; ~
m_nRemainGP = 28;$ T$ a, ?9 A" T; @# @# G
}; W% t8 |+ ^2 s! F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' s/ Q- F4 w+ F4 { a: n! o3 P; ^ {+ y; o* s6 L/ V& @4 h1 A
m_nRemainGP = 118;$ O q/ k9 E2 \/ f4 E. v
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; \" f3 m4 O' c) ]4 q7 [# h$ }9 v
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 H( r( u# N0 ~6 \
}
4 T( n8 r- T0 ], M" c- n' h if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' F& I, d' s! z+ r! v
{) R+ D; m7 e+ w$ r2 X
CItemElem itemelem;* \: F9 t" V2 h9 V j! o
itemelem.m_nItemNum = 1;# o& j; g+ I A0 H2 J; s0 ]% n
itemelem.m_bCharged = TRUE;
- o4 ~- @1 _- P3 j BYTE nID;
W) ~9 R8 I% m4 w5 k: X
& Y, Y; }9 D. M& v5 R if( nJob == JOB_MENTALIST_HERO )
, l) @) j2 f1 C) s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" B( }2 [9 A0 j4 s
if( nJob == JOB_FORCEMASTER_HERO )
+ g; C8 g3 p- c5 P* E; k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 x' A" L. r7 U7 t8 v& H2 j: Z
, C9 ^( ]" c$ V7 R ( ( CUser*)this)->CreateItem( &itemelem, &nID );+ d: @/ P9 _6 D
}
% @3 u* d6 t" [- G g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 s" [# R" Z" q, ^/ f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
5 z* C4 \, \' F2 V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) p3 l7 d& R# b7 g /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& [0 h5 s1 \ R6 R7 E0 S9 A$ P ( (CUser*)this )->AddTaskBar();*/
6 N: I3 `. Q! V: m7 w5 b ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 b8 S. {' Y; k: R/ W" f#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 j- j' g4 Q* r8 z7 O ((CUser*)this)->CheckHonorStat();! j& ]# M5 v u* a. ?8 U' R# M
((CUser*)this)->AddHonorListAck();
6 u: f6 c$ l! p+ D( O, [& l! ~ S7 R g_UserMng.AddHonorTitleChange( this, m_nHonor);& Y$ i( p; T9 w3 f4 y
#endif // __HONORABLE_TITLE // ′Tà?+ d& L" ] Z/ f( A* h
}7 ], r) K7 C- `$ i0 P6 P2 E% f
#endif // __WORLDSERVER
9 @4 u/ U( p( J2 M6 N} - ~0 {2 ?; u' i- B' C5 K
1 z9 B1 \: U3 ?2 _$ k
然后你进入functextcmd.cpp并添加以下/ W6 r' R+ T' q) c- ?0 n$ e
! x. c* [2 [: |2 n6 a; q- R7 P" h& j
代码:
/ D, Y" @; X0 N$ t2 @! BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' F" E1 ~" |/ T; m& b7 A4 ^
下面插入: P3 A9 Y, i6 \" L1 z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 q3 p) C& d2 Q6 v% G" d
& B+ @8 d. ~4 v
然后你去* m/ O( f1 C" V% l @$ K* h
4 w7 U+ ~( f9 ]+ c
代码:
: V! ~! h y0 D5 M9 ^7 k2 t代码 e4 K; l& S3 D6 `% C: F3 |
BOOL TextCmd_ClearPropose( CScanner & s )
5 D, ^* A7 p: P. {& |* W3 A [{" D- X2 Q6 K6 S% z! V
#ifdef __WORLDSERVER
( D! I( B: ]7 e1 {" |" n8 j$ d CUser* pUser = (CUser*)s.dwValue;& v- s7 U$ ]: h) M3 T, L) ?
g_dpDBClient.SendClearPropose();. G7 P T% P; J
#endif // __WORLDSERVER4 _5 G7 J' j9 f8 C
return TRUE;
$ ]/ d5 N. ]+ |3 C}9 w( x6 o7 e2 L- ]0 a8 R
下面插入
5 r+ b8 C& |' R) s& M$ s6 XBOOL TextCmd_rebirth( CScanner& scanner )% K# u- C! V9 |# Z5 Q3 E1 ]
{& {9 Z2 S! c& U4 x H
#ifdef __WORLDSERVER- Z1 y( }* r$ E9 T
CUser *pUser;) r& `$ ^/ X5 Q. {
pUser = (CUser*)scanner.dwValue;
2 [# z2 U4 I5 z% E% e8 Bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) E3 ?1 ?4 c, ?" z& T& t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, C' y$ x9 F8 Welse
1 G0 ] m% }: p- V# ~2 p Y3 H$ H rpUser->AddText("你还未达到重生条件!");
8 s7 E( N6 {7 Z" C, x' G5 `#endif* r+ R( a, ` E5 j( a
return TRUE;* m; ]! L% y$ r
}
& D+ L6 R. M& S
+ K+ f, K. B; C4 j- ]5 S1 q6 }7 F( a6 y% Y% a0 {( }
& w' T3 Q6 v$ s U, a, c2 S
9 q- f5 j+ U. D8 B% E |
|