|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) G7 O. K& \ p$ S5 T
5 k5 o8 X" g6 t- T+ L8 h1 H
Mover.h: q. g; q+ F- w( N5 b
代码:
9 ?$ i6 E, z( f E( k" B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) D: q; s/ Q) t2 j' a: O: G
: W4 |9 C O' j6 h7 d& \( L8 \
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" I' b) d# M" n; r) }. ]. x6 B1 W4 @2 I
然后你去mover.cpp添加
8 i& V3 A4 B7 o! z6 [
6 V f" z- |# m; E. ^' K! U$ R C代码:0 s3 n+ A* q) _7 z+ k
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* Z6 Q. l2 H6 v: n{: M* z0 b; q |% t# l. H/ H
#ifdef __WORLDSERVER: p$ ~: K# g7 w. T' S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 |, h7 C- R7 L h0 Y, r% A5 E& {# a MoverProp* pProp = GetProp();
" p; `9 l: p# f2 C9 v) _ if( pProp )
0 X5 a3 G7 X# v1 t U {# b. C* a9 v+ ?) L0 b1 g
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& d, R. n, s# I9 \& I c1 R% X" @# w" n
{3 U) \" x6 _6 O5 v. B
AddChangeJob( nJob );
- k( c) n% m4 O$ D, h }else{9 e, p* f- t. w; p
return;5 F/ b9 `( U" k( }& e( u# a
}6 j; p3 M. S- B$ f
int nPoint = 0;5 a5 p4 i2 r R1 i
if( m_nJob == JOB_MERCENARY )2 ]& g- h U' v5 C* l
nPoint += 40;
9 D7 ~& T: `- s; G3 u7 C8 U else if( m_nJob == JOB_ACROBAT )
! T: n1 a1 N* q/ k* s nPoint += 50;3 n% x2 F1 T* B
else if( m_nJob == JOB_ASSIST )
R7 i# A @& h, W; @% } nPoint += 60;5 [, m& r ]6 u5 y* G
else if( m_nJob == JOB_MAGICIAN )$ Q6 {6 L. g, S2 \! a2 }
nPoint += 90;
' n# l2 u& T. j" l. _ ~0 K9 v, \0 T else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* X0 T. g" A4 s/ [: h( w' ?5 d
nPoint += 120;% |6 E& Y6 v* I r
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 f: I" ~: n4 n& G6 a nPoint += 150;! j H8 \2 ?( w
else if( m_nJob == JOB_RINGMASTER )5 G+ O. B( s5 ]7 j0 P& X
nPoint += 160;
7 `% f6 w/ v* ?# X7 M/ U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 d4 H2 m9 A! p4 r4 N
nPoint += 180;
* e' O7 {# F! b4 z+ I# y else if( m_nJob == JOB_ELEMENTOR )5 M4 O2 e( Z. b0 t* S- Y1 @
nPoint += 390;
% ?3 J2 M9 T5 M$ J6 c' N' H else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! S- u" q5 c" D+ r# h1 }9 K nPoint += 120;
3 M# X( u( K3 ? else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 q- g: T" R( j d" J7 [& @ nPoint += 150;( d" M- y; N! V1 N$ t
else if( nJob == JOB_FLORIST_HERO )* y' N& F$ r5 e9 D1 y! T1 x- B# Y% J
nPoint += 160;
6 i+ q: ?0 @, T9 [1 f2 ]& u else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( K6 J/ G! c6 B5 R
nPoint += 180; H9 s& w/ m# E# n. D7 N9 o, @
else if( nJob == JOB_ELEMENTORLORD_HERO )- P: U! g0 p- P* Z2 B( I' Y6 D
nPoint += 390;
@8 W" w# g ]' R. U( G
5 |* n9 D% ~$ v* E/ \! k AddSkillPoint( nPoint );
$ i& _' z% w8 {9 U+ I m_nLevel = nLevel;
. m; u t) n" G! ^0 Z; w- h+ ~: V& @! J. Q5 _* J% Y9 K! x
SetJobLevel( nLevel, nJob );- j* J+ Q4 P: S9 t! O2 a
m_nDeathLevel = nLevel;
9 H8 l' d& _, T3 g4 ]#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ j2 l% H3 t# U3 P( B3 k if(IsMaster())
9 }; Y( J: y. P/ Q! M {7 N4 @3 f& N$ h: f8 Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ c9 B0 ~* s$ }( t$ b; R if( nLevel > 59 && nLevel < 72 )/ ~( Z4 o/ K: H: V
dwTmpSkLevel = 1;; k& w( r) t. k- A
else if( nLevel > 71 && nLevel < 84 )* ~1 S8 G3 j C
dwTmpSkLevel = 2;
4 v/ p1 H# k `: j, E1 O/ B6 r else if( nLevel > 83 && nLevel < 96 )/ F' o0 ^9 D4 T5 C1 h) |: t2 B
dwTmpSkLevel = 3;
0 q* \# A: l* n( E else if( nLevel > 95 && nLevel < 108 )
( W. N1 u' H" r8 |9 {; T' G8 | dwTmpSkLevel = 4;7 o/ k5 Z& _# q Q5 Q# H
else if( nLevel > 107 && nLevel < 120 ): K/ b5 y' {3 h* v+ W& d
dwTmpSkLevel = 5;
) m# L m* H# A% e) l7 r for( int i = 0; i < MAX_SKILL_JOB; i++ ) % H4 s( U( e- p
{ 4 t' f% H F! h, R! G
LPSKILL lpSkill = &(m_aJobSkill);
2 r: W8 r4 b) o; S s if( lpSkill && lpSkill->dwSkill != NULL_ID )
( F. {, P. y, t4 I: u {
$ e; W. }* u9 n1 h; a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; b- s- F3 V/ y; v
if( pSkillProp == NULL ): n. a$ e* ^$ M% z1 y$ R
continue;8 L1 _+ a- e4 Q9 R1 r( i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, X O' M2 R. w+ j; G0 N" ^6 U6 |: y continue;
3 ?5 b' j( |$ L. T lpSkill->dwLevel = dwTmpSkLevel;1 V8 Q# B* S+ z
}/ L. @) R, v E3 o$ y
}# V9 j E3 y5 g9 F
}- p6 z( M+ h7 V. a0 x: E6 b
else if(IsHero())" U) j4 u; u1 N. U: s3 \( H
{& [$ F; X. v% }' f( x0 y, f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; j1 U3 p& h" w- B K { * U$ t! z- V, d. m' e
LPSKILL lpSkill = &(m_aJobSkill);
; v c, k/ k0 R# ^5 i9 V# Z) K if( lpSkill && lpSkill->dwSkill != NULL_ID )2 B2 ~; c% z) U! ~) v7 K
{- P* C; M: C ?* z7 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % C- D5 @0 F$ Z7 C0 Q' F
if( pSkillProp == NULL )
5 F/ ?' J7 e( R6 y& V' ] continue;
0 o: D$ w: Z. b; D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 g; ~; O$ U( L" Q" s. i' @, a' X
continue;1 ]" }7 e: f% A0 ~* }: l' n) F
lpSkill->dwLevel = 5;
0 n' q& a! z7 [* [2 b# T }1 z& l2 k2 r. K" b
}5 s1 m6 n! _- Q3 C/ {0 p
}$ a6 w, i! Y/ x# s& a
else if(IsLegendHero()): ]# [" L, b. p9 v: Q/ h9 O3 e$ [) {
{, | O) b. D, N3 ~+ `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 O7 |' W: P; M' G2 L/ v { 0 t6 F# h5 s9 Z9 m' }
LPSKILL lpSkill = &(m_aJobSkill);
# I# c( J' V7 u) N* J0 e/ j1 z! y if( lpSkill && lpSkill->dwSkill != NULL_ID )
]+ W7 }( H9 k8 F( J) ?! g9 r' r8 s {
% s8 D% H0 J# S, ]* X/ a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / Z: }* i( [4 X& E7 m$ `* |% q
if( pSkillProp == NULL )7 j9 C& \0 N! t F
continue;7 f6 r- l* {2 O4 @* B [/ v7 Y2 j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! [; @: N" S! m' P/ s6 j5 | continue;
) Q( F+ u# i: {; T+ \ lpSkill->dwLevel = 5;
# R3 |% ^1 W5 U p6 i9 I }
9 N7 w; Y$ u1 |: B; k }
9 e2 A: Y8 x& D4 } }
3 c Y) u9 A; h4 c6 O$ K$ x#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ ` U. i; v! g if( bGamma )! Q$ `* @5 v1 o
{
8 w: L9 m7 K% \* Z4 j" e m_nExp1 = 0;$ ~ w4 m( H0 S' z' A
}
. r) A/ g( b2 \4 N" O% E/ r" g* w$ c/ q1 P2 k) c3 {
( (CUser*)this )->AddSetChangeJob( nJob );- S3 B% O8 W C. g) [- x5 O7 Q& Q
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# [9 ?: I- z( n* e4 R" F% u, s% p0 P; E7 x& c6 p2 f+ d1 u j: t
& c0 |, J' }( p* r% ~
#if __VER >= 11 // __SYS_PLAYER_DATA7 o; z4 E- \& L3 N3 c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& ^$ b! d' q ^# O/ i3 O: f: X
#else // __SYS_PLAYER_DATA
9 V" i; R$ ~$ f g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% s5 R% j0 q" e' K- f& d! u4 n, Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- D* r+ }0 ]3 V, A. f3 i8 S
if( m_idGuild != 0 )/ P) g3 i, \; q4 J" F8 k5 X: l
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ R- F1 u, ]7 Z& _; L( b1 v
#endif // __SYS_PLAYER_DATA
+ W! J* e2 T1 Z" ?( C! m9 t SetHitPoint( GetMaxHitPoint() );
' T$ s5 v* g$ c0 M0 v SetManaPoint( GetMaxManaPoint() );
5 Q2 n* ^0 U; `9 ] SetFatiguePoint( GetMaxFatiguePoint() );
5 o7 f7 }" t9 l6 l7 D* A3 ^ if( nJob >= 1 && nJob <= 4 )
' V! p n) d' ]8 _0 _ {4 s, u6 W9 P2 m4 ~* m
m_nStr = m_nSta = m_nDex = m_nInt = 15;# w; r5 @# v* ?/ S) y
m_nRemainGP = 28;5 g- T3 r) V f& {- A9 p& k! V% P, W
}
8 H# G+ u$ a9 G2 Q- x7 P/ N$ Q9 r if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* T/ O* r+ y. i4 Y
{
. G% M2 a- j$ `9 g% e5 Z3 l2 B' R m_nRemainGP = 118;. ^, A4 Q9 h$ O1 ]: f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 V( B/ w% T9 ]& @- Z$ X m_nStr = m_nSta = m_nDex = m_nInt = 15;2 k, R+ i* {; K0 v0 X9 q
}
+ e6 Q9 `1 o1 K' u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" M0 i9 b; S* E2 _ {
$ L/ d, I! E' o/ ]# c CItemElem itemelem;
7 z4 f4 u7 o# Z8 M: b itemelem.m_nItemNum = 1;- B, s" J& r }/ r1 C& U+ s' @( X
itemelem.m_bCharged = TRUE;
s( z1 ^0 y% h3 }: S BYTE nID;
9 H( X& s7 A" a+ `/ C& G$ g* ]' v. F* o
if( nJob == JOB_MENTALIST_HERO )) ]5 `0 o2 H: G8 \* B& K
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 j ^, P. \& {$ o5 c% w1 O
if( nJob == JOB_FORCEMASTER_HERO )- o7 B/ B( I+ {& t
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 {; I! B! E' o( L5 b4 g8 p: s
2 K1 r! i, G( j ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 @- k2 k9 u8 `8 W. [
}6 x: ~; b$ E* w0 } c, X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! R2 x4 u, u9 r" H# h8 h! E ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 u5 A; m- Z$ s
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% M) B( s$ R, r6 J
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; w# @' N Z: R0 K ( (CUser*)this )->AddTaskBar();*/
2 f/ L' j9 J6 W4 p5 }* e8 W ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 m* x" J: Y% K7 G#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 F, ^' `# m+ _1 t9 s
((CUser*)this)->CheckHonorStat();1 i9 n% L4 e6 f, n; B: K
((CUser*)this)->AddHonorListAck();
/ T; j# c. M$ ]( c g_UserMng.AddHonorTitleChange( this, m_nHonor);7 D" s- N! B9 q) h3 H( X9 {9 l
#endif // __HONORABLE_TITLE // ′Tà?9 t8 u& m. M2 [* K6 n; U0 O
}. y# Q% G0 U5 n$ x& b8 O1 Q5 ? `
#endif // __WORLDSERVER
2 |7 E4 c2 |, Z* p7 K} - T: @2 V8 l3 ~) L# @
# q! C& C8 p6 ~* F1 ~
然后你进入functextcmd.cpp并添加以下
/ I; X0 s L2 R% g4 u1 Z" q
" ?5 [7 V) M9 _. ^代码:
4 @+ e9 G3 O0 P- @ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 T4 P2 h" _' |5 y! \+ t
下面插入
' u& |% f) v+ FON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; I* F. l" h; W5 u* y
* f' l" V5 V y5 u然后你去
0 e8 g& ~% X9 }" H7 F1 ]3 Q, J9 t, l
代码:
! J* M9 r u. Y" P! m3 |代码2 w; v& M* b( v$ _9 L
BOOL TextCmd_ClearPropose( CScanner & s )
$ F& r/ l" a3 f1 o- V0 p# u' j{9 q- j; f+ {2 Z2 b
#ifdef __WORLDSERVER
7 R! i+ ?7 _. K4 B. } CUser* pUser = (CUser*)s.dwValue;$ t; b2 A% E) l+ e0 U9 j8 s+ @
g_dpDBClient.SendClearPropose();5 Y) ]" r) \% V0 K
#endif // __WORLDSERVER& o% Z7 K E9 {
return TRUE;
6 H1 `$ \! `2 u) K1 Y}" q- G, G( \3 Y! R
下面插入
9 ?2 D' j% |3 J2 F6 G* LBOOL TextCmd_rebirth( CScanner& scanner )
& W# a) C$ I! g% N8 r2 k{9 e8 |1 s7 ~, U+ Z6 X
#ifdef __WORLDSERVER ^5 p& O) C7 e2 O8 X7 t
CUser *pUser;
' y9 }7 R1 U. s$ @5 }pUser = (CUser*)scanner.dwValue;0 ^; R; g2 X% Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 x; ]8 S# ]7 }7 k, H. T6 wpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. K- I1 J* E& B8 A; B7 K- Y# [! Eelse
; l8 T" F3 F6 [2 M: h1 T( s& i8 EpUser->AddText("你还未达到重生条件!");
4 O% X/ i B' S( a#endif+ N8 N( [- a* Z% L5 G' r
return TRUE;
. C' c; x, q9 k, Q1 _}
: d$ S! e h: k5 K& v+ o [5 C+ a
& f( \: O+ t$ [0 K
: U/ k2 p- s+ u- k7 B1 y! }3 F, o+ s% z# t( h
: { E2 Y- L1 n' b |
|