|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel1 p" ]' h; f7 u6 d4 Y( ]1 }
' o1 v& Q: e" V3 |$ m3 e( U3 `
Mover.h
& ]2 j0 ]) w( Y4 w4 w: Q代码: m& c" E4 s& `1 G* d! @
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, D$ Q4 o- m7 ^" I. D
' M% J c M' J. u0 u$ T
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - R# q r5 ]& V
. {7 {! O4 x+ d' r% B
然后你去mover.cpp添加* [/ f9 p: u2 g0 M( W
! P0 E1 _- x6 k5 ~5 ?9 U5 }0 N代码:! y8 \$ [3 L) r* L2 _# a% L1 ~7 g L) r8 o5 ^
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 K3 Q8 w0 g* G, S/ A6 u% v2 c# `{* ^% p1 T% E) |! [; m3 h4 E
#ifdef __WORLDSERVER
- N7 N) ^1 y' Z1 B( c" I b, _ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 g) T, ^1 l& l( z. T. Y* M' o
MoverProp* pProp = GetProp();
' l& k# Y% w. T, F5 v& U5 I if( pProp )
" h0 x& x ^; n' o" d, k0 m7 E/ N {
8 P7 L/ E# C8 P9 `; m if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 E# X& ~5 ?. t4 j: c
{: R9 J( n8 F( y H' R. r3 r& o/ x* e
AddChangeJob( nJob );
3 g+ d ]7 B: Z& W# J }else{
" M& \$ J, ?& {9 M, c return;
4 ~* j' h. L) M& `* V, a/ d }- a' O9 I: Z' p& J: W# A0 R
int nPoint = 0;- X% r1 G% M# T
if( m_nJob == JOB_MERCENARY )" M7 F4 w) s3 }; G2 q* i7 ?9 J& U: n
nPoint += 40;
, T+ o( ?/ M Y& T1 B" g1 G+ v else if( m_nJob == JOB_ACROBAT )
# p8 F- B8 G) `! `5 [ nPoint += 50;# k% J0 k) \8 |
else if( m_nJob == JOB_ASSIST )
, K& F( y. D) {3 I nPoint += 60;
# H+ `/ H+ L: L6 y; Z& J else if( m_nJob == JOB_MAGICIAN )9 F) {2 X& [% H$ `9 {6 k
nPoint += 90;
u& O# b+ M2 {3 A- H9 E else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
w/ i! h% W# p2 l) R r* | nPoint += 120;
( R. K" J3 f% F+ L! j# }9 D, J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" @5 Y* A) a& B; Z
nPoint += 150;2 u- V- G2 k, r% R
else if( m_nJob == JOB_RINGMASTER )
$ c! C3 \4 ^8 O$ L+ t nPoint += 160;
3 D0 y; F3 v' n4 B3 R( H3 }- g; ` else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 `4 m. Y2 l! c( L) G' x
nPoint += 180;4 c4 ^/ @2 p) r" f( g
else if( m_nJob == JOB_ELEMENTOR )5 {6 a& K! i6 {0 m/ ~
nPoint += 390;
& {) E# j% B) o& l" k- v1 _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( P3 X$ p- Y z" X. w nPoint += 120;
( h" B$ W) y; J: n! B6 m: O else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 G: d/ U1 h# F, k
nPoint += 150;
. y8 T! J( O! E. Q/ P4 h5 x. j else if( nJob == JOB_FLORIST_HERO )+ w% b7 Z* F4 u5 y h
nPoint += 160;
& [+ N$ S3 Q. P' j" O else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 Q2 t' r, l: E, R; T! x: @8 | nPoint += 180;, b6 k( B' V3 |' b) a1 i
else if( nJob == JOB_ELEMENTORLORD_HERO )' @3 G; ^! j1 G/ X4 s: Y4 M
nPoint += 390;
$ j9 D+ I! v( Z
) y- V6 L8 T+ S. r8 D9 ~ AddSkillPoint( nPoint );" P H( c3 [1 H/ S4 Q9 F
m_nLevel = nLevel;
9 Y# F9 ?; a! V) ^
( {- H2 V' |' E# n& l SetJobLevel( nLevel, nJob );: ^( c4 Z( x* U6 t% G# t7 E
m_nDeathLevel = nLevel;- O3 N6 s$ R; j+ _0 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 F! }: G& |3 ]6 O1 e$ g' n8 c0 s0 c if(IsMaster())
; p& L1 C o. |9 U3 q {
0 }8 O6 C+ K4 n int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 [' V* P% {; P" M+ c- P- z
if( nLevel > 59 && nLevel < 72 )
* A1 L& D# C) |8 A' B4 ` dwTmpSkLevel = 1;& G# `2 S) o" j1 s; t- Q- W& u
else if( nLevel > 71 && nLevel < 84 )8 A" r# B1 `- a, `- {& D
dwTmpSkLevel = 2;
, r4 n% j: ~! j7 E" L$ {. Z7 L6 K8 Z) L else if( nLevel > 83 && nLevel < 96 )9 E* @4 ~$ p' y+ e$ L
dwTmpSkLevel = 3;# K8 y! c: U2 G2 b! A
else if( nLevel > 95 && nLevel < 108 )6 a/ @9 _8 y3 v) P- R: b
dwTmpSkLevel = 4;1 x% V( R9 F. h; Q
else if( nLevel > 107 && nLevel < 120 )7 ]8 E- @. {4 [, p/ z& e* y
dwTmpSkLevel = 5;
8 w8 C( \. c* F! x- B/ G. y' L for( int i = 0; i < MAX_SKILL_JOB; i++ ) * m. j j) u3 Z4 ?) G
{ 3 x. B7 V9 }- L" u) S9 s4 g$ l7 x' {
LPSKILL lpSkill = &(m_aJobSkill);" _! L1 u$ t( j5 w' B, f
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ } C! U2 N4 D8 R2 r" j
{
' N |+ H; V8 k% Y% } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 i8 I: y2 q! ?+ }
if( pSkillProp == NULL )
; ]+ H1 f) Q4 q# z. o continue;
- [6 p7 V* ~( u. ]' N) s- ^- L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 _( a' z% P" Y) w4 Q" G
continue;
n1 R5 t% i1 u( Z. w- U lpSkill->dwLevel = dwTmpSkLevel;. S2 C8 ?4 v- G' `* I* L9 h. F
}0 f( k: H b; b2 \
}- ~- z+ \$ J' L
}
! B: ], _: Z: b else if(IsHero())6 I7 L( j! l. A$ H2 r
{
. q7 ^9 d# v8 u9 t" Z6 d. E for( int i = 0; i < MAX_SKILL_JOB; i++ )
( ?6 t/ G$ G! N+ e0 Q; l { / I4 |& h6 ]* M# Y
LPSKILL lpSkill = &(m_aJobSkill);& ^" c: {0 R6 Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 Q) Y7 `$ N+ v$ z+ Y1 m {. q- L" `5 B, |0 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) K9 }, Q' f5 ~, O! P if( pSkillProp == NULL )
+ {8 C" ]* P9 y/ I2 C" v8 _) p continue;
1 C3 \6 |! T, K# a+ [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 ]6 y7 q# W3 _/ w; F0 [ continue;$ A- y9 G) y% f# ^+ B
lpSkill->dwLevel = 5;
+ T6 c" b4 F z }
4 O7 H6 P( Z1 }- G1 c }
8 a7 Q) R9 T+ b) a }
! r# W6 j* ]- @+ W% _ else if(IsLegendHero())
/ g; S& Y4 w: T2 s8 ]- s {: W* d0 C8 u( d2 n* `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( q! y/ E* D3 l* c
{ 9 [! D+ w& ^* Q/ i: Q! D
LPSKILL lpSkill = &(m_aJobSkill);7 r. v9 V. Y8 j. A5 R5 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 B: V/ P- ` Z( X& c8 e {' d& w' p2 `4 Q/ m! X2 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 X) [1 k% t1 b3 J9 x2 M7 J/ m if( pSkillProp == NULL )3 M; [2 p, f5 [/ A( y2 V1 X) U S
continue;
3 Q* s+ s% U: E5 m' O$ z3 t$ Z! | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 Z/ t) G) X4 w6 }2 r continue;4 R& Q- N0 Y' _) Y; [. B1 \
lpSkill->dwLevel = 5;9 B t8 D. d2 I- S+ V: U
}
! R2 h+ L' {4 q. O' o' | }5 J: b$ g1 T" G' O; E) b; |" N8 U/ F
}
2 x" {8 a* @ L. i9 {' y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, S) C; y' r( m) C- [! _% h if( bGamma )
; Z" f% w- ^5 [* m- ]+ Y {
9 ?+ L: U1 c( \. B6 W m_nExp1 = 0;
6 W# c4 f% J: N6 V* ^ }' t: P4 s2 _" J7 S4 U9 W7 G
' b3 |% E8 i" W) Z: b ( (CUser*)this )->AddSetChangeJob( nJob );
$ I9 ?! g$ _9 U; d$ K3 c1 u5 @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! A: k6 C4 m" r% u, Q. v% D5 A$ ~, K* E! a
; K6 `9 c5 ?" A$ U! b0 f
#if __VER >= 11 // __SYS_PLAYER_DATA
' |7 z8 S$ g1 {7 m# u) W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- O$ u$ f/ ^2 ?2 O$ N/ [#else // __SYS_PLAYER_DATA8 O; i5 b( L U8 R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* {( Y. k, y1 p" g g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, n" j4 Q& D5 U# k9 t8 h9 w
if( m_idGuild != 0 )
; o$ o8 t7 G9 ~- |, U/ ^9 |9 \ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& o8 r+ n5 y. g: A. s: K
#endif // __SYS_PLAYER_DATA5 v, ?( X; W9 N% M! H
SetHitPoint( GetMaxHitPoint() );& ]" G" U' Q* e: D# H$ M+ z' l, w' x
SetManaPoint( GetMaxManaPoint() );, N& H' f/ A# q8 k
SetFatiguePoint( GetMaxFatiguePoint() );2 x% r9 \! ?4 z2 R/ D
if( nJob >= 1 && nJob <= 4 )
8 |/ M$ G8 p8 i/ B b3 d( a {$ I% P$ d- {+ ]* B* m" W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; _* I8 |3 `1 _ m_nRemainGP = 28;( @6 S+ a! C! l8 h
}
, N m9 @ Y# R) y1 G* Q& {* f9 f$ r if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 f. I7 g8 r* @! p
{
3 c( N$ ^( u0 ~) ?4 G" a! U1 M m_nRemainGP = 118;5 `3 S! b3 [ \ E; H$ i
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: x5 I% O2 a! d( v) V m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 T$ {% O. Y; y }
# s& Q# M3 l/ g; w1 a5 o if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; X# Y( E6 Y2 A0 N: P {3 K3 E& J0 N% D* p1 ^ P! Q- N
CItemElem itemelem;
* C( e3 [: r# R: k) E& H itemelem.m_nItemNum = 1;: D0 m4 M: P. i+ ]
itemelem.m_bCharged = TRUE;3 c( Y2 I1 J1 z% ~ `
BYTE nID;' j8 Y0 E3 f! ~
+ _9 ]; R3 T& E! k% B9 ~$ Y4 y: {
if( nJob == JOB_MENTALIST_HERO )6 z* [6 L! K! W( y$ E2 ~
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, f( Q) ^* F' O4 x' \5 B- c
if( nJob == JOB_FORCEMASTER_HERO )4 Z: b0 \' Z9 P' f7 T% p, U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) M a2 F8 Q/ k+ A( B1 a# N
& {/ e1 z, _6 j ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' t6 ?2 S7 R3 K u- \$ f5 ? }7 b: d) q9 I; y# A& Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& }. ~4 U& l% P2 d: U
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# Z1 u4 |% e# _2 Z s" N2 P ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );$ T( ^7 c/ b. C) i: S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ E5 I7 l6 A' d
( (CUser*)this )->AddTaskBar();*/
+ S! e k8 f8 ^% y- O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ ]' J9 V" P& f; z: \2 ?' h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 M$ j& _) s# Z% e) r8 V. C8 r$ ` ((CUser*)this)->CheckHonorStat();
0 Z! Z- s) ~4 t. i* G8 I& B ((CUser*)this)->AddHonorListAck();/ j0 m/ L2 i/ D. f& `. B
g_UserMng.AddHonorTitleChange( this, m_nHonor);: Z" V @8 x/ X* v7 ?
#endif // __HONORABLE_TITLE // ′Tà?
2 H. _* ]: o: z3 `" T' z, l }; ?, m4 i; R: D" z9 e; e
#endif // __WORLDSERVER. N( y$ Z$ [1 Q) v
}
4 ~3 o9 O: u- a D( w+ D) `2 R8 O% s: q
然后你进入functextcmd.cpp并添加以下0 \6 ^' S# a8 w! N! G, H2 J& g
! s- G& v7 ]8 P
代码:& d; [5 V+ H- C0 X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- t$ V: x7 t" V7 F! i8 j; ~5 n- x
下面插入
4 h1 F' t+ J* X5 wON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 }# ^3 W9 Z" f! O+ b
# n7 g. X/ X" x( D h) m然后你去; c# e. G1 a1 M l: ?/ u
+ \0 u/ Y! B- A/ o6 X2 @- v
代码:/ W8 L. n5 k4 w) z' ]9 S V; L
代码% o9 b/ U1 h$ {% K; ?9 w% W0 a
BOOL TextCmd_ClearPropose( CScanner & s )
; s! e$ [$ {: A) w5 O1 G5 g{4 d9 u* {7 t$ u% D: \8 i
#ifdef __WORLDSERVER
) }4 P! B9 t8 ^5 E2 o* k( p) M/ i! j) [/ M- C CUser* pUser = (CUser*)s.dwValue;* H( C& H8 R. E2 r# x3 p
g_dpDBClient.SendClearPropose();5 d |) ]4 l- z/ l6 p* B
#endif // __WORLDSERVER
$ M1 ^2 f( U0 }9 y# W return TRUE;
- a* Y' c4 h8 `0 r ]: Q" V8 p}
* n$ |) @- V- N9 A+ N! ?下面插入5 M! H* }5 W3 H4 n* y
BOOL TextCmd_rebirth( CScanner& scanner )
& ~1 e. B, L: k2 A) }) E0 Y{1 B( E, s1 {, x, d
#ifdef __WORLDSERVER
: l: d4 R. R6 u; k6 a; {6 K2 ICUser *pUser;1 z, I+ m( t# U/ i& N
pUser = (CUser*)scanner.dwValue;) D, Z* P) W# E) Y- w6 J6 `3 x# R; y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! c+ T+ r1 \: I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 B, r+ C% ?9 E8 j! p+ F
else) I% |8 V& D8 p7 i: `$ i
pUser->AddText("你还未达到重生条件!");: [$ ^# c8 S U7 u, c
#endif
' f# \& A& Y; K$ t0 t' X. {return TRUE;
- R* b) u( _& \; i( b}
T4 R q6 b8 K+ d% s$ U, ?% S( X6 w0 z' p" i" Y
3 X9 d- M, E+ `0 c
2 b( |# X: c5 ^/ W7 a5 X( F
4 } C9 u5 U0 x; r; G0 d |
|