|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ I& m6 D& B3 b6 |0 b% n
6 D. }! M) i5 m; e/ P5 W
Mover.h
8 ?6 Z& V4 O8 {( H7 d* s& V& c代码:, | H( z1 h* M ^+ u4 d6 [1 K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& @2 S7 ^* A* N& K
; c0 L+ n: ^$ _1 c6 s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ ^! ?- ]3 Y! n: l6 Z; e$ y5 U; `
" u# ~7 y3 y* ^ |# o% ^然后你去mover.cpp添加
( ]* j$ M* z/ [+ @$ W5 z3 _4 a% @. X# c- @( k
代码:
e s/ B* ^9 @9 g0 Z: a. o; Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): l$ V3 S7 Y e1 p% a0 g' x
{
+ X1 O9 c7 {8 q. \ \" R0 i#ifdef __WORLDSERVER
" j3 h: O% `$ L // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ c0 r1 X# U. d7 G* M+ ^
MoverProp* pProp = GetProp();" d& h5 t* N) M. u
if( pProp )5 y* K; h' G* T2 y7 \
{
5 f9 p" `7 w% `+ z$ O! W1 G$ n* l! J if( nJob > 0 && nJob < MAX_LEGEND_HERO )% x% e; v7 m- G3 _: |1 @
{
; L$ [- p' E0 O% x/ _. o AddChangeJob( nJob );! c5 d! p4 T8 h$ J3 E' Q. y$ S
}else{
8 P1 W( L$ | S0 K return;7 p" Q, o9 S1 I; d* M
}
. |8 y( Q6 K% r5 Y2 _, ?/ A int nPoint = 0;
P! k4 z; _* a; p if( m_nJob == JOB_MERCENARY )8 p' V3 y; c) l4 p+ @' V4 L3 t
nPoint += 40;$ ?7 S% f' j5 x5 p
else if( m_nJob == JOB_ACROBAT )
5 e/ D. q6 g4 `0 _5 W' e6 Q nPoint += 50;
8 w5 T! z j4 m; g; k7 y5 S. y else if( m_nJob == JOB_ASSIST )
3 B: e7 g1 ?. ? t, m8 Y nPoint += 60;' v- \- F- L5 U$ c: p
else if( m_nJob == JOB_MAGICIAN )1 c: ?2 V9 U7 c- j' Y0 U P
nPoint += 90;7 Z4 n9 S9 `: O6 }* h6 p, N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! w* u6 h6 \* p1 M/ f& D, C nPoint += 120;
5 ^" v* C/ F7 e' T& H+ `. l- Y7 w else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ m* h3 L5 X z1 K% Q$ `8 ]# i7 s nPoint += 150;9 P! K9 d9 w0 ?/ u! M
else if( m_nJob == JOB_RINGMASTER )
9 f: P% @8 J0 @! F' u( n# G nPoint += 160;1 |4 y$ e" X, q2 y* e+ [& I
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 Z0 Z0 s- z/ `! O- `
nPoint += 180;
, J! @3 J" C% s* m else if( m_nJob == JOB_ELEMENTOR )8 X! v, h7 ^0 J3 q! R3 a: A
nPoint += 390;
' H! l6 n+ s" a" x else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) H7 P) P5 {9 x( d2 E
nPoint += 120;
! F& o, n# z- P. |; y+ } else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) G: O+ p2 A" H: l9 U, m1 m nPoint += 150;, q( K5 g% U4 M
else if( nJob == JOB_FLORIST_HERO )
: d" N% l9 M7 W8 @ nPoint += 160;7 w# v, y9 y: W2 R4 V- J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* J0 p0 P. r. P* n+ D. g
nPoint += 180;( p2 b8 G% Y u$ n" X1 J6 O N) ]
else if( nJob == JOB_ELEMENTORLORD_HERO )1 j; H+ O; ]4 b* A
nPoint += 390;
1 G1 K0 l) X* C- e- Z. ^3 ]' `( |% T. i
8 x. E7 [" o0 |3 R AddSkillPoint( nPoint );
( z8 F( `! U0 I m_nLevel = nLevel;% _; n8 ?! d4 V! P A
* v2 M6 K$ f! q, `2 P SetJobLevel( nLevel, nJob );
2 ^% T$ |- a7 t. [ m_nDeathLevel = nLevel;! k; A) g. b, s2 K: F
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) ]9 f+ ^: i4 F. ~7 V
if(IsMaster())
! b& ?& P5 J2 n$ q' K* j {; B: a# [5 M- a* M/ o+ ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 J w4 |2 c! I3 Z% O p5 P7 T if( nLevel > 59 && nLevel < 72 )1 v+ y* Q5 K/ ~) L8 r# G
dwTmpSkLevel = 1;* s) e% u' B/ ?1 O
else if( nLevel > 71 && nLevel < 84 )
# U7 [8 {7 ], j9 E7 m dwTmpSkLevel = 2;
4 P" ^: T+ x5 z else if( nLevel > 83 && nLevel < 96 )2 z! K5 [+ \; f5 J/ S1 }: ^
dwTmpSkLevel = 3;
# O$ c# v, Y& Y, A5 p% K9 q# ]8 q else if( nLevel > 95 && nLevel < 108 )
, [- V6 o( {- W/ n* V. X dwTmpSkLevel = 4;
$ A; k! y% b( {4 g else if( nLevel > 107 && nLevel < 120 )( [- m% C t, s" w2 Z0 g; @! X
dwTmpSkLevel = 5;
. f9 m4 L) u+ ]1 r9 |% ~2 D2 b for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( l: C& {& N1 ]. j) n6 }0 z1 B
{ - ]9 f+ ?/ M6 @9 x: W
LPSKILL lpSkill = &(m_aJobSkill);& i1 O4 n. q. L9 w% N
if( lpSkill && lpSkill->dwSkill != NULL_ID )& [$ a: n8 m0 G5 ~
{0 N$ l- l% ?3 O/ V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 A% k% N9 L5 z& \; D& Y& q if( pSkillProp == NULL )
& e( P0 N8 s$ h- }; V continue;' s. j3 d+ j* [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" Q# o$ t6 O9 u) Q) z
continue;. j2 g- p1 `3 ^) w- H
lpSkill->dwLevel = dwTmpSkLevel;
& U% w- }+ ?+ D8 z }
# c; i; r, g$ _6 V- G/ T" c }
& ? c3 g/ d* R+ n/ c5 h+ N+ I$ A }
: Y% [1 o/ J0 H& m else if(IsHero()): H) l5 Q+ u; f1 ~0 n
{
* w) _1 ]7 H& A" i for( int i = 0; i < MAX_SKILL_JOB; i++ )
* x9 ^% {& {3 \9 {0 e { " x" L3 d/ ^: F9 X Q1 H) E
LPSKILL lpSkill = &(m_aJobSkill);
; u: b/ e2 W1 e! ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
* s7 u( ~+ x6 A# c {
- y' y8 M, J8 b, f9 h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 {0 `! T" a& A: }" O5 B6 [7 S6 D if( pSkillProp == NULL )
/ ~8 {! Q+ S% s0 g @4 y+ P continue;
) P" _* t+ z$ @" V2 g. j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: Z+ g- U' Q ~) c# ^; y ?' L S continue;
: V9 o% z4 f9 w( c" i lpSkill->dwLevel = 5;
/ V6 F9 u8 q3 v( i' L0 N. M3 q( Q# t }
, W R8 V7 v" T& z }' o# n9 a7 u- D0 C. ^: O
}
" }' H6 d7 P9 J6 S3 g* y" ~ else if(IsLegendHero())
5 C% L$ P4 [, Q! n4 X& W {
; y+ ]! w/ ~/ g, p% }9 U: q for( int i = 0; i < MAX_SKILL_JOB; i++ )
]! L6 Y" z# }; ]" ?5 j9 ~0 W { + e) O2 @7 y' @; N2 Q' S7 _
LPSKILL lpSkill = &(m_aJobSkill);
2 L5 F' k. o7 K( n- v if( lpSkill && lpSkill->dwSkill != NULL_ID )
) C5 N) N! T5 J5 ~6 V) W7 K1 Q9 O {8 h: H7 O2 r- ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); E# p! f; W2 |3 w
if( pSkillProp == NULL )% W& F9 M$ Y2 Q2 r) a0 `# f& s9 r
continue;
) ]" U$ g9 ]# ~+ H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ W1 s' k2 E4 f( z8 j& ^ continue;
/ `: x. h; r; X- S lpSkill->dwLevel = 5;
) _' Z8 u9 H* o/ y, G/ W }
1 }0 n! z: q% M$ z6 U5 x6 n }
/ j9 g9 ~, Q* D4 @$ u5 {$ f } O6 k5 h5 |7 O& _5 j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 Q4 n* [5 G- r8 h: | if( bGamma )
- A2 ?" P/ S5 |5 I d+ T) } {& {: L7 b! Z. d) _+ b& w
m_nExp1 = 0;
( P8 A2 L9 b6 k$ T$ w% g; V }
" O* r( |/ }# p, B: K( c8 e
5 ~: i/ d" d/ ?9 Q; w2 i% f ( (CUser*)this )->AddSetChangeJob( nJob );
+ E7 V' ]8 J* f3 U5 P, w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 i+ P& I0 b6 v$ J- n1 E
$ w3 b( R2 p& C5 e* m* T
0 x9 }# Y3 Z! R( D5 x
#if __VER >= 11 // __SYS_PLAYER_DATA
8 T- R3 \0 Y- Q8 @ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( k4 o! Q! {$ X8 f#else // __SYS_PLAYER_DATA2 e) R- {5 F T; H" ]3 a
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& t" c* d1 N4 w) T$ b g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 k& s, h1 a3 i$ r2 @9 N
if( m_idGuild != 0 )
2 j1 F# I& @; z, G9 X9 z5 d g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 o Z: I6 s5 x# }; W
#endif // __SYS_PLAYER_DATA
. ~6 U0 a3 z% T- g! w5 u SetHitPoint( GetMaxHitPoint() ); y4 I' m" i/ l! j7 d# w9 g
SetManaPoint( GetMaxManaPoint() );
9 J! w; M% _: V( S2 h8 W SetFatiguePoint( GetMaxFatiguePoint() );
3 Y5 n; p( U' a* u9 O if( nJob >= 1 && nJob <= 4 )- x1 G& q! \0 `9 E4 O# C5 Q
{- x9 R, c* {* O; m! l3 p4 x2 ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 V3 B$ V, y, z+ K% b9 k
m_nRemainGP = 28;# V- e4 T* C7 M- D2 P
}/ p8 E7 V" Z* n2 D2 V
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 m1 a+ V P) b8 f. ^
{
! j9 u @+ F: p+ }0 W m_nRemainGP = 118;9 c; `- W" V, S5 ^$ h7 r
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' I5 ~2 G6 R+ q) _4 i. Z I$ U m_nStr = m_nSta = m_nDex = m_nInt = 15;
% W' X& w2 @% p/ a3 ^1 ^ }
8 P) b% g2 O& @0 }( c( f( J8 T; Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" R; M _1 s" s8 {* a
{& r, k7 w3 n, Y& k- C
CItemElem itemelem;- D9 J: E. J& F# R1 m7 h9 y! T
itemelem.m_nItemNum = 1;
( ]1 `5 a7 a$ t) d0 j+ x) B itemelem.m_bCharged = TRUE;
8 P* U( d0 k; R, I3 e; m+ U* W* z BYTE nID;
$ O* o6 W- W. ?6 l
3 s" D* R( b5 E/ a: D4 D& t$ c if( nJob == JOB_MENTALIST_HERO )
/ Z6 ~; I0 B4 H/ \' \6 X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; Y% U& \# ?9 J( V' ]$ L( s
if( nJob == JOB_FORCEMASTER_HERO )
% N6 d: Y/ V+ ^3 c: P# f" O* C/ z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# d6 k* C. {7 M, x; ^3 h, w: h# h/ h& P% I
( ( CUser*)this)->CreateItem( &itemelem, &nID ); k, G+ c1 A" F& b8 S6 f
}/ ]! Y' p, z2 c7 k; T, X5 f
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 u) ~) t( I: Q1 f2 C& o& S4 e ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- \/ @2 \6 E S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
E3 j; Q5 T: G) T5 b$ g( s /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 _* H/ {7 O5 ?8 b- o' c- N6 T8 K! J ( (CUser*)this )->AddTaskBar();*/
9 h* m0 x7 g2 J% w" ] ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ g+ R2 [% }/ ^% ^: `7 \ A#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 c+ B9 ~! W* H8 r+ G/ G ((CUser*)this)->CheckHonorStat();
; Z% @3 `8 C. o ((CUser*)this)->AddHonorListAck();4 }- v( l4 @3 x c, Y+ ~+ @: g
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ ^8 h7 A" _0 M. w. n#endif // __HONORABLE_TITLE // ′Tà?
+ e L! C4 t0 _" B* B: S }% g( g/ r; N2 |' V, g
#endif // __WORLDSERVER
- |$ S# k/ f2 }2 W0 }( m" q0 u6 e, T @}
+ a9 g' T$ A. Z. u3 p' v5 w; U
2 N! X: N9 E. f# H/ w0 y然后你进入functextcmd.cpp并添加以下0 y( E4 N& H$ p/ S4 n
% i1 w$ \6 `; F9 j7 K8 s, [代码:% l6 r: J7 `3 m7 E7 Y: W D( T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ B9 r! u8 }' U* {+ U下面插入
9 C' n" {9 _4 A0 f; {) } NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % G+ i; c/ @3 s- d4 e( x9 A4 F
. ?/ I1 n% O# n! ^. R5 u* v& Q E
然后你去* E* J0 [' N4 T- N8 \% E
0 s8 i# x5 ]5 I( C& v$ @代码:( _0 n0 L* k' d
代码+ }& B; ^) h% }/ `' B k' [1 y
BOOL TextCmd_ClearPropose( CScanner & s )
. o6 R3 V! l* ^, \{
3 o3 Y$ b0 I" ]1 j+ N- t) F. R#ifdef __WORLDSERVER
$ H8 @6 O& R' Q% i2 m CUser* pUser = (CUser*)s.dwValue;0 C" `3 x/ o/ p
g_dpDBClient.SendClearPropose();
( ?2 E% B# Z* V, Y" F% O#endif // __WORLDSERVER
, R! s& b5 Q& e& z& K: c9 |% d' u return TRUE;5 u( Y1 V9 v# D$ ]
}% Z5 ~+ D7 `# Y
下面插入
, a( q; r4 ~0 S$ @BOOL TextCmd_rebirth( CScanner& scanner )
: t. w. j9 J* v- i, ?{1 M6 C% y/ T; o' l+ h
#ifdef __WORLDSERVER: Y3 \- J4 D/ ]' E4 }* Q1 q+ Q
CUser *pUser;
. V6 B" E0 D! ]& n# v! D" }$ x0 ]pUser = (CUser*)scanner.dwValue;2 p9 l( P& o" i+ T
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 h6 `( ~3 ^4 P8 t% w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 d1 S) @9 W" H/ q( g* u
else+ m) J: i# q* i
pUser->AddText("你还未达到重生条件!");- J, M9 }4 v& n9 w' U
#endif
; B& n2 ]3 q# h- M+ }" N2 A! mreturn TRUE;
7 e' j1 d F: D0 w5 x8 T4 h} ) W) P+ W. q2 s5 k/ k
$ S( ^8 `. O- `! {! [) F
4 Y- q2 m1 T* F0 I+ }6 r; S
; N7 J! o8 a# P; h3 T
9 Z! Z5 {$ B8 Y9 f
|
|