|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& j; O8 Z- r! o* F0 r
6 t7 W6 }* M- ?4 P* O$ R( sMover.h* D9 }- j) k( E9 z7 o5 s# v, |
代码:+ p. V/ j1 o) ~" Q7 l! k
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, H4 A# q, O. i
2 j" g) `& q$ v/ G5 k A下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 d, J* Q1 Q8 D9 |/ i: X2 A1 S$ m
1 S! v2 n; i* v& Z然后你去mover.cpp添加$ q6 k8 r) u' b5 l' R
; v" z1 D+ R: E3 J y, A: _& x T, }
代码:4 t; p8 b/ ]6 l- a7 X( J
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" F: X. @" [4 q0 S% f- j9 |7 ~{0 g) W z3 m J% ^# ?
#ifdef __WORLDSERVER
1 `: D6 P9 U+ Y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& ` O# n+ c- o3 ` MoverProp* pProp = GetProp();9 A# J3 p0 r9 i$ \- I' e. k6 ^
if( pProp )& }) N6 q# T) y4 v
{
1 a/ F* ?$ Q5 g' Q) D if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 k& h4 v. b! y" h+ p
{; \0 W. I. Z; G) V
AddChangeJob( nJob );
6 H2 s: c- V2 F, ?3 C" D }else{
6 k ^; X" V$ P$ l9 l0 [1 D return;
, K# `4 G, ~2 V6 r+ Q9 h. D }
7 K5 y5 U4 C' S3 u3 ?, ] int nPoint = 0;
$ D" ^* a" _% o if( m_nJob == JOB_MERCENARY )2 n) V9 x9 o) u
nPoint += 40;
. m d& B8 ^$ `& ]0 p else if( m_nJob == JOB_ACROBAT )( q3 K- [* ~% B ?6 T
nPoint += 50;
. a0 O: X; N! Y: F7 D else if( m_nJob == JOB_ASSIST )
& r! W, s: ?% o* @8 D* a* O- \0 r nPoint += 60;
, c8 x. o$ U+ q/ ^/ ?8 @$ g" S. Q else if( m_nJob == JOB_MAGICIAN )0 M+ H6 F( B# @4 B' D4 A
nPoint += 90;; y5 I/ \1 S6 X% t+ _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) P- K2 P* ?+ e( A
nPoint += 120;/ @# ?! K* m8 o* H! q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 E, q1 y/ c* J8 P, v. I
nPoint += 150;$ h6 W- O" H, ~0 d- o
else if( m_nJob == JOB_RINGMASTER )$ |1 n: [! m; D: ^, x* G$ v
nPoint += 160;
+ H* Y& ~) _ z M" @" I1 H else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 D, v2 r! B; T+ w7 ~+ z. O4 F nPoint += 180;
' H4 T3 a6 i. L: m& v else if( m_nJob == JOB_ELEMENTOR )
5 b- v8 ^2 j6 X! D& _ nPoint += 390;
; f) q1 w$ e2 d% i else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* s" C) Z9 Z& g7 Y
nPoint += 120;7 l) I4 T& c$ w# W0 b$ h" Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) _. ?: m7 C( Q d7 F nPoint += 150;" M' x% ]5 ~( D. p
else if( nJob == JOB_FLORIST_HERO )
( p! Y1 G4 P3 X, q5 ?. j/ h nPoint += 160;
6 b& p* W* `5 s# R" [5 t( W+ C7 u0 D else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 K6 K+ i# }, b D, C3 |( K nPoint += 180;
: |$ [: X( h/ t$ X: N+ g* r5 f else if( nJob == JOB_ELEMENTORLORD_HERO )7 Y& ?# y l2 d2 A7 T. I
nPoint += 390;
/ U; B- d' B5 x( `' l/ L4 w5 H% E" s4 i
AddSkillPoint( nPoint );
, \2 v3 E8 T1 f" U m_nLevel = nLevel;
4 h" k+ w) d$ k h
0 k' Y) }$ A5 z- V6 {3 ^ SetJobLevel( nLevel, nJob );# K3 {, E. `. ]2 h6 w/ c% Y. M/ T
m_nDeathLevel = nLevel;
/ [5 c! t4 D& j" L- `#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ n* a/ c" S. U3 F" ]
if(IsMaster())% J& ?& @8 Z) P1 F% S
{
0 S/ a; I2 T% Q) n; l( X int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) s# m" r1 K" e' m& R if( nLevel > 59 && nLevel < 72 )
T( W1 ^& @1 M% `- T" G/ J dwTmpSkLevel = 1;
) g$ r e1 Z( G, E else if( nLevel > 71 && nLevel < 84 )
2 w3 I( m( C7 a* O dwTmpSkLevel = 2;
2 B d. E1 v" H2 U0 e* L else if( nLevel > 83 && nLevel < 96 )) D6 i* { ]2 l9 N% l! Z2 Y
dwTmpSkLevel = 3;' ?# G/ E" B& w0 g3 X; w
else if( nLevel > 95 && nLevel < 108 )9 Z9 A# H- U& q5 E
dwTmpSkLevel = 4;
8 g! h; |: W; C$ i) V else if( nLevel > 107 && nLevel < 120 )
6 s( H& `3 G3 Z+ u dwTmpSkLevel = 5;4 [' q% Q" b5 C y& H/ ?8 K e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) B' Q" k3 g0 F1 @2 a4 w) P) G" l2 r
{
2 W" f* v5 E3 A+ {7 Q' C7 z LPSKILL lpSkill = &(m_aJobSkill);. d3 R( d+ C# k, B2 s7 e5 {: t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ ]6 X Z) \5 X, X- _6 D {- W0 y0 G. ?& h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + u% P5 X& p# |) `9 u
if( pSkillProp == NULL )
+ D" I. m0 C/ C8 L) s8 o: w continue;
; F- l, L: W- M! p* f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; n( r' E0 D# ^9 P3 l continue;
. C) m7 D8 o. \! F lpSkill->dwLevel = dwTmpSkLevel;2 o, Q: K3 T* I6 B+ ]/ R8 c
}, P; e0 \1 ^8 t' S
}
3 v5 g7 j, \: R/ R' @) w }
- d* H( n- H+ g) i& [; H else if(IsHero()). ~9 L$ G9 X. f1 D% K# \, x# N3 `2 k
{. v# I5 @9 |) ?5 P7 M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ K$ x! M( c& b8 p+ [# y9 y: |: k {
( _! L) g- l1 X LPSKILL lpSkill = &(m_aJobSkill);3 o* n* Q \5 o# [' ?) S) @" e9 }6 m. V
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ A1 h6 O7 D. C7 y1 _3 i
{- o' L' q+ C4 [+ y5 l9 Q/ K! ` F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 J3 \ X0 M6 F) P0 }8 ?+ L( @ if( pSkillProp == NULL )
# k5 O' x7 c) |+ [4 G2 c. C2 A( [ continue;
7 q8 \# F) r6 H/ a9 X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 @. E0 {7 M$ h. |- l* c
continue;, A' ]. S2 p2 U1 w
lpSkill->dwLevel = 5;
* J. q; I; G1 ^: z5 l* @# h }- _) ~, [) C3 c, B3 L/ U
}+ S- G& ?5 L0 M# }
}
& o |; r$ a) k& k J9 ], p! O else if(IsLegendHero())
$ Y- N; \# y l" `) v {0 V+ Y- X( S& x) V" X0 ^; f3 T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( m5 ^) W% ~) L" o: P) d { : ]( e% T1 U% g3 u+ @
LPSKILL lpSkill = &(m_aJobSkill);
+ j' m* W* h9 o4 D if( lpSkill && lpSkill->dwSkill != NULL_ID )! o* v5 F2 p3 k/ A. F8 {" ]3 o
{
! G5 p. Z4 V$ i- P% `& R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & B [! c8 W% P4 j( p. Z3 D! N {; i! x
if( pSkillProp == NULL )
& V1 _' X) {! S0 Y1 s" ] continue;
# }/ C5 Z' K% A/ w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 G* U1 n2 S- Z3 G3 b8 z4 A
continue;
9 }) w" p, F5 M lpSkill->dwLevel = 5;/ t9 C; y- M8 j/ A0 i1 W+ i- Q
}+ E# m& x; d, j! F L9 z( S
}
1 m+ M5 X, P- r& D4 N$ i2 V3 I }
+ a; n. G3 w' x u6 d' Z# S; f) X: G#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! E+ E. X5 x' f" t
if( bGamma )
" K( F1 U% s" r- t) q0 Z) ~ {
" \/ c+ |5 B! I1 m4 | m_nExp1 = 0;+ _: e- o# w D6 d. [( J/ s
}. {' t9 o8 [9 B1 R; q0 U/ m) v
' ?1 Q) f7 W( R, P0 O ( (CUser*)this )->AddSetChangeJob( nJob );
8 W7 j/ G4 `6 S( i# I: s g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- ~& M2 F7 i d w
r1 d8 `/ t7 c# K4 a. p# K
/ Z# y* b% n3 u8 l* o3 I$ }#if __VER >= 11 // __SYS_PLAYER_DATA
. E$ _" B, |2 t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 R- n, {6 v4 o) ^+ L, z
#else // __SYS_PLAYER_DATA4 P! C \5 N; q/ p3 n
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) y' \* D; K! W0 Q; A g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 n& P. h* D6 K3 e1 b; w& U
if( m_idGuild != 0 )
0 }2 {) E3 P7 E2 i$ \9 f/ | g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 ?3 }1 K- K' b) o. ?4 v#endif // __SYS_PLAYER_DATA* p3 A" y- [0 X) G; \ l n
SetHitPoint( GetMaxHitPoint() );
# ?! I2 m8 f' |2 b |0 t SetManaPoint( GetMaxManaPoint() );
) [7 u+ A' I4 E, W# [ SetFatiguePoint( GetMaxFatiguePoint() );
. V" x F2 m; F! T if( nJob >= 1 && nJob <= 4 )6 p2 ^ o$ B8 m* Q8 o. c* k
{) e6 O2 ^, U/ E+ R6 D0 l2 p5 }
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ P3 A- @: h/ o3 ?: U m_nRemainGP = 28;
- X& S5 H/ [( f }0 \: t# {" X8 r& B! s- z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; z9 U- U8 q0 m+ U7 p) T3 q {
( U+ P. }6 N. V, t9 T9 }/ Z m_nRemainGP = 118;: ?% [+ ~# U* }2 Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
s8 p) Q& e; z. v! ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
& c* H1 V0 t) |: } }' \5 }+ ]0 b# o. W4 u3 Y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 l: N( P. H2 ~7 V0 U {+ Z. H# {. ?- v5 S" _3 w
CItemElem itemelem;
; t& z. p4 t7 {1 D* K itemelem.m_nItemNum = 1;# U& D. M1 N$ J p+ e% m6 s* Q
itemelem.m_bCharged = TRUE;( ^# }7 T& o: n/ l
BYTE nID;2 ^7 B( h8 \8 r, N1 i
3 f0 o% v) j! \! Z/ Q' b if( nJob == JOB_MENTALIST_HERO )
3 f; \/ R+ g. S+ V* | itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, B5 n- F# b% A( K7 V if( nJob == JOB_FORCEMASTER_HERO )
; { y7 J% q' y( A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( n; D+ j) S" W) l2 @- h8 r6 Z0 Z) Y- d- [1 g! ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- H" \3 E5 {+ Y9 a2 M" [0 e }
% \; j" ^: I, O6 b0 N8 u g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 U% U9 ?$ X- e; |' q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& ^4 k6 L4 }0 k4 K& I ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! m( Z7 ]6 S, g" i4 Q! m& e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 Y/ k% m5 g* i, F) J: O# T ( (CUser*)this )->AddTaskBar();*/
$ L! M0 ^3 ~, S# Y ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' K6 v7 E/ M$ T; J+ ~5 r& c& [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 ~5 {7 f7 t# f h: p
((CUser*)this)->CheckHonorStat(); T( ^0 i' P/ t
((CUser*)this)->AddHonorListAck();$ q* {0 m) ] F: A# i" {, Y0 Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 n0 Y8 ~* H7 r( R1 P#endif // __HONORABLE_TITLE // ′Tà?. G' j' x `! a) g! y, T
}
, C. I; n3 C% o0 s* X#endif // __WORLDSERVER
# `2 D- s3 S5 c% E3 `) ?: O} 0 P5 Z4 e/ b( M9 T, O, {" a
+ f m, ]* D* \- } V. G; ], L8 i, K! G然后你进入functextcmd.cpp并添加以下, F3 [ }/ T9 r8 [: X
# V. i' R7 s- @/ b0 ^
代码:
) [5 ~0 _2 }- i. g# u @9 c! WON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' X4 k7 ^% c# P! Z
下面插入
; w- r* l6 X$ X: I1 mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, \# }$ U) p+ s- T4 t1 \! @" k; b% L1 O
然后你去
& p0 c1 ?) u; r2 m
9 q2 S5 x/ y1 A$ Q% w: a代码:
% m) E" O/ r# p& H, ]代码6 q& ~0 i0 `6 |1 }
BOOL TextCmd_ClearPropose( CScanner & s )
/ ]: \% [& x) d9 V6 W s. h2 Q e2 v{
4 H. `% { x2 ]( m#ifdef __WORLDSERVER
. B1 `' G# y8 D( t. N CUser* pUser = (CUser*)s.dwValue;
1 F$ o l0 L$ b* Y% M; v g_dpDBClient.SendClearPropose();4 R( P. y0 \5 T7 _0 H
#endif // __WORLDSERVER
( N! n5 p5 R/ M) k% J return TRUE;0 l0 [7 {; c9 [* j* u T( E. `. S
}; i5 q, l" t+ R) C, k6 `
下面插入$ W% Y6 J0 W3 q/ ]; \4 v: B
BOOL TextCmd_rebirth( CScanner& scanner )
% F: w6 _+ X% G2 _& d) \/ b{5 a" g. K" f7 O& z- a
#ifdef __WORLDSERVER* H8 h$ J) L( F7 `( M
CUser *pUser;
& d4 A& h5 V7 ~9 O: `pUser = (CUser*)scanner.dwValue;
2 g8 ?: z0 c+ F$ xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())- U6 k8 Y. N8 M/ g) r6 ^2 o
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& u7 z5 Q, F. F' f2 y7 p9 k6 }
else# ?# C$ C o7 W$ r$ w$ p7 K4 e
pUser->AddText("你还未达到重生条件!");8 c' _" n2 N+ m
#endif* i0 p, l9 Q( u6 k) o3 s
return TRUE;
& p1 S/ E" z g. J" O}
3 G3 } c5 R. n% H8 F# _
4 |5 a; L1 C I! S% L9 n7 L+ _- ~; G) @
+ i# m2 r5 A% C
: I4 }1 V! A& R3 o* w
|
|