|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 C: g* @0 l# A; j K/ w* n/ j6 V& { i+ I: K! p' m6 c
Mover.h) |* `1 ] z7 J" u
代码:
+ R% r( q! ~# w. h. ?9 B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 O8 x7 y. x6 s' X) t
, }6 X3 J' F, H5 X5 _0 `- w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 y: b+ t6 [) v5 |$ \
5 V+ H: u: x) b) c
然后你去mover.cpp添加
$ F% F. z3 s5 O3 Z/ P3 Y% J6 `
; o7 b3 A* S3 @代码:
: P- i: R! | s5 w- D/ {4 K5 Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% h; G; ?9 r1 n: ?# I: k# i
{
/ p ~/ y2 m2 x4 _#ifdef __WORLDSERVER, E. ^% e$ ^5 W) V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. Y$ d1 k) k2 y% g( t( `4 x4 w
MoverProp* pProp = GetProp();+ t# @6 o& p) L5 ^
if( pProp )( F9 A8 A9 a# a; C! R
{
0 d% s5 M. N* B5 E1 h if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 |! U8 A7 W; ?, [# }4 X2 u M. J3 y {
5 r6 M2 y1 G0 e7 X! f; }& D! ~ AddChangeJob( nJob );9 z. \# M# b9 |
}else{ ~2 [1 E" l$ d2 T0 i5 R0 R4 z
return;
" n1 Z$ K2 }" o. k }
/ R( y; G7 i4 R; ?& `; c int nPoint = 0;
( J! g3 M0 D; T; u6 r: a if( m_nJob == JOB_MERCENARY )
* v: V8 p3 @2 u% A0 Q! |! y c nPoint += 40;
. n8 G* N1 z# U* @ else if( m_nJob == JOB_ACROBAT )
; _$ Z; r7 M% J8 H; V: D* ? nPoint += 50;
3 \# N9 {" E% V# O$ B( S X$ M else if( m_nJob == JOB_ASSIST )
! s* B9 k! X8 c) F' L' X1 D, A nPoint += 60;$ C0 }- a+ ]: A3 f
else if( m_nJob == JOB_MAGICIAN )
! a2 Q( b% B( ]4 x5 o+ z nPoint += 90;
! X7 Y0 Q1 |# G( K: B2 k/ e else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 g2 b5 T7 E$ }: G' V/ f
nPoint += 120;* ~% O! B( S3 V+ D; W
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 }) o) t: J* I0 t1 {4 i8 {
nPoint += 150;
" V: J8 M# k2 x# z/ [' _6 I else if( m_nJob == JOB_RINGMASTER )
4 P6 ]: h: z( _; [* b nPoint += 160;3 V: O. t/ u+ K6 Y( A x; D6 ]
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 U; s t `% O( Z! B nPoint += 180;# |0 J, L) b# {, G/ X5 l. D0 @
else if( m_nJob == JOB_ELEMENTOR )( q4 h/ p: E9 p
nPoint += 390; w5 u8 c0 P" B9 U. T: y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 {6 P# k% Q* Q) W0 @' d
nPoint += 120;9 s* n/ ~1 C, o" Z% K" ]: \
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 z* N/ ^3 u% r( x' j nPoint += 150;# @) u1 b2 g, Z6 T F# W1 Z
else if( nJob == JOB_FLORIST_HERO )9 a0 i& c$ ^% ?( A+ }
nPoint += 160;
" z6 k) ]! c* e' t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" ^& O3 s) z9 G& Q7 ^0 t nPoint += 180;
% ]! p8 B! L$ Z7 Z1 R# |7 @ else if( nJob == JOB_ELEMENTORLORD_HERO )# h& S9 n% }( g* n X
nPoint += 390;
0 q B8 @6 q- r; S6 E+ G' h; ]- K2 Y$ K a R
AddSkillPoint( nPoint );
. Z% @# E; I" b# a/ W# N8 C m_nLevel = nLevel;6 e4 l* O- }3 Y. p7 ~5 f _# @8 t4 k0 N b
4 Y4 f( a7 J; ^ SetJobLevel( nLevel, nJob );
. \" y/ G1 d) b m_nDeathLevel = nLevel;
( i8 e: W$ E" @4 z' e; Z#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% \+ H* [' i( d: M: u if(IsMaster()), \9 o+ E1 w/ a( m( d, v
{
8 ?7 T# |6 V3 `( e3 H5 Z1 J int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% w8 s7 e, U0 ]- X9 a9 }3 z
if( nLevel > 59 && nLevel < 72 )4 s$ X0 T; D# v: d4 u$ C
dwTmpSkLevel = 1;2 S0 B9 r' m0 w# o
else if( nLevel > 71 && nLevel < 84 )( a* b: W5 b0 e6 R" `8 J! ?
dwTmpSkLevel = 2;
% ]4 b& d8 T$ o2 G else if( nLevel > 83 && nLevel < 96 )
8 i9 O( L9 L$ q) A0 v9 m( i; J; ] dwTmpSkLevel = 3;; X6 @! |: _( u0 G( e7 h) F* X
else if( nLevel > 95 && nLevel < 108 )
$ c" z/ J& V* q$ r/ y, ^ W dwTmpSkLevel = 4;
6 T2 A3 |. R0 _1 g) M( ]/ k else if( nLevel > 107 && nLevel < 120 )1 K. `# Q3 Z# c j; ?' s; C4 ~
dwTmpSkLevel = 5; ^8 r# A% P S+ R9 s! i6 g I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 O$ K3 h- ?) ]& A( e8 S& i" K- p {
4 Y5 K' _/ G9 ]0 j9 F$ G8 m8 P LPSKILL lpSkill = &(m_aJobSkill);
. H4 @3 [! y+ \7 m2 l if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 i- {* k* _& M. @6 Q' T {
5 c) q6 S" d- V" L# E; ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 I. v6 C6 N; F" Q9 d5 @! y if( pSkillProp == NULL )& z0 W3 l( T/ W
continue;( T- b& `# K! R3 a- N. ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! s* m: d& ^8 Z* o2 w continue;
0 H* ?: Y/ D9 ]4 v lpSkill->dwLevel = dwTmpSkLevel;3 }) V" `0 S: N0 L6 S, j
}1 Z2 G* c# o5 t
}
, g* o1 L0 c% ]! E8 s8 D }2 N* k: p8 o$ F+ P- B! H, t3 t* G
else if(IsHero())
, p# x' M- e5 x$ C& Y/ l {
: ~, m' |/ P" Q: |( ^& F$ }( n for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 p" v$ C4 i1 ~9 q
{ 8 O! ~8 f2 Z; v9 x8 Z! z( {: `' U6 d
LPSKILL lpSkill = &(m_aJobSkill);; X( I9 \% V7 i/ {5 a1 q+ b
if( lpSkill && lpSkill->dwSkill != NULL_ID )# `" ~. _# `7 Y9 i2 r, U* h
{
/ G7 q5 o. k1 H3 s( a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" e$ ?! [: d0 ?" s if( pSkillProp == NULL )
- V R# P: a' T1 s2 R1 N# q continue;
! \- P3 \ h* x" {. O& Z% a7 J! a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( e: x5 d1 g, G; e& r+ r7 C continue;
' |3 D1 J" f8 G, H3 I& H lpSkill->dwLevel = 5;
1 m1 X7 a. L/ ]- {8 p* d, x }7 p; `7 C& M5 t3 D4 V
}
6 j) w R) y6 `, A }
2 g: e2 V+ W& D0 \5 r# N else if(IsLegendHero())
. S2 o6 e7 c, Y {
' K6 k x6 M$ s$ f0 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 i9 @" P6 a) R { , l8 n9 N7 [+ R( @ R
LPSKILL lpSkill = &(m_aJobSkill);
, z: h3 r; M) E' h4 N! L% e if( lpSkill && lpSkill->dwSkill != NULL_ID )! x; m% S( Z; m, s- \% E
{
" q2 a# G1 }* M: _" P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , K' S O) Z8 `8 o7 y* o
if( pSkillProp == NULL )2 A' F& j$ U6 |5 m
continue;+ C o t* |% i7 a1 o Z* d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" b% Y2 B0 {0 V; c7 |% J continue;
B4 V' D- i! m$ w$ g7 q lpSkill->dwLevel = 5;
7 ~" G9 g% }: \1 P" \9 c8 h/ U$ Y } x6 K! D! w6 A
}
v: k" m+ x, X/ } }
. D% w m4 h( l% m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" E& y3 v% J) j I1 l! r if( bGamma )
% a2 ^3 \9 q9 B, G2 a8 c/ c {+ g* c0 i3 Z7 [
m_nExp1 = 0;! O7 k, C/ e# O
}5 U( N, Z/ q* Q6 R7 I
8 g$ Z" e( L9 f5 K" r ( (CUser*)this )->AddSetChangeJob( nJob );
/ i# z7 w1 R0 ~& w/ D* R0 A g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& Z* i f, I# p; U- ?7 a: a- a# L, Y Y7 |- h, d' h7 G
4 B6 k: a5 w& b4 ^ h/ O8 D, _
#if __VER >= 11 // __SYS_PLAYER_DATA
4 `: Y7 h2 s- ?- w( U( J4 J g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 C( p4 a& K) \' }/ l
#else // __SYS_PLAYER_DATA
o6 f- R+ T' J5 B. w+ ` g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! _2 f# ^0 Z" w+ B8 R7 u) D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. `, L9 ^: i' {* n( t
if( m_idGuild != 0 )
! K7 G+ n& i2 j g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% J: A5 E1 O& R: Z' U9 V
#endif // __SYS_PLAYER_DATA# X0 i* l( N! Z6 k/ H- @! j( l
SetHitPoint( GetMaxHitPoint() );7 l2 j: z v4 V* l
SetManaPoint( GetMaxManaPoint() );: S9 b3 P& a; x: |
SetFatiguePoint( GetMaxFatiguePoint() );
" N( C# M; {% W2 v if( nJob >= 1 && nJob <= 4 )
2 |3 n+ H' x2 z! q' j {% S6 Y0 u6 B4 M$ ^' s9 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 t# n0 R3 B+ L* P% i+ p0 u8 e
m_nRemainGP = 28;9 r8 J! |* D. Y" r9 Q
}1 ~' r5 v- b+ J+ j1 O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 D0 A0 L5 {! A' b2 M8 P# ^3 n
{
1 y: h" }7 {3 w4 h: l! b" L" d m_nRemainGP = 118;
2 i9 s: d# V+ U3 Y. } //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: f% k" p. f+ D5 \+ {, T7 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 r- Y' O9 F# d9 c; R# j: ^
}
: \3 j n M6 Y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: I q2 G5 S/ W4 @& p {
6 F' R, L' G) k CItemElem itemelem;. x& q( g; _0 \* k* v5 Z% D
itemelem.m_nItemNum = 1;
$ C; |) q8 u8 _' O) e4 r itemelem.m_bCharged = TRUE;
: b1 r9 B" [' \ a BYTE nID;
; \! t [* O Z) C9 o/ t- y* k, b% E, T
if( nJob == JOB_MENTALIST_HERO )& Y* }0 h( K" M1 H# D
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* @6 [7 n8 W/ a* I" G8 K( q3 V& t if( nJob == JOB_FORCEMASTER_HERO )
0 `* ~0 _% }( p$ _ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* ?% p# B. b/ S- e3 O( }3 L2 ~% Z$ |$ F
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- l4 H N' i2 _* }+ ?# Y: k }9 `7 J6 _' n: L$ N, e/ E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" {4 f0 H- [# N& W i0 V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' G0 X0 |: n+ J: w" O! E# g7 Z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ x1 X8 Z6 i. ~, O1 i# {; `$ I
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 e# [6 \8 W; Y8 q+ |
( (CUser*)this )->AddTaskBar();*/
* H0 ^& Y4 ?/ y$ _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 C0 V' Z/ P/ S. k: T#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 ]8 b" O. Y2 w
((CUser*)this)->CheckHonorStat();6 y4 B6 Y/ R9 ^( g2 F
((CUser*)this)->AddHonorListAck();# _3 e, I0 O9 u7 N$ @
g_UserMng.AddHonorTitleChange( this, m_nHonor);* g# F/ k1 S2 V9 r6 Q! l# r
#endif // __HONORABLE_TITLE // ′Tà?& u% `' `- S1 R) V4 \, X! g$ [
}
+ M: L2 q! C+ X) N( ^#endif // __WORLDSERVER, Z- K' e" \% P( |
} $ W: F r7 s6 c8 v8 i& A9 c4 m
3 z1 ^' Y, \& {$ H然后你进入functextcmd.cpp并添加以下* R+ k1 Y1 P& F( {0 ^
: X; c0 N$ k, J# P
代码:% l" U9 B5 P- \- [% S* `7 I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ t9 Y' V2 c: {4 Q |4 Y' w3 @
下面插入- r0 C! B1 N: h) ^) v8 Q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : o# g4 X1 X9 m( v
" V8 A4 I) i3 {' O/ A2 R然后你去. G4 v$ G8 Z S8 H5 l h. T
' Q" b' m3 u; ?- _代码:- z6 M) ~( S: h: U# t) D
代码
P5 E- D5 U2 v( TBOOL TextCmd_ClearPropose( CScanner & s )
" V& m/ I# V& Q1 I6 D2 q, y, @: d{# h9 j* I0 P% z" X6 O' R+ x, k$ P
#ifdef __WORLDSERVER" n' Q/ r5 w: U" h: H& i8 w M
CUser* pUser = (CUser*)s.dwValue;
; f9 p. c1 ^& I0 B: Z; s g_dpDBClient.SendClearPropose();
2 F+ A, G: H1 N9 J( d! x5 n#endif // __WORLDSERVER
# v1 w' j9 q5 i% ]& B% s return TRUE;# f$ B6 l7 P" Q
}
- m! @4 E1 h* t% @下面插入
* R# X$ }* p. w. f' A# H1 }BOOL TextCmd_rebirth( CScanner& scanner )
, l+ m# X8 _: N8 } O{0 n) X2 r9 q2 _; b
#ifdef __WORLDSERVER" L. Z3 K* {8 C8 K4 a5 r$ ?
CUser *pUser;
W7 i( G) |1 |. c6 h5 F9 ?% ApUser = (CUser*)scanner.dwValue;# k; \7 ~* b( M/ v5 k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& k. s4 K: l. q$ A% }8 J' ?: }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ b V9 o I; q [5 `0 W( telse {- P; t7 g$ n1 `
pUser->AddText("你还未达到重生条件!");
o: r+ P! X+ A5 D#endif1 k# m8 W" y+ |6 I9 A8 L2 z2 T
return TRUE;
2 C, v! E. S1 d) q0 ^+ a}
) b+ _8 i, E. F' k, i0 E+ N& }5 ^, I+ ?- t% a* M1 g
( g* Y4 L4 }; o; A/ o+ O5 g* v
' }* r+ Y9 \7 f, Q* f+ H7 U C7 F" A0 H1 W b# Y* {
|
|