|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& N9 @4 y/ b; P0 _% k. C! v1 ?: D0 {- v5 V [+ c6 j: k7 D3 @% }; m0 T
Mover.h
[& Z. S+ e! }5 l代码:* g* _' n" W6 R, I9 D, C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ d" c$ g# S5 k7 X4 K
4 p" R, n9 B6 g6 X* g \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: ?- |! }' g; Q6 u' H2 y+ k7 b3 X9 [
J4 W7 u+ ^6 S3 b6 \然后你去mover.cpp添加! h7 Q* D% k, @0 x$ `
8 t$ t# t7 ~) M" ^/ S- f
代码:4 z; C$ r4 ^ ]3 ]( \# E& o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 j$ ^" ^8 d/ Y0 i3 s! _{
6 s! F+ p6 \6 o/ s+ F' \" f @$ I8 k#ifdef __WORLDSERVER
. G2 S$ w$ H" F# @& R" Y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 h0 }. ]1 y( L9 i( M' S% P
MoverProp* pProp = GetProp();" |+ h- `: X0 f! `1 _) [! E+ s! l
if( pProp )- q8 L6 e p( {2 I
{
4 [3 @; u' [/ \) ]# C8 d, Z" _ if( nJob > 0 && nJob < MAX_LEGEND_HERO )- A& V0 _' W% B1 d, ^9 i
{, S% ]' ]1 Z2 M/ V
AddChangeJob( nJob );
, x6 ^4 M# c6 s, Z% j# s5 k }else{
) f( j5 _# D( U* A; X return;
% ?1 `* W0 Y! Z% q2 L }- f0 E) m$ b- i7 L- T1 ]
int nPoint = 0;. l! M2 R8 v/ C9 a8 W5 _5 |
if( m_nJob == JOB_MERCENARY )
8 K6 c/ H" r0 z0 R9 n6 b5 Z! ]8 H- M nPoint += 40;* M& P7 W# m' }
else if( m_nJob == JOB_ACROBAT )
T, x+ K7 L3 L! f d7 |; | nPoint += 50;
9 ^* j. j& e D9 f0 P else if( m_nJob == JOB_ASSIST )7 j3 I* B0 V* ~/ N' ~
nPoint += 60;
' p# K: A* f. m else if( m_nJob == JOB_MAGICIAN )! K! l9 h+ u# K, ]+ k3 ?+ S/ A
nPoint += 90;2 X( t3 i; M a( o2 I' o( @
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ O3 u. }. e3 a4 O) S) }+ r. p nPoint += 120;
+ B7 K$ r2 h* Q! P2 }* l5 _; g, L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 K) L1 z- `9 |$ l: r8 B% g
nPoint += 150;
& E3 {3 p4 o( G* J0 C8 f* E else if( m_nJob == JOB_RINGMASTER )
, D7 c& D; ?$ U+ [* x nPoint += 160;+ _3 H) A8 E- p( ]- d( s
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ g( |( m1 g! b# I3 i& ?6 X% x8 |! A nPoint += 180; u) m. v$ \; l: _; ~0 ?" ?& w& x! {
else if( m_nJob == JOB_ELEMENTOR )9 f+ J2 y" ^$ b- _, J4 W* @
nPoint += 390;
+ m' F0 g! U8 Q8 C" ~ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) i v: f4 O0 B& @1 z# R. t
nPoint += 120;
- S/ K- }9 y, R# L2 i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: Q4 {& U* R6 H4 q2 N: g0 I nPoint += 150;
" s9 m. p( a9 b5 A, V else if( nJob == JOB_FLORIST_HERO ): Z. ^5 B1 m- C. p' M; d
nPoint += 160;: G E+ b( q( z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' N& ?" i6 T) p! U. I3 |, k nPoint += 180;
/ L: U4 E9 o/ K6 H" S: I p- P else if( nJob == JOB_ELEMENTORLORD_HERO )
) H. W% {8 n1 r nPoint += 390;# m5 i; k* i' l$ O5 L
/ Z# Q: p6 i1 t& n' \) O" W AddSkillPoint( nPoint );$ g" B4 I* k0 v
m_nLevel = nLevel;) K/ s4 w0 U) q1 t3 o e; U8 O) A
2 q+ T) ~4 m( X" p SetJobLevel( nLevel, nJob );% `8 }/ T/ M* Y% n
m_nDeathLevel = nLevel;
3 V" G" j4 v8 Y5 B6 q) U2 d#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. @" H, n, }1 U! v3 Q if(IsMaster())4 F& m# c" R, L( P- t
{# p! w# i' y8 f7 H4 j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 H0 R L$ T L
if( nLevel > 59 && nLevel < 72 ): Q3 t" m5 O' n
dwTmpSkLevel = 1;1 H7 f+ {6 V# l+ _# y* a! o
else if( nLevel > 71 && nLevel < 84 )
& `; Q3 j: I u$ w& G) } dwTmpSkLevel = 2;
7 |4 q" [! T1 p else if( nLevel > 83 && nLevel < 96 )
0 A7 \: c9 `4 c/ W5 Q5 x, O dwTmpSkLevel = 3;
; _1 I$ C* y+ G8 Y0 t) K. v else if( nLevel > 95 && nLevel < 108 ); @' u- F( N9 [3 q+ v
dwTmpSkLevel = 4;
# `; F. m' `5 h else if( nLevel > 107 && nLevel < 120 )
& p% E. S& k4 |; B2 A* } dwTmpSkLevel = 5;
; E3 p. E$ i7 _/ G4 i8 }; j% R- L! A for( int i = 0; i < MAX_SKILL_JOB; i++ )
! }, a0 |! Q6 |* N" y) v3 D& [ { 0 B j, h9 O% s% S# Z) J- g: N
LPSKILL lpSkill = &(m_aJobSkill);
/ [% d! W# ^0 x+ W2 g% L. ~, P4 g if( lpSkill && lpSkill->dwSkill != NULL_ID )9 o1 e$ A5 a# m T `$ |
{
$ E" V) \( E$ B! t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * l# u" K p- q: L+ e/ |
if( pSkillProp == NULL )
2 h( H7 P$ s: W# n- s8 t" D2 V* x continue;
, }$ p( A/ r u if( pSkillProp->dwItemKind1 != JTYPE_MASTER), ]5 O- ?4 |8 @1 n
continue;8 [5 j2 d: a/ j8 |$ G9 J, K# |5 S% L/ D
lpSkill->dwLevel = dwTmpSkLevel;
) s7 q5 u: j* a' r5 H }
" H# V# e( V3 K& [) E$ J1 j+ m: E# K }
* T6 S9 C# x) j9 d0 f3 b }' b* U+ d" x" i+ |+ ?9 m1 v t+ }
else if(IsHero())
& C+ ]1 [1 }& j- W {6 D6 U& s4 m% h6 d5 P- `' f8 |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 y c0 {3 y$ V" l4 W+ N6 g8 h
{ 1 P1 x7 U8 e, D# L
LPSKILL lpSkill = &(m_aJobSkill);2 \2 t: O6 T; u3 g& L( Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )! M+ L9 o6 G' i$ H
{
. R x' |' U W, t( S4 b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! D3 f+ C8 d- ^+ t/ Y if( pSkillProp == NULL ). ~/ `. Z* D/ e5 C4 M$ l8 n5 V
continue;
0 d4 N2 f7 K3 j/ A ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' e# }7 ~) O# K! ` continue;' t; _% |- k6 W% _
lpSkill->dwLevel = 5;. |% X2 O6 I: \& v9 a! W0 a5 f
}* c0 O, \: L1 q8 P4 D( _
}) j: N0 |- G& a/ K- w
}
1 c. @, N9 S8 z. g2 D5 C else if(IsLegendHero())
8 u# k& F* X( F A; l" o {; N2 o+ ]. U* P( T$ f: }0 U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( Q' O! ?2 K$ T3 C( } { 8 P* x7 u3 b- M/ s1 X& D" I2 @
LPSKILL lpSkill = &(m_aJobSkill);& N B3 |$ `: p' G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 D. ?' ?* ~5 h! `: {7 X {* j" l( d* ]; I9 o9 V6 w( B2 j, z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% q5 H5 H3 a! m5 q if( pSkillProp == NULL )
1 N( ^3 J4 Y" v9 L1 \ continue;
. n [, {5 c9 \1 ]8 X$ d if( pSkillProp->dwItemKind1 != JTYPE_MASTER). N* P1 G! [! M4 {$ O2 F
continue;0 R7 t* n3 @, k6 C3 R- W
lpSkill->dwLevel = 5;
3 @! m) }/ w' r& W }
# j/ a4 F$ f7 ]1 P }
2 E+ L% N' m: g }( C6 z7 @0 j. Y: p! q1 [0 J& V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# Q. z% ^/ p- T$ I if( bGamma )
! m0 L$ Z6 L1 G2 {& ? {5 |8 m# e7 S' A* f# ~6 u- C
m_nExp1 = 0;
6 X. ]( J% b6 T- N; n: q }% s/ v/ E: V6 v& ^
& S0 q1 H: S9 N( g2 p+ { ( (CUser*)this )->AddSetChangeJob( nJob );6 P: R) |* N$ U) ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 Y5 x# t' x! \% e O7 }- h+ R/ {& N/ u5 @
' j( Y! j' ^! g9 J( r2 {7 G Z; Z9 a1 W#if __VER >= 11 // __SYS_PLAYER_DATA
. g4 E+ H3 w9 H6 k! a g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ |0 a: z3 E2 F8 u. B4 A, e
#else // __SYS_PLAYER_DATA- X6 _6 J" X1 v* }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ A% s' a: s8 Y7 b
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 ?$ o# x) u/ S8 V. w
if( m_idGuild != 0 )& M0 J, w/ }8 X6 t1 P' }1 \& ~
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: a- |" ~4 ~2 V; ]% e+ ]
#endif // __SYS_PLAYER_DATA" C1 z+ M4 z" Z# a3 |, X
SetHitPoint( GetMaxHitPoint() );9 D( t! w- j( _$ l0 Z$ A4 e
SetManaPoint( GetMaxManaPoint() );
, F$ T. S; U7 ?2 N! z" N SetFatiguePoint( GetMaxFatiguePoint() );1 U& _( t4 A4 n: Z4 c3 l5 A& e9 q
if( nJob >= 1 && nJob <= 4 )
: M# ~6 z. c7 \+ ~9 Y! H {
. v) S6 c/ o7 K1 S1 M m_nStr = m_nSta = m_nDex = m_nInt = 15;
! v4 _) z3 X& Y. }. r2 y m_nRemainGP = 28;1 b6 F* K5 r' d& x, o1 [
}
6 u% R8 P) q6 r+ H3 C; ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% s# R. H6 @/ q7 I: O9 ?3 C {) b/ n# F) M1 |/ j$ X% g0 ?
m_nRemainGP = 118;$ [$ t9 f" J) ^9 A5 o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 R5 G' t( e e3 ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ s; J, u( ~# j, q }
9 P8 ~2 ?$ L7 c if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ _: \5 c. w+ K) W" }/ C {
0 |; A8 T5 r ~1 e8 ^8 x, y CItemElem itemelem;
. g# `9 n$ R, s: {* s& Z itemelem.m_nItemNum = 1;
% E9 S L. ?6 W3 }3 g n. i itemelem.m_bCharged = TRUE;5 T, V) D- C3 b7 Q1 l: i8 z
BYTE nID;
, x7 N& m: C$ ^7 Z/ N
3 o3 z$ @! d* h6 m L" N) D if( nJob == JOB_MENTALIST_HERO )
& [8 n1 V3 m' C9 R. C1 L- o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ q4 W3 F6 I6 j" @) @) t( y
if( nJob == JOB_FORCEMASTER_HERO )
) z" E8 h. z. x) L4 P1 k P9 a) Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 }( ^, q. S( F$ w2 [
7 ~" X# }1 ?% A) ?. V! b& H) L, z ( ( CUser*)this)->CreateItem( &itemelem, &nID );9 h$ O. I7 _/ ^8 w4 w. Q8 N
}) T+ Q+ ] m: _# _
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! [9 g! x; _" Q7 q& U! }8 W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 S/ Z5 J+ b$ t* t6 J3 Y3 o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ O+ P3 i' E9 ]/ ]$ b' ]! h /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); H- e$ g3 |) w! ]- G
( (CUser*)this )->AddTaskBar();*/( k _3 v" A! d0 G5 ]2 {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: x1 k# u" h8 ^
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' b6 b/ `1 n3 X
((CUser*)this)->CheckHonorStat();+ ^2 n" _( M. h: [
((CUser*)this)->AddHonorListAck();
* j! n; f5 D7 d' J4 w3 a' }- f g_UserMng.AddHonorTitleChange( this, m_nHonor);1 \! { o/ P& p* \9 X! E7 ~
#endif // __HONORABLE_TITLE // ′Tà?4 o0 t" ~+ x: C
}4 g2 |, r0 b! |8 j) T1 E
#endif // __WORLDSERVER; ^! f5 Q/ h' B+ D4 ]
} ! M$ `9 B8 q0 c9 @2 W& k( ]
( v5 M% ]8 f4 T" u
然后你进入functextcmd.cpp并添加以下) Q$ M3 l% `( g: G7 p
# w# x6 m" Y7 Y0 I1 }' o代码:
3 I( L, V' b/ e! fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! k4 Z, {/ g' ], q. i4 @ t下面插入7 @. I0 T. E7 W& m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 Y- @0 z u3 D- S) L
. z, b% s% p2 R. p) |8 n* u/ g9 t$ T然后你去4 w2 d" L: j% ~5 E6 y$ g. {- D
# m; \( B0 j6 ]& \( c$ s
代码:$ A w" I$ C2 Q
代码
, k; ^/ }2 ]* w$ Z$ kBOOL TextCmd_ClearPropose( CScanner & s ): P4 g" g& V4 |$ `! d7 s
{
8 t1 F `3 ]- L#ifdef __WORLDSERVER
: {2 U4 i$ w8 s CUser* pUser = (CUser*)s.dwValue;
* r T+ g" t; A: i0 E6 U J- V g_dpDBClient.SendClearPropose();( [! f k! w8 O
#endif // __WORLDSERVER
: W/ i0 E- A. O& a, v return TRUE;0 y* I+ e. N5 R9 [* F
}
( `% y5 f) \1 M+ ^& ^# V下面插入$ |+ U3 O& E4 V
BOOL TextCmd_rebirth( CScanner& scanner ): K7 f$ ?5 n; Q* W6 @
{9 q/ E% [4 P, p
#ifdef __WORLDSERVER. d, x6 V5 x$ {3 Y
CUser *pUser;1 ^/ _5 o, g4 c
pUser = (CUser*)scanner.dwValue;# Y. t: o! c- j0 N* \" h1 @4 b) h
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- K% x+ m" `1 GpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 N E0 S2 q8 V/ y$ O6 M2 ^else( K2 i- ]3 ]+ P' M1 r3 I$ E( q( ]- ^: |9 b
pUser->AddText("你还未达到重生条件!");
2 w) N% a1 G: Z#endif
" c4 ?7 W7 s8 n" a5 y( Dreturn TRUE;& e4 T' M/ n- J
}
2 m) F/ A$ H a& Z0 `/ h' W; c3 V' A) P, V8 y! Z# I( V4 ]
. ]* g/ V9 y4 `3 L4 m. b
* H1 T3 N; J) i+ c# ?& I
% X) N1 F5 Y, ]* [0 W3 j |
|