|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 d5 P( y) h/ u) X! Z
& t0 C# S! g! T6 H% }: a; X8 w: J A
Mover.h9 N6 T% e' e3 X. D O, Q4 p5 I3 A
代码:6 f& _3 Z4 M4 {1 j- Y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 p# Z( P; b; [/ r! N3 @ \3 ~/ O$ M9 C1 l, q+ N% j# `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! @; n1 c' g/ X( C
! i+ U% y% @) C6 U
然后你去mover.cpp添加
* f/ F/ t) w$ B1 ~- i0 g9 S e0 G0 d
( J5 i: O" ^9 F. Y8 ~1 V代码:2 I8 u- {7 A9 r4 g s# b$ X7 C& U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 D0 L. S7 [5 y. E- c% W1 v1 n# ~{
o, A- H! o/ a; P#ifdef __WORLDSERVER% J" O& P3 S, X2 x% b4 \, ^! I# Y/ T$ H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% M% ~& z- k4 ]7 n( N MoverProp* pProp = GetProp();
! U' U. n& _% P, \. T) @- Y7 q if( pProp )
' d, J9 T0 o6 u {
; t* o# N5 L$ @9 i: h h1 F! T if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% j5 U7 }8 G& G9 U {) B. E7 a5 {/ v; d
AddChangeJob( nJob );
0 R$ M: ~& ]# o* ` }else{
4 Y" @8 J3 n7 v1 b3 M return;
2 z- c9 b0 A+ M. x# A" ? }3 z3 e4 o2 a3 P6 d) [
int nPoint = 0;
4 @: ]* e/ A9 A1 m' _7 _" F/ S if( m_nJob == JOB_MERCENARY )0 R, N$ ?* r. x+ |2 e4 _) o% m
nPoint += 40;$ s% n$ i6 X c5 S& `+ J
else if( m_nJob == JOB_ACROBAT )2 D2 g# c# ]4 l
nPoint += 50;
L ~7 D; V8 m. a: I0 k# v else if( m_nJob == JOB_ASSIST )) [* o! Z4 i; G- f5 S
nPoint += 60;2 V; a6 c# `) f8 t- x0 f
else if( m_nJob == JOB_MAGICIAN )/ k z+ j$ ?$ P* q- f
nPoint += 90;
0 d) O, ~9 @: U* V) } else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% R% U( ], `& K4 c
nPoint += 120;
1 u8 |, [8 {, c1 ` else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. _9 h2 _( P8 [2 u8 U6 S nPoint += 150;& k) Y# V! l* \. |5 m7 }. O( a5 s
else if( m_nJob == JOB_RINGMASTER )
9 ^7 r7 X. h9 `7 T4 V nPoint += 160;
* G$ w T+ h: x- W1 Q! E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, G" {, ?, T4 X, t8 u1 Y; H8 r nPoint += 180;( H& b% {) A; p' {5 u# E
else if( m_nJob == JOB_ELEMENTOR )) W. o6 W" I- g6 i9 T6 N1 j
nPoint += 390;
& _5 k/ _* M8 X: k' _( N+ ^7 d else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 a7 I* s s, O/ ?( q- J nPoint += 120;0 s) _! ?6 u$ Q( ?- ^4 }
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! e' A s8 G- N$ ]# Q
nPoint += 150;8 n% B+ A! W. g! g* J1 a" o: o
else if( nJob == JOB_FLORIST_HERO )
7 r! a4 v6 Y' ^5 l& V- L nPoint += 160;+ o- q7 ]6 c2 v s$ |% d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# g& R- T# O' Y
nPoint += 180;
7 t: x3 ]8 s. [ else if( nJob == JOB_ELEMENTORLORD_HERO )/ U" w# Q1 p+ Q5 V
nPoint += 390;
1 ^5 M& G' @; c; x/ q& v( }
- h& m' v( M) F1 P AddSkillPoint( nPoint );- }/ H' y A% D" t1 r
m_nLevel = nLevel;
& d+ N C+ r' N/ ^4 n, k
- f3 |. z6 W. E8 j; c! G6 q' H SetJobLevel( nLevel, nJob );
( D+ |) S9 d; T' g1 r m_nDeathLevel = nLevel;
. y r0 r( D" `0 H#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# G& D$ j- ]7 g I- ~ if(IsMaster())
{6 z0 ]3 Q" B+ }* p- l+ W {- @$ c% D9 C$ w# i
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 w9 y: c. S/ d
if( nLevel > 59 && nLevel < 72 )
: Z& F: ]: |2 M* ? dwTmpSkLevel = 1;9 L* D8 W$ h; C7 l% r
else if( nLevel > 71 && nLevel < 84 )8 b' A6 Z8 W% K* r8 j2 j
dwTmpSkLevel = 2;
; w U! w: u1 G$ L; S$ a else if( nLevel > 83 && nLevel < 96 )' y; m! c8 K& ?- W( N' G
dwTmpSkLevel = 3;
& K+ d- l# F' u+ [3 N else if( nLevel > 95 && nLevel < 108 )
0 n9 l6 J. N8 H4 j. { dwTmpSkLevel = 4;
4 H8 v4 [7 m) x: E, J) f i; j% _5 K else if( nLevel > 107 && nLevel < 120 )
2 t& ^3 b, s, l3 h dwTmpSkLevel = 5;
$ u) d, j, E; v0 n for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) r! }4 a. Z1 r: H% F
{ 7 L4 n! ~% \4 Q- l" A
LPSKILL lpSkill = &(m_aJobSkill);
0 F# `4 K0 [, T6 P: h7 F if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 G2 J+ C% z! B {
# \7 H6 _0 U8 ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - f$ y7 K! @5 u6 ?* }' J9 ^
if( pSkillProp == NULL )( k3 [" A' p& Q
continue;
+ l; a5 |/ d: F; L" ~) O& w if( pSkillProp->dwItemKind1 != JTYPE_MASTER). O8 Q% U* u7 g( X/ H: c
continue;
) c \$ l; ]/ T W2 S% k" l lpSkill->dwLevel = dwTmpSkLevel;
+ S" i q s/ n A4 X9 q2 J }
6 s4 ]( Q, t' n6 r }
2 k" Q+ _1 h6 i2 a }
# F" p P5 u" Z! [0 o$ [8 u else if(IsHero()). k2 d. O" E! g- g( ?
{' K) f6 |( C( |: ^+ q; f" L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: H2 V& {& u: X9 k {
b, m: l$ x9 @/ i LPSKILL lpSkill = &(m_aJobSkill);
& b; X( s' _& Z+ I% h6 M2 M if( lpSkill && lpSkill->dwSkill != NULL_ID )' ] `" u7 z# b r0 n2 G
{3 c3 W' N' f/ U4 O) y) f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. D/ [: R- T6 b, U if( pSkillProp == NULL )5 w# f$ _' k( i; z1 g. L1 U
continue;2 o% p: j! E, p: o6 O! V z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: y3 K/ h* p b5 a% i continue;
( m' {( f8 ?0 A! H ] lpSkill->dwLevel = 5;4 A+ n- i3 M- t
}
( j, U; Y" t3 e+ m7 D+ Q% Y5 J( d4 b }
1 S* W# r# N- T, T% o& }7 z7 y }
+ N* ^! y: P& ? else if(IsLegendHero())$ }. a. B5 e* F; R
{
b7 @+ @5 T" y! d# D, y" D for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ B c- a( A' B* S# A6 q3 g0 y
{
2 \# ^; r4 M+ \ LPSKILL lpSkill = &(m_aJobSkill);
/ ?9 o9 w0 M0 q0 A1 `: ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
% {2 {: d2 ]5 F3 l" B& i% j" j {
- o+ G0 Q5 n2 ?7 o( U7 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# N! I* |/ j2 i" Y0 V if( pSkillProp == NULL ) Z4 ~. T1 `2 `1 `) ~* d
continue;
# w3 s: r+ h% j- I( N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 q, ^. q; w7 D2 K" O6 M2 _ continue;
" B/ M/ `0 b( y6 I8 Q' Y/ K lpSkill->dwLevel = 5;
! d/ o. \" P& i: A }
) M9 v' w- E# G( A- z' H }5 Z( F7 Z# }" c7 ?. ^$ l; c' `
}5 Y! b7 \, o, D8 g
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 P' G+ X3 u: {" T; Q
if( bGamma )
( U0 u; v6 {4 x v1 O* q- L: V; V {
% o/ T* K2 B' ?$ V8 |! e. v. u t m_nExp1 = 0;. T+ K( W2 J0 ~' Q
}
, ?- Y: ?6 `+ n1 y1 I9 O' O: a& c* H1 p' x1 z
( (CUser*)this )->AddSetChangeJob( nJob );
# }, V1 t L" i# H# k g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ u) Y3 T8 E5 u" r6 @" p' O
7 `& z0 t- d. q7 T- L
) h; H/ C- o+ q" l4 ~% d#if __VER >= 11 // __SYS_PLAYER_DATA! ^" }$ o# {7 L) v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ T2 l& }& l' F( ^4 W
#else // __SYS_PLAYER_DATA
6 S9 A' \9 o! F9 c* t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ H' ~/ v7 w; p# X0 O: V* Y1 G8 ^ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ t" t& P( ], G0 E2 n$ o
if( m_idGuild != 0 )6 N2 D4 N: `2 M$ m# x3 w0 W
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ I! r& ~8 J6 M6 E. Q#endif // __SYS_PLAYER_DATA. y2 D, [0 \: P# r
SetHitPoint( GetMaxHitPoint() );
$ T# C* Z) E, G0 {+ N3 B1 U8 i- N SetManaPoint( GetMaxManaPoint() );% O1 j! N7 C1 A# o4 l
SetFatiguePoint( GetMaxFatiguePoint() );) m/ r" f f# ^# g" W4 P+ P/ {
if( nJob >= 1 && nJob <= 4 )/ b+ Y4 l1 q( G# `& X. k
{3 d; i/ `, G% I/ A
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 Z: s% ^! C Y" b. ]) L
m_nRemainGP = 28;
% v/ x" g0 x4 I5 G }: [2 g* N. h- w& F4 q% E* f
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 f. o6 |" A N {9 E1 f7 r% {/ d3 L6 u# B4 O
m_nRemainGP = 118;
- u" _9 _; j, g! y" e //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 @* ~( G! |0 u! c, @ [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 B3 r: z) |1 z }5 ` \8 G, X4 Y, K+ _7 c; n2 R% B
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* \2 Y9 A" z: G
{
% G" W' O. o9 Y' e5 D/ d CItemElem itemelem;
) u" ?1 F: e. W5 D9 F itemelem.m_nItemNum = 1;( |$ A/ t D2 N& u' B4 R1 S
itemelem.m_bCharged = TRUE;
3 G v* K) n3 [ h6 ]) R BYTE nID;( O+ J7 t, @# h# \- ?. a. T
5 c6 U! F. T1 f" e9 _6 V1 k if( nJob == JOB_MENTALIST_HERO )5 F( G+ N5 g* y, a& n
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' O+ q/ o3 T: M4 X3 D if( nJob == JOB_FORCEMASTER_HERO ). F9 v. d( y8 }5 t
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! _7 [# ]1 \$ Z. K) n
?6 s8 Y& k& R$ I
( ( CUser*)this)->CreateItem( &itemelem, &nID );9 ]7 K, L3 m8 I5 _6 X' e
}
& L$ c. ?3 h2 J( C a g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 c$ r1 g) x/ S; Q" T3 [1 I/ d
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( {2 j" p' k* u3 i/ i' n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. E2 \* d. N1 P1 C' }/ m2 r /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& x- _$ [. N% l0 b
( (CUser*)this )->AddTaskBar();*/1 e4 b9 @! e6 K5 B
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); `# J$ Q; w1 t$ C9 Z9 H8 y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- ~$ _% h k- R2 D/ L( {4 D
((CUser*)this)->CheckHonorStat();" R# W" L% ^ W1 j
((CUser*)this)->AddHonorListAck();
2 V, J7 B8 \& x5 F u. D g_UserMng.AddHonorTitleChange( this, m_nHonor);% O+ W* p) y- D: z8 J
#endif // __HONORABLE_TITLE // ′Tà?9 y0 S( ^9 }1 x5 P# n" I
}* O3 {" V W3 ^, X
#endif // __WORLDSERVER6 I9 i& u$ A' y- e( y( K2 P
}
, l5 U/ y9 Y5 B/ K2 q g& z! I/ U! w
然后你进入functextcmd.cpp并添加以下- A8 ]/ B3 G% t" t+ v6 O# ~. Z) Y
U( s* m- Y9 o% s5 F. N/ g( {* M6 k代码:9 z2 t. A; s: V$ s
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* r- u; `* u1 j g
下面插入
4 n7 d" \& x( b/ ?2 x4 r! dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 g, l) F0 ^$ ?/ o( m3 U6 P5 U
W; G/ n; k' \$ i- O然后你去8 W" Q4 A) u2 B; Q8 I5 n
F: {; u* W. I" h# q% O代码:, X6 _( d) z! f5 N8 E o4 @3 V( H
代码$ E& L; o5 }6 J/ k
BOOL TextCmd_ClearPropose( CScanner & s ). `' b5 P" X+ g0 N2 W4 d
{
% M# Q) F7 e% X( C) Y#ifdef __WORLDSERVER
& Q( A+ ~" J5 d. X' T CUser* pUser = (CUser*)s.dwValue;2 i( ?- {) I' C4 I
g_dpDBClient.SendClearPropose();
, m8 c% Z9 a8 {/ z#endif // __WORLDSERVER
* H( Y# L0 z) z; V9 F return TRUE;
$ T$ v0 t8 d& e ?7 |; R}
- @+ I- e9 n. v; z# b5 T下面插入
6 S& g" e" p i8 GBOOL TextCmd_rebirth( CScanner& scanner ); ?2 l* s9 |4 c. X' h* d. Y0 |5 n6 P
{
5 L3 L8 z w/ `8 L1 R6 V4 S# |#ifdef __WORLDSERVER
, a- m% d# N5 e4 }9 o( {% }CUser *pUser;$ i# V* N9 m0 G. w V+ a6 U* ?
pUser = (CUser*)scanner.dwValue;( `! {' _0 [ ^! ~: T: C- R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 N2 C- ^/ O9 L: O0 a8 a" ^( [) K0 n) f
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 b$ B* P: s) ~% |
else
: D$ G; @7 g5 }8 j, p$ h! z, _: `pUser->AddText("你还未达到重生条件!");# o( s9 }% Y: I7 e
#endif$ x' g: E6 Q' {* p8 Q% q2 V
return TRUE;2 K6 h% G6 Z& a8 [
}
B0 \1 C7 W+ }) ?4 ~" @( q: X4 O4 @0 |& v% H( N" f" k7 f4 y
+ ~: N2 k7 m$ h1 G; {
5 M a; D. |3 ]
, S4 b Q' G' q4 @' o( G- w( L |
|