|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, v3 D0 V% l; Z8 L
5 p. o- S! ]. T: W; [) Q- uMover.h
) x4 R4 v1 f9 F O$ f& x9 S6 L, G代码:0 ]0 C& u' [/ n# G8 \5 H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 @7 e( _. \0 j+ N9 ^) R9 t
( j" `+ C6 e0 P下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; }1 N: L* J+ _! y: o, y: q
( |: ~/ |* Z4 x4 x! T. J& s* A. m \' B然后你去mover.cpp添加' c8 V1 S ?- J) E, S) O% s
. _4 }% i! ^+ Z/ E代码:
3 \4 C" L4 z; u/ {void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' k- i9 u7 Q( p5 l2 S{0 Q# A0 |1 t1 l Y E& G- C
#ifdef __WORLDSERVER# F2 D, H* [* v! L' Z# _& V* `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! a4 Q, I! t! Q- l: |
MoverProp* pProp = GetProp();
) p7 |8 a! M, m. h if( pProp )0 K% ]& ~+ C- B4 J' j
{; B& J/ u3 K4 u2 @" H: c; g i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ s( T& G7 C0 F" Q* |
{
; c, r7 k) ?1 S- g$ v3 K8 w AddChangeJob( nJob );
0 ^8 ?/ J: [/ `# @% U# W% Z4 g }else{) I' s7 j' @; X5 T1 K: ~7 o2 ^
return;
( i& p" S3 K+ O. Q3 `# A }" a! [) p. @ a) a* y
int nPoint = 0;
6 ]) l9 A+ i. D if( m_nJob == JOB_MERCENARY )
& t$ T0 j$ s2 ]0 |* H& `" N nPoint += 40;& x6 ~( {: R- M$ t
else if( m_nJob == JOB_ACROBAT )
$ @. A- M5 g7 W! b! Z. s% [ nPoint += 50;
! Z& M4 D5 b' h6 Y0 J f7 p, l! ] else if( m_nJob == JOB_ASSIST ), \$ h" a. W. a$ I
nPoint += 60;
* |- m z" P6 d$ ~; h else if( m_nJob == JOB_MAGICIAN )2 _: m! B$ x0 |* r5 T2 ~9 i9 @
nPoint += 90;
( U4 M; N% c, K( U! a7 W4 | else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). E4 ~8 D f) y1 t0 `, u
nPoint += 120;
" H# z; l3 A" l$ ]7 D else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 W" J# r: d" c9 l' [' I, O nPoint += 150;
/ L3 u2 b% p) N% D! n" t. C else if( m_nJob == JOB_RINGMASTER )/ Q" v1 }/ E( | _9 F
nPoint += 160;
$ Z- s6 o/ o% x& ^4 |7 c& V else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 {" p" N6 P; ~" q% \& [7 S
nPoint += 180;
8 Q+ y4 @* O& \0 P3 N8 i else if( m_nJob == JOB_ELEMENTOR )
4 Z( O7 x& R( X; P& O0 P$ O1 p nPoint += 390;2 f% V$ N9 h, s% v3 k1 `8 y0 Q. }
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 a$ g$ u( |6 y1 p
nPoint += 120;- G: m, f8 e7 `3 A
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 A3 Z# Z6 r7 Z+ J: A( m. }/ }& W
nPoint += 150;
3 W4 |1 R9 x& Y else if( nJob == JOB_FLORIST_HERO )
1 Y! D1 I" X. Z9 R2 `/ ]9 b3 e9 z nPoint += 160;- l8 M7 j, V* M# q3 \! o' R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 U' X2 }% v% r ]0 k, ?# C3 s nPoint += 180;# ^! ]% s* E+ S4 b7 m& o
else if( nJob == JOB_ELEMENTORLORD_HERO )- q2 l0 A8 ^2 f( [% |2 U7 f8 c& {
nPoint += 390;
$ Q8 B% e3 u3 @- k1 y$ q0 F: B& j. c& g; S7 N4 }
AddSkillPoint( nPoint );+ P5 {; y* C# ?; o: l
m_nLevel = nLevel;
, b8 r, o! A. f- i
6 Y4 ]' e9 X0 O; l7 L; q3 Z a SetJobLevel( nLevel, nJob );$ p; m1 J3 i% H9 {. q. e5 c# W+ s
m_nDeathLevel = nLevel;" a" n q! ^. o2 F5 p0 s, ~) l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 M) G) L, Q+ z8 P, T1 f
if(IsMaster())
: I C5 W* @# F" Q1 E3 c {. |; k, G8 Y" j% j. Z7 \7 A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! C. m, H1 U" k; O) }* K if( nLevel > 59 && nLevel < 72 )2 u8 i! O/ \: A/ O8 I5 `/ J" j4 F
dwTmpSkLevel = 1;0 n& M( S& s4 J3 Z, q) R* y
else if( nLevel > 71 && nLevel < 84 ); @& ~" `& g6 D3 @% r
dwTmpSkLevel = 2;
3 f. h& M6 u" ]/ |4 N3 f# T# K else if( nLevel > 83 && nLevel < 96 ): b! G9 F( o- C' ]& h
dwTmpSkLevel = 3;, V9 \4 U) I1 S& Q; q, L! ^9 K" `
else if( nLevel > 95 && nLevel < 108 )
+ a1 b3 |1 t$ ^1 q. I* Z$ ] dwTmpSkLevel = 4;2 a$ M" p$ _/ X; e+ y2 f
else if( nLevel > 107 && nLevel < 120 )- }8 d5 u: |" i
dwTmpSkLevel = 5;, g3 m+ o$ @, ?$ F3 e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) U5 o. z, m$ T E- T& Z$ Q% {
{
. p7 A8 c k* s4 @4 H LPSKILL lpSkill = &(m_aJobSkill);1 Q- q/ ]* A8 J% ?; t8 B
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 m" e) A+ r5 ?4 a
{* R0 o" G! q7 Z# K* v6 d% V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( Z' E" b" x1 J- S! g0 {/ \. m if( pSkillProp == NULL )
- H# t* J% E5 A5 ]* z( a% b* }( \ continue;
; ]# i u% h" R: T' z0 w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 t; G7 b5 h* D1 [: _ continue;" x2 |6 B$ |( w' [
lpSkill->dwLevel = dwTmpSkLevel;% ^' v2 Z* y! S/ J% P, D
}
( K, K* X: h N/ b* E" ~: I4 r }% Q/ ]: x2 n3 d& N, P) m
}
/ ?% u; k; w8 b9 X) a+ k else if(IsHero())# { h ^( u6 A8 y$ e) R+ \
{2 ?7 f: b: G5 }. }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) t* \& U( B* j# I3 z+ `
{
+ x+ i/ \8 V& @1 G LPSKILL lpSkill = &(m_aJobSkill);7 a. P* W1 I \4 t: j9 r: d# k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 d% O! v4 q, f9 y D# f6 ` {- x& w# o" t ~* Z8 U0 E0 C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 C8 g" K. y' `; k* Q! h7 x
if( pSkillProp == NULL )% d5 H- f9 B1 s, E8 D
continue;( Q8 [3 Q. ^9 P( s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 X C; G8 u- g' c# Z6 b continue;
j8 e3 P# k* T& { lpSkill->dwLevel = 5;" u0 g& p' |7 [6 Z# \* |4 ^
}
& Z' J6 L, M5 Y5 K }8 @. W4 i5 O% V4 D# s J
}" i; ]; L8 T$ y
else if(IsLegendHero())" D& W4 f- a2 z) R8 P: H7 j
{9 [. ?" t2 G& h: y7 i, u& l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( F8 ~3 k' Q7 I3 P3 g( P( C { / V2 j" A1 I9 u+ }7 E
LPSKILL lpSkill = &(m_aJobSkill);* H1 c& Y# w& R; i: i( |3 n! A
if( lpSkill && lpSkill->dwSkill != NULL_ID )* |! @+ {: H7 N5 z$ S9 N
{. g- n7 C7 C; T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# ]6 W! |# L7 T( f. P. W if( pSkillProp == NULL )
: j6 ]# L% V U2 r1 ^4 _$ I1 k continue;
- S' r1 u- |# g p# ~/ {/ B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: a9 _% K! |$ Z3 e; f! S( g continue;0 D9 B# u! H2 H( L4 K% O7 Q6 I5 a
lpSkill->dwLevel = 5;
( j9 v' H3 G! N$ x }
8 {8 d# H- U7 i2 k& u" m( D }
7 e7 Q# V6 T. y5 V; Q+ \ }
2 U, X' P; h: \" Y& T#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 J$ \: G& `4 I K- p, b5 V+ W, z if( bGamma )
+ S" w4 M4 R- ~; ]/ } {
9 h. d3 l; ]% ~ m_nExp1 = 0;$ V$ P* ^: ^( K7 ^0 J
}8 n* ?( o3 K! e, n% t
' u1 { c5 D/ d q, N/ {& r8 b ( (CUser*)this )->AddSetChangeJob( nJob );
; u. r2 ]( n0 D M; \ F p8 D g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ T, Q* F* U, l" x8 U8 x
6 c$ l! g1 G4 s+ I5 _- y. i* D- A- `0 c4 m, f; C" E' l
#if __VER >= 11 // __SYS_PLAYER_DATA
) ^6 j/ e" Y* E: h5 h g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
b j, S3 X: J: Q+ e#else // __SYS_PLAYER_DATA# q) a G/ T/ N$ z% a
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ I1 J7 I i( M/ C' b
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. N/ W: {8 c4 Z" j if( m_idGuild != 0 ). x9 i1 w: T" m0 q) ]
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 {0 z& n7 j3 V. p0 U3 i: N- \3 T#endif // __SYS_PLAYER_DATA" y1 z: i' |) x* a
SetHitPoint( GetMaxHitPoint() );. q$ ]! _4 _9 M$ U; L+ ~
SetManaPoint( GetMaxManaPoint() );+ D V3 `$ v5 [/ X5 f8 K6 ]' E% J
SetFatiguePoint( GetMaxFatiguePoint() );
$ c9 y) c& f: M3 r# d if( nJob >= 1 && nJob <= 4 )
$ B9 u* E' {; o( V6 A ] {
. J9 w5 p" E8 M. m q+ U m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 T. Y4 ]6 B$ g j) m8 q m_nRemainGP = 28;
$ t! o, x) w/ C" N# @, h, F, k }, T0 ^/ ~! G; ~) j. R
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& w0 e1 z: Q3 C; D7 b- c {
, q3 \' A" [& E# Q* F+ t7 H m_nRemainGP = 118;
" D$ W! y' H$ C" x# {) F //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* W% `) i) @- U, y! T' }+ O m_nStr = m_nSta = m_nDex = m_nInt = 15;4 ]# p/ B; K) s5 C9 E' L
}4 m" h% I' @7 D5 `' i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): X% b+ i4 f( J s8 ^
{) Z9 v; i. I. o" U+ v' ^
CItemElem itemelem;
$ b' d3 H9 x0 D* \" @ itemelem.m_nItemNum = 1;
: i2 z% s0 N, X) \* f* i l itemelem.m_bCharged = TRUE;
- r3 e# U, M) R9 u5 A- _: j& V/ r BYTE nID;1 z8 N1 Y+ S K, d& }
8 W$ G, q+ O) R4 M6 v/ L
if( nJob == JOB_MENTALIST_HERO )
" c% ]/ V0 A! B itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* S% k8 Y4 x) D0 b if( nJob == JOB_FORCEMASTER_HERO )
0 x7 z, Q/ f, l! s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% Z, M& a+ V( g- {8 h
7 U7 o; d. L( K& O( _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );. e) h; O) M, A- r* \
}5 m+ S* i2 H7 r2 {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# m5 J' b, t* g' @9 Y; h5 l ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. ]4 j, H9 l4 f7 K9 l1 }$ G# S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) p) |0 D7 f; k! E- y+ d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; c! w( N$ X2 P* L- U% Z
( (CUser*)this )->AddTaskBar();*/
: B* m6 e' k+ n( t U( P ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 K: Y/ e0 _" d$ c0 ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 l) M: [' q* C, \& x" t ((CUser*)this)->CheckHonorStat();9 s7 P! M/ _7 M: `8 n5 K& X
((CUser*)this)->AddHonorListAck();% f! n% S. ]7 w+ J& Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- Q F7 `2 t0 `3 G2 S& E#endif // __HONORABLE_TITLE // ′Tà?
+ c$ o7 W& g* L" O0 _' v2 H }
6 D$ x7 O1 k. m1 a#endif // __WORLDSERVER
3 g4 E. N* H1 M! W} + D; L+ s5 E% t+ f" C8 [
; b& E4 W+ a) s! |# b4 ~$ _) | c
然后你进入functextcmd.cpp并添加以下+ N5 D% J5 L& I9 |$ E, W2 ~5 O' x# @ t
6 A% `8 b. O( T; E# y* p0 R代码:
/ |+ e1 u9 Q( M5 R: D5 \) pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
]+ K: g7 c h6 z$ @9 p2 G下面插入0 k2 P+ a- K2 }0 D& A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 [6 ?6 Y7 Y, S' z9 i
1 d3 c4 E) u. p( E/ F: K+ l然后你去
% I; U) q8 o3 Y. j8 ^* X3 @$ [& y) Q6 q$ x7 V2 X M
代码:
4 A! L" t0 _8 m3 k代码' e" i0 `5 l3 @# k: a# E# h
BOOL TextCmd_ClearPropose( CScanner & s ): J: B" _: b% i
{
# Z2 c3 D' W9 ]! l- M/ v#ifdef __WORLDSERVER
! b& T" X" ^( B# t) s; W CUser* pUser = (CUser*)s.dwValue; B) v9 F. [& l1 G; V( k6 \$ [, G: c
g_dpDBClient.SendClearPropose();
/ D, F7 l5 K: A6 g5 l#endif // __WORLDSERVER
" Q, l- V3 ]& d3 ] return TRUE;
) m- Z9 O* R+ n}3 K" E& C9 N! c9 h* ~/ g
下面插入
: d* N# o* Q0 T& i, [* R: ~' DBOOL TextCmd_rebirth( CScanner& scanner )! G+ N/ [3 s9 A! a- h3 }- C
{
: G8 j% I' S0 O4 ]8 H, B" P#ifdef __WORLDSERVER
9 T: [7 W' z9 `) }2 T* \CUser *pUser;/ G: f2 ^. r/ N3 l6 o
pUser = (CUser*)scanner.dwValue;
- X2 x# P8 u6 s$ F2 G, Z! _. Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! f& k9 P7 |5 T G- U, ~% d
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" B3 b3 f* q9 aelse+ j: n7 O6 E' y. u$ I. d: S7 L
pUser->AddText("你还未达到重生条件!");
4 R! {$ H3 U A; o: W8 G( i' x#endif6 Y* z2 M. {# D, B" P3 _- C
return TRUE;) |& ~$ L+ N1 P" ^
} 2 \0 d$ Y9 ]" D: C3 [5 M$ |& b3 A
4 r3 o0 Z3 D- }4 b: k# z) l
# M# W' ?0 S! Z9 N$ U$ T+ ~) U
$ r! P3 u( W% z+ p& K, V
% E6 A/ R9 }( O: d7 P$ O: q |
|