|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ L" w" `) l. ?' O; R. N, N
; K: p& E4 ^" s5 @, B
Mover.h
; S& Q* F3 D. @, g' Q& U代码:
/ U0 u* ^+ q# F O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ u, W8 y1 {4 C
4 C4 A; W' A# Y3 n) c F- F
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 s. N/ G* T. Z# [
% f) a; D! I5 s5 J2 P. \然后你去mover.cpp添加$ w+ S/ w9 y6 }( u' |
: m* h& `) _: A% h! R) h8 ^代码:
6 T; g: d1 [/ Q! X2 L1 Zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) O4 B$ K& }( l
{
* J, @. k; o s4 z. W) y4 \$ l#ifdef __WORLDSERVER: {6 R# P$ [1 w8 o+ J1 Z x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 B8 Y; Z" k, P; ~/ i MoverProp* pProp = GetProp();0 P+ o! z3 V5 M, o$ y! X
if( pProp )
+ c3 d1 V1 l0 }+ [ {6 ^: s6 q* K+ q7 [8 F
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 G1 ~' w0 o" N
{; i+ n" a9 I$ t. l
AddChangeJob( nJob );6 l9 o, \$ a! s# k i
}else{
, z7 f+ Y/ m3 W7 D; \ return;
3 z5 S, q! j6 [ A1 K3 b/ q }4 {) U! }% @7 L( r" L+ R
int nPoint = 0;
, P1 B- I, J" V& R if( m_nJob == JOB_MERCENARY )+ {0 |8 B4 q. s, A3 [
nPoint += 40;: W6 r% |* ?% ^0 i# o5 p
else if( m_nJob == JOB_ACROBAT ): Y- _* L' Z* B% E# X
nPoint += 50;
4 _4 N( X/ k0 e- N Q6 w4 l2 h else if( m_nJob == JOB_ASSIST )7 A5 |! p( R* i* D
nPoint += 60;1 L- u8 A3 B4 Q$ |
else if( m_nJob == JOB_MAGICIAN )3 Z% `4 G8 J( p1 s
nPoint += 90;; z, m, k) J- Q/ s% X8 w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 u9 R' u5 L$ h& L& ]
nPoint += 120;3 g& O; t, v0 D# \
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 O e# T2 i- _
nPoint += 150;; P8 s: A) M& j8 y( r" A* y3 j5 x; Z0 i
else if( m_nJob == JOB_RINGMASTER ): o% t4 z4 y7 Y W
nPoint += 160;# b6 s1 V( e+ b
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 ~" a& [$ n! ~, a; O& B' o nPoint += 180;* l+ V! @: n5 {( j
else if( m_nJob == JOB_ELEMENTOR )! F n6 O( f3 f+ s4 b {
nPoint += 390;
9 t6 m* i8 Q" ~4 x9 q7 ]0 g else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 |0 b4 Y5 o# v% F; ]+ y/ F D
nPoint += 120;
$ O9 q) F4 s7 j0 a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; c. I" f2 z. ^5 ]( E' Y nPoint += 150;
! V7 K, {. L, I; o0 z else if( nJob == JOB_FLORIST_HERO )/ X# g+ x c+ `: f f$ Z2 @3 X& W
nPoint += 160;. w% [8 b/ B/ ?! p# T& p
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 H3 E/ k1 v, y3 @
nPoint += 180;
# y1 K W. H( U4 M w' q: z. I else if( nJob == JOB_ELEMENTORLORD_HERO )
: i8 O* b- K8 }3 m$ o8 t9 m nPoint += 390;, n. B: z8 m3 I: W3 E
" g4 b0 U# [! Q, ]' h( f AddSkillPoint( nPoint );
9 k6 x* f1 A, Q& T3 Y9 r- M m_nLevel = nLevel;
9 e, } C F( a' v
+ @9 c( S1 x6 |( `" y$ r+ e5 } SetJobLevel( nLevel, nJob );
# p2 ]5 h4 q& G! A% s9 _$ B' G m_nDeathLevel = nLevel;
3 f3 S" g4 M3 T) h#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& U, f0 _2 ?% K# L9 U1 C
if(IsMaster())$ i; t7 ]3 Q$ w; Q
{* s1 w$ n( a3 D! H. n
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" f, i5 O7 k* G4 y. k if( nLevel > 59 && nLevel < 72 )' @: g, J5 E# q9 a. G- `
dwTmpSkLevel = 1;
6 M! ^+ d* s. n6 n; t+ y else if( nLevel > 71 && nLevel < 84 )
* J' Y4 C- o5 Y3 Y3 L dwTmpSkLevel = 2;# i' x( c, O, R$ Z* Q$ C
else if( nLevel > 83 && nLevel < 96 )! h* e, B9 X4 i) }+ \3 X5 g- T
dwTmpSkLevel = 3;
/ I7 W$ G5 D, R, K" d: r else if( nLevel > 95 && nLevel < 108 )
: j1 y) C$ z6 ^$ g/ J$ e dwTmpSkLevel = 4; j& B/ _+ N* ]2 h- m0 o
else if( nLevel > 107 && nLevel < 120 )
& m5 }- ]3 j7 K Z- Z2 e dwTmpSkLevel = 5;
7 Z+ \4 L+ u5 i; a3 C3 e+ v for( int i = 0; i < MAX_SKILL_JOB; i++ ) * N, q+ A5 A0 N; f0 J
{
& I. [/ S( \, j6 c$ D0 X8 R LPSKILL lpSkill = &(m_aJobSkill);
5 L& S& j* f* `. r1 d7 X# a. M% H( v if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 t: j8 U! g' g2 t. e {
" J- Z3 B- |& h' @( O; q/ L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 S1 [8 o4 k n5 u! r S
if( pSkillProp == NULL )
1 y" ^& E! U0 K1 h, u: | continue;
! B/ I) x8 L$ M3 E D2 t7 s' ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER). Z x8 r3 C3 ?2 a0 ^ [: f
continue; i- K' V ~! E
lpSkill->dwLevel = dwTmpSkLevel;
- |+ }8 v: h8 l- B }
! ?. S, F5 l4 ^0 o }
$ C2 [3 P3 a1 {) h }7 O- g$ A9 I1 O; Q- T; J# I
else if(IsHero())
$ r! [2 T7 c, @( @4 u8 C% r {; o6 }+ l* A f( \' ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 H. Z4 {1 k; t3 u { " v5 E v+ K3 F& j% p- {& b! d
LPSKILL lpSkill = &(m_aJobSkill);2 \% r! V+ N0 P- S5 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ l: Z) O% F) j
{9 ~2 r; j3 h: o5 I/ l& |( N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * {% ^. Y. A3 _4 I' j; _1 r) P
if( pSkillProp == NULL )
' W9 m: Q5 M" h5 A: g, Z continue;, G: o4 O1 i1 @' p( R& M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 m8 w1 {& \; m8 V1 u continue;
7 V5 p: ]$ L' [3 \2 n! T5 ]* k! _ lpSkill->dwLevel = 5;& C1 @8 s& q) d) H3 D' Z) L
}. a1 ~8 c, ?( c
}
8 R, c0 j- W$ X0 d. B }
' c- [* w8 ]( y6 A1 M; m6 P else if(IsLegendHero())
8 a2 L/ \# u. ~1 T. ?& q0 }1 ^ {( }4 \( @0 A' O% C$ C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ e l7 K! t" `# Z, {* l8 u. u9 k { 6 i$ s) |. |) q6 v- S6 O
LPSKILL lpSkill = &(m_aJobSkill);( `# h. R" b4 r4 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' x% i, x O" u {
, x g! c& Q% {5 c/ D' T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" i2 A$ `) i, v$ G2 Y; i if( pSkillProp == NULL )
) X" p% q h5 |0 [! `( ~, U) d0 { continue;
5 ?. ?% n9 s4 l/ A- y4 m3 q k if( pSkillProp->dwItemKind1 != JTYPE_MASTER) X! t J* C( H& C. m
continue;
& S" O0 d% Z" { a6 t& y lpSkill->dwLevel = 5;7 J1 k; M t! a0 L/ |
}
1 E6 w# {# D, ]5 @: E7 B. r: h+ u! v }( j. z4 m) Q% t( q4 t
}, X9 A5 s; I. _+ J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# L2 f. ~3 k' Q9 L0 H6 _6 |. m) a
if( bGamma )3 \# r" m' k# b" a6 D1 q3 Q& o
{; q! X) @7 x9 Z% v% k) C: v3 i
m_nExp1 = 0;9 U: v$ w: i0 r1 q- i- _$ o
}, U; \; V) m' y7 v5 i; K4 `
' V- K2 m1 _0 ^7 l# ]3 w
( (CUser*)this )->AddSetChangeJob( nJob );' o3 C' l$ F% S6 A3 Z4 F( x3 i8 f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" Q) g! F& ]5 ~' j! P# H6 y z' j. V
5 B0 w/ }; _) R#if __VER >= 11 // __SYS_PLAYER_DATA- U4 P7 ~3 C7 O4 `4 Q0 ~
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 n7 W: k" o/ q' x+ Z" Y+ c. c; j
#else // __SYS_PLAYER_DATA: }0 i$ S8 B- P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; j( _+ n) m3 q1 A; n
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ M* ?) E3 V6 v& P
if( m_idGuild != 0 )& v$ a, U5 H; ~) n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# I& w. {8 h, L5 Q9 i
#endif // __SYS_PLAYER_DATA
0 q3 i( b( q2 q3 U1 \ SetHitPoint( GetMaxHitPoint() );
* Q6 A3 }7 M5 @0 m4 ]0 Q% R SetManaPoint( GetMaxManaPoint() );
( J* D" N& H6 z5 Y1 v+ j7 `" n- z; @ SetFatiguePoint( GetMaxFatiguePoint() );
- P# q! r' }1 n if( nJob >= 1 && nJob <= 4 )
: n/ `3 \5 _! h9 u {
# ?/ x9 R9 J& @- V+ X6 C( p, l m_nStr = m_nSta = m_nDex = m_nInt = 15;+ i0 O7 n; O) t& ?$ h
m_nRemainGP = 28;$ ^/ i$ U/ q+ Y& `, m5 l
}
) k+ H6 Q$ V4 j3 V& @$ M if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# v! f3 ^1 L. w# w2 L
{
]( D7 X |8 i1 F+ Y m_nRemainGP = 118;
* N" e" @( i8 N. | //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* k0 y$ K) w+ Q5 r! A4 G6 \2 z m_nStr = m_nSta = m_nDex = m_nInt = 15;
, g k4 z% k8 Y9 X }8 G7 L1 l; M# X1 X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). D3 q* x# t5 f& I# ~: q- f
{
3 o H- C* q5 ? CItemElem itemelem;
" h5 c) [+ i$ g* L# b1 H itemelem.m_nItemNum = 1;
. o& u5 N" X, {3 T$ } itemelem.m_bCharged = TRUE;! P; j& S7 l# E
BYTE nID;# Q. V2 A O" n
: @2 ?8 r3 ?0 e5 O( z6 D2 N) L# J, N4 o
if( nJob == JOB_MENTALIST_HERO )
, L; S7 A' X; p2 r! h# N0 W itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 x' }- [/ f! f$ e if( nJob == JOB_FORCEMASTER_HERO )
: a8 |7 h9 \# |% m4 L% s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 v, B/ w. U! A1 v4 \# i
) Y3 |, h! N+ z ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 k5 f/ l. F, x- R' {6 A. ?+ k }& ~' Q3 H7 |3 w' T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. m+ `7 v# b d$ }8 U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- Z( u2 c' y6 \- p( n4 p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: t' r* [4 N% a) V
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. ?. m2 W. n/ N/ k2 |* a$ [3 H
( (CUser*)this )->AddTaskBar();*/( h( i% {+ O9 ~- l% |( h3 F* Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 Y+ g9 a- N! ]7 L# A& b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( ~9 M% r$ ~5 e: T) S
((CUser*)this)->CheckHonorStat();. [" O% y q D
((CUser*)this)->AddHonorListAck();
3 D# d+ U# i% g% X/ n! h5 \ g_UserMng.AddHonorTitleChange( this, m_nHonor);: ^. g: H. G& }3 T3 o* f" y
#endif // __HONORABLE_TITLE // ′Tà?, |! k7 f- J5 d/ P9 ?6 m( u
}
" a" H x! `7 }8 Q& I#endif // __WORLDSERVER j/ G5 ^0 r9 u6 [5 S/ `+ H; c& T
}
, A( J7 a" c+ y y8 ]1 O$ y& H) l Q! b
然后你进入functextcmd.cpp并添加以下" q3 X" e4 g* Y7 g U
! O# H, Z5 h4 n/ B
代码:
) \" t2 L( ?- g! YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 ] Z( ?- i% I
下面插入
5 T- `: `& p9 z8 ZON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ [1 {3 x$ L$ P) r3 ^! K* p4 a, _2 N9 [/ d( D
然后你去
& u3 I# A% ?" p/ A& Q
S+ { D& |$ o9 C代码:
6 P' B( j* w1 j+ ~/ m代码$ w+ P, t' p0 f8 u5 @! p1 D
BOOL TextCmd_ClearPropose( CScanner & s )! ]$ h4 j. P6 K8 X% E v3 F0 n0 N, V) t
{
! T D' S) a3 t! b0 n+ I$ X& ^#ifdef __WORLDSERVER
: p' u [. U1 b& Z. T) d; m CUser* pUser = (CUser*)s.dwValue;
' ?, c# |: r+ ?! a3 U6 d. ] g_dpDBClient.SendClearPropose();1 Z1 w. ~/ V9 f7 I& w5 W2 ], t& T
#endif // __WORLDSERVER
( F/ V* g9 j, ]( h: T9 r+ X( d6 G return TRUE;6 O. p6 w' v; D
}& o0 d) t% q5 ^9 m
下面插入
( n6 w/ k* \5 u' Q2 x# ABOOL TextCmd_rebirth( CScanner& scanner )* s( l0 h/ @1 W o: B9 m
{' X- l. o9 [' E9 q+ @! R" w& G; U
#ifdef __WORLDSERVER1 U5 | X1 B* M0 ^3 S5 ~# t U9 j
CUser *pUser; m/ Q- i2 z! B% q) A
pUser = (CUser*)scanner.dwValue;
0 e; N- H+ n, k8 u* K" \) Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ f: o0 [% O$ _7 h( {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. d$ s5 X9 Y! E
else8 c6 y9 W; k9 S) V" K/ Z
pUser->AddText("你还未达到重生条件!");
" q& O& V* \0 r2 U& B9 M#endif- E. Y0 L8 q6 c" b8 U- P2 ]
return TRUE;
& r( p6 t- H. g2 T$ G6 H}
' ?% R" c9 ^( s, `4 ]& F
; ^- x( ^& ^9 T) D5 ]. M' P2 U, b" B( G- m7 k% P2 z
! m3 H- w9 d4 |! j% v* Q- U
9 j! \: q: A9 r2 d( e; a1 o |
|