|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ G2 w8 N) M* y1 s; _. d+ [3 c
. c* {3 L9 K# |/ g4 z- x7 _! wMover.h
2 H' P3 O+ L e代码:
" N7 w' c0 h$ z9 q- O& U0 g/ W& j# M% H找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! @1 t6 D4 y, J5 E! g% T
: C+ s' {, _& S2 }) X' l下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' @6 K3 Z( a+ U5 m4 j6 m( t' l4 H7 {# `6 Q: f$ m' @
然后你去mover.cpp添加2 u$ x1 ]( _' ^0 l5 O) n
: C. q: Y0 `- J# _" x代码:' W4 W, b8 U7 Y* Q# k+ a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 J' c6 ]5 i7 o' d+ i{! _- m- ]$ L) s% u, m0 D% P5 {
#ifdef __WORLDSERVER1 q0 `+ S6 v" T% M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& ^& l& L- m2 E MoverProp* pProp = GetProp();# H6 W) L8 T3 Q9 t
if( pProp )
( Q# s0 c8 m8 n) f6 h! f {
! V8 C2 b# ] w g8 z if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 [" X8 s: Z7 l8 s+ k
{/ d, ~7 o5 o8 j; v" m, m) `
AddChangeJob( nJob );0 p) Q* E; t6 s/ B# k) p& T. t/ z
}else{
. F; ]& F$ e7 I; q, r return;2 Z2 }2 C r- O# c
}* C7 @1 t8 N& o- @
int nPoint = 0;# f: e, M* \' \
if( m_nJob == JOB_MERCENARY )
) l% X5 B( Y7 H2 Z* @ nPoint += 40;
7 S3 q) _/ f7 ^& C E else if( m_nJob == JOB_ACROBAT )
7 w( B, @ U! b- `0 L- w4 j nPoint += 50;
7 `" i1 t3 z8 b4 y! d4 e else if( m_nJob == JOB_ASSIST )
) d; G6 a% @2 Q# M nPoint += 60;$ v2 c/ O: z* G( S* p4 h
else if( m_nJob == JOB_MAGICIAN )) ^. H$ W" h% T8 o5 F. b
nPoint += 90;
; G! X2 l- k3 L/ l+ o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ), q8 c/ o5 v* g% c1 ~- q; M1 i
nPoint += 120;
" u3 K' K) R; | y m else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' J9 [$ v( n% N! d; e) C. L8 Z nPoint += 150;* y- W/ l0 P# q: C
else if( m_nJob == JOB_RINGMASTER ) u+ S0 D) F' x5 S
nPoint += 160;$ o( C3 X- _4 T9 A" z' U. g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) M( g* G' j) M1 I
nPoint += 180;
# s1 m# r* a: p$ U else if( m_nJob == JOB_ELEMENTOR )* f! a$ v. v9 c: R* ] \
nPoint += 390;3 b- y$ j" |' `% n2 A) S z- u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 `+ ~* b. w7 T) l% [; {' I- b8 V
nPoint += 120;! A- ]& K B' d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% |9 |/ k9 ^# e1 V9 T3 E nPoint += 150;
( E; i* q! Z9 |1 T1 n else if( nJob == JOB_FLORIST_HERO )
9 w/ I- \# m$ y nPoint += 160;
$ b9 ~6 F" A3 O% j2 k else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! U$ S; B M3 @3 ] nPoint += 180;# {: v# ^6 S# \/ X7 D) B
else if( nJob == JOB_ELEMENTORLORD_HERO )1 D; y: W. G# k; W" @8 W) a
nPoint += 390;
% }1 T$ b$ g: s8 G: s# z0 x
) P. p; r* z! v2 [( Z AddSkillPoint( nPoint );0 G2 Q" _! n3 X1 S* \( x9 P; M
m_nLevel = nLevel;
8 F2 e Q9 b& u- W1 `# G/ A+ g& K# Y0 i; X( y, [1 e; ^$ _+ `
SetJobLevel( nLevel, nJob );
) I" S- c f$ {+ U- b; i8 u m_nDeathLevel = nLevel;4 @8 ]# Y& r3 Z- b1 K+ [8 U
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ u; R8 R% K& }- T! W9 _9 H if(IsMaster())
2 I3 i% Q1 ~7 I* ^& C {
9 Z/ T! x+ `( L- J int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( c0 p* J3 ^- r+ C if( nLevel > 59 && nLevel < 72 )) l: f$ o4 _8 E5 F: }5 U/ r
dwTmpSkLevel = 1;! G5 X' ]+ e9 |( f% z8 p0 R
else if( nLevel > 71 && nLevel < 84 )9 z/ E) {' C6 X4 k
dwTmpSkLevel = 2;7 E, I4 _6 e) v- G! d7 ~
else if( nLevel > 83 && nLevel < 96 )
* i8 k9 z& {! T3 y8 G* I8 t5 [. U: E0 q dwTmpSkLevel = 3;
' }0 i, E) w2 c+ i: n$ F else if( nLevel > 95 && nLevel < 108 )
4 r% |" V3 x3 r9 `' |0 ^: R0 f dwTmpSkLevel = 4;
w6 v/ F) k. o9 O else if( nLevel > 107 && nLevel < 120 )
- ]! K1 _4 p. x4 q/ C dwTmpSkLevel = 5;7 q, N$ h& ]4 d: n; Y( u7 v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- H( j8 U* q6 q" C- y" Y {
2 u. t8 ]/ d% B' Z, ^, V# \ LPSKILL lpSkill = &(m_aJobSkill);
5 s v9 Y4 q6 x- S, X+ p, P$ o if( lpSkill && lpSkill->dwSkill != NULL_ID )( ^, V* c0 ~% k E! [9 f0 e) f
{
) m( p' L2 j! X, i& E% A! ~. W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 L, D0 e' N( R# z4 s0 X# g
if( pSkillProp == NULL )
& \6 W) V( L3 H, v$ Q" a' U continue;
) ^7 ]$ j: s5 N6 B8 w' M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 t/ t+ q" y" F% D, @8 _6 ~
continue;
1 H! \/ ?4 G" I0 z$ U( f lpSkill->dwLevel = dwTmpSkLevel;9 q. w x# @! q$ [! o" d7 V( K+ X1 q
}% u9 v' v; ~3 u4 F* L
}
! t* k% d3 g, S1 z% `7 S }& y2 B6 d( W$ K. ]* s; K8 u
else if(IsHero())
& K: m- }! x: Q {9 C% r* R3 K+ H8 \& S: U+ Z; ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 ?, A' d+ \$ D- f
{ - `. B' M/ h) z7 Z
LPSKILL lpSkill = &(m_aJobSkill);
. R6 a$ j/ j. B' n3 W9 a: z if( lpSkill && lpSkill->dwSkill != NULL_ID )
V4 j) ?$ F) t' Y1 i( j k# I {
4 o/ U0 {8 r( Q4 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; F- G9 w) b, Z Z+ Z7 q" C if( pSkillProp == NULL )
/ _0 p: \, Z+ n8 i2 h continue;
1 p1 }( K& a+ U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 p" j+ Z# Q) A continue;8 p, Z8 ~0 m8 _, T
lpSkill->dwLevel = 5;
% I& e2 f. p1 R& s }
" c. U2 R6 n! a. ?0 ^ }4 X# z6 A$ P+ @4 ]5 L
}# X* {5 u. k: m' M; j5 @7 o/ g5 b: M
else if(IsLegendHero())
$ E) K2 U! a; p1 ^ {* i% J, N# x& ]+ Z% ]3 W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: I' d9 t% T* |9 W8 V0 t {
4 i5 M9 R4 S! m. i# B$ A' y! V LPSKILL lpSkill = &(m_aJobSkill);
1 b( T/ V$ X. @; ^+ G6 G if( lpSkill && lpSkill->dwSkill != NULL_ID ), W6 ^5 y: T7 m8 R
{# Q) N/ C% m' X) M0 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + k! Q) ?% e Z4 U
if( pSkillProp == NULL )
$ e: p1 x% r+ U, k6 H* Q continue;0 t2 \7 |- C3 i& W* H% G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 @4 a S: l, b
continue;/ `. m. q P h! M' p& q
lpSkill->dwLevel = 5;5 C& n# V) b7 K
}$ _, \7 H, r9 ]
}
i5 C" r7 W+ `; U* q+ ^. C }1 [' w8 G8 m/ U
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans L) D; N! k9 B9 {
if( bGamma )) ]0 L L/ _& r% M" m R
{3 R$ o0 r$ d' h
m_nExp1 = 0;
& F8 s1 _9 L! I# M }
' \9 _6 r/ I+ |# q+ ?, t
$ O0 T) e3 W0 \" ~/ B0 D ( (CUser*)this )->AddSetChangeJob( nJob );
# H- K H. f$ w/ @( {2 L, d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( ]( W2 r3 N& k z1 I7 ~! j4 X) [+ y9 \. m* l
# g% U/ w! p8 K1 j Q" N
#if __VER >= 11 // __SYS_PLAYER_DATA
; ?6 p. p. k+ X; S" j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* [0 E0 i% }. P, N4 k: h#else // __SYS_PLAYER_DATA/ V. @$ e: S! B7 l. d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ v, z: C- z$ ]' V) o: b! o3 J
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# M5 P6 ^* Z# v6 } if( m_idGuild != 0 )# e* c4 n+ m R& V0 K; |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; } m3 F3 J; e+ n( b* H#endif // __SYS_PLAYER_DATA% l! I& F4 F+ z) u' [8 \
SetHitPoint( GetMaxHitPoint() );, \* h3 }; X0 x5 o
SetManaPoint( GetMaxManaPoint() );! K; a8 K) E- l& _
SetFatiguePoint( GetMaxFatiguePoint() );
" R: {0 h* Z+ f t c if( nJob >= 1 && nJob <= 4 )' f! g$ ^) W S( F) A
{/ e0 N; l3 s/ O2 o- x) N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. v2 Q5 ?- C- e m_nRemainGP = 28;3 t% ^) Z: E& j# f9 i# L
}
8 B4 ~' U6 J. q* m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* S! [) Z& e9 o( d
{
- D8 x! R2 ^2 g" H& H m_nRemainGP = 118;
" F7 ^6 ], z/ [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ I& @6 y( Z- m1 S6 `0 s) s m_nStr = m_nSta = m_nDex = m_nInt = 15;) K9 p+ h% f* }# U ]+ t
}
7 w( _, G$ q1 s8 _0 J! K if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). `! z6 h3 t) |* X& G
{
' D7 h% m) e* X: j4 Z% W. q CItemElem itemelem;
1 g- C; ~: i9 v/ H: J% s- G# R itemelem.m_nItemNum = 1;
! L ^4 N# U, R* a: a; [ itemelem.m_bCharged = TRUE;
8 L! L" d5 [0 D! M! U. ]3 P BYTE nID;
5 `) c; ]% a5 C; P! P2 u9 F- C! u: I; Q) q" T) _ A0 r% e% b5 ]8 J
if( nJob == JOB_MENTALIST_HERO )1 i) v4 H' f5 }% h6 j1 g$ S
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* l& Q; q3 N( T if( nJob == JOB_FORCEMASTER_HERO )$ C4 y4 h# M9 o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: ?: t3 a) V, b4 Z' |7 R7 ~* q6 X
2 ~ d8 P7 X: Y4 o ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- y( t4 N$ E6 c3 A% Y }, ?( m4 G& s* K2 F* j$ h/ m
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* M8 f# ?8 K. w- z) D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) k" g. X. Q. U+ u' D9 @: v7 e- l
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 O0 r6 U2 o3 [1 u( L* n. x$ I
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' r; D* m, R0 t% A5 B ( (CUser*)this )->AddTaskBar();*/
5 E e! t3 x* o$ z6 X- U ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- [( d6 t! }8 F9 l1 u/ W4 [, N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ U7 H8 I' }- I x- \8 _7 Q ((CUser*)this)->CheckHonorStat();
5 N' ` F" p1 V2 W: Z ((CUser*)this)->AddHonorListAck();3 L$ V/ Q2 a- q" b
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 ^1 i% j5 W4 V) h6 i* I' u#endif // __HONORABLE_TITLE // ′Tà?, b3 e; X0 k p1 \' {+ j4 a: O
}& y8 ~1 a) v3 ~: \ e9 @ i- ]
#endif // __WORLDSERVER
% T4 f }3 o. x+ x}
8 W5 K: [9 C1 `5 U+ p( u4 u
; P3 f2 C5 V+ W( {' v! j& ]然后你进入functextcmd.cpp并添加以下
. x, O% \2 ~; e! e
. [2 [" l& ^% Y K( T+ t& q2 T代码:3 @6 [3 d# G# H% X; t# ^5 ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ {6 k4 x. ^6 L# `5 x; g
下面插入5 V, G7 t* p K8 Q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 j& L" a& T' j& R a8 T
+ x1 u" q- W" J6 e然后你去
- R- D. [9 o9 F9 ?( A: {' ]! ]( k1 z" `- m' u
代码:
# ]) E% l: F4 `8 `9 c' v6 ]' G代码
2 r1 Q& r+ S1 Y3 a7 BBOOL TextCmd_ClearPropose( CScanner & s )
7 Q: b8 f! e" A2 X: I4 d{3 J5 u0 g+ m; |
#ifdef __WORLDSERVER5 P' F2 B4 t8 d9 y
CUser* pUser = (CUser*)s.dwValue;8 x) F# R* [' f' D5 q. n) r! |( V* t3 g) c
g_dpDBClient.SendClearPropose();
/ i- v2 C; b6 G! J: Y4 o: d0 ^#endif // __WORLDSERVER5 W; d: |8 z5 T
return TRUE;
" T" }7 D+ n9 @) D; _}2 K) Y/ S% F, f! l
下面插入, Q; r. e1 D- g" r1 L5 {' k+ I
BOOL TextCmd_rebirth( CScanner& scanner )6 C+ Y7 }: Q; X# T5 e. Z2 L
{
/ x' D- y) V' K5 f, c#ifdef __WORLDSERVER
9 U. @, ]- c/ w _% A$ `CUser *pUser;
7 N) y V( s3 z- w- B# k6 RpUser = (CUser*)scanner.dwValue;
1 a7 z) [/ ~% s$ d2 u+ Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 K; y* F) q$ _, JpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 k, Z. U8 a7 W) f8 Z
else
# Q% H4 Z/ v l6 b, M9 jpUser->AddText("你还未达到重生条件!");
& a& |2 ^5 @+ l8 \0 A#endif, f$ c' w, `) d I; w. X
return TRUE;
7 ~ @" R6 U/ S0 f}
0 L, M' e. [( a. F& D1 Q" L, q& L6 ^& ?5 L: c5 A3 q( V5 V' E- g; o
( l4 w, [) ~4 W+ C- J1 I s9 Y" B7 H g0 R0 W3 q: k: a
. v5 @& n# F& K1 M- P- U |
|