|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) `7 ~1 F# O0 e# X3 e4 W* g" M* q' W/ |& C. a. y
Mover.h
4 D4 i1 R/ ]2 t% T5 E7 V代码:
8 ]8 x" ]8 [) g, v! {找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 G y1 q6 `- A' ?: P
" q" L5 W+ ]* w6 ]) v3 @ h: Z: q4 K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 z3 R" @9 D4 v8 ]1 J" Q8 }8 Q' q. g, R+ q' a# w0 W" K
然后你去mover.cpp添加$ F/ _- q% w* A) O( e: Y7 `
; v8 ?. F- v/ h! S9 z6 E
代码:' V3 C% @9 Y1 I9 Z4 g s% R) `( M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% a$ k0 [) q2 f3 n7 s" [/ _
{' Y0 V) p3 i6 Y0 H
#ifdef __WORLDSERVER
* S5 t6 c+ Z. ^+ q3 ^1 z9 m/ ]" b // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 u) e* Q; r! d9 R MoverProp* pProp = GetProp();
& I( @( [( Y+ g# \2 }- k; A if( pProp )
! c4 [8 M) j+ [7 \8 q0 N {! H, @+ d' W* ]& V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 s6 d( D! f& {' ~
{
& f% E# v# Q; U+ r9 ^ AddChangeJob( nJob );1 z0 \' |# ~8 C! ~- y- B
}else{# _9 q) G: f& J3 E) r" j
return;
- m4 m5 {) K0 t c8 [# H8 s }
; N* k2 g0 l8 T: {" d" o int nPoint = 0; y7 F9 S7 ?+ k, j/ H
if( m_nJob == JOB_MERCENARY )) ?5 l5 ~- X u1 z3 w8 f
nPoint += 40;! |- _3 O2 V- R H0 o7 V* x
else if( m_nJob == JOB_ACROBAT )
! K& c$ ]5 @( k. z2 V nPoint += 50;) J: i5 Y1 }0 m I' G: ^! G" a
else if( m_nJob == JOB_ASSIST )
7 ^# T% n6 [4 O8 Z nPoint += 60;
3 N1 P( Y- I4 _! w) C+ Y, J else if( m_nJob == JOB_MAGICIAN )
& i. l& o S6 ~& }" _ nPoint += 90;) N# T [( C- u5 z1 ?+ e1 A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) v" Z h4 G8 k" \6 p4 j* J5 I; D+ |
nPoint += 120;
( E- h9 F5 c3 C' G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. J2 ?" Y5 Z. K' ]& K7 w) a nPoint += 150;/ @% k9 c$ c. D2 C% @ K2 M7 k
else if( m_nJob == JOB_RINGMASTER )# i m0 F, Y% x4 L
nPoint += 160;
0 u+ \7 g( y% J& Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 v( Z6 d, ?8 c) v4 e
nPoint += 180;5 w' R3 P. o( \" H8 B5 `4 C- h
else if( m_nJob == JOB_ELEMENTOR )$ R: }# B) S8 m
nPoint += 390;
8 L5 u# Q# V- Z9 _- K* ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 b) G" I/ F2 S, _, v nPoint += 120; l+ j9 b/ z9 J4 }, f9 Y6 [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, }0 }6 ~2 d+ ]$ ?$ l" e nPoint += 150;
: C. s) W/ w8 L" X else if( nJob == JOB_FLORIST_HERO )
: X& f5 M3 ?% t$ U* `# Y0 I, v nPoint += 160; o+ Y( ^+ I" N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 Y4 R0 Q* U; G8 R
nPoint += 180;
& z& h: v, k! Z* O. u else if( nJob == JOB_ELEMENTORLORD_HERO )
2 y" _: f2 u& n" j% a& h! N nPoint += 390;/ m! c9 f% C( J! R! Y' Q* j
K$ L9 @. Y. F! [; w AddSkillPoint( nPoint );
' N3 K! s7 I; U, z9 c m_nLevel = nLevel;
" a( J6 [9 b1 ~; q: h6 u2 m
4 |: B* w& d1 w4 Q* V- y: P, I SetJobLevel( nLevel, nJob );2 f: A4 L j6 M! g+ F
m_nDeathLevel = nLevel;6 n. o7 b2 u; g; j# J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ c, k4 K9 [# W* z8 v. u
if(IsMaster())
6 a& W+ R2 D. d; H {! u( x* E7 Z4 W; ~" {: ~
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" N9 s8 }/ y& I2 ^; [ if( nLevel > 59 && nLevel < 72 )9 ]0 i) J( o7 d! b2 c
dwTmpSkLevel = 1;
5 [5 c; Z# D% v+ j; | else if( nLevel > 71 && nLevel < 84 )
% J& k$ U% t; p dwTmpSkLevel = 2;
4 a" U+ {. W- M3 ~. U4 i* G6 B. |: Y else if( nLevel > 83 && nLevel < 96 )
9 J8 q) H0 l' f8 s7 b0 r dwTmpSkLevel = 3;
. s7 w" T6 e! n' O else if( nLevel > 95 && nLevel < 108 )' S% Q/ D! b) o( o% e& b$ _7 N
dwTmpSkLevel = 4;
1 t( y. S' H% d& Y# [ else if( nLevel > 107 && nLevel < 120 )5 P( Y" B |0 O! J/ i1 b; r3 ^9 X
dwTmpSkLevel = 5;- Z/ k& v B i# t5 i9 c. s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! S/ g' U* i* f) J { : a9 c: I9 I3 ] I) p( p
LPSKILL lpSkill = &(m_aJobSkill);( ?) V h/ x" `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ v. B) h8 x: a# t+ R$ z {
4 G) g" w, o# L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " x" ^" H, |$ |. Q
if( pSkillProp == NULL )
: x5 _5 z0 c2 O continue; ]0 `2 S; R$ x; p% U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, M6 e2 s/ A! X# t9 y continue;4 \4 F( d! j$ k3 R
lpSkill->dwLevel = dwTmpSkLevel;
) B K* O9 ]: `' s! N" z C }
n! a" S3 A' u1 D }* s0 Q% `7 K- G# S; i
}# N$ M _& j' |. |4 C+ R% @4 ?
else if(IsHero())
3 m2 {4 b+ I$ ~ {" x3 g: b/ O0 `* X3 w @
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 l& F6 c; ?5 h. h. y { 7 u0 X5 {0 A# j6 h1 ^7 T, D' C$ c
LPSKILL lpSkill = &(m_aJobSkill);
+ W7 e0 F5 w5 c/ ~, n U" C( v if( lpSkill && lpSkill->dwSkill != NULL_ID )- j) [6 e4 u: z0 E- L, M
{
/ X+ O4 `0 V: e; E6 I4 |6 u! L- ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 {" J6 J M5 @4 X/ u% s if( pSkillProp == NULL )
% ] f9 F( o( }) a$ I continue;
: L g3 L; Z" K. g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 ?4 @) G$ S* L3 }! [; D' u% Q continue;; a9 y7 S. o6 L& ^
lpSkill->dwLevel = 5;
# A4 [0 G' P2 M) v& z }
9 l7 |) L: P! a* h x+ v }
1 }. j f0 M# m7 m" {5 D. F7 k }9 a; J) F/ D$ a% b" ?% k0 M
else if(IsLegendHero())3 e# Q" t0 s6 @5 v4 z
{& V0 x& U: W0 z) l- x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
r4 ~9 E% ?( d& X { 1 {# V7 [" k, I* _
LPSKILL lpSkill = &(m_aJobSkill);
+ R/ a, v5 ]7 A+ P& l; v/ w if( lpSkill && lpSkill->dwSkill != NULL_ID )% x, w$ X! c5 T
{
1 I2 [$ ^+ w0 S2 W0 J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! c& X5 W+ @, c9 g9 Q. m$ T if( pSkillProp == NULL )
$ o X, n3 ?0 h+ h$ C: P9 M continue;
/ ~6 s- t' K8 O2 d if( pSkillProp->dwItemKind1 != JTYPE_MASTER), e" t5 o5 S+ Q9 p. T6 k
continue;" S; x! n6 u' }6 ?) p& i- _
lpSkill->dwLevel = 5;
0 H/ m5 |+ {$ Y/ d2 T }
9 W I! Y: N& u3 P1 U" I+ P$ G2 P }8 f+ n8 |7 R6 Y8 f# ~1 R
}
5 A! U1 ]$ l5 H6 g' {0 X% O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! q5 s9 s* a7 t |7 h5 E
if( bGamma )
8 m' `; o# N4 K: D* d$ ^) I3 l# x5 x {
, u, m+ [4 O x* I3 p# {$ h8 b m_nExp1 = 0;' T$ `: Q' G, x0 m! H* Q% l
}$ Y; z j/ T+ D# V- Q* D( g9 c h
, |8 f% C7 d3 p/ E+ G% d9 W ( (CUser*)this )->AddSetChangeJob( nJob );
. h1 z" p2 ^+ [) @( ^% g g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( _7 T3 p5 r. ?! r) v
9 N: K6 P# r0 [3 z% v
/ B# E3 h5 B+ J#if __VER >= 11 // __SYS_PLAYER_DATA4 O- f; z W0 [' I
g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); x' f) \: N7 o+ u; p, O" }
#else // __SYS_PLAYER_DATA
6 l n4 W( E" D+ @" F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. _! I- F: O- a* \/ \ Z5 U
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 A$ \9 K9 E' X4 H; g7 g if( m_idGuild != 0 )- i$ ^9 |3 {5 t& t* u( c2 n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 e! F+ L$ B2 _- N! Q3 i* P#endif // __SYS_PLAYER_DATA7 p9 p0 [' c* Z+ i2 }. X# ]
SetHitPoint( GetMaxHitPoint() );
( Z& J. F0 ~: ~. [. @8 z* \* }/ A SetManaPoint( GetMaxManaPoint() );
* A* N0 Q: D# U SetFatiguePoint( GetMaxFatiguePoint() );
* _# z1 w3 {- `. Y6 D6 u if( nJob >= 1 && nJob <= 4 )( X! b ^* [) I# o
{: U5 |8 w/ _; T! U
m_nStr = m_nSta = m_nDex = m_nInt = 15;: R5 I: Q, [, M) m9 Y/ ?
m_nRemainGP = 28;
, [) Y2 ^. q+ q& M$ R4 U }
! f+ e7 h( {# U5 [4 w# ]9 X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* C8 |/ y7 c% D! K( ~ {' X* H7 q. P) b& ? n/ V/ g1 T
m_nRemainGP = 118;
6 Z4 K7 o. R/ G8 h6 _$ R4 b //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. d% N: |; F5 O- { m_nStr = m_nSta = m_nDex = m_nInt = 15; T9 r$ U0 \. z
}
+ H: W1 P+ F) x( t' H7 r' { if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ A" \5 j! ]0 n H- I4 A. A+ s1 B
{
' `& g9 G6 l' d3 }8 Y CItemElem itemelem;
) ?( Q& X% s1 I( K$ w itemelem.m_nItemNum = 1;. H' Y9 K- V. ~! [; K
itemelem.m_bCharged = TRUE;0 T: Q4 ^ `7 m( {& x
BYTE nID;1 x0 ]8 c) i5 f& W8 V- J
0 S& d6 Y. q/ J+ I) T3 E8 Y" N4 f; Z
if( nJob == JOB_MENTALIST_HERO )
4 T+ l' |* v0 ^/ k0 O8 e: ]; f5 @ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ ^1 t! B5 A, D8 Z" G) C
if( nJob == JOB_FORCEMASTER_HERO )5 c _9 t+ }; I( y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- R8 j/ \" I6 |3 y
6 k8 H0 j" w- k5 b5 G) n
( ( CUser*)this)->CreateItem( &itemelem, &nID );; c8 R( i* I0 Q; ~5 Y4 B! X5 |' n
}
' ]/ \: D. B+ s/ E6 s g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( ^: v: z9 R9 l7 [* o# ^0 F# U' x ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. {& L7 F% _; [7 U; h ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- T5 u! \3 i* Q6 j' ?; O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% F5 d9 K/ p9 Q
( (CUser*)this )->AddTaskBar();*/0 E: O# ~6 ?: `' |5 h& l, A9 R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ ~2 a) Q6 q5 l# q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 ?' |) t( W' g+ ?6 K7 o ((CUser*)this)->CheckHonorStat();
7 i* @% j h ~) C) M" j ((CUser*)this)->AddHonorListAck();
% Q- v! g6 ]/ @8 d8 ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);8 p) {; O8 F$ I, ?6 ]
#endif // __HONORABLE_TITLE // ′Tà?6 D6 y4 i/ k4 h8 n( o, ^$ l# ]5 z; ~
}
; z. U: M5 A3 n7 ?' S1 _#endif // __WORLDSERVER; c7 ^8 e5 T. G$ u" N7 X9 ^9 K I9 A
}
" |4 m4 r$ s* `2 I# O9 y5 p
+ k7 Y1 K$ ^( e. _( D然后你进入functextcmd.cpp并添加以下. I7 m6 k9 m% H7 m5 R
) w( Y" |' Y. O& T0 G1 L代码:
4 @6 C* B @9 u4 C, y9 GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: U& D0 `' [8 M. [8 P下面插入& A8 S/ w* @3 Q, @+ {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. C6 o) r0 Q; K/ d3 B" ~- I, U
$ g$ M6 j/ T \# y7 q) q7 ~& `+ d9 |然后你去
' j" }8 g j+ P# D! x% P; E
' W- A3 e6 A: S( F% Q代码:& P1 N; d5 U/ f( K& l( c
代码
) K. B6 S! z0 ]8 J6 b# J+ L) \' sBOOL TextCmd_ClearPropose( CScanner & s )! j$ g" |. [% i
{3 v" ?" L4 Q6 B" v. w8 M% A/ v
#ifdef __WORLDSERVER
% C) w5 a2 g& E+ Z CUser* pUser = (CUser*)s.dwValue;4 s5 A, z. T! j5 m$ I' P
g_dpDBClient.SendClearPropose();. Z" f5 L: j* j' `1 {
#endif // __WORLDSERVER# f5 k/ ?9 \0 ~/ Y
return TRUE;
, p9 `/ z- r: q1 C" `}
* d. E# U/ ?( Y c' O, S y/ f! N下面插入
" `( q* q6 Q/ q$ v, sBOOL TextCmd_rebirth( CScanner& scanner )+ a; R* V& T; O- B$ U
{
: A- l2 G7 C1 d8 i' L3 @) a* l1 y#ifdef __WORLDSERVER
( d3 N4 }1 O5 Y9 RCUser *pUser;% k r: [* _+ R* p9 h5 X5 {( H; E
pUser = (CUser*)scanner.dwValue;
/ C% T" ^' T# M! }if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! w! w4 e8 o2 w1 gpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: ~1 Q9 T* V' ]( q- \
else
8 Z2 T/ B+ \: L4 ] r! qpUser->AddText("你还未达到重生条件!"); _; I3 J7 ?- ]
#endif1 m" W' D& H6 m' K
return TRUE;
7 j+ p j2 o; s1 x) ?}
0 C7 v- K6 k8 ~: P& {7 u: E- G ?' e3 z1 J
4 ]3 Y4 }$ l7 s7 a, k3 v/ ?
6 p0 {6 ~$ {, K1 @' s
7 H+ r+ p* ?7 j% r
|
|