|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- w1 \$ U# y; e
# `: T) V* j* u# E2 hMover.h
+ ^+ K( c# L7 a8 f1 g, s代码:- w( H9 z- B0 L2 z' p
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: B; U& A* `- _1 d( G
3 _) j- K" Y% T8 \0 m0 y' T
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 [; T" [/ ^; v* I
0 c/ p% F" i7 c# }) L# x0 s然后你去mover.cpp添加
. V' ]. W# i7 f3 E" P( F
9 r# O' j* m7 i8 n# Z5 d* h' j代码:: l/ y# _* j B1 c: v- U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( ^) }% k7 `0 S5 F' ?9 A3 K; S$ N
{
! M6 y# S' l, u* c2 a( L#ifdef __WORLDSERVER) i: k: B3 P0 A, i, p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ ?3 f0 |& d- e- Q MoverProp* pProp = GetProp();- P# y1 J5 l0 c# `* N8 l
if( pProp )# R( M3 B5 f2 Q5 N
{5 h4 [; Q( m/ x2 q0 n# ^4 C: o
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* `6 h3 ]* F/ ^/ Y
{$ O8 }4 i! {/ g& f
AddChangeJob( nJob );/ C, b y6 q- _9 `
}else{7 }7 o( z g3 x& x8 b9 s9 B
return;7 B B# ~" l& P+ t) l4 l
}$ z+ P5 Y( f9 _6 r$ T
int nPoint = 0;7 h) t( S" }; q' \% S0 d
if( m_nJob == JOB_MERCENARY )) I) c9 r* X/ o6 p' g8 ^. F# W8 F& a
nPoint += 40; e+ Z7 d b5 C( T% w" N
else if( m_nJob == JOB_ACROBAT )' o$ p, k2 F) i! i! s
nPoint += 50;" B7 }% B' U1 h7 v* {/ h% w4 d! I6 [
else if( m_nJob == JOB_ASSIST )
! ]5 l# r) l i' S, p. d nPoint += 60;
$ w; p& F1 W& ?# V. O0 G. Y% b else if( m_nJob == JOB_MAGICIAN )+ e' K' ]5 K; d8 G$ k0 ~$ O
nPoint += 90;) u" m; k d- k' s: J# {
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ X/ w* g/ ~6 l$ e3 s nPoint += 120;
D v2 ` P$ Y2 c8 z! S) m1 } else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 q M$ B; Z0 a
nPoint += 150;2 T H x0 A% H% {% e* R/ X$ x6 q: x
else if( m_nJob == JOB_RINGMASTER )8 e: }( [1 j0 ^. {
nPoint += 160;# ^7 I/ B: ~* q& y& T( `9 `5 x
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 ? O/ k M/ y
nPoint += 180;
: w" G9 U( Z# x- a else if( m_nJob == JOB_ELEMENTOR )/ J" C0 H* p0 u3 y/ g9 P
nPoint += 390;- S0 X7 E9 g/ T# J3 g5 K+ [
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 y1 S# p$ G1 G2 m0 g& n9 \ nPoint += 120;
5 C2 X2 J0 m1 h( u: W4 t& y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) [1 V" c9 ^' g' }* G+ W9 z
nPoint += 150;* ~6 X- L% m0 C' S
else if( nJob == JOB_FLORIST_HERO )4 D, [( j1 [- D) C
nPoint += 160;
; z6 \" F2 t1 | else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 n9 k6 t/ G0 n; n9 c* u8 O
nPoint += 180;! K/ P) j6 D! X2 v0 P0 K Y
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 P; b( ?3 N, d+ x nPoint += 390;
# j3 K; u& `. w/ ~
; N. {" A9 X! h2 z" r AddSkillPoint( nPoint );
4 b9 i s1 C- q) t0 T1 |! V m_nLevel = nLevel;
+ p. X( `% G. a7 U& F" w- b2 Q* d, B8 v# |7 D+ u, O9 V6 `. t
SetJobLevel( nLevel, nJob );
: t* r8 P2 q' a) g. ^# r D ~ m_nDeathLevel = nLevel;
5 j+ e5 Y; V- O: _8 k#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ M6 _ R5 b, E! j+ U; ^5 j0 y if(IsMaster())' s0 l( n/ O8 f7 S3 K/ i- L y$ @
{
' Z8 ]& f4 {9 z/ m int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
h( T4 z, L8 ~1 @4 x5 E if( nLevel > 59 && nLevel < 72 )# a Y+ W" j# E6 D% ~2 ^
dwTmpSkLevel = 1;- C4 p0 U$ ~- d. R
else if( nLevel > 71 && nLevel < 84 )
1 b S5 ~) w; @ J2 o dwTmpSkLevel = 2;1 @ t2 j6 b# W
else if( nLevel > 83 && nLevel < 96 ), S. Z/ h' h- h5 h% K }$ W+ ?
dwTmpSkLevel = 3;
2 ^) s# d: c+ {: j8 p2 t" K9 Y else if( nLevel > 95 && nLevel < 108 )
- i3 e2 {" I* ?: z' u& r' a8 ? dwTmpSkLevel = 4;' ~4 @' M4 a8 H
else if( nLevel > 107 && nLevel < 120 )
( S& y. M8 [9 J. D/ y8 i' ]0 C dwTmpSkLevel = 5;8 l+ I; j/ Z) v3 X) Z g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
[, g3 T" b7 g$ W' ?% r o' \ { , m! o) Y% C/ r- j" s/ l2 P6 L
LPSKILL lpSkill = &(m_aJobSkill);
/ C$ z& G7 E* u. v g if( lpSkill && lpSkill->dwSkill != NULL_ID )/ }, ~2 R" i( ^6 b, j
{
# l) `) X1 B: c5 w( ~$ ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - N" F8 a6 b5 X; M
if( pSkillProp == NULL )7 b9 L. C' `1 m/ Z/ W; [+ u; r; o
continue;
" w/ G$ P/ J: D& \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* Y6 U1 L+ Y; j0 P6 g
continue;
5 P. C, V' p; k, k3 R# P7 F) Z lpSkill->dwLevel = dwTmpSkLevel;, Y: Q& c2 r* N% V2 l+ n
}
* q. P# c$ L- O' j8 A$ @ }
* ~, C" j: T# z$ d* ]: H% i }
6 Z) a% X$ n7 y; k$ z else if(IsHero())
: X8 j) W5 v# D' K {
! n7 ] h$ @2 g4 h for( int i = 0; i < MAX_SKILL_JOB; i++ ) - i n% F K! d# _3 [, Z
{ / ?* m2 Y# \3 n* `6 B- j; C. a' u
LPSKILL lpSkill = &(m_aJobSkill);9 x, b9 L1 R$ r7 E6 K5 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 w+ Q: V& c( x+ w' J
{
7 g6 Q- ^+ t3 Y! ^5 C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 Z6 d8 K# p& D. h9 J" E, Y) u; b
if( pSkillProp == NULL )
3 X7 _; l8 ], x8 _ continue;
5 ]( H+ T* f' ?. k% H# Q! j, { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ {) B* i& C) P continue;: n7 H1 h8 C; A% R* V
lpSkill->dwLevel = 5;3 i- j, [ x& c1 V% J
} P* a5 m |+ N4 ^, i: ~7 `! [
}
4 D% r. \8 L2 s }
7 N2 T4 `4 C% ~) `# D" H- }( o else if(IsLegendHero())" P9 Y3 u7 A- p* ]
{
7 j. k) ^7 s+ K8 V. y9 t for( int i = 0; i < MAX_SKILL_JOB; i++ ) # G3 ~! H: k2 a+ J0 H8 x
{ + v/ q, F7 h S; w
LPSKILL lpSkill = &(m_aJobSkill);
. W- X$ r1 p6 w ]% b. Q1 t7 Y if( lpSkill && lpSkill->dwSkill != NULL_ID )1 q: S4 j5 q }" s
{; `( U& ^7 o/ m9 `) M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ c# O: Y' m; E( T3 H if( pSkillProp == NULL )2 J, ~5 ~) k4 D( s& N8 Q
continue;- `( A9 E( f# i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 A4 U/ d P1 T' b2 n4 f continue;
) d! c+ Y+ V' j lpSkill->dwLevel = 5;4 q; ~% J8 m. i1 D( Q. F
}9 _1 `% v/ C1 F7 `% A
}9 V- u. K% j. U" v, h+ ?
}
: J Z; C+ ]* n2 O& p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* M) ?0 E% l: o: F1 P2 R
if( bGamma )) M' A: [" m/ r" {7 E9 x
{2 b" ^: H0 |; K2 i% }/ W0 y
m_nExp1 = 0;
" i7 X3 T( Y2 u& _ @ }. ]8 M/ `, Y6 K* u$ x0 F* h9 M& \5 {
/ u' ^2 b: U# ^- N* X2 N ( (CUser*)this )->AddSetChangeJob( nJob );
& A! x) E) F! j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 q8 r. r' t( }9 z) s
* n' \# u6 H% N( h8 E2 w- L& m
7 g4 Y8 ~' g8 Y& Z/ D/ E
#if __VER >= 11 // __SYS_PLAYER_DATA
9 M, J- c2 s8 n! E5 j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! @9 p0 o. G; x! b* I O( c9 }
#else // __SYS_PLAYER_DATA$ e- F2 }2 l3 Y* ]- C9 r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 l! j# }4 l$ v! _2 q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 s+ E3 P: t5 Q" ^ l
if( m_idGuild != 0 )
/ ~+ b8 M: v L* c$ q$ Z7 E) P g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( y* |+ @) y3 I$ k#endif // __SYS_PLAYER_DATA/ X' h% W1 O8 n7 S; w5 \7 K
SetHitPoint( GetMaxHitPoint() );
% V6 i( [3 w# } SetManaPoint( GetMaxManaPoint() );
) ?3 K4 l, z0 t. h! W5 Y7 Y5 Q% R SetFatiguePoint( GetMaxFatiguePoint() );! ?8 B: t- U1 ~9 |7 `& l T
if( nJob >= 1 && nJob <= 4 )
9 I3 n+ q/ W+ m# U {6 g, i* j5 R. j- l8 c( w
m_nStr = m_nSta = m_nDex = m_nInt = 15;, r) @0 w8 ?- J8 D' d9 v k
m_nRemainGP = 28;
2 L" v0 P- t$ b9 j. z }
1 s/ A8 c1 U$ ~% L/ } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# }8 ~) j% D0 E" s7 n8 ~1 } {* G' E& Z7 m6 A
m_nRemainGP = 118;
, \9 x# X9 Y3 i! v! f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( C, S9 w% Y% h/ g; y6 j8 ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;. M# i7 C9 W/ i7 i. t' E
}; |3 A: K' U2 E/ k! v1 ]5 t, Y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 p5 s: q& O7 {. ]" F+ Q
{0 g8 I8 ?3 d; \; @
CItemElem itemelem;
% m# d6 y2 C8 o itemelem.m_nItemNum = 1;
" A8 V: R- K' B2 S itemelem.m_bCharged = TRUE;, e3 v9 c3 a( G* c: [
BYTE nID;
4 R$ n% u7 X; r L* c' l
- R2 i# Y% }8 S4 Q4 R9 z* p! M! g& i if( nJob == JOB_MENTALIST_HERO )* X P1 J: b8 r6 u( g1 U
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) A2 Y$ v$ ~& K8 d' Y" H# n
if( nJob == JOB_FORCEMASTER_HERO )
: q' _' x: p- q) B2 a% s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ q" P$ c2 w! z3 H
. A3 @- }0 }; [' z, j ( ( CUser*)this)->CreateItem( &itemelem, &nID );" B. p5 t6 ^1 L* I& f' n! j
}
6 A( Z# s7 B7 r g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: _9 ?, Q# T2 _% d
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 ]! h( ~* k$ W% j; v$ E( s- \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 @& U* H1 C; H" O8 J1 t
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* O7 i+ a) u% ^" B; b' f ( (CUser*)this )->AddTaskBar();*/
& f( n8 [2 g9 D: ~$ k! [& ` ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 s8 k [0 H2 ]8 v1 [* m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( B3 H7 j& _3 i9 X5 H" d ((CUser*)this)->CheckHonorStat();2 s( E$ W! x. {, v
((CUser*)this)->AddHonorListAck();
. a0 z$ l, ^/ h' W3 [# i2 P g_UserMng.AddHonorTitleChange( this, m_nHonor);
* W- O7 `4 \+ p- }! `8 y#endif // __HONORABLE_TITLE // ′Tà?
) }* e/ _4 y* J6 L* _2 }$ q }
0 ~0 @2 A8 ~5 O7 j/ q6 I+ s: d#endif // __WORLDSERVER
2 q& o" _$ a$ {8 m/ n} 6 g' @* L# G: I
3 ?( _2 J( Q0 i* K然后你进入functextcmd.cpp并添加以下0 o/ O' T( i6 @" y& }
3 N+ L7 m: l& f代码:
3 u E& D2 J4 h9 {% E# SON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 y' @6 A P/ U" j: B# V下面插入
* v5 R3 @4 k7 E$ t1 i% v$ r6 ?. l% cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / H0 A; [1 c* J* k% k
' ]- B4 \5 { M/ @' r
然后你去4 b9 j( c; F+ @7 v1 o% _
# _4 N2 |' e# p代码:- x; y1 b0 [8 [3 R" a
代码" N; O9 x, d2 j+ G
BOOL TextCmd_ClearPropose( CScanner & s )
$ ^2 i# {6 }% k{
% s+ b/ `8 b Y7 `' |! |! b Z- P2 `#ifdef __WORLDSERVER1 d8 k: }8 Z' \: B% T
CUser* pUser = (CUser*)s.dwValue; y2 z2 t) }6 ]) I* F
g_dpDBClient.SendClearPropose();
/ m m e) B7 s* o' c! W#endif // __WORLDSERVER9 D% u1 c; E O2 z; K k
return TRUE;
) b3 v! _2 ]. R}3 {& ~: k0 ?- ?0 E* C, j2 S4 T
下面插入# L% q4 R# z$ {* X" X! P5 G
BOOL TextCmd_rebirth( CScanner& scanner )4 b9 m) E+ {7 x% v3 v6 r5 o
{
* m( |+ U9 _$ _7 r) L1 j0 W#ifdef __WORLDSERVER
( d0 y0 `/ Z1 a7 n; m* q( pCUser *pUser;
7 f0 c# W5 D- I8 TpUser = (CUser*)scanner.dwValue;2 r* H- E$ s P: r& G
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ c7 J" u( o, g: g9 d7 X6 a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ J- e7 G6 S' eelse
, q# e: w& @, O5 MpUser->AddText("你还未达到重生条件!");- \+ f, O/ P5 r9 B/ @
#endif
6 H( o* e( T& d2 Y( areturn TRUE;
8 a Z$ D5 A1 C$ o) a) ^} , w& _& _; O# D n! l8 G
n0 U7 H! E( ~
2 i7 R% I1 C! i
' z. u; t$ n/ \. \+ G. O. [8 G, x1 R& |( K. e( ~* w# o2 F4 Z
|
|