|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( |+ _. _- u$ q4 }- K: M4 w/ }( T8 Q
! ^$ d* m9 H- b7 k( w- r' v2 o
Mover.h+ {% m V- w L& s5 A
代码:
0 O+ ^, g8 f. N' Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( ]2 x1 e8 B j/ i" n# G' c% R
5 v# s5 l! F5 l @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; w- L5 R8 F" Q' c* _- O6 x, p: C: l, _- H$ j3 R. I) Z
然后你去mover.cpp添加
' _# u% b+ A7 U/ r2 d
' X8 y+ {9 c3 t" [6 Q2 P- b代码:, w! Q; B/ [% E" u7 Z' R. l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 O; c6 O. I8 L3 @% x{; S6 u% J, ~; _) Q3 [ s; h$ ]
#ifdef __WORLDSERVER/ A' G: B* }9 Q& }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" [8 C2 h: n' i8 t1 r4 q8 l: N3 H
MoverProp* pProp = GetProp();. w. T* l# K" E8 Q8 P+ F. X
if( pProp )9 d) |' i0 q8 r5 n% y1 X
{
+ H, c7 h% q2 y9 t5 [9 p, g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
c8 W; F" R. O+ e {
% v" G! z# H; P$ U AddChangeJob( nJob );7 P# v, C# Y$ Z: I! w) h# M
}else{1 b2 M- L+ M5 F
return;
5 h& u0 ?9 _' J7 A& a- H8 s; U }8 _4 m! i' S" ]" ~
int nPoint = 0;
F6 h! O0 W+ n/ U4 t4 I; B) r& _ if( m_nJob == JOB_MERCENARY )* T! C1 H5 K/ P# ]
nPoint += 40;& z% R* j) S: C, h. a8 |4 D* o
else if( m_nJob == JOB_ACROBAT )! B, k% q5 e. N( W3 f
nPoint += 50;
/ ~" K. `' P# ~ else if( m_nJob == JOB_ASSIST )6 {3 k# G) r: |3 Y( l! R/ z# e
nPoint += 60;4 H! ]2 n+ O5 {* c( o' R( r! |
else if( m_nJob == JOB_MAGICIAN )
% q/ t' u4 z5 K7 G* S, E0 R nPoint += 90;: M$ G% f/ @+ o/ s* D* L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 i5 X& X! Y5 m nPoint += 120;9 s3 H2 t2 P! W4 X/ F8 y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 P4 b5 L1 m1 G7 Y
nPoint += 150;
; f' d. x; q4 A! U, W else if( m_nJob == JOB_RINGMASTER )6 p9 V* Q6 a: d1 a" B: m+ R
nPoint += 160;5 D a' f# n4 ?' @" A8 ~
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )2 \5 _9 b. A# R/ t2 e
nPoint += 180;
" @$ o3 G3 C H* R. E2 x else if( m_nJob == JOB_ELEMENTOR ); v: t. [6 K; j) v- f. B T7 N
nPoint += 390;
9 R; r& ^8 k' b# w& R& m6 X$ u: w) w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 h2 `. [ ?! Q1 Y7 ^# s
nPoint += 120;
% }, Y1 p+ O" [0 }% t& ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 \0 z! a1 x4 N4 i
nPoint += 150;
9 Z3 h. x0 [! x2 L else if( nJob == JOB_FLORIST_HERO )
+ i! @% @, }! J. A. [9 J. |- R, O* b nPoint += 160;( X' v) H- j$ t& I( J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ q1 R+ V! c3 X& J7 X( {
nPoint += 180;0 ]1 t, \! e- B- f& y* N/ p; h
else if( nJob == JOB_ELEMENTORLORD_HERO )( o7 l* r, J3 A9 I0 [4 N
nPoint += 390;
" D: k8 o; N, W3 w' \ e2 r; s7 \! Q m' P
AddSkillPoint( nPoint );# P2 v" n4 H* @9 P4 k+ Q$ H9 D) r: Q
m_nLevel = nLevel;" o% s& ?1 i* M% h) v0 Y
4 _9 i: S, C4 k# K) d
SetJobLevel( nLevel, nJob );
- a7 T9 A/ Z$ L4 ^; m0 a, L m_nDeathLevel = nLevel;" [2 Z- f: S5 v" t# z( @5 V2 |( e
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) F: @) N7 M1 z# N1 I* k2 o
if(IsMaster())
- @# k- F% x/ d# M {8 o3 e5 p; ^+ E3 R, x- V' w% s
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' t, Z' X& G: U- R5 j8 p if( nLevel > 59 && nLevel < 72 ): E9 H' _% O3 h7 j$ o8 y
dwTmpSkLevel = 1; @% s; l2 t3 d* g+ f
else if( nLevel > 71 && nLevel < 84 )3 J; R( X# C4 A% p2 D* N
dwTmpSkLevel = 2;
; Z1 e# j7 H9 p1 y* g% a+ {; F/ E else if( nLevel > 83 && nLevel < 96 )
6 D& _# o+ t1 L" f! D$ P0 {- Y; l dwTmpSkLevel = 3;
' w8 O+ ~! F( z; f$ h+ h& X else if( nLevel > 95 && nLevel < 108 )
" [+ T4 n) r. _0 J" | dwTmpSkLevel = 4;
/ N& ]0 N2 C/ x/ S( F else if( nLevel > 107 && nLevel < 120 )
' y8 Z1 ^' K P4 @* _1 ?; f E L2 a dwTmpSkLevel = 5;
9 l( [* W% n8 O1 @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
& T. ?, w' m6 Y) _. q! W' p! ~ { " N _( B: o; R" u; `
LPSKILL lpSkill = &(m_aJobSkill);
, ~+ e2 f6 t1 b8 M5 x: G if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ l, t! k/ }# e5 v3 c) v: { {4 a+ C: i; b L2 y, _/ `6 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; u/ M' W0 D6 Z" G: N' o$ L) y
if( pSkillProp == NULL )
0 {, p" i0 N$ w2 n$ L, a3 Y9 z continue;
) B# e- Z! ^' ? N3 q) y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 M* a/ B/ P, \: G7 v, r( t1 M
continue;
L# ^# ^/ W* Q* a. r" E lpSkill->dwLevel = dwTmpSkLevel;, E7 I; D8 _2 M% i% C) s
}
# ~( R% l: s; E/ A" I } T6 I) c2 \5 ~9 |5 ~ N' M
}& c7 ?- V1 O/ j9 u& a4 ~; A
else if(IsHero())1 A/ G2 z, o5 y8 _+ @1 {) X
{
1 W! D V7 ?* Q* {1 H9 a& H for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! b; H, C3 [/ M# c# E3 v
{ ( Y- ?, p0 r9 L1 B+ r
LPSKILL lpSkill = &(m_aJobSkill);* B. W" E. U; t' R0 n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, `9 _8 |$ o2 D& } {* v8 w% t- }0 ~) p- R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ e6 J W, B1 p if( pSkillProp == NULL )4 R$ t1 |& A7 y' w3 G) o" ]
continue;
5 o3 B# j8 ]( y3 G9 i! X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 C+ Q# P W5 W" W' p& K* M continue;6 J+ q- B/ W% N3 I. p" }% {% J
lpSkill->dwLevel = 5;$ g/ ~. u2 g( Z! V% e; |2 Y! m0 N
}
3 J; I* w8 | X3 [. P }* t1 n* }2 x6 A, J% ^
}3 G) M$ U# o/ ~3 z7 K# Y
else if(IsLegendHero())- b. e' m) O4 H [4 l5 S5 {
{5 t! @" Z& ]' O7 c! k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. `- @- w/ z$ D9 f {
8 x3 a8 v7 X3 x, _ l( C; | LPSKILL lpSkill = &(m_aJobSkill);" S& ]7 H2 j) h- B" p6 e8 ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& p9 Q5 A. ~4 S: X& A7 Q8 B Y: D! b! \ {
& I% r% l! l' Y1 p6 m: D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 J. d9 w1 X |# o. u9 W: O9 Q if( pSkillProp == NULL )! U# _8 [9 }; N/ e- j
continue;
* b: i" {4 t* e2 D u9 O+ w L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# b; S) N0 f. ~" q6 e, V; N: N
continue;
0 z$ N4 i* G9 r, v7 D# J8 Z; P/ @ lpSkill->dwLevel = 5;! M C a" U: |! E" F) \* g3 p1 ]8 u4 n3 W
}% h/ K- g% `& g! V5 s- X- ~2 s$ v
}7 S; _! ~% K1 U a6 r8 ?6 k
}
- ^: p% s# E- Y$ @0 W4 x* H#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 R' k) R, w8 T% ?8 ~( o if( bGamma ) n2 y5 W; B) t- z5 n& P" E
{ ?6 Z! |7 m/ u3 o( V$ R6 A5 e
m_nExp1 = 0;( B. {/ O; Z/ Z- o& _6 m. g
}
9 [4 J6 i3 }/ d; v' U2 e8 W0 n/ y' e: X6 |) R/ o
( (CUser*)this )->AddSetChangeJob( nJob );
( @6 ?7 ^- _0 h9 }+ A; v8 n/ m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 _2 L* v/ q3 ~5 v9 | k% q
* R5 p" ~! E* x
5 o9 i0 u$ Q9 D#if __VER >= 11 // __SYS_PLAYER_DATA z9 o' y: X+ f$ @! C- O C* V& \, M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& h, w6 y3 f$ y1 u
#else // __SYS_PLAYER_DATA
+ v9 e9 [; T, O/ m3 x. j; q* P/ o* i9 r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ _8 ^) Z& \5 s9 p g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( x: ]) W. v& X# }! j
if( m_idGuild != 0 )
6 F" ]3 o' P) |: @/ j) `4 c g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 y/ h; }5 \4 s W2 \( ~
#endif // __SYS_PLAYER_DATA
$ v3 J- n: f& A S0 L SetHitPoint( GetMaxHitPoint() );
5 m8 W/ _7 E/ A SetManaPoint( GetMaxManaPoint() );
; \( J* P+ m& G) f/ Q' u SetFatiguePoint( GetMaxFatiguePoint() );# s H/ S: @6 e: \2 ]/ E
if( nJob >= 1 && nJob <= 4 )9 ], u* Z0 F- x
{! C) ^- y; e6 A0 N/ @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ m8 |; Z& p' H2 p! S- z m_nRemainGP = 28;$ r5 i% B! e2 i
}
. ?/ S; e& t0 @; D4 T% }' X+ k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 I4 W8 r, U: F; Z' I* B
{2 I2 R9 T- r* V, } W1 u& i- v
m_nRemainGP = 118;- l7 M" }; ?* a0 D2 t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! Y+ Z7 H7 o: D6 h+ p0 P' b/ F m_nStr = m_nSta = m_nDex = m_nInt = 15;
; ^0 R, Q u# f: {% r }
& T' }6 ?* `6 Y4 w8 m/ }) k8 {. @8 H+ b if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! |. d' ^2 ~# v! L ?+ M4 K- O( P
{
) M$ I: {( E$ I3 @ CItemElem itemelem;
0 Z: U1 }, x1 l* y- h9 x3 g J- l2 m0 Z$ A itemelem.m_nItemNum = 1;
1 }/ c0 ]" Q! }* E) g itemelem.m_bCharged = TRUE;
3 L1 c4 w! }* ^% X9 S" Q6 { BYTE nID;' o8 i! g3 ~9 h
% u7 _% b9 m* x) X- I$ x
if( nJob == JOB_MENTALIST_HERO )
* I$ G3 \2 T- |( v7 M: x* r itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 R8 Q6 W' L; G, g( Z
if( nJob == JOB_FORCEMASTER_HERO )
8 o$ E* K9 _: h! e8 Y# W itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ x3 Z E) ?" t( J, ~1 g# M
# P/ u/ v. T/ v& E ( ( CUser*)this)->CreateItem( &itemelem, &nID );) d1 P! ?& R$ J- O3 f& j1 L c
}
8 H4 X5 q2 [5 O( \+ e6 ~3 v$ p g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& ]7 A. l* Q5 @+ A H' b2 D9 r ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* l; t( t. t9 t& @3 Q% i! S0 G4 g ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
5 V1 N6 g3 Y3 q+ h. C7 [2 S /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ ^$ {1 |! _: R- s% ?* h
( (CUser*)this )->AddTaskBar();*/
. L8 m8 ]" w! Y1 y( y ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ a c. _. d+ F. M7 e1 c3 a+ p7 h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 o$ [& F! {% o5 S @ ((CUser*)this)->CheckHonorStat();: v; \# X3 _+ r7 y8 o
((CUser*)this)->AddHonorListAck();8 H$ T# z$ N. K, O8 ]' ^( o7 ?( R0 @
g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 G/ G- u P- m$ G- ^#endif // __HONORABLE_TITLE // ′Tà? q" x% M6 h I$ p
}& a6 E) x4 O- P$ V" `) O
#endif // __WORLDSERVER
/ a- }; J# W+ E: Q}
, U; X. }3 f0 b$ @) a+ H6 r7 E ]7 v4 s7 ~2 y- Z- l' U
然后你进入functextcmd.cpp并添加以下/ A% O+ k5 y: N% p8 `
) E5 A5 w% w `2 ^3 @+ Z
代码:
" G/ X5 [( h F/ {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 ]2 a! J' S" C8 I! S3 L0 t* O9 b下面插入0 C' H5 O0 i' k; I# q# r& \
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 v C! @, I) e
9 w* L2 f4 d( v# s4 k
然后你去
) I r- ^& M }# B. i; _% e' s. S! t& g b: J6 F3 ^
代码:
$ V! h5 B; g H代码& u1 |+ K: e3 N% H. R6 p
BOOL TextCmd_ClearPropose( CScanner & s ): \; A6 X; ~" ^- F* D
{
) u+ i" B" [9 z7 K#ifdef __WORLDSERVER
9 f2 X$ F) P/ i1 G6 i CUser* pUser = (CUser*)s.dwValue;
0 p D! }& ]5 _1 w( e g_dpDBClient.SendClearPropose();
; |$ S) |- x2 ^& I: A#endif // __WORLDSERVER
4 ]# B- H' b8 M1 y: h- `; k return TRUE;( m8 N, w4 C- Y' [
}$ c- e* {7 l$ r7 Z6 n( Y& o
下面插入) R R" B/ y ~# A, \% A( Z5 t
BOOL TextCmd_rebirth( CScanner& scanner )
2 _( C+ t4 y- S, u# B+ ^5 S{. s/ G, j- ?; z3 O% f, Z
#ifdef __WORLDSERVER% K% i/ H' G7 \" w
CUser *pUser;/ Y5 `, ?+ \# n; g7 `6 {. e+ ?
pUser = (CUser*)scanner.dwValue;9 G: R1 Q8 T% y6 \1 ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ m$ l" t6 q# \6 i4 R1 j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 D$ D3 k8 P8 m P
else
$ M) u% s% P RpUser->AddText("你还未达到重生条件!");* o9 |- q5 m8 I5 }$ R ~- m. `7 [
#endif
2 X8 q; G) J# b& Lreturn TRUE;
; j2 k. O; o' t. v9 \}
6 A* }+ h6 B+ x. _6 j2 H- z# [
9 p3 v/ ^9 \9 o$ b/ t6 o6 X* I7 u5 j; V* ^, v k& t- P
6 v3 c: v) ]) W6 Y( R# R( S" f
`: |, m z; g, Z% [, m/ U- a8 W |
|