|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 O. O& Q7 F5 u- t* L; \, ^
- O" V' d8 Y& Q# q7 A0 YMover.h$ l' Y' b7 V/ R6 U; ~
代码:
1 e1 F& B* a0 X1 Y! O+ |( P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: y* Z7 o" Q( T
( I3 D. X! C1 j0 t1 d8 [下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 }% B% g I v, o4 g" R T* Z6 G$ T& t# H1 b
然后你去mover.cpp添加& e6 Z) L: C1 z s/ r! y
. s% R# a) b1 g* t E( a代码:
$ s! ?9 o: F$ [* yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% C8 P! Y- l6 U" {9 k0 }/ S{
# o, }9 @8 E/ {: V8 d6 s" i& M#ifdef __WORLDSERVER
7 \, y' t$ `/ R9 V$ D // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 M; H L: A5 h MoverProp* pProp = GetProp();
5 |; l+ G. a2 F6 e if( pProp )
" B: \/ M( U! Q4 f# W+ K {6 M9 F( \" c" j! }- v( Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 @6 ?/ h6 x6 |9 `% t {
0 m" t+ @: l( p4 Z AddChangeJob( nJob );
, h6 }; z7 F Z4 W- \ }else{/ l) ~6 I6 v" B. a: l, f
return;- ]4 p! X; E6 d7 _# k5 u
}) z2 }: Z9 I- P: a
int nPoint = 0;9 E% M( [2 K6 u$ C1 `- |# h
if( m_nJob == JOB_MERCENARY )) D$ C0 S+ f/ X0 F6 w5 w' v0 B
nPoint += 40;1 v, R( u5 V2 A& t r- K
else if( m_nJob == JOB_ACROBAT )6 d" P! f+ B2 B8 d, r! ^1 h
nPoint += 50;
! K' O! G- D9 L) z else if( m_nJob == JOB_ASSIST ). y. k4 D1 B: }% e$ S/ T" Q
nPoint += 60;
' l) }* [ a7 t k else if( m_nJob == JOB_MAGICIAN )
2 K2 Q* v2 `- u1 \ nPoint += 90;4 @% p# T8 z; o" D0 O: p0 B. U
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 u/ x8 [9 [3 n nPoint += 120;, M" K: x7 r* c! J, L/ ?, V
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. _2 q* S& R/ r& S nPoint += 150;% V. ~) v+ V5 r( E' Z
else if( m_nJob == JOB_RINGMASTER )
/ i1 V1 h1 z0 c, p! A( e" [% e- V nPoint += 160;
# v8 M: d- `5 k) z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 _# E9 B# c: Q. f3 K
nPoint += 180;
* E: v/ u& Z7 P% J else if( m_nJob == JOB_ELEMENTOR )
: @7 L- r' p6 F, c nPoint += 390;1 e& F8 a- {, Q, n
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% h, }* {3 g4 y* n+ n0 ?9 x nPoint += 120;
" Y( o2 b/ ~- y& z3 X- l else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! w4 e6 I/ i' S. O$ r. W, K nPoint += 150;
Y! A% ^( X) H0 ~3 O else if( nJob == JOB_FLORIST_HERO )
0 s5 H: S: x+ Q nPoint += 160;" G4 k5 ?6 U% ]" u7 k" {' ]3 U% ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! R% q! j% I7 B' Z [- H* i+ x3 E nPoint += 180;5 g( s' L' d1 F! g% y. B( o8 X
else if( nJob == JOB_ELEMENTORLORD_HERO )/ i/ U( _) ]9 z( w e C/ H
nPoint += 390;
+ m+ e3 |% C, P6 ?* v
. p1 E1 {/ M! g% T3 e6 z, G AddSkillPoint( nPoint );
$ X; }9 k( _" f: u9 l* M8 C m_nLevel = nLevel;
& p+ S4 ^, t* ]- m; n! Y$ c0 a) L! n; L, ]; S
SetJobLevel( nLevel, nJob );
; S7 s7 j( T# F2 P+ y& t% u m_nDeathLevel = nLevel;1 ]* s) j& z- b% ?# c
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" A7 f0 V+ [# u8 d9 i
if(IsMaster())
& q" S( }9 r1 a3 @) Q {, c4 T1 `, _& t+ s S6 @0 W3 g2 w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' \- @# Q/ C. |5 f- x' | if( nLevel > 59 && nLevel < 72 )2 q" X2 K2 \2 s" f# z; I
dwTmpSkLevel = 1;; V; y) D4 o' U4 r2 O- z9 ^
else if( nLevel > 71 && nLevel < 84 )
+ T) Z7 g: t) F; H dwTmpSkLevel = 2;
7 S2 C" a) G" A, {% X else if( nLevel > 83 && nLevel < 96 )
" O: o" k. ~/ _* s( Z' M H dwTmpSkLevel = 3;% ]+ h6 h/ B, t- M
else if( nLevel > 95 && nLevel < 108 ); i: Z* `6 W! o! [" `
dwTmpSkLevel = 4;
' U* C( X& o8 k% b W else if( nLevel > 107 && nLevel < 120 )1 D; h3 ^+ s, E; b- H/ n
dwTmpSkLevel = 5;
" ~ G4 A3 A4 `. {4 K7 e9 B7 _ for( int i = 0; i < MAX_SKILL_JOB; i++ )
; ~5 E3 \; ^' `/ c. f {
( g# C+ V1 x! p7 c. b LPSKILL lpSkill = &(m_aJobSkill);5 Z4 [8 r8 H# U6 @' {2 ^- S, Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! A# T8 [1 U i' E( E# R {
p8 R+ S: [3 x, f/ f$ _" p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 y3 j. q& ~6 `( G+ N if( pSkillProp == NULL )
- X8 X) a$ X0 j; g Q, [) E4 }/ n continue;7 X" A8 Y5 j! Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% G: r% L8 J c0 z" H
continue;
; I( I4 S, z4 p) H' m3 C( j% C lpSkill->dwLevel = dwTmpSkLevel;8 A! ]! w4 @ U3 t
}
3 ~6 |5 i9 k: n/ X" v6 S2 R3 b }, C' H& `9 z$ i4 }. \2 E
}6 d( s" G/ i% x0 ]% o$ n
else if(IsHero())
' O7 ^0 [0 e6 F8 p7 i {3 ~7 _% D- u" x5 S+ C' z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ ~* p" Z. w# m0 v {
6 _6 @' m- a) Q* V _( a4 { LPSKILL lpSkill = &(m_aJobSkill);. X: \. u% K p' n7 J
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 [! Y1 p% p& @) k1 D5 Q; |
{
5 {* ?) y8 R6 C2 S( F# w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ^7 x6 R, L# ^. J0 a# ^
if( pSkillProp == NULL )
Q% O9 b/ J* f7 J) X continue;
6 e& Q- _6 r0 a: L1 r6 U" h6 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 j5 `' V0 ~1 |1 T
continue;* {$ ?9 ?' k) a8 e0 q
lpSkill->dwLevel = 5;
+ U% ?. R6 H& ?2 K" Z& |: A }
+ u9 J: e2 C' {8 M6 f% G/ i, F }# w3 s& A9 H h; O8 K. w5 H
}
' @3 h; o) J, ~ Q3 A else if(IsLegendHero())
* y! \! l' ]7 v0 D& O7 ~ {
; Y% b; u# g8 Y0 Z, F, \# ~# p for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ y) A3 x; N: M# U: B8 W+ e {
7 k, d# f; b8 d% ?' G: o7 G LPSKILL lpSkill = &(m_aJobSkill);
# Z! \% h- ]! C$ ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 k6 j0 l+ H1 a; R# `8 ]% s9 J0 J' Q1 K {# T% ?3 n/ d3 ]) n% y1 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) O9 ]! j8 M1 @ X
if( pSkillProp == NULL )
2 R/ r9 X M) t! @) h; u continue;
9 B) [8 l- b) H6 A! ~! ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' U' r+ c3 N1 }+ n
continue;
j! N6 J0 X$ r8 A2 I lpSkill->dwLevel = 5;
5 ^# W, v9 c' `" q; | }6 y& V/ b, I2 N p1 ]3 {/ u
}% B! T# j/ G& }2 I$ f1 u
}9 V: o4 e% y1 c/ l y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" [; [: [$ T- ^# @1 T8 b" J. f
if( bGamma )
% |5 P" {$ F7 m! n9 \3 R {
9 V t: L' ~1 H3 o; s m_nExp1 = 0; T) J0 O& R' |' S
}
# ?) B( }4 `# B/ R& ]$ d- Y- J
8 Q: T- g' g3 Q ( (CUser*)this )->AddSetChangeJob( nJob );8 q' Z2 Q+ C8 o3 m( f1 T
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 l1 R" S8 ^0 [ K; F
& F7 q& L0 I G/ |5 Q9 h& {3 s, [7 c( I+ v7 \
#if __VER >= 11 // __SYS_PLAYER_DATA/ G, f1 V7 L. {3 ^5 F8 X& X [" W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" Y+ N7 F# r6 w( y2 H
#else // __SYS_PLAYER_DATA
( H" I$ \' u/ K0 m. I, g g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ H" T" ] c# b) I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ J& _/ R* K0 q' m; G4 [3 H
if( m_idGuild != 0 )
) `8 Q/ r* ?" A5 {* O% O( e* m g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) K! ~4 w4 O* n#endif // __SYS_PLAYER_DATA* `/ W+ M+ t$ M: m( i! A3 E8 f
SetHitPoint( GetMaxHitPoint() );
/ V5 R1 Y' |) p7 _ SetManaPoint( GetMaxManaPoint() );! `& u; T9 `1 n8 N
SetFatiguePoint( GetMaxFatiguePoint() );6 U+ B6 R6 {, i, s+ J) [
if( nJob >= 1 && nJob <= 4 )( f) v7 Q0 h% _# v" A
{
n8 T: Q7 `* Q2 T3 F m_nStr = m_nSta = m_nDex = m_nInt = 15;8 V: n9 ?9 _$ _( {. F& T' B
m_nRemainGP = 28;
5 E: h8 N) N0 L. J" c% P }
" |4 ~: j& f5 e9 M+ S# S9 q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& b4 I8 _0 c. U3 T4 G+ }5 a- h {
" R8 Z* Z: _; s- l7 r; { m_nRemainGP = 118; Z# n; N: F; u" j- O- a* @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 d( C, V! S2 Y6 j: _8 j0 x1 [$ e m_nStr = m_nSta = m_nDex = m_nInt = 15;0 h% E! r, R* [; Q8 c
}
2 K$ p0 e& l5 _# g5 g( a; G5 k4 F1 F if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# V- Y3 B7 X& l/ @ {/ Q. f% T9 G# l- e4 M% r2 w
CItemElem itemelem;0 |& K' b( q' t
itemelem.m_nItemNum = 1;
" Y) ~6 c2 \2 e# o$ V. ?2 t! E itemelem.m_bCharged = TRUE;# l4 I7 c+ ?& q- E- E
BYTE nID;! D9 d4 G9 `: S2 x/ Q% `
$ i; m* @; h' k if( nJob == JOB_MENTALIST_HERO )
* Q% @+ s4 |, C itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ }6 U7 g/ h0 W& S
if( nJob == JOB_FORCEMASTER_HERO )
( P" h+ \, k# W- L; s( ^ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: Q% R0 ^7 d. _" P, W4 h! k, E
' P( D6 ?/ d5 |* {, B ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# \3 i& v! r+ y }8 ?$ R0 ^! X+ d1 T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 p. m9 I0 |) Q" H
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 |9 K5 X0 G9 D$ {0 \" b, l$ C6 I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& {$ ?/ N- K# b6 _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& S, G7 P: [! |3 z1 b: c/ n( ]5 k9 W0 t
( (CUser*)this )->AddTaskBar();*/" T. p _- X! `) @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% d% C' t) P3 X$ d+ K4 V#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 N" l2 E! V$ z* B; H x1 f
((CUser*)this)->CheckHonorStat();
, j3 p8 h4 Q; G+ q( \ ((CUser*)this)->AddHonorListAck();8 j0 g# e9 E! z) V1 g
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: s4 f$ [8 [: K#endif // __HONORABLE_TITLE // ′Tà?7 R( ~/ h6 P7 Y% c x8 S5 d* N- U
}+ y# `# e3 r/ B3 D. [& K" }* R
#endif // __WORLDSERVER
, M/ e' K( D! m1 i6 `' e} 5 F# c7 p9 g; }, _/ F
1 X. {7 s+ |) A% e然后你进入functextcmd.cpp并添加以下1 r5 }1 [! \2 P+ S, m- p% A$ k0 H: d
- g( _! n+ l8 l# N* Y. a3 h: L o
代码:/ Q. M/ \% U3 V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), D) O+ ]: t) s* c( k9 L
下面插入' \ E# n$ _& k6 z, q D
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % ]8 z0 Y6 {! I) S( t# H4 k* w5 s. y
7 g0 V" ?6 q6 ^: m" e4 o
然后你去
, P7 l% Y& Q4 h8 z6 r
T; M- Q- H+ o. Z! n- J7 J代码:
/ @$ `; p$ n% _2 U代码2 ~0 E6 e" P% [5 |+ I( M# o3 p9 } X/ I2 o
BOOL TextCmd_ClearPropose( CScanner & s ), e2 e$ `! N [% Z( ]% u
{
9 Q9 B' M1 p( G" e" z8 h#ifdef __WORLDSERVER
8 p6 L' a9 C% N& k8 X) z CUser* pUser = (CUser*)s.dwValue;) \1 \/ \: Y: b4 d+ W' t
g_dpDBClient.SendClearPropose();
" e7 N1 m) b/ v#endif // __WORLDSERVER
! A6 ]3 z5 G" q. S/ N$ b* }+ }* l7 c5 c return TRUE;
0 w, c9 j/ b3 Y- Y: C4 S}! n* j7 p8 _; q" Z5 t. V) t
下面插入
c4 Z& B! Y" W1 f+ @BOOL TextCmd_rebirth( CScanner& scanner )
1 Y7 G; h7 A- V4 k5 d( K2 a# Y0 {8 W{( l# w* [9 E: L+ I, C+ l
#ifdef __WORLDSERVER
6 b9 ^0 ~5 p+ m6 S4 ~; U& @CUser *pUser;
0 l, m' ?. n2 HpUser = (CUser*)scanner.dwValue;' L% i! x5 M# w, R$ ]8 T
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 w2 H/ ], f, P/ u, D, Q1 t' X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' K& {( b/ ~; Z- b3 X( D
else9 R* c2 [! g- w* ?' M+ @2 ]
pUser->AddText("你还未达到重生条件!");
6 x9 c8 _. b' Y8 d1 ^1 W' }#endif. F0 _+ S+ u& g3 ^
return TRUE;# o7 b) t; z) q9 B
}
: Z# a- K% r% C ]5 [4 h! N6 C: }. p1 b. j @% y# m! e) i; h
& y( A2 l9 ?! T2 T. z' K" J
7 e, m, ?8 A( i) s
1 B9 |- S/ u6 V) r2 C |
|