|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" M' H8 B5 ~9 C
8 O% R1 `7 g _. c# k* m QMover.h4 P" b/ a5 k4 Z% A3 g) x1 M/ f
代码:
9 p+ ?* \0 C- W* g& [找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ {6 a$ S) T& _; A x% S5 y L! ~; c3 M: C1 K
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 V( Q% X& {, Y7 u6 S: P( v' @+ {8 m
/ H, I& _2 v: L/ U& l
然后你去mover.cpp添加
- K4 w L+ G# k% o3 u& k% k: J: A0 p& C w( X4 T5 W" ?
代码:# l9 r+ M' i2 P" m) ?* I
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ q5 s \! d% L* p; a/ M{0 X$ c& h5 Z$ h, b* H1 k, T! U
#ifdef __WORLDSERVER1 ~+ G5 S6 j6 X' [6 A0 P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, X, [. u. g: I/ y MoverProp* pProp = GetProp();% q7 {. H2 P5 {2 O5 S
if( pProp ), I4 n/ Z2 k; A+ `
{0 g; X7 f$ a: X$ G2 p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. e' U. E: }/ _& s0 Q {6 x! w& M: g* ?" g* [
AddChangeJob( nJob );
' b/ N; U% R3 f5 @3 g }else{
( D2 [! V# _( i$ s! X X return;
/ t1 |" y( ~1 |% v& v( ^ }
$ T% M S4 h; W7 D. ]/ L int nPoint = 0;& W( w! y6 N1 l6 k) C
if( m_nJob == JOB_MERCENARY )
~( Y( d( z; L) d5 f8 W9 ? nPoint += 40;8 B/ T0 D/ f2 H4 D
else if( m_nJob == JOB_ACROBAT )
: _( o, o" r- M+ T* {: m6 t. g nPoint += 50;
9 f0 g3 o9 K- \! i. ~2 c0 ^ else if( m_nJob == JOB_ASSIST )
3 Y4 L3 |& ?5 N0 O& I# Z nPoint += 60;. X: R1 e5 m3 N1 w6 ^
else if( m_nJob == JOB_MAGICIAN )2 O: _' h e2 c2 y" _+ L
nPoint += 90;
8 X3 ]0 b. y9 s8 ?0 C- C else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). O5 z- G; D% |+ W$ w& b% Q0 a
nPoint += 120;9 h( B# S( _9 H; |4 ~: p
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 ~8 Z$ }6 j9 U" B0 a, Y, H nPoint += 150;
" Z; ~4 J# j! s5 Y else if( m_nJob == JOB_RINGMASTER )$ O. x* [7 F9 V$ B3 i% k3 m: Z
nPoint += 160;
7 v2 T2 x% z: V) p+ o else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- U5 s6 H* f4 i9 D5 m5 y5 h
nPoint += 180;
3 ^, v% D7 \: R else if( m_nJob == JOB_ELEMENTOR )
! W8 o3 C2 I# h nPoint += 390;
4 m- T4 S; Y8 e6 G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) \' |7 z$ U3 h3 D9 \3 f
nPoint += 120;1 o$ q: w8 T9 p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) H% {0 j- R- O. A
nPoint += 150;1 ?+ V7 K8 q9 o( \2 s
else if( nJob == JOB_FLORIST_HERO )1 ~% v; K4 F) j$ l9 W- n
nPoint += 160;
8 R% }1 v: l4 v7 l" ~* U; F7 U( d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 i/ p0 q4 u( B( i
nPoint += 180;
7 c) S) J" w/ V! L0 f5 I else if( nJob == JOB_ELEMENTORLORD_HERO )
) D% k; V ]* E nPoint += 390;
' V: f" e% ~9 s! p+ o3 y5 W* H# K0 X
& a4 M- ^. f' A AddSkillPoint( nPoint );
: s. A% V) L8 q- y i( l7 Z: h m_nLevel = nLevel;
% o! v% D1 E" Y# ^& [% d' n" |3 k* b5 q
SetJobLevel( nLevel, nJob );
* u: u* [. L8 l4 B m_nDeathLevel = nLevel;( H. r/ O9 j7 }! K5 c1 ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ K1 D C# B3 E0 L7 d if(IsMaster())
- w2 y/ W! |$ s+ \ {
' R( g2 ]+ f7 l1 i3 U int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& `% T' I V8 m) L; Z, [
if( nLevel > 59 && nLevel < 72 ); R' }: W1 \( I
dwTmpSkLevel = 1;
6 ]3 W0 X9 E3 A' q else if( nLevel > 71 && nLevel < 84 )
: D% J$ X( Z; J3 a dwTmpSkLevel = 2;
1 V# }# P, S" H- `( m( r* s else if( nLevel > 83 && nLevel < 96 )
' v2 C6 l4 _) T dwTmpSkLevel = 3;( ?* A n& g7 t) J3 W
else if( nLevel > 95 && nLevel < 108 )
?% r7 p( C1 H. d) u dwTmpSkLevel = 4;
T* l5 W5 q( a" K% { else if( nLevel > 107 && nLevel < 120 )# |# E7 o! o- R& n o8 h. n! a
dwTmpSkLevel = 5;
4 I) x8 } X- V7 X for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 { P( t. v9 x {+ {) B r. K; v* d
{ ' p7 N; |" I3 p, ?
LPSKILL lpSkill = &(m_aJobSkill);) I! j/ T" O4 s! r7 Y' G4 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. w0 r$ ^8 [" f, a! H6 Z/ @ {
' y( _( F& Z( Y1 n. W; H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 w1 P% X. Z; L! ?1 Z/ y( e, @$ b
if( pSkillProp == NULL )
. [; g+ p; K4 _ continue;
% a5 _; d3 Q5 l% ~' O5 X& { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 C* W4 E$ Q+ _/ J$ z# B
continue;
; Y# r q: u- K! p O4 \1 b: @1 v lpSkill->dwLevel = dwTmpSkLevel;3 w f3 V' h) S! B
}
/ b. J* Q. L# w5 k. _7 V5 r! ^ }
6 N5 k+ @6 l1 Q4 A }8 M) s0 k9 W; V4 f V1 ~$ S
else if(IsHero())
5 L) ]8 L* H$ t4 [+ [9 o3 k, E {
' p. x, y0 C) R- X5 C+ Y for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) f7 E; m @ A8 n/ Y% k
{
7 \8 m: [3 w) x LPSKILL lpSkill = &(m_aJobSkill);
7 T% [! y u- F if( lpSkill && lpSkill->dwSkill != NULL_ID )1 l( X* u: R4 c( k) \ u
{5 W' y- f, ~3 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( U' N6 N6 `2 ]4 @. [1 ^ if( pSkillProp == NULL )4 c$ H9 l/ c0 Z3 H2 F. N2 ~
continue;
, Z' D: B z5 L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( y; x# q3 j8 K) g/ }
continue;+ @+ V& X( ~9 _2 X0 b. k0 i9 p
lpSkill->dwLevel = 5;
`( e0 Y% @) W2 ~" t* y }& i5 d* n& F; ~" ]6 _) t1 f' z
}
4 ~6 @2 U: M3 N" X- k }. `, g) }' q2 ?9 K* j1 h1 \# k
else if(IsLegendHero())* S( F$ L# `, Q8 q5 ]
{' h) O" m d: b2 O7 c! X9 H. a) H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 u1 O# s9 z# ^2 V { ) A2 v! @2 v3 J
LPSKILL lpSkill = &(m_aJobSkill);
* B7 ]9 e% s% r1 G' Y1 J; E if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 \7 F) ?; b) s; C% w) i4 O {4 y7 ?6 y+ P: S% U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * R F# a& [( p0 r- q4 ^+ s% e4 z
if( pSkillProp == NULL )
+ v! B8 e& Z! M& t continue;8 x+ \" R+ N& M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# R0 a$ q! m' O, X7 g4 c6 A0 C) H% E
continue;
3 S/ _$ O+ j0 H: T lpSkill->dwLevel = 5;
1 \) I0 E0 c" l! ~2 M }
3 Q5 H# `7 T# b4 U/ P }
$ |4 ]+ } x9 V3 D( H }
% ^5 _) `8 h, k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, l' _$ k( }, R1 X
if( bGamma )
3 ~- \3 S, r N1 o+ @& t7 Q) v9 I {
8 w: x: z1 d7 {* b0 i2 S( O3 m, g3 ^; m m_nExp1 = 0;. Z/ A6 L# A; Y$ v% g
}
, w& ]7 m4 _5 p' N
# Y) e8 W6 R5 E' H& A/ p ( (CUser*)this )->AddSetChangeJob( nJob );( \2 V/ b. e9 l: P7 S8 ~ O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ w" z' @0 {0 Y6 W; ]6 [7 _& g8 K" z4 o# A1 o+ i
" _2 A- m7 o- v2 U2 C; @3 g8 V
#if __VER >= 11 // __SYS_PLAYER_DATA6 d' F2 _/ X% u( l6 H8 R
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 p" K2 t$ b1 v$ J- H) X5 e. z" Y#else // __SYS_PLAYER_DATA) B9 _# _9 D" H% N8 X2 D0 U
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ [. O* |; \" i" f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 s4 R0 r3 I, y A
if( m_idGuild != 0 )6 N2 e6 i T7 X. }6 D# H8 }
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' h# d- Y% n( S7 v9 ]
#endif // __SYS_PLAYER_DATA2 E/ A5 o- L; w' N/ a* D4 U
SetHitPoint( GetMaxHitPoint() );' y, u4 ^9 C" t: i, D
SetManaPoint( GetMaxManaPoint() ); ?- c0 _( g( A
SetFatiguePoint( GetMaxFatiguePoint() );# M. X: D6 H- K: v: s' |
if( nJob >= 1 && nJob <= 4 )
% f3 E( w! S3 r" e3 m8 \ {
4 O% `' h% n5 `( q& V$ B m_nStr = m_nSta = m_nDex = m_nInt = 15;
; l& s4 I" m0 D( r m_nRemainGP = 28;
# c: ^4 Y- h: e, c% _+ P* } }
+ z0 e1 k0 }8 A if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! u1 M0 }. j$ C- ] S
{2 U. L, E! j4 x) ^& F+ e
m_nRemainGP = 118;
2 @) K5 A% N: e# x) P ^0 ^! S6 |/ ~' Q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, O X8 r6 \! l e' d
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ f9 f D5 G" |# q2 f+ I+ O }
m* ?# Q: W: [ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), A2 P' P% W' _7 a7 }3 O
{
8 }0 v# E, `- l. E) T3 a, {1 S8 ?9 P CItemElem itemelem;0 H; u# r. R% S8 d. S/ n
itemelem.m_nItemNum = 1;3 c! w# Z9 r: b4 f
itemelem.m_bCharged = TRUE;
/ }% ]4 }; \! e7 r! Q9 d BYTE nID;
1 l& f" ~1 ?# Q p4 z3 ]: R: p1 q) h3 l$ I+ j9 K8 x
if( nJob == JOB_MENTALIST_HERO )
. p2 ^$ a/ X2 K itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ l, Q- O+ N. T M
if( nJob == JOB_FORCEMASTER_HERO )5 Y: r K6 o' ]# x6 k& N+ \
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" O( @) n+ x! h
9 U8 ]9 A a" e1 N ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 V2 m7 G7 P& Z$ R& x/ _& ] }4 I; ~; ~& A2 u& C l [ [
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 M! @; p3 J: U( Y' i8 J ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* Z$ r( C# T. {5 |" o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, I* S' J! w. Z; q; r( g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 Z* m/ R; D: Q ( (CUser*)this )->AddTaskBar();*/5 c& }& ?7 Y1 z; x- J7 @( O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 J+ c2 z" H: j1 R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ o2 ^1 U2 D: i
((CUser*)this)->CheckHonorStat();
3 ^- I2 i3 X S* X) T$ ^ ((CUser*)this)->AddHonorListAck();. I; i/ O$ v4 D' c
g_UserMng.AddHonorTitleChange( this, m_nHonor);* C3 M7 B+ q; D7 [+ Y( F- v
#endif // __HONORABLE_TITLE // ′Tà? c q2 R! T3 i0 k- l; i$ E
}5 k/ E, a8 b$ A- O7 w9 p
#endif // __WORLDSERVER8 @& K- F# g4 u
} ! O0 T! I, p8 t6 m
" q* O+ }/ P# ~0 S然后你进入functextcmd.cpp并添加以下( e1 s* {) e9 Z0 f7 E
2 U+ J( N1 |$ G" B2 U代码:
: `& }, k* P# ]2 rON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 s4 b3 h5 o9 d+ z& i/ `0 s& E下面插入
6 |1 k) j( _8 @, E. AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 K9 s" i% o( m
T+ F! q" q. h+ G8 P然后你去
8 g7 ?# G& {; y b2 n! J% s D3 c+ y/ N% }4 E1 b# a
代码:
3 q3 j! p+ I$ k4 X8 l代码 Z4 V$ q5 c) c- o
BOOL TextCmd_ClearPropose( CScanner & s )$ c- B% T! w" w# D1 P5 ]0 B& v
{
1 u6 f- Z' O9 s/ Q7 l H#ifdef __WORLDSERVER
+ v4 y; n0 e' _# X5 V CUser* pUser = (CUser*)s.dwValue;. J& j" ^ o- K! x) D
g_dpDBClient.SendClearPropose();* W% E% Q& w6 O0 ~
#endif // __WORLDSERVER$ w# e& ?1 D& l `
return TRUE;
+ ^7 R5 `6 k. ^9 y6 L1 I$ ~}
) n% V! J. S0 \! g( a4 X9 `下面插入
: r+ X, u5 b4 o* xBOOL TextCmd_rebirth( CScanner& scanner )
+ p3 B) k+ c y{, w; f' h- b1 I% p/ ?3 S
#ifdef __WORLDSERVER) N0 i7 f& e3 b; r# ^4 C, z
CUser *pUser;
1 _' ]% b' P6 ~- o) u- U( {pUser = (CUser*)scanner.dwValue;
! @' z$ `8 U# Gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 C6 N1 U* X) @2 Z& apUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 C; F* I+ H1 }3 Melse
& a# @% K8 f% i/ y5 opUser->AddText("你还未达到重生条件!");5 v( {/ C L7 {, Q" P0 u1 @
#endif$ m6 m/ S3 u* l3 P! `
return TRUE;) K- A- W/ y; j: Q
}
# j$ A- \! A1 ]9 e
$ g, Q% k( t) Z3 a4 y
1 ^+ b: q8 b3 u
6 E& n) {2 D# Y! w+ i6 E. N9 S5 S" f7 `
+ Y- _0 @% K/ D, F& P |
|