|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: F6 z3 @" C) P0 e( Y3 T9 z( `5 _ ~
Mover.h
' l8 l0 e b( Y' S) r1 ^" |9 x代码:
5 F0 Q& O& z. f3 W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 \: M5 B; W% r# s. l1 E
1 T6 i' E9 ?2 z8 w下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- }3 P/ M; n: q8 @! e) U( w* z7 p' M3 ?+ T9 G& c
然后你去mover.cpp添加
+ Q9 o: p6 ^8 I; ~) S! c) m" A: Z- H% q. ]' [
代码:
3 j, x/ y+ D9 }/ y* s% H1 Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 [( p8 T( l* a, N# p
{
J/ w* z$ N; n+ ^( R#ifdef __WORLDSERVER
0 z) E( ~; B/ l7 G) \/ c8 n5 p) y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 Y% F7 ?9 t2 {3 ~- f/ Z$ c- ^4 ?
MoverProp* pProp = GetProp();6 R r. F' M- V% ?) z; T
if( pProp )' }% l: }' @ z. Q; F9 @
{- u2 e1 R* w8 v) m2 I1 M$ |- Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( k- J/ V/ T, n- P. A! H& G {1 v! N" b) ^" {: r" T% _. P; R& `, h7 A' Z& P
AddChangeJob( nJob );
! F G9 h5 C* C" O, n2 q8 Z% a/ |" y }else{0 Z9 m/ `/ {# x8 Z l9 `3 X y+ W
return;
- U+ V W2 ^5 y. D: l }, X3 g6 Y: D& J+ t/ D; l6 D# n
int nPoint = 0;
4 ^) n8 X, ]5 I5 p5 v9 T if( m_nJob == JOB_MERCENARY )
8 s5 |% a2 v9 y nPoint += 40;
; T& ^) O* F" G5 q& o else if( m_nJob == JOB_ACROBAT )6 }* w! W* ~; s; j* `
nPoint += 50;
, K$ P& d! N: F3 O0 k. s else if( m_nJob == JOB_ASSIST )$ }8 N. b0 M9 B* l, g
nPoint += 60;
+ ?, {9 g& l! c, n$ v else if( m_nJob == JOB_MAGICIAN ): B- y: f* y% e1 e, D" X; v2 U
nPoint += 90;- y* w0 R: l, l( E. U
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- Z H2 z+ O5 ^0 V7 w! h nPoint += 120;
! }4 i& x. G! ~1 { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) F+ I5 x) N8 k9 g# c+ o6 e. U
nPoint += 150;3 G3 |9 @8 r* o: k/ D4 j
else if( m_nJob == JOB_RINGMASTER )
$ Z8 |2 G/ E7 x [) R4 ]1 m7 W6 l nPoint += 160;3 T7 V$ q% r! N
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" |: c5 t* L' u3 m# U# K nPoint += 180;' E& H- Y4 j7 D5 t& b% A
else if( m_nJob == JOB_ELEMENTOR )% V5 Y4 f& L: |5 @
nPoint += 390; C! n) M, b3 ~( u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 t, \9 e* [: C( B4 O$ t nPoint += 120;
) ? y3 i Q' l; d5 z/ z; \8 k/ a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 {, S9 i. T! `3 a* S nPoint += 150;9 s" h' A3 z* o& q6 a! F
else if( nJob == JOB_FLORIST_HERO )0 G* v/ `! @: E7 j) O/ p
nPoint += 160;
7 k3 X$ t5 M0 l( Y \9 n else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
G/ { y% c1 {# V6 T; ? nPoint += 180;4 x! M7 Z5 w0 I
else if( nJob == JOB_ELEMENTORLORD_HERO )( P) W/ M% T- C" P( \
nPoint += 390;
& v/ E2 ~+ I( O' R
! i. c, w5 {+ Y" P) ?. j AddSkillPoint( nPoint );9 t' @: J. G j$ F7 O$ U! X5 X& J& W
m_nLevel = nLevel;' y( j; H% h4 c0 Z7 W
/ _0 Z( e; d& p
SetJobLevel( nLevel, nJob );$ ?# `0 y) C* q9 _+ c' W1 b- ~# A
m_nDeathLevel = nLevel;$ S+ N- b- x# ^: |5 H& @4 z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: m4 [3 T% ]. Q% r
if(IsMaster())* n: @$ ?7 F+ N: [5 t+ P' A; i
{
5 K% m0 l, x; Z+ X int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 L; O3 w1 k7 m5 O if( nLevel > 59 && nLevel < 72 )) {" D. U. b2 ^( [3 Q+ D4 S: \
dwTmpSkLevel = 1;- t. }( u- ^. g: X: z
else if( nLevel > 71 && nLevel < 84 )
, H! d2 u" c. I2 G# H dwTmpSkLevel = 2;
8 V, T! k6 R) \4 y& Q; W7 h, T else if( nLevel > 83 && nLevel < 96 )) w) l) X5 ~2 A2 u$ i! @! ]1 G7 B
dwTmpSkLevel = 3;
& o+ k2 ?. G* V9 g: v else if( nLevel > 95 && nLevel < 108 )9 }% k+ R$ W; C. M4 `4 i
dwTmpSkLevel = 4;0 B0 {% B' c& g( Q/ m0 B4 F
else if( nLevel > 107 && nLevel < 120 )
; O1 A2 j W: ]. {# k dwTmpSkLevel = 5;
6 [ D; d8 t# K/ F5 y+ ?/ L5 X for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ c& k3 U9 X3 _& X { 3 x# D5 I W7 z- w3 v
LPSKILL lpSkill = &(m_aJobSkill);7 m, K4 B8 p% v0 v6 O% m6 v& ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" }( p2 Z8 F) a. O% b/ v* { {
5 Q' i1 E- c& l: M6 G7 J9 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 E! U- ?5 o% v+ I. m ~, |* S
if( pSkillProp == NULL )3 G5 K+ y: z4 w2 U& r
continue;9 j" [" P8 Y' J5 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 O$ E. i# t `4 _ continue;! r7 U! m5 @* I4 x
lpSkill->dwLevel = dwTmpSkLevel;
& h7 \ S0 A" \( z+ B5 ? }( ^( s! _- {8 d
}
7 [: c- v. y: f$ i' s. C# f) [' R }6 ?0 e# e% k+ H+ k, G2 }: d4 T8 `4 t
else if(IsHero())% K+ S* h& A+ k9 Z" x
{# e0 z- o- `5 x3 J8 \, @3 ]/ q# v! P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) s' n4 ^ y" {% Y1 _, v4 Q' ?" u. ^ {
) N: P6 T6 P" Y* V- s0 d, f LPSKILL lpSkill = &(m_aJobSkill);
- k- W0 E" |; U! a if( lpSkill && lpSkill->dwSkill != NULL_ID )8 k% M; f: O6 q' i
{6 {6 |7 p& u: C; M9 w8 z$ n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " R! K* N& @/ `8 [
if( pSkillProp == NULL )
5 V; g4 C3 c9 x9 |( a! j continue;3 M8 | k$ D. v/ u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% |1 o9 u# W3 x, e+ ^4 A0 q$ G
continue;0 [5 j, |+ g7 x. a# a
lpSkill->dwLevel = 5;8 A" ?) }9 @( {0 [4 ?" \; _
}
! e0 ^4 N5 ?1 j3 L! q }
7 t7 u! V+ K4 @# c. Y$ P8 [, X }
4 a2 M( f9 @- y) U( u9 @ x W8 X else if(IsLegendHero())
- j; v! B8 h& ]% b2 l {" _$ [: X: i( {" a7 B' j0 F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) \/ ^+ {3 a4 _; |" S& }
{ 2 p& q3 t3 `& L/ b7 k
LPSKILL lpSkill = &(m_aJobSkill);
8 m& b$ X- B# z3 M0 ` K( Q4 s/ l g if( lpSkill && lpSkill->dwSkill != NULL_ID )
& w9 p- F% A, @$ M, T& a {
) c# x( k$ s8 o3 p6 ^( W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' T' o1 w# p/ U1 L; w
if( pSkillProp == NULL )
7 ^5 y/ y& R- W! F' } continue;- a2 Y: \7 p4 q+ _: ^; P9 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); G! ]6 Q4 I' K- E
continue;
4 o [/ p' S& ^6 e, K lpSkill->dwLevel = 5;- }+ f! B4 w; |
} @5 p2 G: |/ Z T% ?, e
}
- N+ H; a. G0 @; l" C5 @/ Y }7 W& c8 _, U$ Z! V8 }
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# J* |3 p/ v: I0 C! K
if( bGamma )
4 D3 X; v7 E* z8 N3 G' ] {
9 h% l! o3 n7 K# I% } m_nExp1 = 0;
1 K3 |. R, M; M8 e }+ {7 s7 p! p) R2 x8 }- A
7 r# e, U' }2 A
( (CUser*)this )->AddSetChangeJob( nJob );
e* c4 p; L' b g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 s5 g+ I" I1 g" ]3 r: Y6 K; G: s
; o) ]' s% k' q# n
#if __VER >= 11 // __SYS_PLAYER_DATA
; I. X7 O7 @" B" u g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. A$ m! F* ~ J3 `#else // __SYS_PLAYER_DATA
0 G2 |& I7 W- d/ f2 V3 \' I4 o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; U$ J1 A/ f* `! I$ W- ?$ M
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; v( E- E4 Z' V" g" j* ?' K" o
if( m_idGuild != 0 )# o5 S" Q2 L/ `" p1 v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 @5 m& I( j5 a#endif // __SYS_PLAYER_DATA6 l9 E; t# p' W( a
SetHitPoint( GetMaxHitPoint() );
- s H$ v- e) \- _) p' l SetManaPoint( GetMaxManaPoint() );0 q* Y5 s, e& O, m
SetFatiguePoint( GetMaxFatiguePoint() );
8 h$ j! M% q, Q; K5 q if( nJob >= 1 && nJob <= 4 )
+ ?: b$ h; M( B- _4 i& X& n {
: n5 f4 ^0 u/ ~- K9 R r* ? m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 M/ f' E+ I4 G% E+ ~ m_nRemainGP = 28;
4 \! i) \$ J8 S: |3 I }
$ `/ \' [) C% \ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): Q. V8 p, L3 G
{# J4 n' K4 I# z: u, }# F0 B9 Y; O2 _1 x
m_nRemainGP = 118;
: ?, C% [' U- y, r //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 G: u' [# m" q% Z4 H n m_nStr = m_nSta = m_nDex = m_nInt = 15;
, n! w ]$ B# e' ?2 ` o }
- `: ~6 g! B* e$ f6 s8 e if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 E" K# W4 ~* w/ ?/ G- j
{
' ^; i% S7 D- q- b CItemElem itemelem;
% }/ x" L4 g8 M" X/ u: _! x itemelem.m_nItemNum = 1;. Z# N. ?( A/ t! z
itemelem.m_bCharged = TRUE;
7 p- Q' i5 I! L' `- I4 [1 @9 D' B BYTE nID;* H; I! Q; @( I- g i7 D+ ]
, Z) w6 ^. Y% A _. _
if( nJob == JOB_MENTALIST_HERO )
8 g l7 ~1 }) ^# y; ], ?( H itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. g1 q4 ^& w% n0 k if( nJob == JOB_FORCEMASTER_HERO )" s# U+ I, ^6 D, a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 q! b! J% g+ d3 s9 v' i- C+ t+ {/ c0 F2 W$ i
( ( CUser*)this)->CreateItem( &itemelem, &nID );* X) v% k. @) h' O
}' S0 _/ M. |4 {- Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ {/ w; c/ P1 }/ d, A- W% U& q& {3 m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# ^: N5 j4 W# h- ]! v1 U: \8 z, f ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. \% N0 @( W5 x* S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ H$ @9 c3 y# [, Y3 J/ K" ]; c" O
( (CUser*)this )->AddTaskBar();*/' a6 h/ k- O3 [" Y" o _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. E0 ] F/ N' P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 C$ h" }+ [: Q5 L2 b ((CUser*)this)->CheckHonorStat();2 U' i/ d( h6 h9 f: g
((CUser*)this)->AddHonorListAck();: M. h0 y, ~* _" I
g_UserMng.AddHonorTitleChange( this, m_nHonor);% z+ v& U! M0 B0 O- {; B
#endif // __HONORABLE_TITLE // ′Tà?
' }) W* }3 S# D- w9 p. H6 Q& w }
9 u$ K5 S, b; X; s: ?) C' W9 [#endif // __WORLDSERVER' q, b/ U) F4 Q/ Z, F) c5 S$ z
} / i9 a `& b v
/ b0 n: _* t& O3 P; S然后你进入functextcmd.cpp并添加以下
. c" J7 R6 S6 Y: F1 H- j7 l3 o m" F1 R" d
代码:
/ Q; s4 X0 W% bON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# t2 D$ v8 z: g" i$ {
下面插入
. U" Q. P/ y# c2 x% q# xON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 v3 s3 b, ~$ V o6 j3 @
}% a* _8 e* @
然后你去
5 D# j. |) } K; g
" a1 T! x; a, B, m代码:" s, `# G/ j/ u8 c) f) K
代码
7 h% q" z" z) y JBOOL TextCmd_ClearPropose( CScanner & s )
- t! t: x9 b( a5 D6 a4 ~: Y5 U{
' c+ [/ A) {, f. E#ifdef __WORLDSERVER
k# `$ L) h' _. t7 Z9 u2 Q# x1 C CUser* pUser = (CUser*)s.dwValue;
- k, o4 t8 G- ~ g_dpDBClient.SendClearPropose();
5 \3 e+ D! a# ?9 c0 u#endif // __WORLDSERVER5 I% s; }4 M+ T; M. Z* a& \! a0 b& T
return TRUE;3 V! ]+ S" D" e+ h( n) c. p
}1 `& [7 j# t+ `5 |8 B
下面插入
' y6 f" B6 s5 R {BOOL TextCmd_rebirth( CScanner& scanner )
6 k9 I( B/ h; V& b; Q4 ~{! h' C1 B, ]! X9 _) F+ e p
#ifdef __WORLDSERVER
! U8 z+ Q. b/ t* E) @0 a$ z4 p. YCUser *pUser;
/ ?3 D" c% p8 G$ S8 v8 J8 l& OpUser = (CUser*)scanner.dwValue;
) L$ `) A7 e; a8 lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# v3 a( P7 {8 A6 \( ?1 T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 i0 ~4 J# f# h: S+ o
else& v3 V$ X! Y% L0 c$ x
pUser->AddText("你还未达到重生条件!");
# J: A! w2 k& p( _7 M#endif* n% l6 C) o) q) G( r- G0 w
return TRUE;+ i y+ d n, Q. h1 Y
} 6 L& H7 ^5 w. W- V- ~5 m( ?
+ y) ^' }' Q9 n* \9 Z2 M3 C5 u
& |1 R, h* b: t+ ?
7 L' l' f4 i: R# l9 O' m) T' j" ?& h* {5 U
|
|