|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 |/ g/ C5 R0 I4 J, v! D
# P$ w+ B4 Q5 Q8 z
Mover.h t8 N3 @' K6 K# _' C9 S' N+ @- e
代码:
1 n& _" ?! P+ W H: G找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 h7 g5 @- H: c4 P. B
^( m2 I" u$ I: a G7 B下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) x: D1 G% ~3 h8 e' D2 ]! Y- w3 B( Y* W
然后你去mover.cpp添加
7 Y: x2 t5 A6 j) z
( y9 `* ~6 E8 O& L& R w0 \. R$ t) |代码:, r3 w# V' ]2 m& Q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# w+ f1 {+ [8 W/ q, ~$ W
{
$ u6 |8 A, e$ Q; j; W#ifdef __WORLDSERVER
( S1 |8 v, @2 C( ~% y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& \6 y$ c1 P) h" | MoverProp* pProp = GetProp();
2 {" B$ u9 Y7 l9 a- N$ h if( pProp )
/ Q4 x+ j7 `1 S4 R4 ] {5 t4 o/ S" J* E" l
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% Z( T5 C" T1 y9 D. h: h: m {
6 g6 n( i7 k5 U! J+ \0 P5 A AddChangeJob( nJob );
7 U: j- p( m- F2 L }else{8 A. W* g7 g; x7 R/ h
return;
) Q+ _0 e# V( B }
. D7 O" Z! t0 o$ Y! \2 n* K int nPoint = 0;/ e# W! P" Q2 J! f. q
if( m_nJob == JOB_MERCENARY )8 ?7 j! y0 F/ o# W
nPoint += 40;8 u7 u; h1 x/ w9 b7 |8 V# I1 j
else if( m_nJob == JOB_ACROBAT )
0 @( z' O" \: H0 T' P% D s+ H nPoint += 50;
" P: L' k+ y1 a7 e# } else if( m_nJob == JOB_ASSIST )% d/ m' q2 @. ]1 ^# o* Q0 q
nPoint += 60;
9 i4 }5 @. Y' s% |0 x0 f else if( m_nJob == JOB_MAGICIAN )# `# }8 D: k* t: ?$ D. z
nPoint += 90;. B w+ v3 ~2 K) L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. B: _1 T& k1 e nPoint += 120;2 C' O2 d+ N2 @" b+ y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 U) Q# y P. P: J9 L' N1 l7 z9 D nPoint += 150;
- N3 f" R, c4 T4 \ else if( m_nJob == JOB_RINGMASTER )
8 c* ?- _& r' `3 P9 y5 | nPoint += 160;
& F' M; W2 q& U' V* B9 X else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) s8 @" D, y; u3 @6 {5 @# W0 y
nPoint += 180;" a- X: J* M$ [5 K4 W8 M: q, i" c+ ~
else if( m_nJob == JOB_ELEMENTOR )
8 R+ q, K7 c) q6 e nPoint += 390;
; l! L% M) C2 @3 j2 b( l else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% k0 Y, S6 R. N nPoint += 120;
6 L% M" W A) H* O3 _ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 B' k& ?/ |" N/ }' [
nPoint += 150;& J' i& v1 H8 P. Z7 D, G
else if( nJob == JOB_FLORIST_HERO )& y# u; ]* R% u5 g4 }0 c% ^
nPoint += 160;! v/ l/ b5 c2 j# o9 G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 t7 a. L% A% o) A5 q nPoint += 180;& _4 u p% _8 c( `- E3 U6 s. J$ F+ p
else if( nJob == JOB_ELEMENTORLORD_HERO )
% M! [9 T* l4 a nPoint += 390;
3 |- W o; W/ w: I9 _% i( `: y. F5 J: s# ^) a
AddSkillPoint( nPoint );
" m1 z5 Z3 p, V0 @1 J m_nLevel = nLevel;
! G# u1 U; F! l# g; z6 d) Z, E- n
SetJobLevel( nLevel, nJob );: K4 P+ \; ^5 Q9 y H
m_nDeathLevel = nLevel;
1 _' K. @6 ^4 l: l" }7 R8 I- l#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( Q! A! S& f6 t0 M" ?# @ if(IsMaster())2 C* H0 `% ?) R8 ^3 M" m& h
{- ~- V/ W3 u8 z' k0 b4 _
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, N9 n) D$ j- F
if( nLevel > 59 && nLevel < 72 )
) i+ _: g0 P+ U: ~% U dwTmpSkLevel = 1;
- n/ n' E0 k& w5 h( s else if( nLevel > 71 && nLevel < 84 )+ W* _& T. d D
dwTmpSkLevel = 2;/ v2 l; K# q3 s1 w
else if( nLevel > 83 && nLevel < 96 )8 B" j u2 o* `4 |. @ t; _
dwTmpSkLevel = 3;
/ G: L' s9 P; R, a% o W) G7 m else if( nLevel > 95 && nLevel < 108 )5 n& o2 T2 v, F! j, R0 P
dwTmpSkLevel = 4;
4 ~. ]8 Y4 ^5 J) [ else if( nLevel > 107 && nLevel < 120 )
" \: r2 x/ K. V" h: X dwTmpSkLevel = 5;- |- l/ j' V3 G7 V2 N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( Y) e: W; z, C* ~
{
5 |% ^/ _5 k/ Q) h. Q0 S' ^ LPSKILL lpSkill = &(m_aJobSkill);
+ L8 m4 s+ q6 |- R1 Y if( lpSkill && lpSkill->dwSkill != NULL_ID )2 O4 _. e4 g$ D
{5 j' I. `. n6 p3 ?4 ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 j1 M% Q, m) D# f2 w$ a4 F
if( pSkillProp == NULL )0 X& A1 ?& R- v( B) ?( B7 P
continue;
+ Q- T* p, l( p' F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. v$ h6 s9 B+ I' x continue;
+ H# O7 h4 ~4 j: d+ y# r% s lpSkill->dwLevel = dwTmpSkLevel;
/ e( Y( T; f; j }
' d) z" U8 K( ^0 } }
, h7 _- `. ]: o" V4 }5 r" h8 Q }8 o8 k; u4 F1 y
else if(IsHero())6 _% S* V# I- f( n" N
{
1 ^% k7 W" L( A2 ]6 N- z for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ V7 @9 g) F9 y2 Y7 h6 E% w {
0 d3 Z7 r/ w0 \8 Y' W) O" e& U LPSKILL lpSkill = &(m_aJobSkill);
7 O* r7 @ q4 O" [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ g6 k( L m7 j0 q8 O {
/ N: V0 |$ b. A5 \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- W: W _/ J# C7 _7 q9 k9 D% z0 a if( pSkillProp == NULL )
5 U& v) D2 L/ b1 e/ s continue;% {* b) T8 {6 [2 y( _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" |/ O9 }6 d! B$ T& I continue;
/ [& O1 v* M- ?3 S lpSkill->dwLevel = 5;$ u0 f9 @: z- s; H' ~8 e- F
}
/ X8 C+ r4 r/ [" Q0 c }( g% l, r* O! s; A6 R
}3 }, i3 k+ r( H9 P' r
else if(IsLegendHero())' s" i( F3 g7 t$ _' U# J- Q/ R
{# K2 a3 M' u. y' ~; B2 n( f R
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( H! J8 t' P: L6 ~+ s j
{
$ g3 |+ j+ U/ c3 H: e( t2 D: g LPSKILL lpSkill = &(m_aJobSkill);, p8 F A) ?5 c* s: |% E4 K- [$ d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% B; O! ~) e6 ?' s# G" J {
) s, U1 t6 f/ b2 M/ b) w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: [8 q- {( |5 n$ F3 } if( pSkillProp == NULL )0 l0 Y0 D3 ~# ^; `+ ~% s1 R
continue; o9 r( f! [ v" z6 i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! v4 X2 ~: \' H) |, u' n* J0 d continue;
8 W* o& n3 U$ Z; g9 K5 I* U/ x lpSkill->dwLevel = 5;
1 z% B5 {1 M: ^$ c4 ^+ v7 J }$ z+ V8 N" H9 U6 H' `5 z
}# Q" U. f/ E" O0 O3 `& T" g T$ k
}
: y! L8 A- Q/ y9 D" i#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( J3 q% m" N, q* {: p3 @
if( bGamma )
, \3 @3 N6 U. l! N( H4 ? {
' e: B8 V. n; Z- j& k m_nExp1 = 0;0 e9 Q3 s: q6 w, I: P
}
; a0 g7 u' |4 B0 K9 Q2 ^; c: I! k9 J8 C9 w( L
( (CUser*)this )->AddSetChangeJob( nJob );0 _! U( E O9 R3 y% P7 |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 X0 l, u7 w( S' Z+ Z# ^7 n1 \
- @* o9 ~ {1 F& N' |$ `0 k) O! ?6 K4 `8 f' i, p( W
#if __VER >= 11 // __SYS_PLAYER_DATA
: }1 r* _/ P' u4 ^ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- A8 p" k+ ~/ D+ r8 X, V- N, N
#else // __SYS_PLAYER_DATA9 e4 \+ m2 T5 A# z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# }, C z6 Z& T* A: N/ X7 [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, ]; D: r0 J/ K, X0 L; M if( m_idGuild != 0 )8 c( d: b+ E G2 n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 h5 ~: {1 T7 q' s
#endif // __SYS_PLAYER_DATA$ O2 \- W: h8 t9 ~
SetHitPoint( GetMaxHitPoint() );
/ h. i( N# g) e& ~5 J( ^ SetManaPoint( GetMaxManaPoint() );1 F9 e9 L5 ~3 f
SetFatiguePoint( GetMaxFatiguePoint() );6 s1 l- {; D$ W( ~
if( nJob >= 1 && nJob <= 4 )
1 i+ k! W2 X Z6 e' u' B { I6 ~8 C6 W: @ ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;" E. x0 Z% b5 G5 B3 Q0 h
m_nRemainGP = 28;
; r# `/ |$ b" O# {; h }& t& b1 S+ {0 U& }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% V9 R7 c5 v8 O& `8 ]" y' v {7 \* E# b4 d; m+ e
m_nRemainGP = 118;
! `$ ^9 V( h- v/ @/ x1 u. O //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 g0 ?9 [. C# d% m# y* d8 b) G m_nStr = m_nSta = m_nDex = m_nInt = 15;4 R: {! u7 p% f; z, P
}
R7 ~% @1 B' Q$ K% J" c/ m$ V: q8 a6 v& h if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 A& M- n" Z+ }3 J {# E4 l7 i8 y# P+ {8 c1 j. Y6 ~
CItemElem itemelem;; V0 L# H: n8 D2 Y
itemelem.m_nItemNum = 1;
# W' {6 I! s! d2 y C( d itemelem.m_bCharged = TRUE;" ~. o/ ^6 i! E# G S% B
BYTE nID;% [; o1 x7 H0 h6 i- @+ @/ }1 r
, l: ~" J9 S0 c7 a7 }
if( nJob == JOB_MENTALIST_HERO )# h4 s" n; ~7 [, \
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 B* j7 m2 j* W6 N' p" o
if( nJob == JOB_FORCEMASTER_HERO )
( {" w$ W+ b W6 \' W Z0 I itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ W$ z8 D$ Z% O. q
; D1 F9 Z# L8 l ( ( CUser*)this)->CreateItem( &itemelem, &nID );! M5 C2 c# H3 K
}
0 F* m+ y- c! x/ t& f/ V3 T& j g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 W) J9 p% Y$ W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% P9 y/ V2 I% B3 R/ p9 T ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 K( D" f. d4 p2 R$ H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 U F2 X$ L: r) [9 ? ( (CUser*)this )->AddTaskBar();*/
' X* f+ G5 e; T3 z& X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* E" q' _; P9 _0 N+ N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' G; v$ C0 H3 A) i h# a
((CUser*)this)->CheckHonorStat();
: X, l1 V' }1 X' [$ `8 X3 u; l3 f ((CUser*)this)->AddHonorListAck();
$ b$ _ `; b! O( F g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 e- q. d7 |; b#endif // __HONORABLE_TITLE // ′Tà?
1 ]! X- d& o: m }
. c8 w. b x S* |! ]#endif // __WORLDSERVER
1 P4 }& ]5 U& V/ y4 R8 f/ h% _}
7 K& t# f: T% p" H! r
$ M8 U, h) z2 w8 _: V7 @" t+ `然后你进入functextcmd.cpp并添加以下
7 B' H: m$ w6 @: z
* ?2 e9 I) z B b0 v" W5 h代码:
4 s2 J" A3 g& {$ c. r4 L1 i: gON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( A7 ?1 Y. L: f- x2 O! P下面插入
9 g" m4 ?: b. G, \! xON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 F" f! i4 Q7 t- g0 h
, F! p* J0 o+ L+ m' U& w! Y6 H然后你去 S( d2 z( m. [5 r! b
. E6 u3 t: C( f1 w+ e
代码: M, ^" l6 c5 I1 `8 |
代码6 f1 b f( E1 C0 T' `
BOOL TextCmd_ClearPropose( CScanner & s ), }& R8 Z: [2 H; g9 k
{
& N2 T6 ^0 E* v! i; a* W( n#ifdef __WORLDSERVER
8 m+ @% T4 G2 y' Y9 P3 o8 u' l CUser* pUser = (CUser*)s.dwValue;
" f% f1 |/ [# V g_dpDBClient.SendClearPropose();
, `0 f2 T4 @' `6 `0 Y, z5 @6 Y#endif // __WORLDSERVER
7 y4 c7 Y! y( E- C! H3 x return TRUE;! j- O3 k% L ^* B
}
# a8 \; b/ {2 v% G( |7 x, u下面插入
* x, u k' V: V* pBOOL TextCmd_rebirth( CScanner& scanner )
. \9 P% T3 e0 B7 z* O4 {{
$ Q/ Y" t! E) ~#ifdef __WORLDSERVER
) D% y3 V& F8 t+ ~; l: G' y. yCUser *pUser;
, p- q0 v/ c2 J% n3 r; cpUser = (CUser*)scanner.dwValue;
1 Q: L/ l+ z. @+ Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 a. C6 h v; `, f! p5 ]9 T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" Y8 H" U" p5 |; I2 s
else3 E2 k. L$ [4 o/ d. N; I: N
pUser->AddText("你还未达到重生条件!");+ P; C( ?' r' h
#endif, K: ^7 M/ \6 g3 G, T- `( U; B
return TRUE;: f9 B! h: _. \: {
}
( @6 p$ Q3 |9 T7 a# Y7 g3 O; ~7 k( b: w
* n3 ^0 v1 j5 x) z
9 O, J5 ^3 ~ F: P. {4 Q3 O, i/ f) J# g2 t; P+ }/ @3 J
|
|