|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- F: V* y1 O) \/ j
& K4 n1 v' w+ A- `$ d' \Mover.h0 V! M7 v: \4 t, V X/ j0 L6 j8 Z5 X
代码:
2 h- Z0 ]- l L5 y& E3 C; s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 r" M4 i1 B& n P# u! Q
% O8 u9 R9 I3 _" ]下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 J8 ~3 R0 M% k8 m" ]' a
! a4 B4 H8 _# l4 u然后你去mover.cpp添加) ]/ M, ?& @. L# C% g
, M, |6 u8 V3 y! q3 r5 |
代码:
/ Q$ H2 A' H, A% f0 T& \: avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& b. G0 K: i4 }/ x{$ G0 U% I4 E+ j* G- d
#ifdef __WORLDSERVER
; J/ M8 l( F e, ^6 u6 `( y. @ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ c* U5 ^* W& C" I& y0 Q2 D/ y MoverProp* pProp = GetProp();/ \6 P4 ~. m: T
if( pProp )* u4 u9 w7 w+ R4 t5 \0 @; p9 k
{
( P* t: `6 \8 V N* p; F8 S/ s if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 A5 k+ y" V" ?3 V, q4 O0 g {
`' i- A0 h( ?+ f m8 M% u AddChangeJob( nJob );% Z- v4 T+ _" l1 O- _+ ?
}else{6 n! B+ B2 T/ X% Q5 O0 l1 J
return;
1 ^; b9 x3 r5 ~) I& b5 S }) y. Z. y6 |: w% G0 I0 B. O0 S1 G
int nPoint = 0;* u( {' z$ F3 F
if( m_nJob == JOB_MERCENARY )' u0 U1 d* g; O* w
nPoint += 40; K" R/ F- v7 h3 W: t) F
else if( m_nJob == JOB_ACROBAT )$ P+ W/ P1 q- |9 U. N
nPoint += 50;3 @+ `+ ~0 e; A! T0 L
else if( m_nJob == JOB_ASSIST )
6 }1 u6 f2 [ v7 Y- }! Q' G nPoint += 60;3 ?. V; q, K c9 w( ?2 V
else if( m_nJob == JOB_MAGICIAN ); z% P/ I, Y) {% Q+ W G9 ~0 l
nPoint += 90;
Y( E9 B3 R- c3 y1 h4 b& \+ a+ D else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 h) J c$ ?! t) C' S nPoint += 120;
0 N4 x3 r- M4 n) q% C else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' w7 i, v. @" G* c8 p# z2 n0 l' r& q5 Y
nPoint += 150;7 Z" A2 ?3 R: X$ N1 B* }/ h) @
else if( m_nJob == JOB_RINGMASTER )
7 ^; ~3 J1 b9 {# h+ l- g/ k nPoint += 160;1 C' I5 E( G0 Z6 ]' A8 }
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 X9 B2 g! E' [ J \4 y
nPoint += 180;
+ C6 l2 J7 I3 _ else if( m_nJob == JOB_ELEMENTOR )
0 e1 J. {* h# `& @( f8 ` nPoint += 390;' e! t a6 r4 _* E$ F! f2 P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 m7 F k: k2 k- F5 x! I" t2 ]* Y nPoint += 120;6 q( L) ~5 f0 j$ i6 A0 c
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- G: }. p7 l; x( ?3 v! X nPoint += 150;5 C% K, S* M: f" M2 I3 E7 E
else if( nJob == JOB_FLORIST_HERO )
2 E* E9 [' R) r1 J' V" d nPoint += 160;
0 _9 Y* E; N( u/ ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
_0 O, S( n- f nPoint += 180;
! y$ n2 j& a( g% r# n+ z8 A' C- X else if( nJob == JOB_ELEMENTORLORD_HERO )
' P, y! v- G3 H ]7 C0 { nPoint += 390;
9 s) R2 `1 {" B) [/ G9 \2 ~; p' Y# G+ O/ `) ?5 n
AddSkillPoint( nPoint );
) J$ l4 @- b% H) C m_nLevel = nLevel;( N& H+ Z6 B7 m' i" {
0 S: v ^" d+ ] SetJobLevel( nLevel, nJob );/ a9 K3 t2 O$ _, f( W. U8 ]) z
m_nDeathLevel = nLevel;
$ P/ G+ ?/ F/ k" Q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 s2 W" z, e$ P2 E
if(IsMaster())+ B) l! J. j/ x$ `( i! D) t
{0 o4 q3 h7 d6 `$ Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% L) E1 ?2 }! T) W# }0 L
if( nLevel > 59 && nLevel < 72 )" Q+ G" x5 J( Z$ R- p3 |
dwTmpSkLevel = 1;
4 h; k7 h. o) ?% q else if( nLevel > 71 && nLevel < 84 )8 N% {- h8 H. e3 k4 |1 z! v6 E
dwTmpSkLevel = 2; R5 i/ A Q) g$ E
else if( nLevel > 83 && nLevel < 96 )
& w9 k: u9 E6 C" J8 i dwTmpSkLevel = 3;
7 n" {9 ]/ a% g! H& z1 z else if( nLevel > 95 && nLevel < 108 ); x8 ~! v: F2 i9 u, f' s
dwTmpSkLevel = 4;7 n) l" R4 }. |0 ^ k
else if( nLevel > 107 && nLevel < 120 )
/ c7 Y' \/ R7 |+ s dwTmpSkLevel = 5;
0 Y$ H; I0 W& i7 A for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 x, Y, F% d y% E0 T3 ?
{
9 W& E, s9 A% ]. F, E6 j LPSKILL lpSkill = &(m_aJobSkill);
! [4 L( k" o. e7 V9 b2 n* Q if( lpSkill && lpSkill->dwSkill != NULL_ID )" L: h# Y, o3 t6 l/ v1 E" A7 U& p% l6 |+ J
{% E1 i! g% z/ {$ Z6 p1 t }: d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' n0 ~. B% h2 k if( pSkillProp == NULL )$ h, D4 a; c. H! I" {) e
continue;7 G+ B. G" T6 |$ u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ C, q! p# ^ m: K! D continue;
; B/ h5 n( }7 s4 l9 P+ Z. g1 J lpSkill->dwLevel = dwTmpSkLevel;+ H1 }! U) u* s" [8 G
}
# n8 \3 v8 y. s& G0 z/ |( o }2 z: t& z: n2 `
}
6 y |9 l" q, n else if(IsHero())
0 K2 J4 C/ u; C. t l1 T {
; t, {0 _* I; ?0 r! V- E for( int i = 0; i < MAX_SKILL_JOB; i++ ) + |0 p' k7 n, N' [7 d, o2 r
{ ) O2 L$ V" |: p: m. R( ]
LPSKILL lpSkill = &(m_aJobSkill);
2 P7 t, Z8 ~5 |5 h: z; c if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 S) }- X' \* t# _# j, j9 b8 F7 \ {7 m( g/ @; f a3 B4 M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & n! _4 `" r. m
if( pSkillProp == NULL )& n! l! Z! N8 |) G0 v# `& }' z7 B$ H
continue;/ k/ {3 O4 P+ X. w1 D) B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): H8 N& D X# ]" w/ Y8 D' V
continue;
/ ]5 x4 l0 t: H; Y" ^ lpSkill->dwLevel = 5;
/ V' A- ~ g u }) R7 E! E' `9 i1 q% Z0 u
}5 X& q( i/ @0 e# g5 W7 ?
}7 A+ h+ |$ X! e7 F
else if(IsLegendHero())2 ^3 X* P7 }/ S
{
2 a8 e% o. N/ j$ J8 | for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 H8 ?% H/ T2 g2 N& P: G; p { & ^* l( `2 p. q+ O5 \2 w
LPSKILL lpSkill = &(m_aJobSkill);
* Z- f$ c) T' C9 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 W+ d% m4 |: g0 E {
) _, c' X0 O2 X! {: q0 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ^3 V+ C5 N: @) }
if( pSkillProp == NULL )
7 q# K9 h% C& h8 Z' T continue;
8 g6 n5 m1 `, w. {. b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 k# k: G. {7 m) X" y s
continue;
1 \% }: E- D3 S& Q! v6 @ W' C lpSkill->dwLevel = 5;
9 X' L H2 q6 q. k, F/ f2 \ }# m6 S, p- b- }! V- l
}
7 q$ t/ ^% Y; F* \) N$ j; ~ }1 P, J5 s: S) _7 q2 f t, [6 B
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& A& \" Q5 _ O+ M# X. J8 Z
if( bGamma )3 l4 @3 q" J9 V7 V! _
{
. A& p7 }4 C, B9 S/ X% u* t9 ~ m_nExp1 = 0;1 z& O: s, Q9 d: z9 ]
}
1 D! c5 u- c1 N2 d
9 U6 z8 e2 H1 t/ H2 d+ a ( (CUser*)this )->AddSetChangeJob( nJob );( ^, W7 J' w8 I4 z6 r8 H; t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
r+ q8 I* |* E- o! s) g
2 u/ i/ q, S R: ]9 D% j- E. t' M1 g6 l9 B l
#if __VER >= 11 // __SYS_PLAYER_DATA
6 z2 M4 `! v" w. A2 I4 z& _ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 W) c( w( M% R A#else // __SYS_PLAYER_DATA/ w8 I7 G1 _+ V+ ^, _
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 @# g0 Z, k6 B& z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 S5 C+ O+ Z+ g2 P- E, D1 v, o
if( m_idGuild != 0 )
2 C1 l$ f4 p* @0 ~ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 u- Y9 ?. |* _3 d/ Z
#endif // __SYS_PLAYER_DATA
0 K a+ W3 G, h" D B( {* k SetHitPoint( GetMaxHitPoint() );* A" t1 b( l7 D: b* e
SetManaPoint( GetMaxManaPoint() );6 q% O" n0 T2 z
SetFatiguePoint( GetMaxFatiguePoint() );. e- s- M1 D/ }. v* e5 B3 N9 y: u
if( nJob >= 1 && nJob <= 4 )
$ v4 j' k& z# R: \0 G {
F: E6 g6 u# l+ j. _5 \" ^- t m_nStr = m_nSta = m_nDex = m_nInt = 15;- j6 u0 e- W) V' ?! d) |0 N
m_nRemainGP = 28;3 ^7 v3 M( n" \* C3 p
}
) b# B) S" ~5 ~# F# ~( e5 u if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* w- o0 o3 W& L4 t% y
{3 ~9 f& L* @$ o! S
m_nRemainGP = 118;
0 t" s6 ^) _% F9 R3 c. Z+ v //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ V. M' V9 m& q" _ A3 Z3 z, c/ B& X m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 k6 H( g' m# e' u }
, i& |6 B. n: O3 O h$ T0 X) ]+ i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- N! q+ W! p" f% v- w4 K2 e {* }# A. N. z) a, ?9 m3 O6 X; T
CItemElem itemelem;
' `. z4 t) s! Y7 |/ g9 L$ a itemelem.m_nItemNum = 1;6 i6 U4 k' Q& _- R0 Z9 B `- Y3 U% i- w9 X
itemelem.m_bCharged = TRUE;
$ O) d5 m4 c+ s: t' y; ~2 K4 t BYTE nID;5 X) e! v4 }9 l5 G7 D( i
0 Y: x$ U4 T$ k/ c
if( nJob == JOB_MENTALIST_HERO )$ @( ?0 n9 t; f1 c6 h% H
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' j( h& M( e: D- q5 o6 x! K if( nJob == JOB_FORCEMASTER_HERO )
/ _+ D2 z0 m) ^' O7 O0 G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) Z$ S1 c. V7 _3 y8 a
, h- x/ e( }' `# ?$ Y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 d6 |" [3 p9 k8 S4 q" c }; Z! a1 R6 N) D1 i8 j, I1 z- C
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 F2 y3 y' {7 K
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- r' N, D! ~/ o, m* P ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 j% k) W5 l( ?2 t4 X% O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: n- S6 {1 k0 \9 N
( (CUser*)this )->AddTaskBar();*/' D& n1 q. k) Y- j, A
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 w7 G! v! {7 t7 s5 k
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ c2 v+ @# D6 X) k
((CUser*)this)->CheckHonorStat();, P7 W3 p2 F4 a" R; i
((CUser*)this)->AddHonorListAck();
/ T" b$ [3 J. N2 |9 u( j8 a6 R0 f g_UserMng.AddHonorTitleChange( this, m_nHonor);
& |) ~; z% v0 v2 Y#endif // __HONORABLE_TITLE // ′Tà?
2 Q9 W/ ~5 M6 v2 B( s( }6 M2 `$ l }; I( ~8 c- c! q+ p }, c3 P
#endif // __WORLDSERVER
5 O/ [ h6 R0 K2 i2 V) d3 y} % I7 i" l6 ^+ {/ N' E, C U7 T3 K
3 F- ]. Y; w/ B- i# j2 a
然后你进入functextcmd.cpp并添加以下
: [" i7 m4 O6 R! z- ^0 G! s) @, m0 `4 ^/ p8 [
代码:" R1 }$ O* Y7 d
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- _. Z8 L6 y$ v( q+ Z, Z0 D0 c
下面插入, h1 Q; f( n) B; W) C
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 S0 w; g+ L6 P# ?! t$ Z9 o- o v; a( f5 |" f5 S8 X
然后你去
5 X; \$ H6 P! f1 O# b) f
- }; X7 E$ m5 B1 o. u代码:
0 C, s o2 w$ i; f$ _代码" @/ h/ z7 @5 _" Z0 A4 v1 N- N4 p
BOOL TextCmd_ClearPropose( CScanner & s )
3 H4 z, t" F: A2 _8 w& O: q/ Q{/ _% ]6 m# u( H6 w6 j9 P
#ifdef __WORLDSERVER
* [7 j' s+ K; ^4 r2 Q, q CUser* pUser = (CUser*)s.dwValue;
" i; }0 m' L5 u! `4 T g_dpDBClient.SendClearPropose();
( A7 |: C) m: n#endif // __WORLDSERVER
+ {4 B6 V( c, d9 n2 [9 R X return TRUE;
& s1 R1 S( F. \7 u2 ^3 e1 O}
8 d0 y q6 E6 p下面插入! A/ D$ Z, o8 q# ~
BOOL TextCmd_rebirth( CScanner& scanner )
0 Z4 d w4 S2 y4 c{9 m( U: w5 Y! N, _ t6 S
#ifdef __WORLDSERVER
( h% I% \ Y6 R5 o2 d' A/ [; ACUser *pUser;0 ^# R3 M; `( n+ \& ?9 G
pUser = (CUser*)scanner.dwValue;
% h4 \- E. c6 ]7 h8 X% gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) R) }; e0 ?# d9 y9 u6 A
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ e% M0 R7 ]# R! t0 Y8 c! M# p; w
else
' O' |* Z T" w8 c1 Y( j6 ~pUser->AddText("你还未达到重生条件!");0 k( V) [% e0 z+ Y3 P( {
#endif/ P, a- j4 f2 [$ p4 I$ A8 T/ x
return TRUE;
7 r' i4 t/ g, d7 l4 ~( V* K# ^8 D}
( R$ Q# l# C* {0 H* U7 W# S4 I' V8 Y5 D' k2 i# A% K! X/ y4 f6 c3 o3 N" j5 M
6 c+ j/ g4 O6 {3 g" Q" ~- l: G
$ u/ H+ o' t9 {6 ^, W# W$ I1 T A3 m2 w9 O/ D0 `; B
|
|