|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( |! m' c# I( A, X6 q- g5 q- |9 H2 e2 o: s1 l
Mover.h# j: \! w0 G; r# e) ~2 S
代码:
y7 S) R' N5 f7 k- l找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: U: N0 s% b* C* n( s4 h8 L1 T: H M9 |' p& \6 H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 d% H# B& M2 }- }& C
: |& ?' i- ~9 C" Q" h" }! `. j然后你去mover.cpp添加
% Q3 p D* {+ @/ q3 Z
$ f2 W3 Y1 V( {! n+ |5 g o7 Y- [代码:( H* U# B$ ?" H- m# e% s' S8 [1 R* j
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 v8 g1 ^3 f( V9 D' L+ e5 A" z
{
7 B% u! N+ x6 R#ifdef __WORLDSERVER: F! S2 E# O" F; o: h2 C! K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; |; R9 F2 {* L( N% Z MoverProp* pProp = GetProp();
, k# W0 F& {* | _' T if( pProp )# c5 x2 }: z# {1 _* ?
{) v8 w4 e" @( R7 [" F
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 e, H# E: e" V1 M2 A! @5 V {% N4 E7 q3 T! S" |
AddChangeJob( nJob );" m2 k$ X7 e3 b- C$ L
}else{
# U& g4 W: c% @$ V; w1 U! a return;; ]- s8 e9 k j& [
}
& }4 j: C. m$ [' b; q! B: W int nPoint = 0;; A: M% Y! z1 x& k& |
if( m_nJob == JOB_MERCENARY )
0 s6 D; x$ a$ l1 y nPoint += 40;
; V; G8 }* G. n% c3 M# }3 l else if( m_nJob == JOB_ACROBAT )5 d9 \3 L. R# I$ T( T& }9 x" z2 f
nPoint += 50;
8 r" |2 U4 U9 L8 O; m! { else if( m_nJob == JOB_ASSIST )
" g; o [0 l" C2 _ nPoint += 60;5 s% B; n7 l/ l/ ^1 ^
else if( m_nJob == JOB_MAGICIAN )' D$ Q/ n' }/ @' c6 ?0 d' l$ M; l" T
nPoint += 90;
- ~% {" b5 p% N" Z+ s else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
H& D C# q2 K' g) b2 N6 d) R, o nPoint += 120;# y# y) C- B. x/ q8 ?
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). l/ S8 o# h7 p: W e
nPoint += 150;' ` h6 [& |( j2 {3 z
else if( m_nJob == JOB_RINGMASTER )5 c6 ~+ {0 A K% O4 a
nPoint += 160;
; F P+ ~: y9 j3 q% Y2 g else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' ^: F9 J' l# y nPoint += 180;
; B, V0 ^4 \- J1 F else if( m_nJob == JOB_ELEMENTOR )
5 O1 Y7 H+ v$ j- d6 t( v: v nPoint += 390;
, v% b- r x& t2 O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 Z& ^- \6 y8 f3 \
nPoint += 120;
, f R, t, B) d. _ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 Q3 n) O6 }) F, r; T9 S- Y# V
nPoint += 150;% q3 X8 o9 b+ d: n
else if( nJob == JOB_FLORIST_HERO )
* E! |* p7 F) y: Y" q5 i nPoint += 160;
' |2 U( i# ?, V4 N3 Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 q( J% q; w+ F% S4 U% N$ ` nPoint += 180;: Y+ s: S- F* Y( D& c; O
else if( nJob == JOB_ELEMENTORLORD_HERO )* a" z2 E7 W6 ?2 `; o6 U. t. s p$ Z
nPoint += 390;
; i/ V+ ]+ ~7 a* v! z3 w' y T8 t4 ^! B1 e9 ^8 Y) i
AddSkillPoint( nPoint );, U0 N; ^! t0 ?& W4 }' Y
m_nLevel = nLevel;
- |4 M* v+ t! E8 i5 Z
$ w' b) q- T: t2 A* a& R+ V3 w SetJobLevel( nLevel, nJob );* t" \3 {1 a$ ]. i# V! o
m_nDeathLevel = nLevel;( b& z. ]; K+ W% j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ m5 F J( b2 Q: L% o. e7 | if(IsMaster())
# \5 W% o( u& U; F% t {
+ ?' ?+ z% J; [$ Q9 N- B/ r# ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, ~6 W6 J( N2 K2 q
if( nLevel > 59 && nLevel < 72 )' J9 f; _/ R$ L
dwTmpSkLevel = 1;/ v/ b6 g, v3 k7 j. V( t" w8 G( M
else if( nLevel > 71 && nLevel < 84 )
3 Q$ |. @) h6 d* x; Z dwTmpSkLevel = 2;) X7 M5 O9 G/ o( S- b
else if( nLevel > 83 && nLevel < 96 )
2 r. v! T. I; ]* V& |) \ dwTmpSkLevel = 3;
; i+ }# W! v0 _5 M1 m else if( nLevel > 95 && nLevel < 108 )
7 b+ Q. a! h7 S( E dwTmpSkLevel = 4;
; f9 G5 v! ]8 V& U" z% z x else if( nLevel > 107 && nLevel < 120 )
* l3 u; j& a. g# w5 A- [+ M dwTmpSkLevel = 5;
' d5 g, @3 x! ^% s for( int i = 0; i < MAX_SKILL_JOB; i++ )
, Z% }4 z+ N9 f6 V$ s1 E4 t {
' I: m- T; W3 I- z: P LPSKILL lpSkill = &(m_aJobSkill);
6 ?( h# T c3 c( r% C1 ~3 i7 F if( lpSkill && lpSkill->dwSkill != NULL_ID )( b N9 ?8 v7 k, C* l9 g' x) u8 x u
{( @$ ]" C! o7 o" J, i ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! L4 H& a0 b; x# g, P' p5 c- D a. A0 J0 t
if( pSkillProp == NULL )
) a$ T" j3 l2 u2 V1 X) T continue;
; h1 T) g3 X% Y% [- q; q3 ]: } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 I9 `6 q. e' p J/ ~; g
continue;; O0 D( T/ u: _* K8 J, }# ]
lpSkill->dwLevel = dwTmpSkLevel;
) E L6 @+ q0 i; m; \ }6 o* a: O S; L$ P! a7 L
}+ u) @: [7 i4 @/ H( K
}4 F3 Q8 W6 z) `4 r1 }0 Z
else if(IsHero())
; V w& i- z! y& {+ Y5 V {/ {# p/ b% y" H9 y7 Z4 y5 {; H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: {( A! K& q, H5 P; J0 V, T: V { 6 S% y$ d# I, h; ?& n! p" T
LPSKILL lpSkill = &(m_aJobSkill);+ v1 j& c3 H$ E0 ^, `8 F' |7 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: q' G$ K2 n% m2 S- V! H {) s+ d, ?7 E/ m1 B3 F% E! a0 i: a$ J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 q% ?8 O \6 Q9 H# t0 i* O
if( pSkillProp == NULL )7 T6 Z/ N; Z% Y' _
continue;
: Z& v" X: @/ a. T6 r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ [6 I+ I- a) X7 C# k
continue;; D1 j! H s V8 h3 w: y+ ~
lpSkill->dwLevel = 5;
! b4 a- N& d3 {/ Z }
: U! m2 f! {- O }
( ]: L" @7 F+ B! l& `, l$ {: I }3 ]4 ]3 I& u7 ]* _9 y2 r6 D' [+ e6 C
else if(IsLegendHero())
' c/ U, E. p J! g4 Z {
+ W6 L- E& w+ d1 b! ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
" f7 W: u. m: R$ ^7 R { 6 i. U9 B4 [# i6 C8 f1 h6 p3 M
LPSKILL lpSkill = &(m_aJobSkill);3 C% j8 L3 o" w F& h
if( lpSkill && lpSkill->dwSkill != NULL_ID ) v# h3 |; G- j% L& E# A3 ]
{
+ G- {; L0 Q/ P% ]7 ?( `; A) e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ D" U, p1 _* i! K R if( pSkillProp == NULL )6 @2 k5 T% d+ N; k, E3 |
continue;- s7 i! F) b+ z, X N1 O V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 a0 o# [" p3 T0 u: Q9 Z continue;
% t% R9 t4 a2 i* z0 h! g( S% B lpSkill->dwLevel = 5;. [( @9 w" z( x! h! W% j1 @; b2 s
}
/ _/ ]1 M- \+ N: l6 J8 \- s }& y# i8 I$ v, @6 I) G5 ~2 N
}
8 V( o5 c9 C! h: f. p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 l2 b) x7 T5 T
if( bGamma )3 y! O- @( N- L4 \1 S
{3 Z1 D# D2 H$ G) y2 H
m_nExp1 = 0;1 j( ]. s! Q2 H' b
}4 f9 `5 y Y& F- D. E
+ F, y+ P7 g6 T0 Y
( (CUser*)this )->AddSetChangeJob( nJob );
p/ t$ B4 x- E* c9 ^ | @6 j' V g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 j3 Q% ]6 l, f) ^8 |
7 t8 \/ |. Q3 x3 T2 ~$ h. ^7 I/ H: e* @6 R
#if __VER >= 11 // __SYS_PLAYER_DATA: z3 I" W$ E x, [& y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 h% i7 l% J. X0 W, G#else // __SYS_PLAYER_DATA
7 W1 M) A3 [5 @8 ] g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" \0 \+ f, G+ y { g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 p3 y9 x1 t% T4 W if( m_idGuild != 0 )! d' i$ G+ Q/ g2 f9 G g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& J" n# H$ K" m' ~" z, ^/ Z
#endif // __SYS_PLAYER_DATA
. O! b: ~+ E1 z, N% l# }4 b& R SetHitPoint( GetMaxHitPoint() );, `- Q% g7 D- u7 l& U3 r1 S1 ?* m6 z
SetManaPoint( GetMaxManaPoint() );% G1 Q9 r6 k; ?% g# B
SetFatiguePoint( GetMaxFatiguePoint() );
/ e5 D0 U. ] ^3 C if( nJob >= 1 && nJob <= 4 )" J' y0 m" z2 q7 o
{
" ?& W" p t6 B9 z9 V) U; Q) N m_nStr = m_nSta = m_nDex = m_nInt = 15;1 o/ O1 [& o7 t8 Q( U7 @
m_nRemainGP = 28;
( T' i8 l3 s) {* o }
" k: b/ C0 s* N if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); ]5 Y8 J4 j( u" B: P; t6 O
{5 Q3 a4 O8 L6 c0 f |4 o6 @
m_nRemainGP = 118;
' l$ c% m5 V/ b, E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, X/ |% P1 P* m! z m_nStr = m_nSta = m_nDex = m_nInt = 15;
q# M, Y* ?6 F$ q }& r6 J1 s- n9 y" P% u# {( @( x' l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). l1 I3 u7 i( q
{
+ `. ]! m- K' Q$ r CItemElem itemelem;
) N1 U9 m. o, @ itemelem.m_nItemNum = 1;
8 w! e3 c; j- k itemelem.m_bCharged = TRUE;
9 c1 q0 |5 x& b) a BYTE nID;
% J3 y h$ X }6 R' w1 R1 d2 D% V% X
if( nJob == JOB_MENTALIST_HERO )1 z4 ^0 W: H+ g K5 z% j
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; F' I1 {) \+ C: x3 [% S0 X
if( nJob == JOB_FORCEMASTER_HERO )1 S' l ]* s w. \( {7 E/ n1 l& q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 z+ [* o# k/ H# h9 [
: U. o* I2 r* e o ( ( CUser*)this)->CreateItem( &itemelem, &nID );* a/ i" ~! l& ?, z4 a+ ]
}
: k8 N0 Q- O5 h! f: _! l7 Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- ^ @4 ^( a: ^1 m$ @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% }: }& @3 S* m5 h G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- a! n/ a: n. w* w /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ P4 b, R) n% k0 Q, p: |, @ ( (CUser*)this )->AddTaskBar();*/
* V# C8 r. J* V6 \& E ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" o, W2 \) m- ^& U2 n: P" m#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! ~' x' f; w: u; Y+ S& a& }& q ((CUser*)this)->CheckHonorStat();
' ]: D0 f: N5 H& X9 G7 u- g [ u$ t ((CUser*)this)->AddHonorListAck();
) C3 M) i/ z' h2 r0 V6 |; N# H g_UserMng.AddHonorTitleChange( this, m_nHonor);) c, U5 a/ M7 g- b* x j
#endif // __HONORABLE_TITLE // ′Tà?' d& P( ^) q4 H: _
}
% f* E2 Y* b7 c" A' k#endif // __WORLDSERVER; P( g5 F5 l" P( ^
}
+ `$ }+ q* S6 }% }9 k2 z& x, n+ K, x
然后你进入functextcmd.cpp并添加以下
9 }* ~' M. i& }+ M
: X# }# B* l& c! P( [6 g4 ]+ Y代码:4 [/ \5 K( h& C- w/ \' p
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% H& C- _6 i8 a" ~2 q$ x下面插入* t+ G: \+ \/ t4 Y4 Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 j7 J$ Z+ S( d/ z+ m1 N( G
# g- Q' E- h0 t% n! U然后你去/ Y* F6 c7 G0 d5 j0 V9 A
( i! i! F2 [: M6 X代码:
5 z, r, b) Z! I9 P/ |7 `代码2 r5 G% b* d- K* |. l
BOOL TextCmd_ClearPropose( CScanner & s )5 `2 d1 N. ~ |% F2 k# i
{; K ~$ A4 ]- D" Z
#ifdef __WORLDSERVER
! t3 R. B' h9 l' q) T; G) ]6 H CUser* pUser = (CUser*)s.dwValue;
# q; y# S/ i7 q i' O+ S( F g_dpDBClient.SendClearPropose();! {, j# E& C' J; i5 @- k4 t
#endif // __WORLDSERVER
3 ?+ I8 ?: [+ Q& H r' Y; H7 B return TRUE;
7 S& U) E+ F/ H. b* M}
1 F" O4 ^. O: r9 f: @* g8 k9 U下面插入* a: J4 A- C/ b
BOOL TextCmd_rebirth( CScanner& scanner )- _/ k! E/ C: V4 q, n7 T
{
! }% f e, t# @#ifdef __WORLDSERVER9 r6 l7 S: m0 t
CUser *pUser;( s- \! `7 f7 |& n4 k: F
pUser = (CUser*)scanner.dwValue;
. \# X. |! P9 v& s9 z! s7 d0 Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 N/ v {8 h8 |1 i F, Y% VpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. o/ _8 z5 E! u( c: xelse
6 S5 b4 _) @1 A. Z- QpUser->AddText("你还未达到重生条件!");& S0 z- `; ^ c7 u; a/ B: d
#endif
6 e/ K9 e. D: S1 ~4 Wreturn TRUE;" r' Z& S, {) H1 V- U
}
6 ^! J1 K' B$ a( N8 n1 S: ] Q- ?1 L- B
& u7 y7 T. ?9 K
- d/ h: y: Y1 x% F/ i3 m& S( z
! K+ p) l1 O# b4 U5 n" f8 n- q |
|