|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: U$ n3 A; G: R2 ~- R
" v8 c6 P# C' r8 d# I4 p5 U
Mover.h
* A$ L( { w9 Z$ H$ N+ y8 J代码:
2 v/ c) z- y- ?( L* M找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü y8 ?6 O$ ~ _ x! t
6 ]6 W8 g8 p A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 o% Q# \7 T: V. l6 C6 ]* u
+ y. j6 f9 }8 ~. U% q然后你去mover.cpp添加
! w. H6 X7 r5 x* ~7 @0 t: S& l8 L5 M0 x9 q
代码:
. E1 ]8 }* p# ~" i1 l* D4 wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( Q b# ^ h! J, ?{* f2 D6 G3 }& D9 q8 g8 j- g5 C. h
#ifdef __WORLDSERVER5 q2 l( V; c( G3 y+ `- h3 n* |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% K" I; P( x Q7 a- i' p9 i7 i5 s MoverProp* pProp = GetProp();
4 M5 ?# R' a5 v8 H; R" B if( pProp )
* V5 V' h: H* f B5 a {- w- ]' Y6 A" j4 @/ w2 {+ D
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 m6 F( E8 {; {6 h% ^
{
: F1 l2 N/ D! h, ] AddChangeJob( nJob );0 O% W" S! g7 i2 x+ x% b) T# `
}else{2 }% t: E5 n: o9 Y, ?
return;
- n. E) Y" K; t% q1 b- X3 q }: Q. Q& {6 w! s o; s
int nPoint = 0;' W5 z. p9 g! p# Y
if( m_nJob == JOB_MERCENARY )
) n9 ?* r1 z( w5 s/ ]! |2 A nPoint += 40;
% L8 w0 a4 S4 d else if( m_nJob == JOB_ACROBAT )7 @: v' d7 ?- `) z- E5 u
nPoint += 50;2 X) B" \+ T7 @# P- D6 F0 _
else if( m_nJob == JOB_ASSIST )
; d8 K0 t8 R2 C0 R nPoint += 60;+ _& ]( {3 D6 a- Q6 T F: A; E7 C
else if( m_nJob == JOB_MAGICIAN )3 B$ R5 t" T. p: I3 x
nPoint += 90;+ }; u7 i! C4 [/ W: y# V# t! S4 M) I* o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). g# `3 t9 a; C# r
nPoint += 120;
& Y, ~' g. s( h& N4 R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ _( K3 p: |% e7 p$ J nPoint += 150;
4 u1 m' I, j, m% C3 Z3 b2 A else if( m_nJob == JOB_RINGMASTER )/ B" e+ ]) ~3 b. u) \
nPoint += 160;
5 S# Q5 A2 O% U2 z( r# j' y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 Q" ^' u, q6 z+ N8 z nPoint += 180;$ G3 Y( v1 }4 u) P( ?0 j
else if( m_nJob == JOB_ELEMENTOR )
) y2 ~0 t+ A3 E0 i nPoint += 390;. S( \6 ]) a4 q% T
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# U# V, A" J/ u& C nPoint += 120;
z6 b' I( p. s# s- {. A$ J$ y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 L8 H& D* Y: ?& y: {
nPoint += 150;9 c' t i' h" H" P9 P
else if( nJob == JOB_FLORIST_HERO )
& {$ k) k( y" R! H a5 ? nPoint += 160;, C' u2 `% w4 v9 {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. V; F9 u/ V* k( P: r- }3 [' ~ nPoint += 180;
* Y" C! b4 W4 b' X' W else if( nJob == JOB_ELEMENTORLORD_HERO )
* h- y$ n9 h5 z% G nPoint += 390;3 Y% x8 j5 _5 n+ p
0 [3 p0 Y9 T+ `( h' i* |4 D
AddSkillPoint( nPoint );
) ]9 j2 w. o; ^3 S m_nLevel = nLevel;
. y: n# x3 C! a! n$ L" }; C6 ~& L) k: v0 w: J
SetJobLevel( nLevel, nJob );7 W- B+ X e; p( F+ x I( ~
m_nDeathLevel = nLevel;
3 f, o5 X6 n' Q3 v X. A6 N- B' }#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 Q1 W2 D6 f+ _5 L. R2 y0 M8 m
if(IsMaster())7 }3 n3 P1 E1 D
{( b' Q0 Q4 T' f8 ~9 W- K) ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 D# a( e: g& w' b6 t: { if( nLevel > 59 && nLevel < 72 )
' j! j" q# _0 }: m8 y* u) a. k+ L dwTmpSkLevel = 1;" R1 m# f( ]* n7 w5 ^7 V
else if( nLevel > 71 && nLevel < 84 )9 x2 ~# {" M: F3 e d/ s
dwTmpSkLevel = 2;1 [8 N3 Y* `9 K% Q/ a; p# m
else if( nLevel > 83 && nLevel < 96 )/ s, W0 R, e% d3 U7 A' m* P# a
dwTmpSkLevel = 3;- _ I0 S; f* ?0 p! a7 ]
else if( nLevel > 95 && nLevel < 108 )+ k2 o: E1 d$ P6 J3 l$ t, \
dwTmpSkLevel = 4;( o# E0 {2 F2 M. M
else if( nLevel > 107 && nLevel < 120 ), Y# T2 m8 h* w& G& n* H
dwTmpSkLevel = 5;
8 _& z6 |# J; s5 }9 Y! W$ n for( int i = 0; i < MAX_SKILL_JOB; i++ )
# J [* E$ S u$ _/ w1 q {
" w6 K. c" e( M1 i9 N! l LPSKILL lpSkill = &(m_aJobSkill);
) N1 X" r' q: |8 ~1 I if( lpSkill && lpSkill->dwSkill != NULL_ID )
; ^7 {# i3 P0 l# N# C {
7 E( T, Y, N# I7 M" s# { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 f( u: m1 Y( ?, Y! l
if( pSkillProp == NULL )
% h. c8 C; \) O$ D" d continue;
1 p6 C# k+ |5 v" r6 T' J$ M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- R/ v; q# G4 c7 i" y* r
continue;
W) r, q3 X9 ^/ b' V lpSkill->dwLevel = dwTmpSkLevel;
1 m0 e; l! C+ o" s }7 B5 [/ N% q3 b+ w. ~
}* b/ I# Y' n& a2 d& J _: r$ n
}
2 V2 C3 d M' w* h' Z9 ]5 g else if(IsHero())8 q h( b8 @ Y9 \, G, i
{+ K" s3 @' e5 R: n
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . q7 a6 E0 r/ N6 ~ B7 i
{
* k" R' V H2 a) j/ x LPSKILL lpSkill = &(m_aJobSkill);
( @" a; P/ M& v F! [ if( lpSkill && lpSkill->dwSkill != NULL_ID )6 @: O6 q& J# K9 [+ B
{
/ {. t: C9 k6 j( W' ?: c: V( K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 k m$ v# c9 q& w5 c& Y5 X( t$ a if( pSkillProp == NULL )8 d. {1 W* e: A9 _) p5 d
continue;$ u5 z' j6 }$ Y( F9 m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 C5 T& y& H0 H' m3 E8 f
continue;
- d9 v8 Q/ k: n7 x5 v6 S lpSkill->dwLevel = 5;
0 \* m" c, H' r/ q( } }
$ E+ y! P4 C$ V/ N1 y0 r }: C1 i h9 o* D2 S* a% N5 D% A+ {
}9 \, n5 T r0 W/ H6 I2 P1 a
else if(IsLegendHero())" D8 M S1 n/ A. h) d
{+ @7 X& k1 g3 L# K1 I: A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , U' F9 [, R% }6 r0 X# H) }
{ $ {- F7 D& ^+ h% j4 m
LPSKILL lpSkill = &(m_aJobSkill);
. ~6 z- k# R% w if( lpSkill && lpSkill->dwSkill != NULL_ID )
- i( |- e4 ?8 V0 z/ T! c1 n {# h8 \' S: g+ d7 c. C# w# {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % H1 g% N9 k6 T
if( pSkillProp == NULL )
# d& A' A. J& M( x0 p continue;
4 @7 x8 h: ?) y5 K+ _% @# M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& r( n; Q7 M# E9 X! c# k# ~# E
continue;3 G0 s3 o0 V: \1 {# G
lpSkill->dwLevel = 5;$ a0 ^" T+ j& Z0 Q7 P4 h
}
* O; D/ p7 `7 @6 k9 i6 |6 z& @/ | }+ n# p( `; \# r1 N* l# ` [$ x
}4 c6 v$ e3 b8 U- y' b5 X
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 O8 m1 h$ B/ u
if( bGamma )
% v' s$ K! L0 j% P: Q6 v" M+ M {
. |1 s; f- M- |9 j7 R m_nExp1 = 0;3 S7 u p) Z. f7 ?
}" l, t# P8 _6 ~" e
, ?- s' c. p6 ~* V ( (CUser*)this )->AddSetChangeJob( nJob );% q& A4 ]# l2 I
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, n5 r3 Y' k; X: X( x) `6 a4 R, \$ |4 c# G: t5 `1 E
( G7 r4 l) ~6 }8 |+ c; b1 s#if __VER >= 11 // __SYS_PLAYER_DATA7 z9 N1 \! {2 u
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! l: C2 j$ F- [' [) T5 w/ o7 u#else // __SYS_PLAYER_DATA
- b$ d2 q& i- A$ O6 h g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; m( z$ _9 {7 V% t9 Q+ T
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: ]! P% c. R$ j1 o if( m_idGuild != 0 )
) J5 A5 f$ I3 W/ _3 \* @) L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ ]& b7 W& m/ p; m" l4 m( q
#endif // __SYS_PLAYER_DATA; J2 ^; `; u9 u
SetHitPoint( GetMaxHitPoint() );
5 e; K/ [; I% L: W" C( q; o SetManaPoint( GetMaxManaPoint() );" X* ]1 D- U3 a! M- Y
SetFatiguePoint( GetMaxFatiguePoint() );
" U7 `& t% G8 M. H; k9 o, P- S9 v( ^$ T if( nJob >= 1 && nJob <= 4 )) s M7 z: n3 k0 ^
{/ H1 ]; e9 K: d: s% }' N# s$ H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 x. d' R" X; `% @* [) m# W& c m_nRemainGP = 28;
' p4 Y4 `9 N7 ^- {6 H }
$ E! R7 {! D* h, m5 Z3 Y8 V if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 P9 h" h& [6 w4 s {( L; I; M3 L6 k* ]
m_nRemainGP = 118;; R3 x6 Q( p* ]% x4 }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ }0 g7 q, m7 v/ V* |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, I3 A! N* m: L: n }7 z5 y# U' n( j5 {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! a1 Y) L, E+ i* l {
7 G. r1 h) }7 w3 U% U CItemElem itemelem;
3 r0 y& d6 `+ p& _; N9 F* S* v. X itemelem.m_nItemNum = 1;6 [, S# k# ^- g3 L
itemelem.m_bCharged = TRUE;2 B! u0 |5 |+ H/ x
BYTE nID;4 ~ e. l8 e, E7 z8 P: g6 r
4 V4 W% C, K1 S9 ~6 D! P: o8 { if( nJob == JOB_MENTALIST_HERO )& ]$ l: }' y6 a% }. S Y9 I
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 I& ~$ u, @& G if( nJob == JOB_FORCEMASTER_HERO )
) g3 t6 {& J8 R; u0 { itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- e; M) w/ M, q' V0 z4 Q
- s5 x3 [+ R: F" E) B ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 O( k5 I5 c) Q! P- s }
# X8 k \0 L0 ^5 @$ Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: J8 Z# `, A' E3 X5 f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& P3 l& H8 e7 U9 A ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- `& H- }6 B4 B' j/ z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 r& ?: D) [- ^ ( (CUser*)this )->AddTaskBar();*/
! ?- T; H, e, l" k0 R3 t' U% e' t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 I8 D3 U' p- k& f) o4 Z% ?#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 L8 j8 l$ I! X4 N' w! F ((CUser*)this)->CheckHonorStat();0 W8 h# K0 f5 `& s8 h
((CUser*)this)->AddHonorListAck();' b+ p. y$ ?5 a, J0 O( ~0 w" I
g_UserMng.AddHonorTitleChange( this, m_nHonor);* q% T6 Z) x8 V* x t2 b
#endif // __HONORABLE_TITLE // ′Tà?
- u! d8 |. Z- R% k- E) f9 a }; n% m- C+ W h$ v" b- H
#endif // __WORLDSERVER- C. i( C! Z( v" w% ]
}
) ]' G' ?6 |. G* O7 O$ q0 k* z% _7 m) A/ T
然后你进入functextcmd.cpp并添加以下
0 E: J% [+ J5 `5 n5 d) u \$ M s! Y& \2 ^! k H5 x
代码:+ ?) ]0 ~0 k' ~& ^: ^7 m t( `
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 h5 _; a* y; G; ]" \7 ^" U- E下面插入, \* ^* Q) U# b$ }+ Q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! Z5 i) @( `/ j9 j7 ^$ J8 q
2 X! x9 Z, |7 Q& t9 e% G然后你去$ B. W8 ^* r1 g* M Q7 X
$ P0 p( C( ]8 Y* y+ l. `. l$ s
代码:. x' E: @8 ?" y5 j8 y8 ^# x# \
代码! N; u+ p# j6 F4 m# H3 Z
BOOL TextCmd_ClearPropose( CScanner & s )3 y1 F& |7 v, ~! Z! B. l
{
# O2 ?/ e2 U* O. M0 t( Y4 q#ifdef __WORLDSERVER
$ H2 }/ v& C; q2 i CUser* pUser = (CUser*)s.dwValue;
4 x; v' v0 H8 T* E2 W2 B M g_dpDBClient.SendClearPropose();& w" p8 `# |1 ^) ~! {
#endif // __WORLDSERVER% k3 R( r. g: ]: u7 O
return TRUE; a$ e I" X, v8 m; J
}
; e8 B: x7 }) Q. _下面插入
# ?) V6 \) h9 X8 iBOOL TextCmd_rebirth( CScanner& scanner )+ U1 W2 s$ ?! ~5 ]7 F0 o* U
{6 q2 `8 o0 @/ x
#ifdef __WORLDSERVER
; K( o# ^2 [& D2 ^1 n% n% ]* ^( nCUser *pUser;- t4 H; n5 C5 U9 c d# g) \
pUser = (CUser*)scanner.dwValue;
9 x$ p& M/ l5 o+ I" b$ k6 jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: d1 ]" G$ c, U5 T: X: z3 mpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 B0 r; s- R) q: i
else
2 k) S% q! a5 H- [* g+ XpUser->AddText("你还未达到重生条件!");& c4 ]! b% s; f! ^ F: o& W+ b8 b
#endif3 O6 n6 t1 t4 m* I/ j- u, O* U, u1 [5 W
return TRUE;
( X4 `( k( B- y}
( i$ A. X! W3 C" G0 u, [$ Z% y5 y" E0 s& X M8 B
, [3 T6 H' q: Y5 }. L6 L; {
( m* y+ |+ t+ x6 u& S
: i# W, b$ @8 c/ e8 H& A. v# } |
|