|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 M, u1 x0 C& f: h
5 W- I4 a4 L+ ^8 I/ }2 h+ V: [4 D, G
Mover.h
' _9 p2 V1 v- R# y$ W: P0 H! K+ m代码:* p0 u# e, U9 i5 R. z) A9 s# Y8 `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü e' V- a9 T( X
4 h( g: z0 ^& ~4 L$ P9 A' s+ x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 J6 {' U5 }# s* X$ K
j" k) ~6 F" U' x然后你去mover.cpp添加
, _3 d' Z$ d$ d4 K- @7 Y* E4 Q" l. c1 Q8 x) E( M4 {' w9 }
代码:
/ x6 r, \2 j3 ^6 T9 b' zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ ? ~. N c, E# n X
{! \# r7 d' V* k
#ifdef __WORLDSERVER
& l" n4 s7 i$ h/ S // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 r) N! G' z! W. J& B" b
MoverProp* pProp = GetProp();( O; c) ^$ W5 {- U# X
if( pProp ), ~/ R" z7 y- \
{
5 P/ o( g) w- ^' X# M% C- R7 v if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' L+ z; _/ b, O+ l# x! ~6 a1 x {
3 O4 Q# s9 t9 U1 @# m( n. I5 y AddChangeJob( nJob );9 f T3 Q' X5 _! Z/ k
}else{4 d; c0 y6 k0 P8 w, B7 x
return;
4 v8 M, |% M7 T9 x5 P1 B }
" Y0 y: W1 L1 ^ M4 L% n9 q, R: r; O int nPoint = 0;/ ^6 }( B9 \) S" L
if( m_nJob == JOB_MERCENARY )7 {2 D0 h! n& }9 s' a& v, A
nPoint += 40;
. s6 V( p! F* Z! X& c else if( m_nJob == JOB_ACROBAT )
" E1 q, v+ N7 M" g nPoint += 50;
; Q- C: h, {+ \) N7 D: H ]9 y- j else if( m_nJob == JOB_ASSIST ), q1 M3 H+ d: i5 D: _( N
nPoint += 60;
) E1 v) M4 H/ i4 l* I% }: Z else if( m_nJob == JOB_MAGICIAN )) L& h, f2 ]2 t
nPoint += 90;
# K9 B* q( Z. C+ r4 J1 V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& f2 q: S. {, ?, @; m
nPoint += 120;- b1 R0 s/ ?* I8 [, T9 s
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 I" r' A4 I+ U# M
nPoint += 150;
# Z: P; t# r: x: H& S else if( m_nJob == JOB_RINGMASTER )
( T2 c1 d! Z& Y* a R6 i nPoint += 160;, w" ~! E' _% L; z; W$ Z2 Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- l, X$ I: H6 |' t) D
nPoint += 180;! E+ ]) V+ Y+ x$ T
else if( m_nJob == JOB_ELEMENTOR )( ~0 P0 }0 O2 Y3 U$ P8 x: w8 i0 l3 J3 `
nPoint += 390;+ k) R! {: x) p" n z; `
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* J8 L) h+ G% O* r0 A. f; Y. L nPoint += 120;
m, Y/ [' @7 K! Y1 C& Z& ? else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 B& P# H+ P$ V- Y. |3 T+ b5 b1 u- w nPoint += 150;
( Q! N/ N* b& u3 b+ h else if( nJob == JOB_FLORIST_HERO )
* g0 P# b) m1 A$ k5 A0 @ nPoint += 160;
9 Z7 w4 H5 \/ H, M, x3 } else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' [% t5 E1 @) k! w
nPoint += 180; g$ g: O5 z& a) R
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 e! o4 j% U+ r7 d: O nPoint += 390;. O6 V& X- ~, I" B1 d4 J1 j
, I: H. T4 i& |8 ]5 e+ J AddSkillPoint( nPoint );0 b9 B$ D9 b/ _* N2 h$ M" G
m_nLevel = nLevel;
/ }# F9 b6 k( _, t5 a
6 g3 w' l$ T/ r6 S' ^$ Y J( g SetJobLevel( nLevel, nJob );
; r3 e5 ] g: @" h6 _2 T _ m_nDeathLevel = nLevel;( H) z0 m- f0 [: G6 j. W- Q6 k' r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
`5 c8 C/ ?- ]4 | if(IsMaster())+ |0 ]1 w4 v# H r6 L4 ]
{
7 J) j! I' t+ y. V) n( O) v int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) F2 ~* o) K3 H1 s1 s
if( nLevel > 59 && nLevel < 72 )
) \8 G& R, u% |5 H* | dwTmpSkLevel = 1;
9 f9 M$ J$ O" w else if( nLevel > 71 && nLevel < 84 )% c5 t h" ~* S7 t
dwTmpSkLevel = 2;, z$ x7 H" o P9 m7 I; x
else if( nLevel > 83 && nLevel < 96 )
) g5 n% H9 w! z+ }7 C( u dwTmpSkLevel = 3;
# |! P& @5 {3 i7 K else if( nLevel > 95 && nLevel < 108 )
" J1 J% V0 [' a. G8 n- q dwTmpSkLevel = 4;
/ I J# L' y) V- E) F( v0 i else if( nLevel > 107 && nLevel < 120 )6 b: M% b; l0 o v1 ?8 I
dwTmpSkLevel = 5;
* z1 T% B- W2 ?' ^5 l for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ J+ H9 Q) _: L2 h, ~
{ + J! i2 j) r! C, y8 D9 l
LPSKILL lpSkill = &(m_aJobSkill);
6 \" P5 D+ O3 v* o if( lpSkill && lpSkill->dwSkill != NULL_ID )+ X5 x' y2 W/ x( O ]. S
{
9 e1 m% q1 i% _- R, F& f5 W$ b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 _3 E3 [ E: `7 T# ~ if( pSkillProp == NULL )
6 @6 P0 M. g8 t3 E& D continue;. ~2 m. ^4 R' X% F- U5 ^8 |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# o; W' T+ I- t/ z F( i; H
continue;
7 h" H( m) s, a, b# X lpSkill->dwLevel = dwTmpSkLevel;& W- N6 w! f T
}
; g% ~$ m, O4 P6 }6 E }* ?: L; b# b, _. w" X% ~( \* A+ _
}7 n6 Y( p8 X; ^
else if(IsHero())
3 e6 [. z4 X/ {2 k; v5 F {9 H0 W* |2 i+ X$ j+ d" w8 u
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 p- [% ^9 o+ D( M2 J ?4 J, ?' j
{ ( a! z; C+ B4 K7 \; }
LPSKILL lpSkill = &(m_aJobSkill);( o6 |8 V4 T: G0 K! S% J7 y. f
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 X3 x0 C* N7 D. ~0 a
{
) s3 J: j1 d% l2 B/ [2 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) N: n) u6 H0 D9 c9 N
if( pSkillProp == NULL )
& P& V U2 o4 f4 ^. v continue;
6 ~& W/ x4 D C9 U q6 J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 u% M( r: P6 ~5 K: c continue;6 P. Z1 \7 s' O; n2 d/ w: d% W
lpSkill->dwLevel = 5;1 ]1 f$ f8 ^4 b
}( H) c( B2 p# E# `6 I, F/ @8 V
}$ E' K4 J) P0 l( L
}( ]# ^) \' i3 r& t! c
else if(IsLegendHero()) T/ t0 R: F/ u% H
{; j! c( d m. `! O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # C' D. F+ z. v3 C
{
- j9 T9 F8 @$ w" \( o5 y8 b% a LPSKILL lpSkill = &(m_aJobSkill);/ p& G; Y% Q }8 U0 R5 J$ A! M
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 h8 [5 h; P- }) P
{
. x2 P. ~2 Z9 {- A- I1 I5 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & ?6 B8 `1 F. g; k" N
if( pSkillProp == NULL )
) }6 N& y/ ?8 v continue;
8 z5 G- R3 S6 T- W+ N9 B3 M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 Y# W/ F" N* o3 M continue;6 d8 W! n6 C. C! O% O/ D
lpSkill->dwLevel = 5;* l$ ?/ \. i4 E0 t
}
0 c( s1 p% L; m3 W5 S( D- M }9 P4 R+ R6 L8 y7 z
}; b. `) o+ Y2 B" a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% [. a( C1 Z. H1 j
if( bGamma )# R0 ~$ x6 t5 ]
{0 ?' j) E4 N* d5 o. v
m_nExp1 = 0;0 t+ O4 I" F- n6 x5 O
}. u1 l! _* I+ e2 x
3 k8 ^" c; P# m }1 Y" O ( (CUser*)this )->AddSetChangeJob( nJob );
' h1 o' M( [- c! `6 p6 c/ N1 h g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
Z) M0 @) P; @6 B3 j. ~* o& @7 j0 {" C2 ]) f0 s/ k6 \6 w" J
( [# M$ h4 v2 G% P1 Z
#if __VER >= 11 // __SYS_PLAYER_DATA
: h! h7 d$ w. X' P4 a5 b g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 C* g- Y' q1 Z9 k7 k7 a#else // __SYS_PLAYER_DATA& N6 G$ k! c0 |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# ?, U5 w( }5 G* L9 M. i& p, I5 H g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 u! { a+ B4 K( \ if( m_idGuild != 0 ). Q6 N2 B- d2 ?7 g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 e1 N6 |$ R; n2 X#endif // __SYS_PLAYER_DATA
& O% P! r+ d& s- b% A6 T$ F, E4 k SetHitPoint( GetMaxHitPoint() );
; O/ @: @. ~) U2 c" a7 x0 v& B/ o4 L SetManaPoint( GetMaxManaPoint() );
) v) l3 L2 S5 s w( S6 k SetFatiguePoint( GetMaxFatiguePoint() );
! j! M2 v1 j- m" Z! g if( nJob >= 1 && nJob <= 4 ); z9 O i" L9 R- o& J$ c6 B
{2 _' d0 k$ ?1 i) K$ Z2 O1 y( L: `
m_nStr = m_nSta = m_nDex = m_nInt = 15;% t: U0 }2 ~) D% _5 N7 o7 V. p9 p' Y
m_nRemainGP = 28;
8 p( |: V1 R+ z }7 _5 R) ]4 p" s; L% M6 i
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. y& k# l5 D* o {+ _$ {( \6 M' H
m_nRemainGP = 118;
, a/ u- k+ [% G //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 ]; c0 \* i- l2 \. G {8 o4 t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 z1 G: U N4 ^7 ~4 X `, }, Q }$ @2 T2 N3 z8 m+ p' p2 H
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ [* @# u: J( m T1 Q- T4 a {% b( z5 N$ i/ f& F7 T
CItemElem itemelem;
6 L- S/ R( d) z) ] itemelem.m_nItemNum = 1;1 A+ E2 H6 K: M
itemelem.m_bCharged = TRUE;- ~" L) p) @) t) i" O
BYTE nID;- S3 A1 p! j5 {+ P% G* ~3 ?
3 b H2 p5 x4 g0 g if( nJob == JOB_MENTALIST_HERO )" D' X* ^; {, z U1 z2 g7 b
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 C/ o |3 t3 g if( nJob == JOB_FORCEMASTER_HERO )' R. w9 h! Y# q# a& v3 R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 | e" A3 m. o1 }0 a5 T5 b0 d# z" j
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" `8 V& A. p& u4 q0 E }
% V- {1 l" u" s8 g g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 w6 M! y& T" V( ~ o1 @# {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ ]* J. H7 s! R/ u( [ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% ?0 f7 J4 I5 o) { r- n5 p# z1 l /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* w" q7 k1 i) n8 w ( (CUser*)this )->AddTaskBar();*/
. Y7 X+ z/ Z# X. v. X! ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 z* y3 ~3 w+ N/ X0 l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 a) c( g5 I4 ~/ ^% G. u% S
((CUser*)this)->CheckHonorStat();
2 ]8 J, f2 d% B3 T, K0 `5 [ ((CUser*)this)->AddHonorListAck();
) z! j4 B4 Y: Z1 u g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 B9 U0 p7 t+ k#endif // __HONORABLE_TITLE // ′Tà?& b1 I/ n' y* |- D/ V
}
0 x* D' l% V y#endif // __WORLDSERVER
) x; M3 z( z: \+ V}
! J0 I7 G5 o$ A4 H
2 K, A+ \/ G; y( u( j8 y3 q$ j6 I; a$ K然后你进入functextcmd.cpp并添加以下
# |3 p% j' I/ B3 S* T8 t! x$ `
; ?6 C5 Y7 ]) [! {代码:
& w' ]2 E* k6 ^( g4 E oON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 e! C# C4 X8 \7 L% ]下面插入9 n/ j: b. I2 E' z) s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 A/ _; H& P1 S0 G
m6 a! `, n) s% e3 Q7 }4 W然后你去
4 w; E# b0 H7 c0 V
! a8 Q6 C" i- Q! {7 n) Z5 U9 S5 z代码:4 U0 h1 z7 G3 S5 W' B) J
代码; ?$ Q4 M+ z7 o& K2 a B
BOOL TextCmd_ClearPropose( CScanner & s )
M; {% G* x. X% Q3 k{5 K) w- \$ ?* t0 M
#ifdef __WORLDSERVER1 s6 V6 w6 y. P: `5 q
CUser* pUser = (CUser*)s.dwValue;
/ R5 y/ W( D3 r g_dpDBClient.SendClearPropose();
4 D' o% ]) `* ~8 b0 V#endif // __WORLDSERVER: M6 l6 r$ l" e
return TRUE;2 b1 }+ E' P, a
}
; h3 Z6 N# ` K$ I4 m: c3 h3 c下面插入
- Y: O0 `4 v0 A3 a [: Y+ D" n! J, pBOOL TextCmd_rebirth( CScanner& scanner ) s: R- t' s1 }( _; J& b3 E
{, u+ ]0 l8 n1 h; T( D0 @& n
#ifdef __WORLDSERVER& T- t! I7 A* g. a4 ^2 N, y' e
CUser *pUser;0 _: F' \: l& j5 y/ l
pUser = (CUser*)scanner.dwValue;- E3 C* V( g+ a0 I
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 X/ U( t. f% |, }1 p: a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 M# F$ o p# J5 }6 v6 T, t% ^: n
else* e8 S+ k, O: V7 R- k c! `) {# {: ]
pUser->AddText("你还未达到重生条件!");
( T1 v# K! y! ?#endif
- m" i5 z( P: y" f* Areturn TRUE;
9 p' O% v" l2 O' @* @6 t* |}
9 p2 r7 N3 Z( o* G
) u+ V( r3 \& s; Z) a
/ F' L2 K1 ] t. Y
+ U2 y+ y3 e7 B2 s4 V# s7 G( `3 k2 L* q4 B3 t% W
|
|