|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% f' ~# R; U; ]( Y$ J
& a! K" f. ~ v4 H- ^Mover.h2 H1 G% W2 n" `- X9 f C
代码:9 |1 m s6 D! R; k) J/ S3 d: Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: f8 Y- X) A& j% ^ p e: C3 K
: G; ]$ E2 u8 X% }下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 k" A3 B1 f4 B4 I- }$ O
; d! V/ _: b- o/ J0 u; c% [6 t- P
然后你去mover.cpp添加9 n- \ }9 y2 G' @" a
# w: N1 T7 F7 t# m2 B' n
代码:2 k3 C3 d2 K1 k% m3 Z7 Y F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# z. z! j7 t5 J
{; o: a4 Z+ z4 v8 _
#ifdef __WORLDSERVER% I% d8 p2 ?4 Q( n9 J0 O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# v; }; I3 {; K$ u5 x) `+ j0 ^
MoverProp* pProp = GetProp();9 C$ K/ N. A" v. d) {+ j4 ` M
if( pProp )! [! u6 a7 T, T2 E/ s% X; }
{
8 X$ D3 M7 G6 @$ @# F/ N4 f6 H4 A/ ~ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 Z; P3 e, A. l {9 J5 w8 w) c$ b5 a- J; G6 R
AddChangeJob( nJob );% X$ G, X5 r* [3 H% N
}else{
% S A7 W3 m3 ?0 c! Y4 a2 {9 _ return;
( y+ k: [) n$ ?( H/ z |/ f }# [7 F, O/ l! m3 S/ [- ^3 X8 }. y. h
int nPoint = 0;
; h) t$ ^: [: j+ d, G! \$ E" k if( m_nJob == JOB_MERCENARY ). Z' V4 B6 C5 L
nPoint += 40;- {; ^( h+ t( E0 _! j4 b6 R
else if( m_nJob == JOB_ACROBAT ). _6 H0 A7 v/ i; E; p+ y" ]% W
nPoint += 50;5 C* X0 o& _" O# ~1 R( F+ K
else if( m_nJob == JOB_ASSIST )6 c8 F+ H# e) I
nPoint += 60;
# a/ ~3 _- L, F9 i- V6 P else if( m_nJob == JOB_MAGICIAN )% G: F7 \; F2 U3 N$ r: }/ f% A
nPoint += 90;7 y3 n$ j2 T6 t) Q5 D
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, W( [$ X; g9 X+ _( s1 o nPoint += 120;
% f( r& A' W* X4 r6 ]. R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! m F% [1 ]: O: h4 [# z l$ j* A
nPoint += 150;, ]: X3 q$ U' r2 t% Y) x3 d1 q1 s
else if( m_nJob == JOB_RINGMASTER )3 D0 o! o: N. _- X
nPoint += 160;
% Q# T; d& P8 C8 L9 d' c- M( z8 g else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! ~/ R5 o) r% T$ p" v4 A
nPoint += 180;
8 G6 d2 b* g; w1 ^9 N8 `2 K& T7 }( @ else if( m_nJob == JOB_ELEMENTOR )* l1 a" w/ T% f/ ?% I! N
nPoint += 390;, X: \ v; i2 K1 R- t4 U& R
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 p! {+ x. g6 z- q' O7 v+ A
nPoint += 120;
. C/ \( f W- b* P ] }( D; k else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% I4 O9 d5 G6 Y$ B# K5 `
nPoint += 150;
6 X! | l" r4 W else if( nJob == JOB_FLORIST_HERO )
7 `' }# a! @8 _' t+ h# `# i! m nPoint += 160;
$ }; W5 j2 Q Y% C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 U) Y7 y0 c" J nPoint += 180;8 i& p2 C+ M8 P! a, D+ E- S8 |* H
else if( nJob == JOB_ELEMENTORLORD_HERO )
* Q( K0 H( E4 [ nPoint += 390;9 r- X% W1 p9 }
V- N9 U5 y( q2 f5 | AddSkillPoint( nPoint );6 n, h( a2 G' M6 J7 ?, X
m_nLevel = nLevel;+ B& E" k( O. J# l6 G) q& M
4 N p" u- S9 ^
SetJobLevel( nLevel, nJob );" D$ ~$ W: i% C1 Y# y$ F
m_nDeathLevel = nLevel;; S, Z& z- ~" N1 g3 j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 E8 S5 e% J" _6 \" k% Y/ V# ?
if(IsMaster())- J2 F( x3 Y y' X) v, e( c! J* t
{9 z& p6 ]5 y( R O; }# e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 T: m5 F4 E7 U if( nLevel > 59 && nLevel < 72 )
) C3 I$ Q! l# e9 t3 J dwTmpSkLevel = 1;
$ n! @# ~7 [% e0 M, L else if( nLevel > 71 && nLevel < 84 )) m/ c# ~* |' ?% R- ?# s2 i% j
dwTmpSkLevel = 2;
3 `) A/ x2 c% H; g \& o else if( nLevel > 83 && nLevel < 96 )
5 ]9 g6 i. s, I$ x dwTmpSkLevel = 3;$ I: H# p1 i: h& J
else if( nLevel > 95 && nLevel < 108 )
5 D( }2 R8 X0 A$ }, Z dwTmpSkLevel = 4;
- P+ d: ^. P0 z; ?6 ?) m else if( nLevel > 107 && nLevel < 120 )
4 [1 J4 e; Z+ B0 K9 g dwTmpSkLevel = 5;
; w# G4 ]4 A8 u7 q5 q( l for( int i = 0; i < MAX_SKILL_JOB; i++ )
& U$ A- [+ m' H2 G" W { 8 u; W9 P/ C/ R7 r$ M/ N
LPSKILL lpSkill = &(m_aJobSkill);8 d* L: d3 P4 q8 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 f( F$ {8 }) Y5 A3 V7 c
{ L4 x& p4 h3 p# t/ N2 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) N, Y- j6 _' O0 U+ Q$ z( z if( pSkillProp == NULL )
- u m" r7 @/ c6 W0 H0 B continue;8 p1 u {$ l7 G; h8 H. }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' r" W. i. ]* X1 A5 L# T" s continue;
3 _- r% Y( i! T& @# D lpSkill->dwLevel = dwTmpSkLevel;
/ K- S6 P% T; _" i }" i9 |. B. E F7 w; ^" X8 A$ N
}# ]3 L. l$ _2 v; e, y
}
# [; ~1 C' P/ S( `7 Q* `0 m' t- S else if(IsHero())9 f) E! k% l3 U5 N& x, R
{# G P2 w1 H1 N4 y; p- Y" M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; a: M( W* [4 C { ! s% \5 h. H. ?$ p
LPSKILL lpSkill = &(m_aJobSkill);
" O: k4 v) Y9 V" k' [# | if( lpSkill && lpSkill->dwSkill != NULL_ID ); G' X E1 i! V3 Y- F0 \% C3 b# r
{& u7 _3 b! k: D$ n+ A- A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# I3 o! ^7 n2 `- ] if( pSkillProp == NULL )9 [) S' S2 S7 R) N* F
continue;
i5 H9 r% L7 w& q' g. e1 A# ?+ q if( pSkillProp->dwItemKind1 != JTYPE_MASTER) s, O% O5 }2 T' M) Z( g& p9 s
continue;# [( e) }4 r, J& A4 T1 W
lpSkill->dwLevel = 5;
h4 l! ~( r7 | w% B }0 ~5 c+ S& {/ Y
}! Q7 K/ L' U: n/ N4 V) U s
}
! Y0 k; R. d6 L$ F3 n else if(IsLegendHero())
$ E8 |) M4 M, |3 ^" ]+ w {( O* Z& d4 Z" C8 e; e$ h% Y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 T8 H5 {3 G8 j5 U1 `9 i { . [1 I$ I4 s% k8 f/ H0 B; {$ ~& N
LPSKILL lpSkill = &(m_aJobSkill);
. G( ]# H2 s9 w/ T: y5 h, K6 x1 b$ @/ X( b if( lpSkill && lpSkill->dwSkill != NULL_ID )5 N2 l/ C& f! a
{
) i' S3 T! m8 g7 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 E7 \3 ~; h. p0 k8 Y6 ^
if( pSkillProp == NULL )5 J9 Z6 u+ z/ r" S4 Z
continue;1 C3 M" B4 [$ @/ X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# u% w' H( Z' Y. ?. H& T
continue;
! d9 H8 ~# ` B' ? lpSkill->dwLevel = 5;' f! m3 \0 U @
}
) R6 y+ M( ~( I5 i% b$ ~* @ }% v! z$ [* ]8 W2 x
}
, j. \% m' q- Y" U/ r#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( S+ V6 P6 X Q. w& ]8 T if( bGamma )* G# U1 w* y" y) T& k% w6 }0 ~& D9 h: B
{& b' b* [1 {/ I/ f
m_nExp1 = 0;, W; @5 G2 B5 C0 i% C# M
}& _# k2 T R( s4 @
! o+ k3 j0 S, g0 W
( (CUser*)this )->AddSetChangeJob( nJob );; m% Z4 a2 X" B& a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) H( Y/ W. R9 n3 Z: {$ J7 @( m# O$ ?, Q w( x5 R7 I
3 d+ q: d3 D. n9 W5 Z
#if __VER >= 11 // __SYS_PLAYER_DATA
: k, O# W( I% l$ z' w# O g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; P% \8 j% g! J T5 _
#else // __SYS_PLAYER_DATA
0 B* d- R+ U' ~! l8 I/ o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; L7 F2 t( ]& _* @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 d+ M+ ~6 K: H1 y. l if( m_idGuild != 0 )! f: Y" Y' O1 p% b s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: G8 f5 ]/ q' G2 D' q7 S
#endif // __SYS_PLAYER_DATA: P7 w/ { f, B
SetHitPoint( GetMaxHitPoint() );6 j# k h8 v; }4 `5 N
SetManaPoint( GetMaxManaPoint() );
( S+ ]; K& N4 n8 `; l9 h SetFatiguePoint( GetMaxFatiguePoint() ); v; }& F& i6 n% U! P4 g
if( nJob >= 1 && nJob <= 4 )/ U) j$ N4 Q$ F" K
{
9 t2 I p+ N5 L9 W% x' g m_nStr = m_nSta = m_nDex = m_nInt = 15; D3 g, _- L6 ^2 A
m_nRemainGP = 28;
H" m0 Y' r) ~: d) ~ }# r4 l0 c- n. E/ W! j4 J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' {' F$ `( {0 m {7 i* c1 J% z% k
m_nRemainGP = 118;
F T& P1 [: z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! c, B9 G& p. @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% @1 m, p; Y( c- v4 ^9 ] }# ]& Y. Z. U& x: e2 d8 ~# M6 A) ?
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) a$ h' w, k5 p: G6 h" I, x {
9 x& G2 H( n; q. @( t" f7 C CItemElem itemelem;
8 F& L; h% V8 i itemelem.m_nItemNum = 1;
! E' u4 Y: L; O5 p: U7 r7 J itemelem.m_bCharged = TRUE;3 I) ^/ \" O/ I/ ?) Q
BYTE nID;! X9 W' g! N) W B) Y! @
3 J9 h9 x( u+ U4 h+ l' G7 c* C if( nJob == JOB_MENTALIST_HERO )8 R9 @- g, r$ T, X! q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; J. \$ N# n3 }- W; i o% G
if( nJob == JOB_FORCEMASTER_HERO )
3 l% \: C# {' j- [/ ?- ~4 {2 Q. z1 [ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" ], p! g2 H1 U: M* n) a ~4 H, S! T) f4 `2 a" `
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( M7 f4 V( w4 m N" P7 i! o }, W9 p. d2 t- l( l* I. p
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ I3 G0 _/ ^; {4 Y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* r, g9 F- |5 @% V" V- D ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% Q$ v: k& G( S p# p2 t4 F% q: u: W /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 C4 C% X( Q+ c ( (CUser*)this )->AddTaskBar();*/
" w: d8 U6 ?# q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( m, C6 U8 n% r. n" p8 b( v" ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ Y% b8 y7 Z6 G ((CUser*)this)->CheckHonorStat();
1 M$ ]) Y; i. T. t7 ^8 I ((CUser*)this)->AddHonorListAck();
8 u6 B0 E; }1 U0 t5 j+ a g_UserMng.AddHonorTitleChange( this, m_nHonor);* t1 c& ?/ ^: Z8 P! H5 D
#endif // __HONORABLE_TITLE // ′Tà?9 G( z" I1 ~/ A
}; U9 x) ~ l$ b* M! Q
#endif // __WORLDSERVER9 V9 @$ Q5 z7 `, J+ h0 [3 k
} h# X# l/ w: V, I$ M- v
3 v3 n* v+ ?: F9 F1 f( M2 f# v然后你进入functextcmd.cpp并添加以下. S' U7 P% H( U0 p
) k5 I. ?% h; d' ]9 _6 X
代码:
+ L' F' S- l& c9 P- q7 B* n$ AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ s# D& v2 ]+ O0 k2 c1 i下面插入3 ?9 o% U1 b6 ~) k" v
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 U5 l3 D5 u! C0 I9 X
, [) [* A3 h0 c V1 t3 s然后你去
! N' ]( ]5 p2 w1 s' H1 Y
: X$ w& b( |" K- N, W2 t代码:
. @* v- v3 W3 _8 i3 p6 D$ D代码
* s* v8 {+ e- o3 |: Y/ IBOOL TextCmd_ClearPropose( CScanner & s )
- K! B7 _) u/ Q" q& A' X- l8 f{
; o7 q R3 K3 p, o4 H& f#ifdef __WORLDSERVER k6 S' n7 S4 I1 s: Y) E5 N1 ], |
CUser* pUser = (CUser*)s.dwValue;
" l/ K5 u( o' R5 x- I( b g_dpDBClient.SendClearPropose();4 c& {# X; i! ?2 h
#endif // __WORLDSERVER
8 F: V) V/ H! d5 x. R1 z return TRUE;
0 f" A& |4 k5 r0 n+ v" |2 W5 F& @}
) i1 n' P1 o# z& S+ k下面插入7 K. y4 Y2 e, O) V+ Q, a" r
BOOL TextCmd_rebirth( CScanner& scanner )3 S9 I6 p D' l1 q
{
, x3 R, E w& W: G#ifdef __WORLDSERVER) ]* i; M4 [; |3 E# k
CUser *pUser;
, W Y; Q9 Q9 I' }7 t2 g3 ZpUser = (CUser*)scanner.dwValue;
& k1 O! F; y6 H1 M9 B6 B: L1 V! nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& X# _. @& E' E; U p- i6 fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( C# ?7 Y2 S2 L* O( Felse
6 e2 T; i+ R ^pUser->AddText("你还未达到重生条件!");
0 i' x& d* l* h/ Y* q" l1 b0 Q#endif+ G* r3 X0 N/ F& Q4 }
return TRUE;. g2 ^" B3 a5 X, ?7 y
} # H2 [1 p. J+ c
( \% n& R* {7 k4 K' M" E. I- M7 Y; ]3 k, ]: N5 S: x" _
( G) V9 T# W9 d4 d" p+ y% u
( b! A0 e u ^5 e
|
|