|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: q$ m. r3 ^, u6 N; J( ^
2 L/ O5 ~9 r& Y- P; F) S) jMover.h( C4 c+ g9 O8 e7 D
代码:+ F) O+ D2 I6 k/ s8 |
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: O3 E8 s( O: G" q
. J7 Z! x9 ]* j; l @: j2 B下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, o! w3 J" k. b8 @7 P5 _9 Y2 ]" K; \! z
然后你去mover.cpp添加
: s! |: g( j. `/ ~" w) f- E" e* Z
代码:
7 f& r' T) C3 w0 N cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ c. e' }7 l9 L. G5 T' l& |
{; R! U$ g, `; S8 E
#ifdef __WORLDSERVER
, Z% B' U) h# e$ k // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 V% e: ?2 O; s. t: t! u
MoverProp* pProp = GetProp();6 I9 h* V9 P6 V! A' s* I8 w
if( pProp )! G5 l% u4 A, b' x- m# Q( p
{- v3 U4 r8 m6 C
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ g. g, d+ Y2 [6 v; ~& C8 {$ a# O {
7 G/ C, _4 d! K2 e1 T AddChangeJob( nJob );: l' t u7 c, m+ k4 C7 t
}else{1 a/ j. z2 Z9 G
return;6 ~: u9 O" v1 a' Y8 Y' x
}3 }3 H# I7 B* @
int nPoint = 0;
9 I% ^3 s' M; C' D& J$ h6 { if( m_nJob == JOB_MERCENARY )( t3 E0 d9 Y5 _+ M5 k/ X/ R
nPoint += 40; D! J8 g9 }0 [, x4 s$ {, c
else if( m_nJob == JOB_ACROBAT )0 w* ?- W1 L$ D5 R! Y% B+ I8 C
nPoint += 50;
6 ?/ s, | N2 o7 S else if( m_nJob == JOB_ASSIST )( k9 O! t5 Q9 r0 H: \( k0 U6 ?
nPoint += 60;) C K2 _$ y9 u \, A z/ H. u
else if( m_nJob == JOB_MAGICIAN )
: ]7 f- G x, N+ ? nPoint += 90;
3 E, \0 v, v0 B. n$ n+ s6 A9 a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 B L1 D5 K6 D, n1 W2 H
nPoint += 120;
: \6 y( V+ H& d5 ^ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! {$ E- u* p8 R+ G% A8 r( e nPoint += 150;7 ?( p7 Z9 a; R+ ]+ b+ j
else if( m_nJob == JOB_RINGMASTER )
0 b: b6 T; h& i, f( Q2 g/ V( @ nPoint += 160;
5 Q7 O& \$ B% x+ ?- x# j" J- { else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 d1 h1 N: E2 v' O0 ~( A4 V
nPoint += 180;
" h; x+ V1 U F) u- t1 b else if( m_nJob == JOB_ELEMENTOR )5 j0 C; h& E0 g8 O1 n( y- |
nPoint += 390;
3 a$ S+ q; v* w3 V) c! O0 c1 C' b else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 j4 Y' b! I* L/ z
nPoint += 120;
+ x* }, X8 z" |0 U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 c# v8 `9 C8 J8 j2 p nPoint += 150;1 m5 D2 R, @/ _. A
else if( nJob == JOB_FLORIST_HERO )% u( n- d8 ?0 B) T$ r% r8 {
nPoint += 160;( t: R" ]1 v2 m/ s% r
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); q& `2 B: I `8 e1 T1 A: F! v: B
nPoint += 180;9 s- I" C* g5 z6 o5 {
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 r0 n0 y6 ?- j" a* z+ B nPoint += 390;" [6 S' R3 I; l# \# u
8 b) W) L6 ?! [+ g3 o
AddSkillPoint( nPoint );* r9 P/ h0 ^- x" M$ _
m_nLevel = nLevel;) m( O) ~: l, R! y9 r' R! Y2 ]: |
0 ^6 ]5 o/ }; ? z1 X; X
SetJobLevel( nLevel, nJob );
, C+ m+ I6 U) x9 z+ y( z+ o& B1 q m_nDeathLevel = nLevel;
0 w: p3 z. `9 U5 G: a* B#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& C4 _! a' A6 G* O' r
if(IsMaster())
9 n: j6 @# p6 T, Q {
1 L5 @) E1 C) U6 |7 ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: G% h. C& U9 Q( }
if( nLevel > 59 && nLevel < 72 )
) O8 |. K, }- W0 a5 g; d dwTmpSkLevel = 1;/ x. v, V1 }# J1 F6 E% d) ]
else if( nLevel > 71 && nLevel < 84 )
' m1 \0 z+ X$ | dwTmpSkLevel = 2;& W9 W! k a; g- g+ W
else if( nLevel > 83 && nLevel < 96 )+ s+ k0 J: x$ Y/ R8 f" W |. `
dwTmpSkLevel = 3;) w. B9 s" ^1 A2 v' Y
else if( nLevel > 95 && nLevel < 108 )8 M9 n: p; x# d3 a# k. b) v
dwTmpSkLevel = 4;$ } c/ E. K5 { ~$ L C4 H
else if( nLevel > 107 && nLevel < 120 )4 V4 z/ Z1 \- j/ W
dwTmpSkLevel = 5;
& v$ ~7 i1 ?: p for( int i = 0; i < MAX_SKILL_JOB; i++ ) , j, Y7 A) r9 U! Z
{
+ j1 l, g) N- Z9 L k LPSKILL lpSkill = &(m_aJobSkill);
. z* z5 D* w; n: P& h8 f& M if( lpSkill && lpSkill->dwSkill != NULL_ID )) G" @8 J# G+ M0 W3 G( _$ f
{
! G$ l6 t6 B0 N% |2 I$ b$ n! J2 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' |+ k6 Y% R* P+ D3 N' V% d" u8 q
if( pSkillProp == NULL )
" Y4 b4 P H9 T# E( g1 ]7 }& \' D continue;6 Z% c8 O" c1 B3 s# _+ e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 r# [. @* a& N2 A3 X continue;! F5 B F* l+ B; ?0 c
lpSkill->dwLevel = dwTmpSkLevel;! s. p* O0 G! V) y% c; U
}
0 G+ ~1 x* e L, l; l1 P" u }
( U: r3 @& q! P! w# n; \ }
% Z* Z9 C5 i: [1 E else if(IsHero())
# r+ d, X8 F8 b# W4 A1 \ {7 e0 X& s3 a- D0 m; N' W- H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! N6 V( F$ }9 u2 Q2 c { * J/ S# T' b1 M' f
LPSKILL lpSkill = &(m_aJobSkill);
4 ]- F- R a: L. b if( lpSkill && lpSkill->dwSkill != NULL_ID )
" m! u8 S$ ]) ^ {4 B9 q9 s7 Q6 I3 t8 d$ o9 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 H( r2 H( S" h1 [4 H( W
if( pSkillProp == NULL ) S ~% x2 m# @4 F5 L
continue;
7 g( B- I5 D4 u3 t, p7 _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# K% a2 n5 T' E( `7 D5 Q; \ continue;) `. O) H. r! C$ ]$ n# R
lpSkill->dwLevel = 5;
/ }$ b2 V3 e [ }9 P7 ^8 R8 r2 w- }5 c6 V. e
}
% `9 @8 i. h4 G" k }
0 F) k+ m' k+ A( U1 A# r; [ else if(IsLegendHero())0 ~% [$ \+ W- T
{
1 F( Y# H4 F' W' N4 s for( int i = 0; i < MAX_SKILL_JOB; i++ ) & y: B7 j* X. ` H
{ ! z; o- ?1 |% K3 h* X8 l, ]& r
LPSKILL lpSkill = &(m_aJobSkill);8 W' M0 I n9 R6 M6 R
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ V8 k* c% ]' c; @9 ~5 n" A3 @( n' ?
{+ s x8 i* K# e, O" _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + w# b: x9 d5 N3 e
if( pSkillProp == NULL )* b0 ?* Y. ^2 E4 {$ Q
continue;
" Z6 w2 y! ~- V# ^8 B( Q" ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) B# h8 Y! v+ {/ \$ G- z! s
continue;0 R. E' D) `6 T- l5 V* r
lpSkill->dwLevel = 5;
f# L) a3 u( }: b }9 G, @: V' f9 a1 ^* _1 X
}* n% K4 \. \3 p; d0 R: x
}; P' r! t* I2 G2 q2 Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( q$ f$ C/ d' _* w% B) u' t
if( bGamma )
& ^5 B: }( Q% A; O6 [ {2 \9 |9 B3 K- _6 ~6 C
m_nExp1 = 0;
, [9 h" Y( q- r. k$ `+ i }
7 h Y: B: L2 }! e3 W! R
5 E& c# j$ Z' ` ( (CUser*)this )->AddSetChangeJob( nJob );
! h0 l1 U9 o5 t7 `4 q+ c g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 l! `3 a$ w$ j$ F4 t/ D
6 Q; h' `4 `& w" C7 u4 t- z! b( C' S( G
#if __VER >= 11 // __SYS_PLAYER_DATA
8 J9 q' P4 ~* T$ |+ o g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; q) R! Z4 T- Y) f
#else // __SYS_PLAYER_DATA
+ A6 O3 o" v, E9 `0 n2 O g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 V8 ^5 d3 i4 m+ k g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 Y5 I& P, r1 ?6 ^3 u: ]$ |
if( m_idGuild != 0 )
4 G9 J8 l" g% z' H g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ [0 n+ H: Z# \# L. j#endif // __SYS_PLAYER_DATA' j! U2 d. |) k9 Q# F' K
SetHitPoint( GetMaxHitPoint() );
$ P8 O& y9 O8 A, H8 W5 U SetManaPoint( GetMaxManaPoint() );
5 ]& b) B% w0 Z% j" ?7 i SetFatiguePoint( GetMaxFatiguePoint() );
4 ]9 v3 O- ~2 b& O8 V5 y1 p/ _ if( nJob >= 1 && nJob <= 4 )# R, w& J p9 B/ k6 ~# p
{
5 Q3 x. m2 h/ y m_nStr = m_nSta = m_nDex = m_nInt = 15;, y* J7 ?8 R$ C6 i: @" d E- X
m_nRemainGP = 28;
; v o( j/ b/ _- Z5 `$ O. Y }
# u, i1 w" w0 G5 h$ h" y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, A* A% j x/ h8 e4 h! \& ?4 u* R {
: F2 L8 \% i' V8 }+ ^ m_nRemainGP = 118;
) G0 |7 P6 b1 l7 d! h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" E4 E% q/ w6 ^6 @3 m m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 G1 P, d4 P9 g7 V }
, q0 n$ J- F. N y# l% W0 H% D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 f- E9 x3 j" T1 z9 b { j! B Z- R; o& c
CItemElem itemelem;
3 H2 i: m) P3 t3 J- q& G# s itemelem.m_nItemNum = 1;- @5 @; p$ F5 t& v/ n$ ]
itemelem.m_bCharged = TRUE;; n. _/ q, l. Q' J
BYTE nID;) c" v7 O$ G! m# J
& D: e2 G5 W7 c+ }. |4 N if( nJob == JOB_MENTALIST_HERO )
3 Y+ L0 T, s# \! `" M itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# i2 X9 x6 n" A, S if( nJob == JOB_FORCEMASTER_HERO )# Z3 H3 R X$ X$ f3 N0 e+ M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ F- `: {* O! \
, [. G9 k' {# p3 R ( ( CUser*)this)->CreateItem( &itemelem, &nID );; H6 B2 G. e2 n5 i, e
}; K$ |0 h. S2 ]! [* Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 Q: J1 p, w9 P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 O% h' X* S2 U) V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 _7 `: r R" U8 A' u! i
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! f9 X6 k% f/ S
( (CUser*)this )->AddTaskBar();*/ r% u1 g2 _) D; ]# q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- k) b) F/ E+ f5 z0 L#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ }1 P" C! {) \2 l- T8 G" ~8 j ((CUser*)this)->CheckHonorStat();
$ l4 j( g; w+ k4 ?" W ((CUser*)this)->AddHonorListAck();1 w# e. U# s7 f/ x
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ X+ U% ~4 f! K0 I- a! e( g0 X ~#endif // __HONORABLE_TITLE // ′Tà?; U: @4 g* m# b* v6 V6 X% C
}% M" z0 c* D( }; }
#endif // __WORLDSERVER( b2 A' i% T. z3 j1 \
} + o: v+ D# m! W- r) Z
7 S; U9 I& v# _% K
然后你进入functextcmd.cpp并添加以下5 m% d7 P) _' E) Y1 A" K
" I, D$ e8 m' w代码:
! Y# E" Z( w, N$ S/ ^! Q- hON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; p9 j8 K+ g* ]1 |下面插入
! M$ P3 T, |, `ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 C' V0 s5 R( A9 M0 F, A( N
( o0 Y- y0 b2 h
然后你去
+ {( {+ H ?, P) w' M
" A9 }& o" _" r% U2 h代码: |% P! d4 `2 z4 q- a0 ~, |; W
代码
- s! v' z; ]/ ^# K( c% }; SBOOL TextCmd_ClearPropose( CScanner & s )% K( M/ Q5 |# z! }" y2 t4 p3 ]
{; R9 ^9 `! t B+ H$ S
#ifdef __WORLDSERVER- ]9 q' F( { [1 d! W$ r
CUser* pUser = (CUser*)s.dwValue;
! S3 v, Z v Z3 n g_dpDBClient.SendClearPropose();) j7 q. ^& p3 y% N3 p
#endif // __WORLDSERVER9 j- J7 B: L8 i' z/ L6 `2 T$ W
return TRUE;5 Y0 P, }" L8 _7 f
}
. f" x5 G" N: N' m. F$ r# T下面插入
6 F! w) g0 j D$ HBOOL TextCmd_rebirth( CScanner& scanner )
, v5 s# n# @ z{
" j9 @4 O* ]$ l- y# u/ |7 u/ ]+ c#ifdef __WORLDSERVER
7 Y g7 s8 {; h$ D' kCUser *pUser;
- X# ^! |6 |: R& T$ B% HpUser = (CUser*)scanner.dwValue;
% G3 p* Q$ \$ M0 f4 bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) I+ y" [1 \& _4 D% R1 {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);5 T2 ]1 t4 K4 }
else
1 X- N j' s/ N, v8 m" u) [9 ~pUser->AddText("你还未达到重生条件!");% P3 G% w, b! w
#endif+ r4 H5 f4 N! [% w$ ~3 o# z+ c+ f! Z
return TRUE;) k% o6 K) h; f, ^
} ( P3 a. X& x8 l9 [- @
4 p ^* J# D/ G: F7 d' t8 k+ E# U9 d+ O- |/ v5 o
9 Y. } Y3 b _9 f6 Z/ s) o" [
0 ?# B4 Y5 n7 c/ ^, {1 N5 h
|
|