|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 W O' S) Q9 r, A! \* X
4 t* W; p0 i- X% N# K. d7 u" C5 H& G' TMover.h- K" a% z3 y% H8 ?- j8 r3 o: }
代码:" v& V J) ~! M8 f0 i
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( `' P y1 e- c3 |; V+ I) e. b$ V9 V* u, O" Z k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & [/ B' q' v4 I/ o
/ G. I" T* i* F& l; l' z! q7 b然后你去mover.cpp添加' k c: `5 I6 l. Y
6 a2 O3 n4 B7 Z9 U! M
代码:/ n" y5 N6 V: @ ^1 H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): T# H4 H' l+ }5 n
{5 u: [- A$ w, B7 x5 d1 {6 r* C' ~
#ifdef __WORLDSERVER
8 Y; g4 `! @1 S( H // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 I" J' H j2 ]) _$ Z
MoverProp* pProp = GetProp();
; K- ^% d( ~2 `4 F! P% t3 S if( pProp )
- U- K9 J( ^1 ^. `* [" m) \ {& m. |+ b- M, q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 c% z' q& B* G- x
{
' b6 K+ H7 z( ?8 C* C AddChangeJob( nJob );
# P# a1 Z7 B" x/ u5 s: B& N1 T }else{
1 k' c, U* C* [1 y" C8 [ return;
. U0 q/ k ]9 ]; _4 h } ^: L! I3 b1 I( I' |# C# g
int nPoint = 0;% X: c; g4 R3 o: a* a8 W/ w
if( m_nJob == JOB_MERCENARY ) C* l* j* Z( h' ?- i
nPoint += 40;2 y* W) n" T. G: Z! D! C* U
else if( m_nJob == JOB_ACROBAT )+ K- Q' u" o* p
nPoint += 50;; t3 a1 s( u, s% u! w
else if( m_nJob == JOB_ASSIST )
2 ~1 d& E; F7 p: a% g3 U! V. u! @ nPoint += 60;
$ } Y5 w( I7 @* u' N else if( m_nJob == JOB_MAGICIAN ) Q3 H+ S V0 o6 ~% T
nPoint += 90;/ u) N( ^1 Z) Y* M% e
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 ?0 n& `0 t3 f: r7 n4 P
nPoint += 120;
" t. M2 H+ ?0 q0 g# G3 y' j, s else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ U" X f# e; C9 Y nPoint += 150;% T* `* W2 \4 |
else if( m_nJob == JOB_RINGMASTER )
( o% @( j# C9 |0 h7 E j; V2 m3 L. Y3 P nPoint += 160;
5 Q8 b$ n8 N6 `; O, d. \) l1 t else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# f7 J# l, F5 Z. G- T( n S9 f
nPoint += 180;& u; f6 p; x6 Z1 H# f' H9 e# F1 T. j7 z
else if( m_nJob == JOB_ELEMENTOR )7 J9 s L. w( [- S4 g% s
nPoint += 390;8 \# i- P8 z! }2 D* u% A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); \0 g7 t l, \' z1 ^! T$ Q# r
nPoint += 120;3 n$ @; R5 `5 A6 u# u/ L, @5 I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 _: p: q2 B( y9 M nPoint += 150;
# R& T0 o2 V: k' Z- G1 l& U2 @9 c" u else if( nJob == JOB_FLORIST_HERO ): M4 j$ l% M) a6 h: P' {
nPoint += 160;6 t" _. f% I, E2 \1 d8 }2 {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 o9 @ c1 l$ T: ?; D% Y H# n nPoint += 180;
9 d0 O" ?, X+ U3 _8 e! | Z else if( nJob == JOB_ELEMENTORLORD_HERO )8 N5 N+ L2 _- f
nPoint += 390;8 E$ Q- d2 J5 S" R# j% Y! ]# P" |& N& s
) `6 l1 E' r4 o% x2 o. S AddSkillPoint( nPoint );' @$ t* A" D$ W. G8 u! d
m_nLevel = nLevel;
4 i, A( c* X) K' B$ p) n
i% y/ k7 l! F% Q* u) c/ H SetJobLevel( nLevel, nJob );
4 O% F1 @. e8 H9 r3 P m_nDeathLevel = nLevel;. [: v9 x) e. O$ g+ Z4 _: j' s1 W
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) T5 o" M# S* k% @ T
if(IsMaster())4 g- ?) z/ p5 J0 O: g! \
{
8 w7 X0 `2 ^8 @8 k& g int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" _, V, [5 F3 s( Y: u2 H& v. ?1 D' G
if( nLevel > 59 && nLevel < 72 )
* {% r3 X7 I5 [& H8 p/ N dwTmpSkLevel = 1;* \; I0 d1 q) y. U# j$ n6 D
else if( nLevel > 71 && nLevel < 84 )" @+ {- ?7 d. W' u# e
dwTmpSkLevel = 2;9 T; `7 C3 A! i& C$ _% b
else if( nLevel > 83 && nLevel < 96 )- \8 a6 u. l+ E; ?" |/ Z; B
dwTmpSkLevel = 3;( p* A3 m" @; ^# D, @3 W& g0 i% h c
else if( nLevel > 95 && nLevel < 108 )& Y* j: c2 k {' [7 R6 J+ _/ x
dwTmpSkLevel = 4;
9 @; r6 K" t- V; l else if( nLevel > 107 && nLevel < 120 )
* B9 a( o' e9 T9 E5 W' Y dwTmpSkLevel = 5;' H( u8 j( E. d2 B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' C8 M ]) @6 v2 O8 f. P9 ] { & E/ y+ t) r3 A9 x& R1 F% j: Z/ n7 J
LPSKILL lpSkill = &(m_aJobSkill);
0 T3 o! H& D7 J2 l7 [; b2 I if( lpSkill && lpSkill->dwSkill != NULL_ID ): B2 s; @! u0 F& a$ ]: a
{
- i! Q/ a+ G2 W6 b. a6 d7 E4 P; s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( l8 ?% {2 N% q+ m$ M( k if( pSkillProp == NULL )
" ^) Y& {, @: _9 {$ | s continue;9 j/ b9 h/ `0 b: ~. |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 [: v# h1 \9 ]0 ?$ H continue;
3 a/ t, |/ I4 e6 |. U lpSkill->dwLevel = dwTmpSkLevel;' `# o) r; ?; u, M" E
}
6 A, G3 ?6 |7 O5 I* ^ }
; q8 ?& c5 U! p; |5 q }4 ~' A$ |( G& P E2 F1 k% D
else if(IsHero())
7 P8 A- N9 j E- D: l: i { m9 M% V ` y; @5 S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! M' y2 H) F( D3 Z# N4 K; j
{
- U9 Q" ], ]9 U0 r+ A) Z( u LPSKILL lpSkill = &(m_aJobSkill);
5 M Q4 V0 b3 ]; l% N7 s if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 g1 ]3 v, J Z {
0 @6 A8 X ^% x. x) b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 _, U- n9 I( t0 o' b4 U if( pSkillProp == NULL )) z) g- @5 p% [2 \/ o) [
continue;+ N# ^9 y* h: @3 B5 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 H: t& l4 T" i& H6 h continue;
5 s7 C- X8 u6 R2 q( r lpSkill->dwLevel = 5;
9 P( J" E- L3 N! Q/ N }
$ [; }+ Q1 y+ P' `) D }1 Q) J3 } t. W: y% J$ i8 n
}
p+ z( k' h8 k: z4 ^0 Y5 { else if(IsLegendHero())* K* Y$ q. p% E! K
{
3 g: g8 l; J5 Z# n$ y# w, A, w! k! F for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 _1 y3 j% A5 ^/ {$ n* O2 c
{
" o7 Q0 e1 }0 v& g LPSKILL lpSkill = &(m_aJobSkill);- p# n' Z" J; \9 l% k& f4 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* A' {+ ^ H7 X7 M( V% U' `8 q {$ ]$ t- I, Z! K, _$ G2 ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 G0 d- @5 e3 k# T8 k3 M( G# p if( pSkillProp == NULL )! P. i, U2 V. u/ N4 H' b, e. Y* d
continue;5 t: I" R. o( ^( ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% U& U! c& l% `1 y5 f; ?
continue;
9 G7 ?2 ^9 J8 g1 `+ t M$ _4 w6 T- d lpSkill->dwLevel = 5;' u: q+ Y E( d! S" b8 d& D
}+ g, ^4 d- L# u& G- [' g
}, K5 G5 O$ I0 r4 Y4 s% C$ h
}5 ^/ }# E7 \4 q3 Q6 }
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 |+ A1 E2 i5 |8 o; u& M
if( bGamma )
% d/ J' k# I/ W5 o( l4 E; j {* b# }' l/ }- R( T8 b
m_nExp1 = 0;
( \" w. y! n+ p& X; H U, U. _9 ] }
' }: V- ?; a Y7 g7 G; c
( V0 P5 i1 m6 y( E4 ~+ V ( (CUser*)this )->AddSetChangeJob( nJob );
j0 N. h6 X1 |+ J5 b8 g: Z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" w. G5 F( u! ^( u: E3 l- m" ]
3 q ?$ `, s5 W7 i' m
- i9 E5 C+ } }% X1 {# Q#if __VER >= 11 // __SYS_PLAYER_DATA
9 K0 a( e, o, m' z; Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% S! U2 K+ |' m2 \- ~
#else // __SYS_PLAYER_DATA6 R' ~2 a; f) F k' ^& B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 ?. D4 _* M! @$ K1 ~
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ `0 i, E1 }, { if( m_idGuild != 0 ). g+ i2 L0 S5 s& Q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 `- ]- L! A8 b& N: k7 m
#endif // __SYS_PLAYER_DATA: O' |: k" o6 I: k7 q2 @9 \
SetHitPoint( GetMaxHitPoint() );
Q/ C& f" B0 Y7 | SetManaPoint( GetMaxManaPoint() );
4 p5 c4 z r9 w4 \& i$ W1 I* ^ SetFatiguePoint( GetMaxFatiguePoint() );
0 B* e" P; y) Z8 n* t if( nJob >= 1 && nJob <= 4 )
; z4 C5 J$ R) q {
' E2 g5 n) {; m$ Q M) C( R m_nStr = m_nSta = m_nDex = m_nInt = 15;
* f! A3 ]8 q1 n m_nRemainGP = 28;
! h% t+ D* |2 j2 P4 N- F6 W0 Y }; O; B9 ^9 B+ L, B! l: j. u
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 F& b/ k6 y. @2 T
{! f0 e5 ]/ L% h8 ^
m_nRemainGP = 118;
; Y8 ?6 v, R0 |6 Y, [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; p# J; t6 K5 t0 ~+ p; Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 X# v# Y8 W' e1 M7 V
}
! d$ I" C; L8 M6 u0 ]; B if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 y0 [: T. V, [2 _( U& ~5 w. t {
% i. V- [# \& o) p1 g6 @9 I# \$ n- p CItemElem itemelem;
! H6 I9 \0 o! o5 v6 N5 [ m itemelem.m_nItemNum = 1;6 o: j7 _. O" N8 T
itemelem.m_bCharged = TRUE;
2 j- {) o3 v: H BYTE nID;
! Q; w) T r- G" {
& a9 K5 b8 {" B/ v3 ]( I, J0 g if( nJob == JOB_MENTALIST_HERO )3 t2 Q( X V/ k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" s/ T! a1 I8 r+ i6 e% X1 _
if( nJob == JOB_FORCEMASTER_HERO )
, d+ i2 w7 h$ ~, m; k- N itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 k8 {5 ]0 B1 [4 c7 J3 e* W6 M; G- G/ T+ ]. z3 Z: o! a+ j
( ( CUser*)this)->CreateItem( &itemelem, &nID );, W7 q$ N* {2 ], y) p0 Q. t
}
; r. C) v1 V% b8 r( q m' W( L: r g_UserMng.AddSetLevel( this, (WORD)m_nLevel );; e+ J5 Y6 N. F( _/ @+ b, e. l
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) i+ g6 l: I& M7 D9 a ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% t) f2 y( P1 V! A# F9 c" ^8 o' _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( U0 m( B8 n5 ]; I! ~% _( M
( (CUser*)this )->AddTaskBar();*/
3 \( ^, z6 V! p; _& A0 n ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 M, ]- J9 I. r7 @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 L* |/ s9 A! p n5 w
((CUser*)this)->CheckHonorStat();
E+ W$ a% h8 x5 [ ((CUser*)this)->AddHonorListAck();
( v( E, ~% S$ o5 R8 o g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 t, d( v' H3 M2 U) g#endif // __HONORABLE_TITLE // ′Tà?
/ l: T: h+ e: U( K# d }& k( r7 P Y: W1 p7 u) r) e
#endif // __WORLDSERVER
* W$ Z, A" p4 s( T1 J; `* @/ i}
0 o$ \ k- `1 ?
4 n. M9 T7 {) S& V/ |7 ~! x) b2 b然后你进入functextcmd.cpp并添加以下
& V2 n. } Q9 m3 ?+ W' h
9 n0 n& w o. h1 f8 b. Z! g1 o代码:9 V; v0 w# ]4 h, ^
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 m: _/ ?0 o' j b* Q
下面插入
( @, n) [* Z! a1 FON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 X9 a. x' C. s2 f# {, L0 o, ~
/ d) ~! N' m0 G \( U E然后你去
; ~) y; q+ \* {4 U# D% J" V: J* e6 F d# j6 r
代码:
- ~! p1 ~0 h9 p- M5 |代码* s+ [6 K" g; t; Q
BOOL TextCmd_ClearPropose( CScanner & s )
7 o9 u0 G& _$ I# A# a/ K1 ?* O3 ?{$ s3 Z# V4 T& J" C" H( J
#ifdef __WORLDSERVER
; q: p) Z9 k! c4 L7 J" ]* K% o CUser* pUser = (CUser*)s.dwValue;7 b* i( m1 ~# z* q1 l
g_dpDBClient.SendClearPropose();8 {) L0 l8 ]4 S" x7 W2 H
#endif // __WORLDSERVER& s; @% f8 n+ T2 w O7 N3 J+ G
return TRUE; p! _! O* D# X* Q# }9 _+ v
}; X1 Z5 U% x3 V3 W
下面插入
1 i/ M/ \, E; l3 Q7 e$ t9 _$ u) U7 tBOOL TextCmd_rebirth( CScanner& scanner )
4 C) R! S- R7 M& O2 N{
* \, F+ J3 j) \8 v, o#ifdef __WORLDSERVER5 i4 m2 D! s! l" B$ s
CUser *pUser;
6 ?& A( q9 o dpUser = (CUser*)scanner.dwValue;" q6 j; y5 Z) p' z8 M
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 Y" d8 w2 Q. E$ d6 ypUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 Y9 n8 T$ N) J% r7 l3 g8 helse- \0 S1 I; n. H2 a& M
pUser->AddText("你还未达到重生条件!");. w1 F% E/ r/ M6 ?+ ]5 n- l
#endif6 H& P6 a* }% C# B; G5 I
return TRUE;
# p. k( X" W( e6 @}
. y! k; k2 _% i$ k3 E; f% ]4 m# \7 f6 N. m9 P. h* B% ?( {
0 q/ y/ V7 x- Z, d
2 z" o4 L& d% h: y7 o6 ~* E* J
Y2 f# E. k9 G6 _ |
|