|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) A7 L, [6 h! e, [. E
3 g# Y4 E( m- x1 E( x& |6 q) \, C1 gMover.h
$ G+ r% L6 F. G- e* Z$ H% X" n/ H代码:; ?1 v- I1 ^% L! I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. Y- E' X5 U% \9 q! I
- U! J$ Q1 c4 `$ g. O& V/ @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; k6 _* c. e" {0 O. G% X; R5 r1 Z! g% A: o" x$ D6 P( y6 f
然后你去mover.cpp添加
: U$ {( S+ k. w+ ?# Q' F4 Z! a# |; `" ?
代码:
% H0 j$ A8 |3 K, K% ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 T0 e8 m3 w; K6 m, Y. I* _6 B{
: a# f" e8 N) c: q#ifdef __WORLDSERVER9 P2 R) n1 O. \( u
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 E5 c$ h" Q0 X" N MoverProp* pProp = GetProp();' A% s1 |9 u: y( _
if( pProp )
9 P0 ~) L3 l+ {5 d7 K {
! n8 h& Z/ \, B& ^8 v. \7 n if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. z# d7 i: a8 M( |# y) U8 Q/ ^7 J {$ t0 V! x% }3 ]
AddChangeJob( nJob );
. u; H' @- L! z }else{# |" y4 s {7 c6 p; K `
return;7 P A. E8 T5 D1 T" L5 r. H
}
) x3 D1 E4 K6 O' O5 g int nPoint = 0;
: ^& a3 e& r' ` ~ if( m_nJob == JOB_MERCENARY )
$ U+ L. Y# k$ u6 H' q' n nPoint += 40;, w l& U/ b4 X0 j" b3 d) U
else if( m_nJob == JOB_ACROBAT )2 a( l2 ?& \( ~! H* ]) R! O
nPoint += 50;& O6 j5 J% \% C) k" z5 t9 x
else if( m_nJob == JOB_ASSIST )$ ~& r" u }' U) m- `& O1 R2 A
nPoint += 60;
- A/ }" T8 D' D0 {* ?3 _ else if( m_nJob == JOB_MAGICIAN )
( _# w' a3 m z+ I7 r6 U nPoint += 90;, ~0 R! ^9 F4 V2 W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): x/ Q' {( e3 ^( x% D, ?1 _
nPoint += 120; t2 @: a9 \$ ]- E, O: O- _# U& H2 ?* u
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ k& H+ @; Q. D P nPoint += 150;
0 J) [0 t6 F; d7 }2 c else if( m_nJob == JOB_RINGMASTER )
% S& r2 J5 a3 ^5 R. U nPoint += 160;3 `5 _6 p- X+ L% w# x/ O- Y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 O4 N G5 v) T k nPoint += 180;6 g9 i w! e: n7 L
else if( m_nJob == JOB_ELEMENTOR ) y. ?9 r, ~4 R- z+ L) H( D
nPoint += 390;& e7 V, M, o) [6 B
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- e% `' C1 d0 B$ n! ~ nPoint += 120;' c: T( n( g0 [9 z) K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: [- a. d1 s+ Y; J& V- C' l nPoint += 150;" Z& L5 ]; Y4 g" |
else if( nJob == JOB_FLORIST_HERO ), Z, K. V4 c$ s% E4 W& G' n
nPoint += 160;) { }4 S( C s" g! ?( @7 N1 a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 [1 Y) U) y0 p8 U
nPoint += 180;& G+ A- a# K) z1 O8 W
else if( nJob == JOB_ELEMENTORLORD_HERO ); L* F6 G3 ~- e( H( d' a ?( D' l
nPoint += 390;" m+ {' v8 r: ?1 `) ^
3 ^/ N2 _4 @- r! M. W* A AddSkillPoint( nPoint );
7 V7 M: `; ^3 W# o! ?$ c6 u8 p m_nLevel = nLevel;1 s! Q- E- K+ j( y8 N
4 ^+ Y2 t8 E: A+ r
SetJobLevel( nLevel, nJob );
$ l# g, y# H( M8 F m_nDeathLevel = nLevel;' G6 }/ }; m' r6 x: H: c+ G
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 n& T9 U+ ?: L9 d6 I3 v if(IsMaster())4 K& W( v4 h5 m' R7 N7 R/ C
{. |6 f# ` J: S; h4 ?
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 A5 d; S( k! E! H& s2 Y if( nLevel > 59 && nLevel < 72 )
; K$ Y6 @$ K1 Z b. { dwTmpSkLevel = 1;
) _5 r4 n* r+ U( z- R1 W7 J! m! q9 T else if( nLevel > 71 && nLevel < 84 )9 z7 }0 K0 |' Y# N/ b
dwTmpSkLevel = 2;
1 S/ g2 F D6 ]' H. M& _, q else if( nLevel > 83 && nLevel < 96 ): U' D/ @0 M+ q* H
dwTmpSkLevel = 3;
1 ?) o' x( n0 Q0 f0 B else if( nLevel > 95 && nLevel < 108 )& M7 [+ |; B" M) |
dwTmpSkLevel = 4;5 q W9 x0 x, Y
else if( nLevel > 107 && nLevel < 120 )% J8 o3 p3 `3 E0 S* p; R; m! O
dwTmpSkLevel = 5;9 x' g) Z5 w5 u3 C. l; W0 W. g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 m. v+ e$ H! Y1 D0 U { & I' o$ S: l( y
LPSKILL lpSkill = &(m_aJobSkill);. O ]! j4 n( J L% c$ ~# p# e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# j/ S" V! `+ z" D4 [' M {% W8 i" E( ~' h o( Q. Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 u$ H+ w* S# [! J3 j
if( pSkillProp == NULL )! y4 d1 v- v! E M& }7 B% J7 r
continue;" W$ x5 T" o% t* h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 s# \) B; n, _0 }' a) q3 ~ continue;# n; r1 f# C; l. c9 S
lpSkill->dwLevel = dwTmpSkLevel;
& z' {9 a j: G9 b* g }
. }0 M) o8 D% G1 R: p) @+ C% u, y }
$ @1 @) o b& |. @ }; o0 x: S+ K3 v9 g- y6 g- | r
else if(IsHero())0 ?5 Z9 L0 g, m. P) h
{* _' ?6 |4 S4 y5 e9 B! F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % ~7 H1 i5 S: V; {* X6 i, G
{
/ F" c% C% }7 `4 K& b( e8 V LPSKILL lpSkill = &(m_aJobSkill);; \; Y& }% C8 j1 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 Z, o- V3 }- |2 M: j m
{
% ]% y1 q( @9 K( ^- E8 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ s# U, |9 q: N7 B% F
if( pSkillProp == NULL )+ l) x2 b+ `. ]/ i
continue;6 D0 C @0 z1 i- g+ D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: u, t+ ^ M! {/ P- E continue;
4 X5 h5 T% f+ I; K# E4 A lpSkill->dwLevel = 5;3 k9 H; S/ V& a
}
: Q9 R2 m' R3 x+ c }. _8 p, u% q5 h. _& t, U- O
}
: E, i7 l) v3 @% M9 P. P, B else if(IsLegendHero())
* G/ t \0 ?: [8 |! P' G {& W7 i$ J5 T# U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: J A2 E- ]9 L8 k { & B2 G( H9 ^4 `0 k5 J
LPSKILL lpSkill = &(m_aJobSkill);
/ o7 z/ _0 s1 i7 d1 H if( lpSkill && lpSkill->dwSkill != NULL_ID )
& U$ ?" i- c; w! x {
. j4 T6 A1 h+ p( \: I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ e: ~$ C, H( ]1 s8 U5 s if( pSkillProp == NULL )
$ s5 L" P; \* s4 I2 W. j continue;
+ b7 R8 _5 S8 t$ R1 `/ J8 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER). `3 [) J# A0 V2 S) x5 f8 O! W
continue;
) z8 H. b: F' Y% l6 b8 Z3 v lpSkill->dwLevel = 5;1 \* \) u3 r6 S- B$ r$ U5 u# j
}% m6 W% W9 W! R3 S
}) W* N9 q' Z# r
}
9 G2 R( ^' q$ D#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- S. F9 P, J4 C
if( bGamma )
. t2 |2 E* `, h$ p. S3 b F! ] {% z: [2 a- g. o6 A1 W1 E6 t P
m_nExp1 = 0;7 A# Z1 s y1 w* K
}2 C: @+ m0 J0 |4 D6 n
, T# `5 X/ ?, H2 K& x' l: d' t3 @ ( (CUser*)this )->AddSetChangeJob( nJob );
# H* A/ x! f1 C. P' m# _0 F7 }. q4 Y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, X( b9 o) ~0 I G: B3 t: C
) m; b/ v! W# Z( v( N$ R+ y# @) J B
#if __VER >= 11 // __SYS_PLAYER_DATA
) }: T+ V$ |- d g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, E# T( y. V1 ^
#else // __SYS_PLAYER_DATA
, Z* @2 o% o+ Z8 I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ |/ [6 a8 \/ O% V" W1 P* G+ C g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; z M' m8 P7 E3 ?( s- D+ Z
if( m_idGuild != 0 )
" f0 T: p0 m: v' N2 v1 [ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 q- e/ d! o5 j#endif // __SYS_PLAYER_DATA* ]0 P( t3 H0 ^
SetHitPoint( GetMaxHitPoint() );
; U- q U8 P$ u" _ SetManaPoint( GetMaxManaPoint() );: v* ]2 M# B2 Q
SetFatiguePoint( GetMaxFatiguePoint() );
9 v4 M: z1 L o if( nJob >= 1 && nJob <= 4 )
9 }9 O" i; f( D6 a7 d {* O* ~- k) L5 D* r6 D9 j
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 o0 b, V; `6 V7 N7 Q+ [9 Q& |
m_nRemainGP = 28;: y* z, d' B7 {9 Y6 U
}( L/ c, |! n! I! O- x; S
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 A y% z6 n1 D& j6 d+ v7 d) v# \
{5 ?* I- X! e6 |' |% Y: G. W/ g
m_nRemainGP = 118;
8 ?( [; p! M1 ^6 o //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 X2 K: J* O/ N( j# t m_nStr = m_nSta = m_nDex = m_nInt = 15;& m9 o0 r4 w9 J3 }/ a0 ]$ R
}
8 U# c2 ^0 ~( }! g$ B' ? }6 i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 O' |. T1 {8 R* a3 v- y0 ], v {
% T& b: t$ @. d CItemElem itemelem;
d+ j) D6 N, ^+ I2 D itemelem.m_nItemNum = 1;1 i2 r4 @1 |% `0 j
itemelem.m_bCharged = TRUE;
' J8 @! l% v! V, P BYTE nID;
2 o: ~. ?4 x+ F1 f- M# G" Z( u4 w7 n& D( G w3 [
if( nJob == JOB_MENTALIST_HERO )( y/ \ Y5 }, q& @$ E+ O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% b: Q5 @$ x% i/ [. ]1 h if( nJob == JOB_FORCEMASTER_HERO )& E7 @, i& U$ j+ j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- v& S1 n% W8 U1 j# ~* v5 a
; i/ q& g% m/ h0 q; Y4 h ( ( CUser*)this)->CreateItem( &itemelem, &nID );* v: E- H }( Z0 K" O
}
- K K) }+ @& b( f, J; I g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; S7 ^) i; K2 n$ J, I ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 N6 i5 C3 K6 T0 |6 T- ~/ ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' I: X/ ] X' k' r' N7 t% i
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' d; Q3 V; H8 w3 g
( (CUser*)this )->AddTaskBar();*/
3 q1 Q% p- ?6 Z+ D. X4 P T% _8 C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 D. w& Y) P ]/ Q9 J8 o7 T+ K% w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! A: q( E9 M+ d6 d. ^0 ~
((CUser*)this)->CheckHonorStat();
: D1 P# ?6 U' T- ~ ((CUser*)this)->AddHonorListAck();
. Q4 R' [0 x2 x" v+ Y g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ A8 v, K. ]& ?* @9 ^#endif // __HONORABLE_TITLE // ′Tà?
. \* m- V2 t0 h- J) ]1 [% K }! r( D; p0 X2 h6 ^9 ?0 h {; n U
#endif // __WORLDSERVER
+ d c- G! e8 r; r, r} ( {, w" |# ^! [
* e6 t1 N+ Z7 D- V2 p Z
然后你进入functextcmd.cpp并添加以下7 G; R( Q. t3 j1 u3 W- V
1 l8 g# [, |- Z6 n8 N" y) t0 U
代码:* }' _- c! t( r" y. R3 w7 |$ Y3 c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& N1 _4 I# t# K S下面插入
' f; m2 C' @, rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 J9 ?" d9 A8 s) O! Y4 h* w+ E5 D
; A; \' X$ N, }, h6 w4 F然后你去
5 u, K, y A6 D# g o% l' b1 d7 D# x% x2 z
代码:$ S7 q F7 f: e: k" E
代码2 L% b/ ?: u$ P t7 N1 r z: w% c) ?
BOOL TextCmd_ClearPropose( CScanner & s )
7 i4 W6 ^- Z- A% ~6 T{
y( X- {) D7 ^! f( ]0 C; `* j4 c#ifdef __WORLDSERVER. U4 L0 W/ _7 c! L5 [, w
CUser* pUser = (CUser*)s.dwValue;
5 u/ p' {/ ^8 R: }( O) K# z g_dpDBClient.SendClearPropose();7 N" _9 R- |( |- q
#endif // __WORLDSERVER
' J+ q2 c& N* |! q4 }: F return TRUE;! T6 s8 w+ v1 |4 P& V" ~
}
' c' j8 |* V% s* T' n7 |( X下面插入
8 Y3 i9 M; e! [- N' z+ A9 kBOOL TextCmd_rebirth( CScanner& scanner )
6 m6 f. u! o4 Z1 A{
' A5 S4 i5 n6 T! d: E#ifdef __WORLDSERVER* i* E! L( T3 `: U3 _
CUser *pUser;4 S% G2 e6 A+ |) Y1 ]0 O
pUser = (CUser*)scanner.dwValue;& c! u& H3 n* C# u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 U0 b. U4 U3 D! G, W
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" P+ `! q9 c, k3 I$ C5 melse
% `; s2 D& m6 qpUser->AddText("你还未达到重生条件!");+ D' o+ d( K f5 p
#endif
5 |. @6 F6 Y' @return TRUE;8 {7 n/ X. `+ i1 L) |
} / b% G) W; P; N9 \( o$ }
# e$ z9 D) c" x$ n# Z* Y0 e. ^; P3 U, j0 S
3 ~) g6 q h% \
& `7 c/ |! S# n0 k
|
|