|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) F, B* x. N. z4 Y7 f9 h4 ?( N w+ {$ _
( H+ b7 a1 ^& e( I3 S$ d9 Z; x
Mover.h
2 X4 ^7 a4 u7 }2 p# \代码:! i, T5 h. Y" @1 Y& w9 a
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 r5 ?# [+ Z" O
% X4 F; F& ~. O: z9 ~/ O下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " r% h1 b2 ~! v5 `
& t F7 g/ }# j& O8 [0 g9 |1 N$ T
然后你去mover.cpp添加2 t9 w( ]$ O1 H' y' s
% u* r8 E- Z: F. d% |
代码:0 I0 P; C1 T1 a) R3 H7 t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 M/ K0 x7 z3 q' z' A
{
2 P( u4 Y8 E4 Z$ K$ t#ifdef __WORLDSERVER) N( Q0 o( g0 s1 X5 h$ o
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 Q( s5 k" y& `
MoverProp* pProp = GetProp();
: `1 o" O6 S3 l" d6 b l if( pProp ); @$ h, a- L& W, m9 D
{
8 T) }* ~8 d& b5 M1 z if( nJob > 0 && nJob < MAX_LEGEND_HERO )' n% `/ v/ M) _3 P9 b8 \
{! \3 m: s3 H+ N) j5 |5 R4 Y7 [
AddChangeJob( nJob );6 F/ C; w4 T7 j$ L2 ?+ p e, ]% i
}else{
! h8 o i2 a# W return;) \4 e# Q/ A) O: D6 n
}, t* D2 {5 B! \8 U: x. Y
int nPoint = 0;( b+ p/ v; K+ ^0 @6 {0 @
if( m_nJob == JOB_MERCENARY )
2 p0 W7 I( X5 L6 W7 U2 j nPoint += 40;( W& U" T" y, p6 {/ _2 G* H" j
else if( m_nJob == JOB_ACROBAT )
. z; }# I2 \: T0 O* @ nPoint += 50;- q# T# H( e; ~3 E8 r9 a, f, k
else if( m_nJob == JOB_ASSIST )5 v# w$ |1 e6 {( |/ C: f
nPoint += 60;
4 l( y% M5 I' a- M1 O! f else if( m_nJob == JOB_MAGICIAN )
- o6 w ]8 y1 v nPoint += 90;7 G. E+ l% F" W) T( p8 c! ? p" g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 X. Y! h3 P& ?* d nPoint += 120; b3 g/ F T+ R" Z! H' r- V5 V+ e9 _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, Y/ g P C& ^: c! U8 G0 r* y2 Z nPoint += 150;
( [+ ^$ m ~# y( l- v" T1 G7 Z else if( m_nJob == JOB_RINGMASTER )
9 }- L. V/ O. V9 z6 r9 ^) z nPoint += 160;( B- e. d4 C3 V6 B; d4 s$ g9 w4 N
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ v# l. W6 `1 u$ G
nPoint += 180;
1 {7 E( Z3 K6 Q: M+ H, q else if( m_nJob == JOB_ELEMENTOR )* g$ u' h" ~% z- o: X1 h; b
nPoint += 390;; n6 t Z; \0 T2 y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) d- Q' }2 i+ C
nPoint += 120;7 G9 k; n" I% l/ T' A, u0 K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 }5 ]7 Q( o% A- y
nPoint += 150;7 p, M3 l# @6 l% M% g' Z8 U, r9 m
else if( nJob == JOB_FLORIST_HERO )& } ~- _2 \0 X9 r i& a i( n
nPoint += 160;* n, i1 c) e. B, H7 l! \
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); [) h' g5 s H
nPoint += 180;
) t) T7 t2 ]. \7 r else if( nJob == JOB_ELEMENTORLORD_HERO )
* \, a, v/ |) n( E6 c nPoint += 390;
. {1 @ a& T* Q4 p' c! V) V6 K3 R5 w6 f
AddSkillPoint( nPoint );
: v0 [( z8 I6 n2 o m_nLevel = nLevel;, u; |: x$ H$ L; M: h/ y; e3 e* a
' e- t7 k5 f- ]! n7 {$ c SetJobLevel( nLevel, nJob );
. b' l. E* x5 Z& Z0 ?1 b2 I m_nDeathLevel = nLevel;
8 G1 Q" V2 K8 j0 X1 }7 J/ l" ^#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( X+ U7 _, ?2 @/ p; y7 U
if(IsMaster())# s. V( p4 E/ h) Y8 I5 r
{) y1 y1 e {# C+ b" u
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 [% }/ m) c5 z0 J2 }/ a& ]: P" J
if( nLevel > 59 && nLevel < 72 )4 y" f/ U' q d3 X
dwTmpSkLevel = 1;; N1 P1 J% l! s/ W0 k
else if( nLevel > 71 && nLevel < 84 )0 e3 A Y/ T V M5 E7 t3 b9 @/ K8 i W
dwTmpSkLevel = 2;" D$ D" D- c5 a
else if( nLevel > 83 && nLevel < 96 )( G* C" p% ?4 n: [0 f$ S( J
dwTmpSkLevel = 3;
8 w$ a! ?1 Z8 q9 \% U else if( nLevel > 95 && nLevel < 108 )
; V4 U i( v# o, l2 T5 [: b9 o dwTmpSkLevel = 4;
# N5 m6 M5 |9 ?* \7 f# R1 U else if( nLevel > 107 && nLevel < 120 )$ ~* t* M/ m2 n/ O+ Z6 i3 w, L7 q3 N
dwTmpSkLevel = 5;
4 u- l# Y" }4 x& F8 \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) , J; i* z6 n- M7 M1 ^
{ 7 _# l0 \0 H" h/ v2 f, A
LPSKILL lpSkill = &(m_aJobSkill);: g8 p- O Q) s. c( j8 U
if( lpSkill && lpSkill->dwSkill != NULL_ID )* F, a W P1 S3 _
{: t$ ^. v6 u* c$ \! J( ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; b; K: N! @5 n) V, G, s0 D
if( pSkillProp == NULL )* j, C3 [- |4 s. N: w
continue;
7 O' A5 B) ]8 e4 w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ \( w, k* n, `: G s
continue;6 q5 K! n5 c/ z5 E
lpSkill->dwLevel = dwTmpSkLevel;
( T3 X V; _! T h n/ p8 P5 B }5 c: |6 W# S! @7 g$ f7 P1 M8 y
}2 A" ~$ l( S! r
}# G0 V2 e0 a* e3 d( u7 G3 O
else if(IsHero()). z- F" B g7 U) b9 a
{
1 o. R {. F8 \, d# b for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 K% l- x3 i. q1 Q1 C. l% C
{ + v, j7 S- ~. |& N& O) `5 j/ @
LPSKILL lpSkill = &(m_aJobSkill);* i: X8 F9 {( o2 C+ Z- Z' A
if( lpSkill && lpSkill->dwSkill != NULL_ID )* E% e% H/ p( ^) g, S9 M( d2 w: O
{& s; R0 `* ~. I: I+ _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 [! V( f# w. @ if( pSkillProp == NULL )
" X* y+ ~" W+ u, y/ ? continue;
5 Z8 T" _3 G9 [' m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
M8 o2 a" \& f! u continue;
3 b% k x. V, r8 A2 Y( F lpSkill->dwLevel = 5;5 }8 q m: g, @1 c
}2 Q8 I! o* {- E3 n/ _
}# s5 P( U" b) R# E0 E
}' T. k: W- g% C/ t! [8 e6 j$ _
else if(IsLegendHero())
$ Q9 r4 i# _6 n# a1 Y1 ]# E {, @+ ^: M! J" g# S6 s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " ]$ V, O7 H/ t1 z2 I
{ 1 G* c& l0 P* G1 O; r
LPSKILL lpSkill = &(m_aJobSkill);" F& C' N; E N
if( lpSkill && lpSkill->dwSkill != NULL_ID )- [; _; @$ t+ v/ S6 i6 F2 s
{# p; s, h. k# k- S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / l8 K- ?, h! S# R4 ^6 o
if( pSkillProp == NULL )
4 [ h& E A1 y$ Y continue;* Y1 M, l. U( w7 Y9 I( ^% \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 Q7 a4 p9 B' A F/ _ continue;
- P6 A. c, } t5 u, B. R V i- [: [; W lpSkill->dwLevel = 5;
2 g, c' n1 u! m! s+ X( y }* R9 m% I% {$ [
}+ A# Q9 M' n; E+ r( g% H2 s; n1 O
}
4 V' @, n- s. ?4 J#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: Q) Y- _& m9 }) f0 R8 ~ if( bGamma )) z% N _$ u, s; ]6 ~
{
8 g" `* L/ p- R+ g9 x. h m_nExp1 = 0;* W9 ~9 F% [8 C' W
}
$ {6 P& G, W9 X. M
: a @6 y' H* j+ ]6 o* J ( (CUser*)this )->AddSetChangeJob( nJob );$ @* u& e( w" p& v, H' h6 N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" S$ {* i0 z" N( k' C* A
, g& N+ {- t0 d# n' ?2 ]5 d& r7 K. x, G8 k4 S; f! l0 M
#if __VER >= 11 // __SYS_PLAYER_DATA3 x1 a* O* [* o! J
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* t" L* R- u& b2 k" L. q" O- A
#else // __SYS_PLAYER_DATA
6 _/ C4 \9 Z4 i7 o$ b% V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 L0 z$ s* ]* R
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# ]: A: A5 E; d' M/ n5 M2 y if( m_idGuild != 0 )
K6 G2 a: d! _( A! H g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) @" D$ H* J# g( Q9 I#endif // __SYS_PLAYER_DATA
. a- Y8 o3 N, o# o SetHitPoint( GetMaxHitPoint() );
$ J3 Q9 C! S- W: f8 Q SetManaPoint( GetMaxManaPoint() );* j7 k/ W' V# L7 Y) a
SetFatiguePoint( GetMaxFatiguePoint() );; I# r3 ^! q/ o& {8 y M
if( nJob >= 1 && nJob <= 4 )
6 o9 ^. _) ^8 r# t5 C) j& g* { {; f& o2 s4 R" e8 u2 A2 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. y5 z( P) F+ m) q: q m_nRemainGP = 28;
1 T; n" F: a8 q. R i }9 m: @# B) ^3 [. y0 q$ D
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ o+ t- H" t* Q. Q3 i) { {
. X- Z2 W4 A, K, {- { m_nRemainGP = 118;, O) L' B+ q; f( B. _
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% Z) w" [, q+ ?" F* M; g+ o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" A) A) ?3 m$ X% L) U) a7 U1 A }: ?2 J9 M1 m* g/ y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. e5 A5 E6 w# Y- P! s- r( }5 \ {3 V2 ?* l, b7 n4 h; k; l V
CItemElem itemelem;! D" Z& X# I) i) {2 o5 b9 f+ s9 X7 l' E
itemelem.m_nItemNum = 1;
8 j5 q5 U7 w9 w. \! o" E$ _9 _ itemelem.m_bCharged = TRUE;; a( d" U8 s7 J' L
BYTE nID;7 E1 c+ ~8 V% E6 t6 m; ^
) e8 H8 S6 Q3 } if( nJob == JOB_MENTALIST_HERO )$ z( \8 V$ W2 A$ f/ k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ g! @' l4 M3 W" P/ `7 i) R! Y6 ] if( nJob == JOB_FORCEMASTER_HERO )
. u) b! k% w, f# p itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; ]+ @# z& N6 q' q8 A( n& @2 l, N, Q# ]& _9 e2 K
( ( CUser*)this)->CreateItem( &itemelem, &nID );) s! O/ e& v0 O$ U) m+ e; ~
}
, m. d9 H% m8 b/ ? g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: T I$ {4 \1 e ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) k% l! B5 n: L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
n( S( ]$ e( S0 O /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 m, r8 J: {! b0 m
( (CUser*)this )->AddTaskBar();*/
6 y; H% p, ?8 @7 ], V1 X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 |( A, I+ Q, N" ?: R8 z! }/ f#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) O# P* s5 A( Q) u
((CUser*)this)->CheckHonorStat();
% }6 u3 M8 v. }! u5 k ((CUser*)this)->AddHonorListAck();# I- W& ~4 D; I- H d
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! E# h. w4 k, e% j9 M#endif // __HONORABLE_TITLE // ′Tà?
# L/ M; f5 P- S y" Q. X* k( [ }
0 p( l0 R% R! }# y$ {, ^#endif // __WORLDSERVER
6 N9 A& d8 n+ G4 @+ U+ Q6 N4 N9 R} ; J" U; _ A2 G6 D
% t, g& f+ t' r7 |, o* ]然后你进入functextcmd.cpp并添加以下; ]6 c. V2 P3 O$ @1 W# i
# N/ D) L8 X+ l4 i代码:' P$ N- l L! D: a) F W: ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; i) K( P/ l$ J5 c6 h& X$ f: C/ h下面插入
" q! U7 C2 B# l, b2 F: HON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # P7 A- j3 H& b" q1 ?
1 o8 |; N1 X$ B0 X$ a n
然后你去6 h4 J v1 w8 l; \2 T# d5 s
" { {' M6 F) Z
代码: h C/ u6 c% C" N1 t3 i
代码* i+ u3 _* [+ M/ J0 _
BOOL TextCmd_ClearPropose( CScanner & s )
A% ~5 ~ a( V( H! u+ S{) ?0 Z4 z1 }0 d( j# W1 S! o
#ifdef __WORLDSERVER& g0 P- J9 a, C
CUser* pUser = (CUser*)s.dwValue;; w: k# R& K T( n5 M, _" p X
g_dpDBClient.SendClearPropose();$ y6 \3 `' K7 h6 J: y0 {( m* e; j
#endif // __WORLDSERVER/ r, Z9 z. Z5 v& f2 F, v9 r
return TRUE;6 k& A* g( d, c) V% \
}
9 N: A8 x' U. U3 T4 f* T- [下面插入1 b& }$ q8 F/ n
BOOL TextCmd_rebirth( CScanner& scanner )
% e+ \& W) G% q& Q{
) ~, a1 w1 L5 c% E6 E1 N. C#ifdef __WORLDSERVER
A1 |% E) r& K+ U5 sCUser *pUser;/ H1 h( S) S' ^ q$ q
pUser = (CUser*)scanner.dwValue;
~, r9 \# L# ~2 |4 K6 Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), ^! @% {) a& b* D7 f
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, ^% N$ X, V5 C
else: P. Q7 X! p+ j3 _) R$ Y; i2 S1 @
pUser->AddText("你还未达到重生条件!");
2 r3 G# i0 w5 G$ S. X0 v$ t#endif
3 E0 c; @' ^: b' { }: W; Wreturn TRUE;
( l% ?& [7 b- h( t0 u9 ~- c5 A} ; F% _! H8 _: `; W/ J; Q( l
# f& x" N1 w+ l7 t7 E( L+ F8 e- O4 x' Z5 l5 T# o
4 ^% x, A' a" P) ^- u2 k
& x @2 U4 \% ?3 q R: o |
|