|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, h2 D6 j& Z* m3 Q) U; ]& I3 i1 | m: Z j% l% S4 W5 Y
Mover.h" P* d/ h- N8 R7 r2 O5 n* M# u
代码:7 @3 _- Z/ [7 }2 u( r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. ?. l1 k0 U! ]1 [5 K
, i$ {6 \6 D! z+ C4 [( n2 a% c8 j下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ P0 R1 U1 y3 u5 S2 B( T4 l9 e
然后你去mover.cpp添加
5 F( p! W* Z4 }- Q( [/ v3 h! i( H- q
代码:
2 w) R. ?6 J, Z3 Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 l" j( ?# B. {" X& A: H, u/ I
{
; V4 F" g* Z; y: ]; h#ifdef __WORLDSERVER
: w5 b* o& G+ ?5 R // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: @ k/ M) s; J- Z MoverProp* pProp = GetProp();
$ k _+ \! e3 e! V" W$ \ if( pProp )1 K& f4 S' M& V) y% R4 M: A: C& v
{
3 G8 `/ `: ?, ~; J9 o h if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; V; f9 D* Y. P! \+ r- _% V( q& { {6 Q) q8 i. l8 i5 I" A
AddChangeJob( nJob );
9 Z" q2 d3 ]8 C$ v% r6 U$ ] }else{; R& U3 H/ I9 |5 h4 ` q X8 M
return;# a# ^# D2 H1 q8 |- M5 W$ v( x
}
! u; f/ i# K% d& e$ B N int nPoint = 0;' v8 p% u" I; J5 U3 \2 {7 z$ o
if( m_nJob == JOB_MERCENARY )
# V* F9 f* v) X+ V0 @4 F$ N% }7 J nPoint += 40;
( a# ~+ H* f0 ?3 i1 e2 O; ]; l8 z K2 o else if( m_nJob == JOB_ACROBAT ). N0 ]& H( V/ Y- i
nPoint += 50;
, K* f0 y0 v" W7 G: _4 K5 u7 g else if( m_nJob == JOB_ASSIST )
) s7 p- j* l/ h2 S nPoint += 60;- W' P5 Y$ E9 F1 H1 D) ?
else if( m_nJob == JOB_MAGICIAN ). O: n y6 C- q0 S( B
nPoint += 90;
) C% l* I. O" c% }) d else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. V. @! p4 n5 f) G; q5 l) H nPoint += 120;
0 a% y. s/ Y5 B h1 m else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 y; p1 H+ E0 T7 h; E
nPoint += 150;
' o1 K; G6 K( j else if( m_nJob == JOB_RINGMASTER )
3 X0 x' d& L1 j' P: G4 P* j! |- l nPoint += 160;
( `/ Z8 G' _ Q4 ^9 f else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). u1 u3 g( ]( O1 x1 f6 P8 P
nPoint += 180;0 _* R9 v* X1 D/ Y7 b7 O
else if( m_nJob == JOB_ELEMENTOR )
3 s+ u) i* B+ _; L nPoint += 390;
6 `" s! A6 q! W, B& V- c else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% T5 o( P O7 U6 w& K
nPoint += 120;! [' h9 \* d. T% t8 Q, R
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( Q- d( C% Q3 r! K& _2 a6 k% ]
nPoint += 150;
0 L s& s" g6 M0 t8 k: H8 Q else if( nJob == JOB_FLORIST_HERO )
! c' l4 M* R/ t6 Y nPoint += 160;
( k }2 ] }2 ]) D+ t2 } else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 @4 H! a! L4 y+ p2 i nPoint += 180;4 `: a/ z1 e3 N( Y+ _
else if( nJob == JOB_ELEMENTORLORD_HERO )) V% S' X! u, G
nPoint += 390;
z+ [1 N" M4 j: f
! c2 F q( i3 A AddSkillPoint( nPoint );
# k4 D$ v8 J0 k: ]$ d m_nLevel = nLevel;
0 H$ F( v5 H, D) Y6 ~; z
a' y2 L0 T' N" k, R# i, L SetJobLevel( nLevel, nJob );
, ]1 P( P% B8 Y! o2 o9 X" u8 u0 B m_nDeathLevel = nLevel;
0 t* [! K n5 N( D#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 G# S; }0 C ^7 k+ p# o if(IsMaster())
+ T! u0 q9 o# D9 c; F4 [; A {7 x& A5 ^4 B- Z1 H8 u; w2 N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 b# ~7 \" s. z% E- R$ f2 G if( nLevel > 59 && nLevel < 72 )7 h* K" ^ I: ~3 Z
dwTmpSkLevel = 1;
: n# g) |: q \9 p5 k! i else if( nLevel > 71 && nLevel < 84 )7 R. a' }3 B6 Z, }- k
dwTmpSkLevel = 2;5 d1 k: Z$ {' K% Z7 Z. I
else if( nLevel > 83 && nLevel < 96 )3 ?$ w2 N$ E: D5 f2 j( V
dwTmpSkLevel = 3;
, ^; I7 I* M: p7 u else if( nLevel > 95 && nLevel < 108 )5 m( W# _1 m+ H/ e1 e7 ^+ S4 [
dwTmpSkLevel = 4;
4 @7 B: y2 @8 B5 ]3 p6 P& N else if( nLevel > 107 && nLevel < 120 )
d# i1 ^( v/ I! `4 R1 R dwTmpSkLevel = 5;
- j/ o4 {: g. ^* i( q E for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; b1 `$ S+ X" s: D; I6 X0 H& @% ?
{ - R5 J9 O6 j: l
LPSKILL lpSkill = &(m_aJobSkill);
- t }( z6 |8 x( j6 `5 _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
. q% S$ o- r9 J& K) ?, F3 o& Z {
* {9 Q' q. o7 |3 @6 C( S8 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % ?" m( Z1 `# K) o/ v
if( pSkillProp == NULL )3 e, u$ p5 [8 d$ N C% o
continue;; p }, h. ^0 S6 c \# u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- `8 ~5 p; r% {
continue; _" q2 g' F9 |" [% F8 V. o. _
lpSkill->dwLevel = dwTmpSkLevel;/ G* ~% ^% w7 t
}
0 M, }& h! X1 ], X; I6 o7 L& c }
/ O1 I; V2 q) N# Z' }2 b, I! Z }
2 t0 A6 y2 L% V2 ~ else if(IsHero())
) s: r/ f+ K+ r {
4 c% {( Z' l1 Y6 S- P m4 u for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ ]1 Y4 p( j5 S F% I
{
4 d+ |4 F" e, z% ] LPSKILL lpSkill = &(m_aJobSkill);1 N( W0 g! P5 }) V" E6 _
if( lpSkill && lpSkill->dwSkill != NULL_ID ) {- ~) A( E9 C4 z5 j c1 a$ D9 n
{$ n; C1 Q: X" s- U! d. y% w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 F2 a1 t9 Y: }% y! C; M9 l
if( pSkillProp == NULL ): t0 t4 r9 L6 i- ]+ K0 i9 C8 T; o" E
continue;2 M. S3 @$ N' G \6 `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; ~! v( @& K1 @ continue;
; |% P* v! N& n. T `$ A lpSkill->dwLevel = 5;
' i3 n1 a0 N { b, A8 h0 _$ M }
0 q4 m3 s2 D% T! O8 B% p }# g/ @2 `+ C* T( f: s4 X6 `9 i
}, a7 C' x! J9 h( E$ @
else if(IsLegendHero())
5 Q" ?7 q. w. J$ y' i) p Y7 y5 i' { {, P" {, d1 V' E5 [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" O1 h/ m1 l/ L, J- H/ p; h: c {
! E& z! S+ A+ }: c LPSKILL lpSkill = &(m_aJobSkill);
2 U6 c1 L+ ]/ P( v% A2 f6 S if( lpSkill && lpSkill->dwSkill != NULL_ID )5 t1 d+ t) b. Y$ g2 N
{
K/ |! y* J T$ z; `# z$ l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 [2 l1 S9 A' ]& J6 X, G Y$ y* M if( pSkillProp == NULL )
! c8 d% {) z/ \/ V continue;
7 Q6 x- l+ i4 O: V: u( K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
P- N8 C; _0 i7 m3 E+ o0 } z continue;
8 W( W1 b1 K1 _# O lpSkill->dwLevel = 5;
1 B7 [% F! e1 B' I }5 X7 h) U! L+ r. j. Q# D: Y
}
5 D1 b+ a+ Q9 K& [& U7 ~ }
( h7 d9 ~6 U6 o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ @1 i/ H0 c1 |9 L4 z
if( bGamma )+ A- Q6 q7 V8 n8 i) y; | P! b
{
( t0 d; e8 c7 b$ Z m_nExp1 = 0;0 x2 i! e% l/ A
}
6 b4 h, y5 ^9 Y1 N+ W D6 T! E N4 ^. ]+ s# q
( (CUser*)this )->AddSetChangeJob( nJob );
" `1 ]" s# z; C. \9 W6 ^ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- e* w+ s" g. J1 [1 F7 a* V. K
1 s! B9 Y7 G! U ]3 L# p: \/ q9 R1 ^
7 w2 \, h0 \4 z8 }#if __VER >= 11 // __SYS_PLAYER_DATA9 w$ s" g b4 T1 R+ t1 H
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 V) v2 u& C, ]! t( W#else // __SYS_PLAYER_DATA
% v5 Q5 ~ Y$ Q3 u g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) f4 J6 \3 ]3 ^6 O. C/ b- I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& A6 E( c \& b& [# U4 B
if( m_idGuild != 0 )1 N5 w# D6 S5 h+ f7 V) o8 R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 J+ D4 P2 K% W$ l |- l2 D
#endif // __SYS_PLAYER_DATA
' k1 ^1 R; M- J* z( A SetHitPoint( GetMaxHitPoint() );
) W* `6 B4 k9 P# Z SetManaPoint( GetMaxManaPoint() );( \# V5 V% N" z3 a
SetFatiguePoint( GetMaxFatiguePoint() );, M/ V0 q v! v) m
if( nJob >= 1 && nJob <= 4 )1 T1 R' p" \+ h& w
{: i% V4 d9 a: i7 h7 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 a. r# R; s, ?
m_nRemainGP = 28;
& f8 L+ ^: o1 X: m. H( N, l }
- i0 O: N& f5 r9 z/ l& h, O( } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
L; m d3 s$ u/ N+ k3 s {- Y d0 I, v' E9 e
m_nRemainGP = 118;
6 i% D8 F# d" Y1 t4 L1 j5 b0 o" D& j //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 U3 e+ L; v x- A$ i. Z m_nStr = m_nSta = m_nDex = m_nInt = 15; m# V& y7 x5 i& m9 J: q2 A
}' }+ c8 ~0 k3 J' D/ {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& `/ h& j$ a3 [ {
E& ]8 x6 ]5 ^! p- F CItemElem itemelem;" G. o! a0 p) p
itemelem.m_nItemNum = 1;7 J; s ~7 p. t6 a: U9 o+ G
itemelem.m_bCharged = TRUE;
( v$ e+ ^' r+ Z7 v BYTE nID;& U S; l( w! I2 X2 `1 }
& \# h- E2 n; b2 @8 J) y if( nJob == JOB_MENTALIST_HERO )
4 D4 c) R, C4 x( }3 h1 R& \ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" t: P1 \* W7 k' r4 { if( nJob == JOB_FORCEMASTER_HERO )
7 _$ {1 M) o% J itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 o/ v* v! i. q Z# [3 F
( N; s& [& |8 x6 w# L! Q- o ( ( CUser*)this)->CreateItem( &itemelem, &nID ); q+ ?+ c( w8 P. ?% P4 F
}
7 J z' y6 \9 z0 R; O$ M/ | g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
~( |7 l3 S! k: N% Z, K7 \; ~! Y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. y% ^$ E* t/ K4 @$ h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) h% _; U, O1 u S# g2 y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; B1 V) j4 [7 V2 w7 G9 k1 I ( (CUser*)this )->AddTaskBar();*/' z2 E/ L& v3 R7 K! ^: o+ s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& d+ ]& j3 T% t/ j4 Q' a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! c2 o8 F3 N8 T. P ((CUser*)this)->CheckHonorStat();
' m/ N/ e2 |$ S( J ((CUser*)this)->AddHonorListAck();
# l9 q# D; z& ]( A0 K9 g: A: ]( a$ w" x g_UserMng.AddHonorTitleChange( this, m_nHonor);5 A8 K- B' K/ T" h( U; F0 ?
#endif // __HONORABLE_TITLE // ′Tà?
" ?: H: G: d8 [3 M }8 X& Q4 \8 P( D4 B& {
#endif // __WORLDSERVER! g* x5 q- n/ U/ b6 K$ n2 @
} $ \- {! i, W4 Z1 n0 ?# l" N
5 n8 }! g; U" B/ G$ N' H然后你进入functextcmd.cpp并添加以下7 X) T U+ A7 x- X/ O/ k
3 n @7 t# D' J/ T5 L/ e
代码:: U: `& D9 S; ~9 G' h6 u$ C: \ C
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), {* `* i) P) g ]% F# ]* K
下面插入. u1 Y( O. U5 S( L
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , H) g W( `* R( f/ \5 D3 p
7 O5 O, u' ]2 T3 ^% K
然后你去0 |5 [9 j8 m* @8 p
' t. l# i: q7 H; Y. S% c" ]代码:1 G b+ ]1 u1 Q
代码" _; Q6 y% z# [& t4 Q! w/ |4 X
BOOL TextCmd_ClearPropose( CScanner & s )
/ q: c$ V+ B( N# o% V' `: x{. D6 M" T h, ~# o' K5 ]. R
#ifdef __WORLDSERVER
2 E4 H: x2 e( o! W' M0 R1 s CUser* pUser = (CUser*)s.dwValue;5 z5 X* x; b: F G- x2 y3 f: I
g_dpDBClient.SendClearPropose();
/ a& G8 m/ Z1 W6 P1 W3 V% F% _#endif // __WORLDSERVER
( W8 H1 g! p2 M8 ?7 T3 T return TRUE;$ M2 y$ Z# c& m8 q
}
) L; r7 x; a( [3 j% C; \+ M2 o下面插入2 I; S4 k7 S6 s
BOOL TextCmd_rebirth( CScanner& scanner )
# d# R8 C B$ p2 R+ l( ^/ X{; C- j% `* X6 E# A( U) h/ o C
#ifdef __WORLDSERVER6 z5 m8 B# r3 s* f2 I
CUser *pUser;, d% }. b) s7 [6 ]. C% N l' d% U
pUser = (CUser*)scanner.dwValue;
5 W; k( P8 d, L/ Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ f0 U" a1 W& G9 P6 _
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); L) z U1 c) W1 I2 v, B6 s: `
else
, z$ e: i+ t% X% h8 jpUser->AddText("你还未达到重生条件!");
8 R) c; J3 K# h4 t#endif
( M* i4 V. y: w2 E. I8 \( U. ~return TRUE;. E# q& n2 o( K* t* J1 t
} 6 y/ B9 [. ^2 f( x
* U7 [$ \, `3 N7 z' u& J
$ t) E$ C! j+ { B
: f: H6 V4 Z3 | }4 `; x' ?
0 h3 j5 b! S0 ~# l! B |
|