|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- u8 ?2 Z, s1 F2 `/ \6 p* P' B
8 L2 W% M* q5 L; u/ t( f7 FMover.h
: Y1 _6 ?5 c! F& {/ E1 U/ e- [ U5 @代码:; r# ^7 I0 Z _7 h3 A1 \% N5 Y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' |/ L/ q2 }* R# K! Z1 m) ?5 P, J: c9 @# D: j0 L
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, G' T( d, v3 B0 u1 U
$ v, U! R1 D. m' P& a5 Z; d然后你去mover.cpp添加/ U' G3 a( e0 G0 l0 U! Y9 K
3 p& @5 c7 k2 H代码:
3 {" G) u$ @6 H9 Tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ ]0 c& [3 ?4 Q{- u9 S+ \- F. [/ O3 l, b& G
#ifdef __WORLDSERVER$ L3 ~: ]/ G f6 N6 z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) R) |# R8 V0 C7 Y0 p3 S5 K MoverProp* pProp = GetProp();' E' \6 E6 u* Q( ?& F& s) v$ O
if( pProp )+ D( r, d- h3 y0 @, M) u( P
{
, f2 y( h6 u* {1 e! i% F) o( h if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% u& F) j* i4 C* ]( a( ]2 m7 i+ t5 _" }9 G {; n4 K9 Z& |* r9 T/ I# R8 T" u# }
AddChangeJob( nJob );
$ x' V9 T" a3 K- J! { K* Z% c }else{
2 _5 ?, j9 G9 }% l+ [ return;
6 M8 C N- F: ]. g1 t2 @ }
/ ]6 m# a9 z( v, ^& V int nPoint = 0;
2 b2 B% e# D5 s% y! n7 _$ f if( m_nJob == JOB_MERCENARY )
c8 x5 {' P+ G ^ nPoint += 40;
; c1 \2 T8 n7 v& D) L/ n" ] else if( m_nJob == JOB_ACROBAT )
% k: ?3 c* z2 b nPoint += 50;
: O4 d. [- g8 c6 s9 U6 U else if( m_nJob == JOB_ASSIST )
; t$ w/ R4 }& i- ] r1 Q! E/ [8 w nPoint += 60;6 d5 H! D! }: i8 D
else if( m_nJob == JOB_MAGICIAN )0 ]9 m2 b8 N& p F4 u
nPoint += 90;
3 Z7 z4 B/ e; M1 L. J else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) t6 J1 `5 v3 \2 f& v& _
nPoint += 120;1 z( z, ~$ n6 I% r0 q& n: t" S7 D
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, R% _" L( b. r8 x$ e& P$ ~% o nPoint += 150;
]3 E f7 ~3 y; a7 A else if( m_nJob == JOB_RINGMASTER )
w) e; ^# s2 O6 ?* g7 t( F nPoint += 160;
5 J5 z; Y1 v1 ?1 v else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# U' |+ |) V+ x5 m2 Q
nPoint += 180;/ k5 y" m7 f4 r1 N, v/ J1 X
else if( m_nJob == JOB_ELEMENTOR )
f7 r: }4 ^. n nPoint += 390;, l, k) o5 B& l& \% l G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' \& Y2 E7 }- I) x% Y+ X% @3 p: J; p nPoint += 120;
; A' Q0 `* b) G8 W; | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 M! p) m. x! O+ K h o nPoint += 150;& f2 ^- ?2 V7 J G! Q" b* ^$ Y; v
else if( nJob == JOB_FLORIST_HERO )% R* }7 e2 I) n; x" j
nPoint += 160;' x; b }/ L. }
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 V# |+ y$ m8 A
nPoint += 180;
$ U; L9 B) \" R2 ~. b* x; v else if( nJob == JOB_ELEMENTORLORD_HERO )7 J1 H5 J1 |, i8 t* Y
nPoint += 390;
9 _' l' c# z% j# r7 }' K u8 S0 N
8 I, }7 V) N4 |, ~5 x) F AddSkillPoint( nPoint );& ?1 g' P6 [8 Z" H: v
m_nLevel = nLevel;
0 \( n2 @* V6 Z& i
$ C0 z" {( }& y. S3 ~8 p& P SetJobLevel( nLevel, nJob );* m0 g5 r. l5 C4 c1 F7 E x
m_nDeathLevel = nLevel;* z4 Y6 ~0 M4 C' h8 K, h+ @
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) b2 m3 h+ W0 a3 q" {
if(IsMaster())
# W8 M% z! R! m2 g {
& _+ H* p `, Q5 e! I int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 j ?4 A) h. A4 |* O, K* `0 T& a- x
if( nLevel > 59 && nLevel < 72 )9 W! ^6 M6 D |- d1 w. s* r
dwTmpSkLevel = 1;
3 N' U8 D" i! ~8 P else if( nLevel > 71 && nLevel < 84 )0 ~% y/ @; U9 x/ a
dwTmpSkLevel = 2;& v0 O' W# Y d o" ?$ l5 H
else if( nLevel > 83 && nLevel < 96 )8 ?: f, h$ ]' S F V% c
dwTmpSkLevel = 3;
- N9 [/ k H4 ]3 E else if( nLevel > 95 && nLevel < 108 )
8 V9 b. |2 M. i$ H/ u) t. b8 l dwTmpSkLevel = 4;
* Y2 N0 X) b6 }. ^! ? else if( nLevel > 107 && nLevel < 120 ): x& o: U' ~, i" t$ m- d
dwTmpSkLevel = 5;
" c, T" e: c$ s/ o for( int i = 0; i < MAX_SKILL_JOB; i++ ) % k6 {# y1 c6 i9 m% q* H
{ ' H4 P, M" L% |/ o# i
LPSKILL lpSkill = &(m_aJobSkill);
3 m7 w, d' \ B9 p if( lpSkill && lpSkill->dwSkill != NULL_ID )8 ?( p9 Q; ? h* w- z2 c
{
" K! r* Y; n( d" v& r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 E' q, R5 f J9 N' A9 K8 d
if( pSkillProp == NULL )
% b6 f. n* t2 m' u continue;
/ e, c3 V9 I5 ]; w8 |* m5 f& b# C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* Y8 [8 f- @" t0 ?( {- o+ F
continue;* i. J* }8 q) w1 w' Y
lpSkill->dwLevel = dwTmpSkLevel;- U' R! f1 }. \+ W: B I; p: p
}# r+ I& l% z" h
}6 r2 d1 o8 B$ M' A( Y: E4 N
}
1 W! |- s( ^* v3 O else if(IsHero())' d# U9 z" ^0 G! m$ X& v. F
{
- p# N6 g$ Z! r! C! j1 r. D# T( g8 Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
J3 [ i1 i- s# `' } { ! p ~1 G8 R* [: a+ A. H0 o6 ~
LPSKILL lpSkill = &(m_aJobSkill);1 \8 M1 o- w& E( C) D% v+ ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 O+ F Z8 Y% }" G2 J+ i {- ]0 M" W! O& b9 Q/ C1 D' S* N1 n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' ~% R A' a* f
if( pSkillProp == NULL )
1 T* e0 O2 l! r continue;0 r# ?2 q5 ~( W. H1 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* u3 \( L* r* ~* o9 d* q continue;" `, Y# h6 I% y1 q( W
lpSkill->dwLevel = 5;+ [, Q. e$ D- i: _ p( @$ M
}
/ p9 ?' V# j# W% M5 O }. C' O& E2 A! d8 ]: X: F& C
}" b( y, y7 P) J5 k
else if(IsLegendHero())8 y- ]2 w8 b0 ]5 b$ { u3 ]
{: A1 d# e k6 D+ Y4 {3 h! P7 o: u2 S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) L0 J( U* @: e6 L6 O5 e
{ : P- z. n# g: M
LPSKILL lpSkill = &(m_aJobSkill);
- C$ V* R: A3 c$ [+ c- Q+ P' N% \ if( lpSkill && lpSkill->dwSkill != NULL_ID )6 B) j; O% T# A9 `# N5 A" V
{
1 E( L! W0 z0 c6 g+ Z/ l! X- u$ U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; N/ M% ~: X k9 C8 F
if( pSkillProp == NULL )
6 z }4 t* S: p1 r f p3 `9 m continue;+ B4 i& q2 b- U5 C2 ]4 b. f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ A8 u6 o' ~3 y' W8 }4 |/ Y+ h
continue;! |/ q9 f3 @1 h5 f/ g
lpSkill->dwLevel = 5;9 Q8 H0 S# M+ ~1 P& a
}
" R* \) K" C& \7 F }: @; s3 \, o# n( L: z6 }1 Z9 W
}, U. d7 C3 q' ]. k. n' s k9 _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 s- w1 ?* S9 e7 I1 \
if( bGamma )0 E$ ^/ L0 M- v- V0 i, |2 W
{# {! u) D. L* ?0 Z' v4 W
m_nExp1 = 0;! f& m8 W* f( }+ d' T( \) T9 k
}: |0 O: F$ u6 m6 w/ {
: v7 E5 O! t( D; | ( (CUser*)this )->AddSetChangeJob( nJob );
: E9 |9 |& W& ^3 @& g: I g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ `) G$ m8 n/ o5 Q- N
9 A0 y, S; q- {+ ^1 O
+ @. n2 U/ n; C# h2 T/ P9 @) k#if __VER >= 11 // __SYS_PLAYER_DATA1 F" S& t- i3 Z X( M2 t6 |% U
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 s; h' q" H7 o' S1 z% L3 j
#else // __SYS_PLAYER_DATA& G) j4 X5 J+ ^1 c& ?4 `$ U# u) N8 u; z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );1 B- h" B0 p9 Q* F+ F* ~9 ]* t" n
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, @) [' x8 U: ?3 `) `6 K: G
if( m_idGuild != 0 ); o( u# ] }3 q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( J! E1 I( a7 l! W7 i# r3 @ j7 R
#endif // __SYS_PLAYER_DATA
6 i% m4 e' W: p4 O$ a! U/ c7 g SetHitPoint( GetMaxHitPoint() );8 j1 G. m' ]: K
SetManaPoint( GetMaxManaPoint() );, B: N. b; X2 ?/ O" E5 q e1 D
SetFatiguePoint( GetMaxFatiguePoint() );$ d/ F! U% p/ F1 L8 h6 Q% S
if( nJob >= 1 && nJob <= 4 )
) g4 S' {; Q2 `7 w* q' O L {5 q) q, T. S" D4 E0 n2 M O
m_nStr = m_nSta = m_nDex = m_nInt = 15;( U: D7 U; Y5 h$ Y
m_nRemainGP = 28;
7 P) C2 A+ x+ { b; Z% t1 Q. U8 ` }
2 R+ u# Z4 _2 O if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! t6 _, t4 j+ a) S+ r5 \- D {' |% _$ [* W! f# ~- r* w
m_nRemainGP = 118;' Y' l$ E" f3 g8 t/ v: g
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! S0 u7 }, u5 I; S0 n% |( q# N; F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 |% Y6 k5 B9 p* n! _6 ] }) r( T3 \$ X6 Z3 ~
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 X) M3 i, l+ n4 H {* ]+ I) C5 x! q% b2 a
CItemElem itemelem;/ S+ y2 u9 U+ W/ @8 q* z
itemelem.m_nItemNum = 1;( b& i+ F5 ]4 U) r# v
itemelem.m_bCharged = TRUE;
% n% l. @6 }$ z% Q BYTE nID;+ C# T4 \% G# ^2 a; r$ k9 q
. m2 x) r: e1 k& m0 E) N9 {, V
if( nJob == JOB_MENTALIST_HERO )
' j% I# r* d1 Y( i8 F# j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 }% D' v* T) f; |$ L
if( nJob == JOB_FORCEMASTER_HERO )
! w9 ]: L5 e& ^8 {- H! w! r+ B" v itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; U4 Q6 N: g0 R! w( i2 c j! i
% k. j8 ?. n4 k- I4 T
( ( CUser*)this)->CreateItem( &itemelem, &nID );; B' U3 o& O1 Y* O2 @
}
% M! {/ x- ~2 _5 u+ Y0 p3 }% _4 H g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* ^9 W) n; f# r B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( J2 ?" r' L9 |& X ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ z7 L$ I E6 v1 f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 c0 D! h1 `0 |9 g: p
( (CUser*)this )->AddTaskBar();*// J9 X* N- H( y* G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 b) `$ R+ j* U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! A. q1 X/ w+ r/ D ((CUser*)this)->CheckHonorStat();
5 n. v( P( d+ R ((CUser*)this)->AddHonorListAck();# H0 Y& W5 i- Z! \
g_UserMng.AddHonorTitleChange( this, m_nHonor);' s* r! ~# ^9 e4 T* h+ ^
#endif // __HONORABLE_TITLE // ′Tà?
( ~6 i* U( @1 E; W$ a }
9 P; k7 Q+ ]) m7 A$ E#endif // __WORLDSERVER- G4 s7 [- R2 x9 p3 S
} ; t* t1 y, f3 I5 G
& V2 ~9 w5 S# O) J然后你进入functextcmd.cpp并添加以下5 \7 F* B6 j7 R) G. t! @0 g
2 g* [$ `3 T5 B6 O* m; I, g2 B8 ~
代码:
/ G5 S- }1 y8 n$ H9 K8 {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ F8 ^! p4 z; }5 A/ ?/ R
下面插入
" e' S4 E: e, Y5 A1 jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . ?- q+ V$ d" h9 ]* U
/ V4 u; ]% i* G7 L2 a
然后你去$ J/ U" C. E# p9 Y# _
7 N* k: G% I! D9 k: T- I, Z, u
代码:
1 o0 q; T8 D# J" |代码* L0 c5 m5 `8 @) H
BOOL TextCmd_ClearPropose( CScanner & s )
# T# u6 W, E7 O! E: C' | }{( A& j% \; t" {. ^ S
#ifdef __WORLDSERVER$ F5 n: R( v0 s* m9 _
CUser* pUser = (CUser*)s.dwValue;' g/ {; @. B. Q6 A+ j
g_dpDBClient.SendClearPropose();. o7 J# f+ S1 Y1 I9 V
#endif // __WORLDSERVER
9 s; L* g$ R2 G+ v6 X return TRUE;$ I- E W) v) ^& ?3 N$ n+ `: {
}
# ^4 C' T; c8 j! O- X7 v" ]' f5 H下面插入
# K- d7 V( c8 nBOOL TextCmd_rebirth( CScanner& scanner )% s& n, k5 d" A% T4 v0 B
{
' l2 n$ n/ N- Q6 Y2 j/ i+ i# ^% F" c#ifdef __WORLDSERVER# t6 r) q1 v; r; Y, X' N% ?
CUser *pUser;9 o( c0 j; C* x: X1 L0 g
pUser = (CUser*)scanner.dwValue;1 `4 \! [1 i- H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* i2 S) s9 H! j% O7 ]5 fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. j, I6 H; U) j# A+ ?9 lelse$ b8 A, W% O7 l
pUser->AddText("你还未达到重生条件!");
# H& j7 Y0 W7 v# [#endif& m# m X Y' U5 Z+ X
return TRUE;
2 v. j' R$ N- C& n* x, h}
( ?+ s; C. K- L, F0 k) ~; Y# H1 G/ ~' r* j! V
% p7 E) b6 a2 O2 W5 C. T) b3 x* L1 v
5 ~( P! q- `% Y% H
, `- n4 J% t7 z: q9 N |
|