|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: @9 K0 p& j# P- s/ C- g
" m: q( H' k7 c* \
Mover.h
% c/ ~' h2 h: z& n- S. p9 D代码:6 j. k8 H: A2 `1 r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 }; j! }( w! z; c
: r) P# Z5 X" p, ^6 g下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* y% t C5 } h6 a2 a1 C
" x, Q* W6 f3 Z5 A* H2 Z然后你去mover.cpp添加$ c0 L5 T$ G% ~& y6 n& {
) L; r2 ~7 ] V4 D3 F
代码:
9 ]. _( v2 x o8 Y5 g4 Svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% S% ]- Y6 q" L6 l$ b9 c# [8 L5 C8 N7 t{
/ ?* R+ b3 N- B. |, B. y4 ^#ifdef __WORLDSERVER
. \% S9 L( E$ S' d7 }) k // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& @5 L$ }: \2 y* t; g. n MoverProp* pProp = GetProp();
3 Z. S# ]0 w! }8 u- F% H" Q if( pProp )+ ~, L# Z, w5 m2 B, k. E% Q
{* M: u- C* F" T" y) Z7 `: T0 I9 U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* w) v) Y- [% k4 b {
" Z1 e! A: u+ T# n; f. e AddChangeJob( nJob );- ?4 Z, A! h6 f. n `+ w
}else{2 ^, q8 x& j8 W4 f8 S. M, \. R
return;
" `8 B4 h6 ?: s+ C }
/ M: f" g1 C( q' R( C- e" z3 t int nPoint = 0;
T# }5 Z) C/ F e) E if( m_nJob == JOB_MERCENARY )
: [" `3 |3 @) h0 P. g8 o1 @, ? nPoint += 40;8 z7 R+ m, T( V
else if( m_nJob == JOB_ACROBAT ): N: W' {) f% O" ]
nPoint += 50;; m; K- y5 V' ?9 y
else if( m_nJob == JOB_ASSIST )
& {# k7 `2 q$ v8 g1 u& T nPoint += 60;1 a% X% r) ]" P' j6 y6 _# b) R
else if( m_nJob == JOB_MAGICIAN ). v$ ?9 V H4 Q8 {: h" `
nPoint += 90;
/ `: J* K$ c9 p7 O' E8 T# {+ _ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ ]) N* H: Z5 m! ~, M nPoint += 120;
* v2 a# P& \' I8 `" ^ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; @) N, @9 m" X* Y: C$ F nPoint += 150;* _4 G) R- {3 Z7 U0 O4 k
else if( m_nJob == JOB_RINGMASTER )
7 S, C, ?' f; J f. \* T/ q2 O9 i& l. a nPoint += 160;! {# A+ U9 Z! Q. J, Z* ^8 }- N
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 Y/ }' z, Q: R5 g, w
nPoint += 180;* v# N0 V! G, a. r6 g q+ s. y
else if( m_nJob == JOB_ELEMENTOR )
' z* z2 `- {1 Z: \- w nPoint += 390;: m' D2 E' l8 l% u+ g& S- Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( X$ e5 c" y/ r0 g4 x, i$ r nPoint += 120;/ E& s# z1 ~/ R( @9 T B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 |0 K3 U8 d8 v+ f% b
nPoint += 150;
& _6 U+ ]+ o' A! P1 E else if( nJob == JOB_FLORIST_HERO )' z+ y, u* B" F P w
nPoint += 160;
4 ^, l. W/ n+ t) b; ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 i4 u1 t3 x4 [* r nPoint += 180;
* F/ A! ?" M) s `! \& i; y5 I else if( nJob == JOB_ELEMENTORLORD_HERO )
' N/ M% c& f" q1 v- M) }5 I nPoint += 390;5 Z$ ^, P; j3 B1 V/ x
, U, @9 x4 s# ` AddSkillPoint( nPoint );5 O1 ^) x K9 f" k6 D) m6 A
m_nLevel = nLevel;
8 [6 {2 I7 j: P; z/ W9 T7 Q: O% x! N% v9 h3 @& C
SetJobLevel( nLevel, nJob );
) B) f S, ]( v/ D: @5 w, n; C m_nDeathLevel = nLevel;
- o* _+ A/ x5 [) W3 O% m( f2 i#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 R0 c! L; i1 [+ Y
if(IsMaster())
( b9 m& j9 Z) y {; M" f5 j0 H8 `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# ?3 E! L# R" o: b1 e( ?* P7 y$ Y
if( nLevel > 59 && nLevel < 72 )* ?. B% j: x8 f# H$ Y
dwTmpSkLevel = 1;
X5 D6 \3 }) K) E- C else if( nLevel > 71 && nLevel < 84 )
# s. u. W& W2 C" r, q dwTmpSkLevel = 2;" J) \, a8 Y2 @4 v1 _; J; I5 `2 W# l
else if( nLevel > 83 && nLevel < 96 )- N. ~$ G6 N- o4 H; c9 Q
dwTmpSkLevel = 3;
* Y* H/ z5 i* w9 t9 ~/ ` else if( nLevel > 95 && nLevel < 108 )0 _5 h; Y0 ~( p, e" n6 @+ t
dwTmpSkLevel = 4;
# ]; m, ~/ {/ i6 m- D3 a# ]- @# ? else if( nLevel > 107 && nLevel < 120 )# @# D& `5 D0 h+ ]0 q
dwTmpSkLevel = 5;! Z j7 B g+ R! R. @* V( B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & s f; n1 z: q* N- B" O
{ 0 ]3 H1 M- G( w3 X, n2 V% T
LPSKILL lpSkill = &(m_aJobSkill);5 l; I9 R u1 e' q$ N
if( lpSkill && lpSkill->dwSkill != NULL_ID )% m4 i, w, g! w
{! j: V8 E2 P' e2 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 N( Q" M# x+ `3 m/ y
if( pSkillProp == NULL )
: t( J+ n3 e1 K3 P& f0 S7 F0 ` continue;
" z& a8 `7 p1 ]+ \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: j% ?' x7 \0 X' U6 A2 ]6 a4 P continue;! U- S5 x8 b: c/ {' n4 p
lpSkill->dwLevel = dwTmpSkLevel;* b& ^: C6 u! g; c9 H4 A- V6 R( W: y
}6 _ A m+ w1 V
}. ~" [8 \: a* u/ }9 K
}
! C; E( t* c+ b+ u else if(IsHero())/ x! B" l) j, d# |0 u6 W
{+ c! O6 J! W- Y; [ J8 h4 ~/ b% A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ {$ x; x2 R9 y9 R' v9 \ { 1 U$ N# R. ^. U, e
LPSKILL lpSkill = &(m_aJobSkill);
# o1 f$ D5 z- \% W2 o! T if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 p' m; D Y! f {7 R" q5 t( j% ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: O7 { D; L. r! i9 T if( pSkillProp == NULL )
3 \1 Q$ x; h8 z9 u+ V0 M continue;
. y+ W. l( U- I% T# k) G. M1 r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! u6 `4 d, P# U4 \+ F
continue;# Q. r/ z, r3 o1 D: Z* t
lpSkill->dwLevel = 5;
3 @; r7 j6 h3 e( G }! G# g- K( Y9 R6 e0 U
}
: B6 V2 I6 r4 d! @- F }; b* v. j' ^' m# f6 P" H
else if(IsLegendHero())
0 ^7 \( j4 |2 [$ M* d( P {
7 {$ {; Q, z! d) H1 ~! f U for( int i = 0; i < MAX_SKILL_JOB; i++ ) # W4 U% L0 D9 x1 M9 `8 C
{ 4 U) f; N- u2 j; c0 [& l
LPSKILL lpSkill = &(m_aJobSkill);
* s& u: i; N. r* s$ u if( lpSkill && lpSkill->dwSkill != NULL_ID )
! E5 J/ ?- E3 H3 t {1 t; E9 G7 @; L& r" s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 ^; j5 H% c" E
if( pSkillProp == NULL )
3 r1 e& A# |3 J1 I2 N1 C continue;
& T0 }3 ?* i: C5 B# b) O1 ^2 Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ d3 b8 Z6 V; u4 U& Q
continue;
: u4 P+ |" v y& v% x lpSkill->dwLevel = 5;; X9 I7 l3 N4 Z# p) Z5 C6 T) |
}
( ?; [4 d* U* X. [) D: U8 L; n8 G }5 {7 I# P5 H0 N( n n; y9 g
}
3 o8 y7 `) ]( W6 k+ B5 D) k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 L0 l' {- j6 l6 j% j
if( bGamma )
2 @) q: K3 V' M' a9 U4 \ {
6 b4 ~! t* @0 ~1 ~) E3 h8 T m_nExp1 = 0; A- c$ H/ J( y. \6 ]
}$ M, W" T7 ^- l& U! A. \' c
! Z4 B9 Z$ B- b A
( (CUser*)this )->AddSetChangeJob( nJob );' x# j% O. A' n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 M7 e) r% ?( V) e: S+ x+ z
+ `3 c1 M5 k% h3 g% A$ A/ A* l; N! i. B) d( G2 _; R' D
#if __VER >= 11 // __SYS_PLAYER_DATA$ V$ [. O. y, }) r _1 I' |* c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 C9 |1 Q! _# x- z( r F1 B#else // __SYS_PLAYER_DATA) E _" z2 o9 X1 ~' W
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 R/ c* _# g& ?* n# h% v3 |/ V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) w# u0 Z/ C+ E
if( m_idGuild != 0 )) S" l. c% }* l* a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. }! `: j* {& b: g+ D#endif // __SYS_PLAYER_DATA
- W! I7 E2 y N: ^& H SetHitPoint( GetMaxHitPoint() );
' Z3 d9 u4 b0 a9 @+ V SetManaPoint( GetMaxManaPoint() );, D9 }' `; k& l- X0 i, s
SetFatiguePoint( GetMaxFatiguePoint() );
* X0 G" \' s/ L1 h- v if( nJob >= 1 && nJob <= 4 )
9 A1 p" I, x, w G2 g0 @& h" g/ e P {+ K6 d2 I9 P: X( T
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 l* t9 e& F, ~! k8 H l* y) T- B
m_nRemainGP = 28;9 G$ Z5 t! V2 @1 \) i
}; N! F8 V( r4 I9 v3 U1 J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- }& G& t7 y: ^+ p ^
{% G! X8 P2 l4 o. h
m_nRemainGP = 118;
! {- n, k' k% y ?3 w1 q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! X. J& N4 q4 l
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ s/ Y! V6 F/ ] }) K7 O' b* O' |/ [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" o* g0 J2 T( ?6 a* r' ]% K {
7 a9 }+ {! y# C# }/ ^ CItemElem itemelem;
! G. r5 ^" c0 _ itemelem.m_nItemNum = 1;
" z8 J" V6 J* f1 { itemelem.m_bCharged = TRUE;
, W+ L2 R& n1 K. C8 X1 ^% ] BYTE nID;
8 \8 i z! w# ?( x3 A) m! G' R+ {. U( z
if( nJob == JOB_MENTALIST_HERO ); J, n- j8 x8 F) {3 n- U
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 T; n2 }2 {2 n/ M( T( m' T. Q. ?
if( nJob == JOB_FORCEMASTER_HERO )0 x( _# a }+ ~) Z8 e6 q+ |7 a- @ `
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 J4 x+ J, ?* u* @
^3 |. S& u3 O
( ( CUser*)this)->CreateItem( &itemelem, &nID );
' t. i, z" r) B9 d& ^2 T }
& C' k# C5 H$ G; {# l) Q2 U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) U- k8 Q2 T0 O+ g: ^ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( ?) ^/ E- E% D- J) I, g2 W( k( x ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 ^1 Z& v% o2 X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- ~& [) e g" p ( (CUser*)this )->AddTaskBar();*/' x6 x, w' q' Z- l! ^( e6 S8 E" {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 V/ N9 O) I2 K& a$ k" s#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 T8 n6 k, f* g/ G/ O ((CUser*)this)->CheckHonorStat();& O" e6 H/ r; t6 q2 L* u( ^
((CUser*)this)->AddHonorListAck();
! e. A7 y8 O" m+ N g_UserMng.AddHonorTitleChange( this, m_nHonor);- K' F" i5 x# v* M: ?- y
#endif // __HONORABLE_TITLE // ′Tà?
# ` ?9 b8 \' e% v! k }! t& L& C3 R! U/ _
#endif // __WORLDSERVER2 {6 R& x. o4 A: K+ W' K
}
0 I3 g& c, N8 s0 I2 S. b/ N v: c4 Y3 g& l& p# f2 I0 W# P8 S2 ~
然后你进入functextcmd.cpp并添加以下
1 a! Z' I; V, ~
/ } c2 {( w* k z) p' q; t代码:7 H6 Q; r& ]( h1 y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 Y" l6 M; R J7 h
下面插入2 ]1 ?0 G6 y) V- t% K8 l
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! v- Q) `& c5 C$ }3 A: H6 |" y
* {- C: m8 Z2 G! r% ^1 n5 s* y8 S然后你去
/ W8 g5 a% C9 L2 g: `8 o- M& n
* ^/ V: z* \& K1 [9 S# Q) v* K代码:1 X& S* c) r2 w' O& J/ ~
代码
, r& G7 D& e: n2 x' Z% `; g/ vBOOL TextCmd_ClearPropose( CScanner & s )2 s) J. a& @5 S! X! h# H
{3 e: w. v: G# D7 j
#ifdef __WORLDSERVER: j& P: S# Y% f0 Z3 T: ]; J( ~# s
CUser* pUser = (CUser*)s.dwValue;8 X) I8 |, l- G2 P" W
g_dpDBClient.SendClearPropose();
7 @& x i+ r- f2 G#endif // __WORLDSERVER
/ c9 W8 z6 }$ `2 X/ `0 i5 z [ return TRUE;: l, [* K; Z3 c, {' R
}
! J3 T- L0 v7 O0 R" s$ A下面插入" k, ]: }3 G& G% R# u
BOOL TextCmd_rebirth( CScanner& scanner )& S1 m5 V; Y# ?$ Q; U$ l2 Y
{
/ F) }3 R$ x, \0 D#ifdef __WORLDSERVER
5 f/ m# J2 E) t! L$ L4 lCUser *pUser;5 K \ _' w u" R% N- b7 O
pUser = (CUser*)scanner.dwValue;
y3 z1 H4 {+ ?0 [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# S* R8 @7 a% @, C0 [# a4 |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# d- L, w' ?( l! u6 }
else( j# W; V3 {/ H3 w7 Q* @! B# W2 o
pUser->AddText("你还未达到重生条件!");
U1 H# {- N! D2 D#endif( v( l& m; k7 ]. G' ]( z
return TRUE;
k' {- M3 A" ?- [* a} 0 L3 {+ j8 B1 J0 h) M) i1 T
: M# [2 }+ _% a- G! K7 [
1 a& U1 ]- K: H0 U! @4 o; }" K( M$ Y3 ^* A) C A4 d3 c
& \% {! T d* |+ q( o2 K, l) [& I |
|