|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 q# [5 r: m. s7 k8 A) Z
- ?9 w; F. A( h7 `, U
Mover.h
% J3 R8 d5 Z: f$ Q2 k& I7 u+ m代码:4 ~% P8 F' j. K W, Z5 M3 _
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: o, Y8 a0 w5 v; i F8 r. A5 F
7 j! M. \" s4 B ?3 _" S$ K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
_/ U4 K: w5 ^. k# t! w0 k5 |6 Y6 n8 P( z; X6 L) m2 f
然后你去mover.cpp添加
0 f. h$ V# X% a$ f9 d8 x, E0 z8 G; e5 T [- J- n
代码:
- ]8 ~# j. Y" x# L9 ?5 ]- x |* Z) Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 F9 m4 R% |( e. i8 Z{4 X5 S0 `/ E) t7 I, J8 n3 \5 g
#ifdef __WORLDSERVER, W6 b7 X# P( F
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% b% k5 d' L+ X+ h/ e MoverProp* pProp = GetProp();7 a* O; G% t( f/ P- _; [* u
if( pProp )+ b" n w1 ~6 b5 J
{9 I5 B/ {5 i! A- S X
if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 i9 s2 [" W" P' K( Q
{* S; c6 \8 U( ?" f# H5 d+ w
AddChangeJob( nJob );
2 T0 q( H5 t0 f% \9 k }else{
* f% g) h" ^# S4 p' w! b- R return;4 O1 |3 S/ ?6 n) h0 ?8 p
}
9 O& d5 ?1 [, q& x/ R ? int nPoint = 0;
' d7 u" U$ W: e( I1 m) ? z if( m_nJob == JOB_MERCENARY )
( F6 y/ }) B( l nPoint += 40;) S- C" t$ x# h) E6 c) `6 Y6 u
else if( m_nJob == JOB_ACROBAT )
* b' O5 O+ ]" ]) G/ O( F nPoint += 50;7 K1 q% V# l4 I: V+ p
else if( m_nJob == JOB_ASSIST )3 y0 k4 M3 k7 Y2 V; v: a5 c+ c
nPoint += 60;
8 ^ g# b5 M5 w1 Y$ ~ else if( m_nJob == JOB_MAGICIAN )
) ~+ g& {# i: B: N nPoint += 90;
& }! f4 z) m& g9 L- V4 a% n; r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ ?: @5 |2 |6 g) T
nPoint += 120;7 c- x1 Y7 f! T$ S
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). Q# |3 b L9 [" ~: Q" Q9 s
nPoint += 150;
, r1 _% |' w# t4 } else if( m_nJob == JOB_RINGMASTER )5 I) f* w7 ?% J7 Y- }$ d
nPoint += 160;
/ N$ l, v* |! P; D P else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 U8 q- U5 P/ q0 W nPoint += 180;
h( O+ c! o# s I# N2 N9 ~ else if( m_nJob == JOB_ELEMENTOR )3 J0 v8 g! J# y( |5 G2 l2 j8 j
nPoint += 390;
2 |: n- l$ S* D7 M. G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# ?0 G) C% {) U( C" l9 N$ E
nPoint += 120;
% m1 L' Y3 L* R* h! ^6 S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
e" x0 G! K2 K: H- g nPoint += 150;
& a9 {7 b2 m2 @' D8 d else if( nJob == JOB_FLORIST_HERO )
! x7 L) ?" c# J ?$ {. J nPoint += 160;
& k/ P9 s8 }+ h' } else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& `( W8 W6 d2 T+ y% h nPoint += 180;
) o( }# l8 j* o* x3 ^& g else if( nJob == JOB_ELEMENTORLORD_HERO )) F% Q9 f8 b( K. o/ U
nPoint += 390;
2 S5 |$ l2 {; N/ F5 @* @7 g2 b; F7 h7 z& L2 d
AddSkillPoint( nPoint );5 J( B- I, q+ z: E
m_nLevel = nLevel;
; ~! q! ]/ d7 I0 A* L5 n: l C) M/ _# K) L1 n3 _6 I
SetJobLevel( nLevel, nJob );
5 L9 f" k( ]' S; w m_nDeathLevel = nLevel;
8 B$ H9 n- J2 Z#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 W. J p2 U7 b7 m
if(IsMaster())2 E0 R4 L% O3 ~! }
{ ?9 Z6 ? J) `6 m) i# u$ v. ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 O# d$ n: D1 [5 j if( nLevel > 59 && nLevel < 72 )0 f2 {7 M9 V5 f& }% P) B2 R
dwTmpSkLevel = 1;7 ?9 \( v, [& }$ K
else if( nLevel > 71 && nLevel < 84 )- U' t& x4 ?& u$ _' M
dwTmpSkLevel = 2;
+ |# P+ J- p) ` else if( nLevel > 83 && nLevel < 96 )
- T! ^/ V7 B$ a( c dwTmpSkLevel = 3;
4 K% D& u: b7 G3 P/ V% e else if( nLevel > 95 && nLevel < 108 )
7 y' U2 U5 r" p3 R' c8 a1 v# S dwTmpSkLevel = 4;0 e6 h6 [& c. C5 w
else if( nLevel > 107 && nLevel < 120 )+ }0 c+ E$ U1 }
dwTmpSkLevel = 5;
2 h8 L/ f$ E1 u6 G% v9 r- u" o5 F! D7 ]4 g for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 l) V" f7 g" `4 k: m
{ 1 P3 a6 `/ L- m5 S
LPSKILL lpSkill = &(m_aJobSkill);: L D: @% ]- M8 G# _0 [2 U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 h3 E& i! u% }( { {
' K3 {: e p/ B5 j" l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. b; S0 {" A( P, N' ` if( pSkillProp == NULL )
1 y% l6 _8 B0 K4 L( } continue;
! y/ T# H B3 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 i8 O* o* d, s4 }) L continue;. _) G+ l5 ~+ [4 h
lpSkill->dwLevel = dwTmpSkLevel;
9 p: a: _5 T7 n: i9 A }6 w! h9 R. ]/ b6 {( n# Y F1 D( u& A
}
6 j0 ~( k' s% X8 k5 I1 [ }; N3 J9 N) I/ `. O, [# Z; U
else if(IsHero())' }$ y: E% \3 C' G( g
{
3 @+ M5 V7 G; L6 L9 K for( int i = 0; i < MAX_SKILL_JOB; i++ )
. ?- w6 o6 K# e {
y+ | \2 N3 ~. E LPSKILL lpSkill = &(m_aJobSkill);6 m! N$ N6 z. j% E8 d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* g P1 R: J# N1 F' F {$ w# B- n9 I$ \' m$ `7 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # T' S# A1 S1 i& v' \% J- [; h
if( pSkillProp == NULL )" ?/ q/ U5 e& v* B
continue;% s$ f" R, v/ t7 G; t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! T. E. @# ~8 v* o: S, C$ u5 P continue;
# X" ~# x1 p. n, u( P! W' c, l# v lpSkill->dwLevel = 5;
$ G5 f' m K) C+ J# H2 X( C9 N }8 v# K; M5 I% o
}$ F: B* R! a9 A5 I
}
1 l0 a1 p' _, l else if(IsLegendHero())
% ?3 `7 Q' a% z0 a {0 L( x. T s8 Y( k7 O* M% J0 ]$ p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : u0 C# e5 R+ {5 p( J) K
{
* C. `5 G/ S) ^5 _) u* o LPSKILL lpSkill = &(m_aJobSkill);
3 a) q# A( r. E! Q& Q if( lpSkill && lpSkill->dwSkill != NULL_ID )6 R- f* B2 I- C
{
" Y/ O: j7 s( i M+ B" W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # d6 [* M# B6 ]# m C
if( pSkillProp == NULL ): b e2 U5 F. w6 ^+ P
continue;$ K$ J1 T, E' O& ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; u' R' T1 T" f3 W/ ?3 `7 U continue;
" K, K H/ N5 }$ E: e, {: ? lpSkill->dwLevel = 5;& T2 b. g+ f8 T% X# E. }
}- X5 f" {" ^" }
}2 b5 f1 b- i6 x0 t
}
X5 N* ^4 p7 I* l% p0 W1 f4 b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 B: E/ ~5 U/ x; x& a; E$ l' {4 Q+ b
if( bGamma )% n0 @6 D5 D2 ]
{$ X" L% X% C; q9 t
m_nExp1 = 0;
" i6 z" o `6 N. n8 k# | }! W6 k. ?" b+ j- [5 a" i; g% V H
' S/ y9 W6 q4 C: w- Z( h" L4 C. b% @
( (CUser*)this )->AddSetChangeJob( nJob );
7 Y/ K+ E0 ]2 }3 z9 T# j/ X4 @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 k, n. D; \" B0 E# @ ~
; Y! v8 K$ a( n$ g) ^/ G
0 ^$ @8 L' b, t6 z6 a' D#if __VER >= 11 // __SYS_PLAYER_DATA
- b/ } Q7 A5 N3 E g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& e' q( E. G# b$ R1 y) n" h. Z
#else // __SYS_PLAYER_DATA
9 D. z+ F+ U2 u$ q6 J5 V1 Q. w g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 k6 |$ X% h F8 t g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& Q* z, I& n5 j- N) x9 w; @4 ? if( m_idGuild != 0 )
- k: l) D9 ^5 _$ l1 ]; l0 w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' p( K7 W. }' l" {3 {
#endif // __SYS_PLAYER_DATA
5 U' k% s) V# Y$ b' r& d SetHitPoint( GetMaxHitPoint() ); d2 [, P4 r6 w% c
SetManaPoint( GetMaxManaPoint() );1 A( T3 L/ E$ X1 F3 {
SetFatiguePoint( GetMaxFatiguePoint() );6 I) R6 C& Z9 w
if( nJob >= 1 && nJob <= 4 )
# ]5 z8 N& _( _" m6 p" C {
7 N/ o3 ^; @2 _3 n2 | m_nStr = m_nSta = m_nDex = m_nInt = 15;* f5 D7 W5 H: t+ Z
m_nRemainGP = 28;5 P# X* |; I* V( K n4 K3 m
}
) C4 A. x' u7 @) K% K1 x if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). k) O9 ~2 }: n2 Z( @- w
{$ c0 a o# B) h
m_nRemainGP = 118;
K" x/ [' l: ^5 u3 L$ X0 b5 Z' \ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 ^! Y! a7 X4 s" }) l) r/ f3 S m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 S/ p* ]# E( s2 c6 s- U6 Z3 t2 T }
, U0 x" K8 d1 h. G: a if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 f" g: C g1 N: T" c {; a( A3 k: X7 i. q0 Y
CItemElem itemelem;
# s7 A) u7 b% h9 C: F itemelem.m_nItemNum = 1;, f( [. D1 _8 H! X5 W
itemelem.m_bCharged = TRUE;
0 T% n$ O9 s8 q1 U' C; \+ l BYTE nID;2 @6 N& i% S7 o! P) H' Q) Z
* W3 D' i5 J& V" w# I5 m if( nJob == JOB_MENTALIST_HERO )
8 G& T0 T7 ?* u. ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* Y) j. n4 s- Y: z& Q if( nJob == JOB_FORCEMASTER_HERO )
9 a. {) J: c. {1 \: g$ F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( b* [6 w* N& ] O1 V% E# j5 z
: [6 W- N5 z6 w' L: D2 x ( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ v- D3 x+ a3 F }
0 i4 }5 y4 p- K9 v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ `( \# z8 a3 x4 z; w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! A2 ~2 c! o! c! `
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# j: \3 ~9 }$ g9 R /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 k/ Z% n) U k& }/ X5 A- i ( (CUser*)this )->AddTaskBar();*/' l( D9 i( Y$ v
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 t/ @- ?5 U! `8 K9 Q7 \( g1 N; ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? W! A3 ]1 U1 X+ X- i- E3 Y
((CUser*)this)->CheckHonorStat();5 _" w- V% h" T; q
((CUser*)this)->AddHonorListAck();
, U# m8 L2 N. {3 @ g_UserMng.AddHonorTitleChange( this, m_nHonor);3 _' s4 J1 {6 K# Q' n
#endif // __HONORABLE_TITLE // ′Tà?
! c' N! X9 a$ ]$ Y3 _ }) w: b& M7 h, V
#endif // __WORLDSERVER2 Z9 O! M3 j+ V0 V
}
; V- k# B: \, @+ e8 n
' U- r' I% Q, ^/ A I% [: ]然后你进入functextcmd.cpp并添加以下7 n8 R6 U) U2 i3 W' d8 q: W
/ d m# I' z/ d8 n: C! r" x代码:( o- l- f: o+ z( `$ d
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, H6 Z4 p4 T8 ~* F# G下面插入9 U+ s1 [1 f4 t. }: {& n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / S, x* H( Y+ N8 `/ ?
! H* k& }3 [+ \ }
然后你去
! o! ]: x" `0 `7 O+ t. M T/ A
2 Q5 w4 J1 D3 h5 c; L' K代码:1 r* o9 C- s7 t2 x6 S0 l2 c
代码
) Q- Q3 V* s6 ~BOOL TextCmd_ClearPropose( CScanner & s ) e0 c$ q+ B, L, R% N+ P
{
% Q7 R) H& E! D# h, d. M$ U- X#ifdef __WORLDSERVER( A. ~- d: j5 A* ` F% L4 w5 S- z
CUser* pUser = (CUser*)s.dwValue;' o& c8 P5 ?7 ], j/ ]8 ~, S9 p2 z
g_dpDBClient.SendClearPropose();4 F% h) J% z2 E- T# r+ p
#endif // __WORLDSERVER
6 c( m# a8 {. U return TRUE;
% S) e5 M& G9 n: h- W% b! Q A}
& g- `% @# L$ J1 o9 h9 H下面插入
- _) Q# h* m- k9 _BOOL TextCmd_rebirth( CScanner& scanner )5 G$ r$ w ?7 c1 ?0 B. f/ \
{
; |7 l h. V+ q8 l9 O#ifdef __WORLDSERVER
, \" w# q5 Z/ }$ G6 v0 j, aCUser *pUser;
/ A- p8 |# [6 ]) gpUser = (CUser*)scanner.dwValue;3 O4 |( j! O: G
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 a7 P1 R/ O" l7 o0 s3 c, spUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 O, J2 P* N/ U+ Y2 b# r6 k' Lelse7 w% `/ m: i6 W+ b
pUser->AddText("你还未达到重生条件!");
8 ]$ S2 Y7 v B4 p" [1 O#endif; `, d' n5 _) ~# @: H& O, w0 F2 X
return TRUE;0 W9 N9 ?, x2 @$ P
} ) F# ~4 P. w& J2 n0 f/ e" K
7 a4 m8 [. o9 d; X& M) S
4 K3 S. M7 m& p/ A; M' B; p& h- }% c V) G' a j3 |$ d: d9 ]
7 O9 S! N3 I: @) t$ j o |
|