|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 a$ d" U8 l( u) p# @' Q' d
: _- B( T& t n9 @3 P) V
Mover.h$ G% _" {$ I0 Y$ P9 E5 t
代码:
3 O" f( \4 z; p, Y) l6 H7 ?# s; t j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 @4 o+ Y$ m: z% Q+ f
' X% t$ ]$ n- Y1 n3 l* n8 @
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ ~0 p" ]4 g6 e6 `8 ^: r
4 C6 Z, ~2 i% A6 s# V0 l
然后你去mover.cpp添加
: f" a p, F0 _: {8 `
/ y, s3 X4 W; N7 e! G0 d" r代码:
1 [! Q; }- m2 M ^, dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' `. H8 a/ ^% A5 w1 i
{ c( e2 W7 U( i) n
#ifdef __WORLDSERVER
0 ?- e+ G" B' Z' c: w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: w; j5 w1 c1 E: h8 d" P3 r% M
MoverProp* pProp = GetProp();0 f; ^$ V. K P' a+ G
if( pProp )
) a2 k" e) E, |# L {# D1 Z. L& c) I5 ~. `8 r
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 q* l1 J, G% j9 S {- D% t% {" l% Y& i3 y9 ~! [) Q
AddChangeJob( nJob );
3 z+ M( T3 q2 C5 I7 k+ B/ S }else{2 `. f& x3 N& H; Y
return;$ Y2 T R$ T$ q: r6 N5 t; b1 b) B
}/ [ g' V' F& v* X
int nPoint = 0;+ B. W9 W& b6 e1 O$ Q& J- R8 r
if( m_nJob == JOB_MERCENARY )
4 @6 z$ T1 p% M nPoint += 40;) d( A& j% H5 Y2 r
else if( m_nJob == JOB_ACROBAT )5 H8 t2 `) b& _
nPoint += 50;
3 b% ^7 J$ K# Z; V+ d' g8 {3 W else if( m_nJob == JOB_ASSIST )
" V$ x$ _ e9 N2 @ nPoint += 60;
2 _: w& g3 V! q, r2 B! k7 M5 _8 V else if( m_nJob == JOB_MAGICIAN )) Q2 Z$ `# z7 u3 V. m% v8 e) r
nPoint += 90;, } e* B* i6 s
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% T6 y( @+ q) N. H7 d% l% o
nPoint += 120;) p+ U- l2 Q9 q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' }5 S+ |$ F; y$ k f) b( Q$ _
nPoint += 150;
# b6 T$ \, P% S1 Y. a1 M* c else if( m_nJob == JOB_RINGMASTER )
) J. E3 {% I) z nPoint += 160;
: R; M& H* \( t# m* ?. `5 i else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ B; n. Q1 `, W9 S* V; A- C# ^2 t
nPoint += 180;+ ^) I8 ^6 D& L6 }. C* V6 c
else if( m_nJob == JOB_ELEMENTOR )
$ }' @7 n9 ^ t, m' Q) t nPoint += 390;
6 _, ] I- i: `" y, Q# q8 x9 G8 o! H else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 _8 ]9 E% w8 `6 P. H7 u: x6 D" s( P nPoint += 120;- m2 W* C/ a) n+ ?! z; x3 N8 M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 Y4 {# N; @, f. A" ^3 O; x nPoint += 150;
5 K2 y: c8 C! r" | else if( nJob == JOB_FLORIST_HERO )
. ^! v( t2 |8 o v2 d" a nPoint += 160;
& c# E/ J$ F r6 ? else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( `% h9 ]" W/ \3 W6 _
nPoint += 180;
0 Y8 T% |1 ^- S else if( nJob == JOB_ELEMENTORLORD_HERO )
" c2 ]' B& U0 B% K nPoint += 390;
/ j/ k7 a2 V% x2 E; R/ O
/ d8 r) O# X- T9 r+ \ AddSkillPoint( nPoint );
, j/ {) n% B8 i3 H" X m_nLevel = nLevel;6 O9 i/ t+ v- ]
2 U+ p% y3 k* r$ N SetJobLevel( nLevel, nJob );% _+ M. l* _! v5 i+ N/ _
m_nDeathLevel = nLevel;: P# x% z2 p! `& i) k
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 U g, U/ p! q9 _- e' m0 q" d if(IsMaster())
& T+ Z4 r3 W6 m0 B) `' c& Q4 V {; {1 ]8 N' p+ y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ g! Q- Q/ c4 W) P6 C Z# i3 q if( nLevel > 59 && nLevel < 72 )3 E4 Z2 ]! M7 N$ [' d- v+ Y+ d* [
dwTmpSkLevel = 1;
- h- \9 x9 S. { else if( nLevel > 71 && nLevel < 84 )
! J8 v- y1 Q; [) s dwTmpSkLevel = 2;, a6 k+ }$ x+ V- l- W2 w2 Q6 y
else if( nLevel > 83 && nLevel < 96 ); ~9 L6 o8 H. h! X% u6 M; {* l
dwTmpSkLevel = 3;
8 a5 G) ?; w; `' \0 ^ else if( nLevel > 95 && nLevel < 108 )
& E1 z3 q5 p U; n2 Y! t( n2 M4 r dwTmpSkLevel = 4; ] l& e! N8 B) B( e) G) _
else if( nLevel > 107 && nLevel < 120 )2 g% z- l, k8 F4 {2 R
dwTmpSkLevel = 5;
7 f1 {$ d6 b/ f+ _# s for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 U3 K0 s1 P1 ^- ?- z7 @- Z, j7 G
{ 5 o- o# t1 o6 P
LPSKILL lpSkill = &(m_aJobSkill);8 P8 Y2 `: ?/ n) @+ k
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 ]1 J3 ^- |/ Q3 d& q/ Y1 T4 u
{
3 G3 b; @, [- s$ a1 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# W$ f+ K. l& W2 Q& L if( pSkillProp == NULL )
( d+ R0 }8 b: P; M continue;
& H+ F: g/ \: O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! u+ d: @# i3 t: F( e! \
continue;, s, y; E1 c! [; E4 M5 D
lpSkill->dwLevel = dwTmpSkLevel;! }( L7 b" U0 B" Z
}
# s, U3 i; M0 P3 I' o) R0 N& [ }/ J" _& [- ^. I6 ~
}$ q9 v( \2 ~" k0 }- k5 E+ B6 h( m
else if(IsHero())
( h9 K0 `/ N8 P9 Z- s {9 E8 D2 l. R+ E- H# @
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& @/ b9 e1 `) _ { ; n4 d" s+ p: h2 @( A: n2 Y
LPSKILL lpSkill = &(m_aJobSkill);9 e) {( K" i) y" \6 s6 F+ l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 L+ b# A/ n6 K: U. O* [/ @ {+ w E! I: I( v- M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( n4 L9 G5 B9 m. L
if( pSkillProp == NULL )) X3 V1 C: \: ~2 ^/ U
continue;
1 ^7 P- t7 b8 c! I- e) n& F8 q if( pSkillProp->dwItemKind1 != JTYPE_MASTER), z u' T+ e8 n1 o0 D
continue;
n: }- I7 H/ c) I E' y! ~ lpSkill->dwLevel = 5;
8 E/ f L9 E. R2 U5 t1 i6 m }4 J9 H) m& L( Y& G2 k: H
}+ o- i% o: P3 S+ P8 l
}7 q& y: @* S2 L" K% \5 g0 y" k
else if(IsLegendHero())% n$ F0 V, H% K! t+ E1 A. X9 B% N
{
7 u9 H+ }2 t: Y0 G for( int i = 0; i < MAX_SKILL_JOB; i++ ) + V- N8 B) _3 N* u4 T$ k) ?! i
{ & z- J3 Q+ }8 p3 R+ Y, t/ _
LPSKILL lpSkill = &(m_aJobSkill);4 B- Y* I; h! v1 T2 D; t" H$ }1 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ W" ]3 {0 E( s0 y _9 Z
{; L& m0 E! M$ _( F }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * c4 h9 ]* A3 s2 q* H
if( pSkillProp == NULL )( a/ ^: R3 M3 p% d" H: \: |
continue;
! T" ?( q- S; G: k) y1 ~$ |5 H6 C( v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& c( z7 {% L ]9 ?3 F( k continue;: `& W S) O2 I5 P
lpSkill->dwLevel = 5;' Q% a i3 k7 ~9 J+ f! Y
}
* y$ P( J) p8 p( B# K/ s }5 T+ J/ U7 f: K/ t/ t0 L
}
+ ~0 P0 w$ s& S: g2 j#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ S7 X: V. I# J3 ? if( bGamma )
4 D+ h6 X1 m* H0 b: d2 O4 y {' L0 f) Z& H# r1 Q: }+ L: X& K- X
m_nExp1 = 0;6 ~5 b1 ?' ~6 G. T1 w
}) W4 ]% q+ H5 }" J7 R
: @" I) x0 X% M+ r ( (CUser*)this )->AddSetChangeJob( nJob );) s8 ]% n8 w6 L4 n% G; l% H
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 [ v0 C/ Y% s8 L: D/ I7 _
9 h, L& @& z/ e2 x" ~1 P# i2 ~& t) g
; l4 M, @; l4 o4 r, Z! m) j4 [/ u#if __VER >= 11 // __SYS_PLAYER_DATA
9 N& W" @8 M: J& K g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 R6 d* S( D+ x0 _+ u7 J#else // __SYS_PLAYER_DATA
% o" r& L5 f. v' b! W* W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* y- \9 f# [+ ^! ~ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' _5 `* e6 F' j
if( m_idGuild != 0 )
. v2 H5 D2 m, U$ ]) R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' r% p g1 ^* j/ N B; l
#endif // __SYS_PLAYER_DATA
( `) f; s4 ]3 T1 Z+ z SetHitPoint( GetMaxHitPoint() );
- w: G9 {! x* Q, g SetManaPoint( GetMaxManaPoint() );& t2 O7 P! K+ q/ a$ \( ]- @
SetFatiguePoint( GetMaxFatiguePoint() );& I2 d! d3 N, I) J w
if( nJob >= 1 && nJob <= 4 )+ H$ z# ^: n* @+ {+ Y! ^7 R2 Z3 [3 y
{" J6 P/ U/ x5 n3 |
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 `6 ~+ h1 ^1 s7 s8 O
m_nRemainGP = 28;
; a" Z( D7 v2 G+ \! E% ~, ? }
& v8 l( R; X5 A6 ?: j" l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 M4 Q8 W( \9 W. }- w
{( ^9 C6 @1 E; x- d7 P6 p, m$ `; F
m_nRemainGP = 118;
0 g- R5 _" s: B& l; n8 } //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; V" l8 X+ R. u' y* @ m_nStr = m_nSta = m_nDex = m_nInt = 15;! @* p/ B) h; v" v7 x9 L8 @
}9 s$ e- ]" F. F& Y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 W) o( {% E6 P$ E0 M7 Q
{) M2 b3 Q9 D" a9 ]/ d x" U! ` h
CItemElem itemelem;
& p. D% v/ R1 s* j itemelem.m_nItemNum = 1;
) u: d- J( L# ?- B8 | itemelem.m_bCharged = TRUE;
- e1 P0 w. h" @* D BYTE nID;
! _' ^ _' {; X4 S1 {% T2 x3 V& Z0 v5 G$ P
if( nJob == JOB_MENTALIST_HERO )
. Q/ F; a" g6 A; d% _' M. _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ _+ f6 J$ V. r. O! O ^: \
if( nJob == JOB_FORCEMASTER_HERO )
4 z; k, U2 P, A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;8 |/ m6 r* l0 G: y% D' c6 j1 M
~& W- }# P" r; v+ e& d
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ u5 s9 |1 ]: G- O6 A9 d
}) n6 A$ ?0 @& y: i$ v1 ~; b$ b
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( m; j) `% N% c7 @. P! ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; C6 k6 s, J2 }& n% G& w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: E5 b& I3 U8 T! v( Y' |
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 x( ^8 `3 n: k( W, {2 S
( (CUser*)this )->AddTaskBar();*/
y+ a" h* K4 ?8 C4 O% V" P4 a ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- w. {& j9 x( y- M; |% ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# b9 x2 @: t4 t1 O& D" B- J3 H6 h) s ((CUser*)this)->CheckHonorStat(); G. ]! @2 E) ~. N4 p
((CUser*)this)->AddHonorListAck();
% d% T8 i$ F, L4 N% }6 G/ u& i g_UserMng.AddHonorTitleChange( this, m_nHonor);
^9 w* U6 p# P i# i. J#endif // __HONORABLE_TITLE // ′Tà?" I0 Z! {" F% B$ ]0 m, ?& E1 X
}2 I$ F! B+ ]2 G4 d, X
#endif // __WORLDSERVER# z* O( e+ W& Z$ u) B- c
}
. n2 C" e- Y' H# S4 J5 A. ^$ B9 U: u' F2 D7 N9 C5 O
然后你进入functextcmd.cpp并添加以下0 g. l% k- R- L8 Y2 _' R
0 a* s: W9 r% g% w1 N1 k
代码:3 | l+ S% t% E4 a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); ?. P3 D! ~+ l7 |3 e
下面插入, ]4 I* I9 w8 F; h6 x# c; }' _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 5 i( M6 E% \- {& c/ z
[2 Q2 W0 d, \& L然后你去
9 r; g2 X. K7 u. Q* I5 E
, Z& X# _& M/ i* e代码:3 ]' P' U5 G/ r. S
代码
) ?& m1 J2 P2 b- x! hBOOL TextCmd_ClearPropose( CScanner & s )
6 t3 t: v1 D" u7 v& b: {0 s{% w% e+ y. j' @& v3 j/ j- {
#ifdef __WORLDSERVER3 F: L4 f. S' m9 V5 A. ~
CUser* pUser = (CUser*)s.dwValue;8 S" J; y7 R; J& Q2 D( y
g_dpDBClient.SendClearPropose();
9 d l, u$ S3 {" E: s3 v& r#endif // __WORLDSERVER
: d2 {% R, ?2 I/ m return TRUE;
9 g; A/ S) y; e; R# ~}
^& Y0 G" j1 A- @下面插入
9 c# R$ d" `0 B# d5 e. OBOOL TextCmd_rebirth( CScanner& scanner )
6 w! J8 ]( }& f0 q# p! [3 _ m{+ M8 {$ A0 D4 g0 _; C7 N, E0 h
#ifdef __WORLDSERVER
G w# C' v3 O jCUser *pUser;
4 j7 f2 R. |% j; ^8 H K& z% npUser = (CUser*)scanner.dwValue;! E7 X" A- m7 |
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 z. @6 w/ L# p$ \3 xpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& Z5 m' F# }5 q6 c
else
/ K; S5 q+ ?. y& BpUser->AddText("你还未达到重生条件!");
7 o( {3 f5 K ]#endif
4 C# E- r; Q' N# h0 Qreturn TRUE;7 J9 c% W, s* G" U
}
) _! w& W, \, }0 C6 w
8 y+ p# j x6 `/ |) ^' d: }/ `4 s0 R3 ^: E# Q9 h
" |% V$ X" k: y+ ?) c6 a, l. f7 h# `* ?' w; n
|
|