|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; M. I2 \. ^5 m9 u f0 _1 o9 k; s; F) F+ l4 o0 ~ s" e
Mover.h
# N+ |% V" j* M0 r( M' ^) ], [代码:/ g8 O; j2 F. @5 h# @* a1 \' m' P2 }
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü5 C* C6 z3 ~. q
6 }2 s+ v/ t9 C/ C8 o
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' m4 l1 K U- w; P, Z
1 j7 S0 n8 p5 ]然后你去mover.cpp添加
' v& U, i6 P7 [3 K) f. u; h5 j& T) D
代码:/ ^: a% v* H- ^$ N6 X& c3 [6 W4 Y* l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! C1 g. }$ B; G8 H5 T" e9 K0 Q% Y
{
2 q8 O+ p' I4 ]1 ^# [5 H" E#ifdef __WORLDSERVER% m. c+ ^" F$ ?6 O8 R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. x2 _, q9 g u. Y9 U2 Q
MoverProp* pProp = GetProp();
4 d: M. K) n( D" x! d# ~. e if( pProp )% |7 Y5 k* g" @- t: }8 A. |) m
{
4 `. h5 M& o; p {# p+ M& M9 j if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 W6 U# p. {6 c. b1 c+ V4 C {
1 u# X5 _' @) J8 p) @ AddChangeJob( nJob );
+ K1 |6 p. v1 m }else{
( C) b1 X$ e* J; p4 x0 y# q, [( c return;' M2 W6 b) |/ `+ L9 l
}3 t7 _) ?. R5 s% Q7 D
int nPoint = 0;
) @1 f Z3 i# d if( m_nJob == JOB_MERCENARY )
; u9 h+ D1 M. R) M6 B n nPoint += 40;+ A" e" J( c; E) G" |" G4 n
else if( m_nJob == JOB_ACROBAT )( }1 g/ }7 b( ]1 A' K2 o
nPoint += 50;: b4 n- Q t% }5 H) k* B
else if( m_nJob == JOB_ASSIST )
6 O% X- o5 N2 e: ?$ k' a; Y nPoint += 60;. C6 i- ~, f' ~9 q* |- z
else if( m_nJob == JOB_MAGICIAN ): c6 W% U J6 K' o7 u5 @) `5 a
nPoint += 90;
* k) @1 o, t5 w( a8 O else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( \/ G, Y" t2 D8 @4 B3 n- x
nPoint += 120;/ |& q0 S5 D1 k' T/ [
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 ^* x8 u% ]8 O4 ^0 K6 D0 t# t nPoint += 150;
- H& s4 r, R7 z# ]4 V( _ else if( m_nJob == JOB_RINGMASTER )* [/ S% z0 {3 ]# K E* z
nPoint += 160;) M& W6 O$ ~- V+ C# }
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 C. r4 u9 A! ^
nPoint += 180;" E4 c/ Z" |# w, Z6 I3 u: v1 P
else if( m_nJob == JOB_ELEMENTOR )
. b. @) ^; T+ t! } nPoint += 390;
0 B8 R; k) a( y+ G5 z2 r5 R else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! ^ f% t/ S6 z- W
nPoint += 120;
4 k7 x. l. R% z' y' v else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' i5 a- _! `- C6 Z8 `- G* e9 |
nPoint += 150;; @- T6 I$ K2 F! H( u- \0 i, K1 I. R
else if( nJob == JOB_FLORIST_HERO )
* d2 {) V+ J0 t: F7 A nPoint += 160;
' u) S" r2 [* ]1 c8 N else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ k" n6 F% ~8 ~& E nPoint += 180;
3 D3 g4 P& ^4 ^3 L, P. K else if( nJob == JOB_ELEMENTORLORD_HERO )" F- R& y) ]. ^9 {& k' ?* L5 f w
nPoint += 390;4 v, T4 u. z: [% o( \
) l- y4 r5 y7 s: H, x AddSkillPoint( nPoint );
e6 P8 P% W& l# q$ F6 b m_nLevel = nLevel;7 l6 W. H6 ]* w3 o5 h$ C
" j3 k% ^* M" Y3 A8 q- F* l SetJobLevel( nLevel, nJob );& `5 F1 v: u# ^5 F: k; E: a
m_nDeathLevel = nLevel;
/ T9 d$ s7 M) M! W2 Y- P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 B; x. f4 q3 S2 g$ i if(IsMaster())& _% I) M3 C$ W2 c
{' t0 g' S5 V+ {0 M
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: G7 ^* t6 i- W, V n" f if( nLevel > 59 && nLevel < 72 )# d" B5 s2 _1 h: S( E6 A
dwTmpSkLevel = 1;' u/ m" E1 d# l2 X1 s
else if( nLevel > 71 && nLevel < 84 )+ x, U6 _4 V7 G9 k. A
dwTmpSkLevel = 2;
( Z/ M( H4 _. @& C- t- e* ^ else if( nLevel > 83 && nLevel < 96 )
/ f- `: S6 O! k: {+ j/ X3 N! `, \ dwTmpSkLevel = 3;7 a7 T/ A% s; b& h6 y# @$ ~9 [
else if( nLevel > 95 && nLevel < 108 )
. L$ m* H# D# ~7 ^, d" A dwTmpSkLevel = 4;
+ f: Z0 k8 M0 `$ h2 B else if( nLevel > 107 && nLevel < 120 )
9 D) ~9 L, n) h dwTmpSkLevel = 5;
, E5 k5 \, l# e; a q1 }+ ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
: r8 h3 r3 h3 Z0 S: J- l$ j { % B( c$ L. B( m! q) F. v
LPSKILL lpSkill = &(m_aJobSkill);
. b# p- n( I4 A# U8 \# t6 ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ |5 b, v: q1 |5 V! g& o! { {8 z u, @2 P' A) B2 f/ p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 N2 @ R; ?- c. j' z if( pSkillProp == NULL )# u; f. c/ [) G+ A" r$ a
continue;
k6 @) Y, @2 \# ]4 e: m4 k5 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ a8 p! ~- ~* O; C" R
continue;& c, I+ W) q5 u& l# \& z% C' i% Z
lpSkill->dwLevel = dwTmpSkLevel;
* q$ T0 S" B4 x. M* t! p% N, q }& O/ l: N$ ^, |* T2 X! X- [' b
}6 z" }9 C. Y3 k4 Y. _ ]! I; j
}
/ @/ n9 ^# s3 X8 a) D: C else if(IsHero())
, N5 L G9 c& j$ g; C {1 S- Z$ X& @' O0 q0 Y, I0 i, C
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 w+ L) `, `9 X, L8 \8 h
{
0 G6 ~; a% [0 e, X- e& V" b' ~, d) K LPSKILL lpSkill = &(m_aJobSkill);
+ n5 b1 @; O8 ?# B5 {0 \9 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
! d h9 A" O' K {3 j" @8 k/ d9 D# o2 Q3 V1 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " y4 c4 G1 x, T) X" h7 ~
if( pSkillProp == NULL )
6 C7 X. C) T+ S continue;
4 D7 U% R2 ?; }# Q9 h; @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( @3 B, S0 X! e' v& H$ y continue;
3 o( v x' _0 G! \) T$ e( K lpSkill->dwLevel = 5;- A* P6 y7 D: Y) f: M
}0 F: i) L" D8 F% f. n5 N6 J
} ?/ @! ]8 S+ s- j6 ^
}
! @/ r8 E! @. A: b1 r% N- v else if(IsLegendHero())
) k W$ t+ K8 n+ k( F {0 X. b6 Z: k9 `: Y( O3 ?+ L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 O9 _& h' U) G3 S4 `; \ {
. s* m2 b p: `0 m0 l! t* m LPSKILL lpSkill = &(m_aJobSkill);
, \7 Y/ y7 h' p! h6 l o if( lpSkill && lpSkill->dwSkill != NULL_ID )' T7 c3 r% J& \3 i( H" A
{6 a1 J1 x: V0 R8 ?+ c, o) a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 g& y9 R# a" z! _# t" d* Z% B9 M. @: k if( pSkillProp == NULL )
R5 r- ]1 N8 y) m3 x- B continue;: s' V3 y, g$ \. r0 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) `( n) n' e/ X# n# ? continue;, A: C. x; u' b- Z+ U
lpSkill->dwLevel = 5;: w7 O( |2 R% x$ r* t3 ?
}
- }8 u2 v. \: v; @* c% h7 x }! E" O8 S/ C' l! c8 t/ N
}0 f( y7 w1 _( x1 P8 C7 x+ w7 [
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 p! b1 `2 I8 B( X. C
if( bGamma )
. \* @5 h7 g6 f {
' e7 @0 i; k' i8 u. ] m_nExp1 = 0;
3 }/ ]0 p% E- G* ?. c Y5 n( \* h/ f }
! |3 y% e) {4 a7 A1 O" `' N9 H9 m' |, w( _( V6 g0 S5 C6 ~( [
( (CUser*)this )->AddSetChangeJob( nJob );
$ d# u( `, U. [" ^ F$ N g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) S) k$ J9 h: L% ?8 G4 t2 C' p3 {
. V8 h* L5 p, P' v N
: H5 S0 y7 u3 @' O#if __VER >= 11 // __SYS_PLAYER_DATA
* X. U9 ?; H$ a g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ `/ J" F/ j" ^#else // __SYS_PLAYER_DATA
& r. W' e: Z, b' p F; y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
a; d( u( s8 q3 a/ P/ |1 e) b g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 E( t, h4 Y5 n0 e3 F% | if( m_idGuild != 0 )
5 I( n/ @8 A3 \/ ~$ Z) b g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 |8 I' M2 D2 K( a
#endif // __SYS_PLAYER_DATA s D. k- H- X
SetHitPoint( GetMaxHitPoint() );' t# p3 ?) @7 t. ]" Z
SetManaPoint( GetMaxManaPoint() );
# S2 m! a$ E0 E* v( w9 ~& I SetFatiguePoint( GetMaxFatiguePoint() ); L3 ]$ X. ], X0 v7 X+ z' ]- ?+ E
if( nJob >= 1 && nJob <= 4 ), t# z' T2 B8 j4 ]9 ]* {2 r* i
{
. K5 y& g0 \ B' x v m_nStr = m_nSta = m_nDex = m_nInt = 15;
" Y) d* z2 j B3 \4 \, e m_nRemainGP = 28;
' @% k1 D1 p2 ]0 E2 s4 m# n$ W }7 T1 I' k$ ~5 ?# g) P
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ D q# d5 |9 y; ~8 C' ] {
& G3 m7 F' ]* ]' w4 P m_nRemainGP = 118;
7 h+ m, X. c3 l+ n( r. N- K- ^5 n //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 @, u# J! F" R m_nStr = m_nSta = m_nDex = m_nInt = 15;
# U$ g" x% P" t8 g( G* p& U8 d }
Q7 D9 ]4 m+ S% c6 V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 t- n+ f3 ]6 B1 _0 ~ c2 F {- K" _3 @% n- X2 Q
CItemElem itemelem;
6 W4 h$ e! s! r& _8 x; |2 Z itemelem.m_nItemNum = 1;% a' B+ H& n" d
itemelem.m_bCharged = TRUE;
, N7 Y3 Q7 n2 b- _ BYTE nID;
; ~/ Q6 w) D; A4 b# ]7 X7 F( p6 n3 f% y$ P I+ W& s
if( nJob == JOB_MENTALIST_HERO ). B7 A. B" p% K3 h8 u" { h! k" y, D
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 _( s! g$ @3 }$ k I2 Q9 p
if( nJob == JOB_FORCEMASTER_HERO )* F8 @4 K. ~' g# \& F1 x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( w2 z+ B' {6 y1 i8 Z2 P- q
6 l; r; ?2 k: x
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( \. q) n( F- Q3 h" m9 m1 f }( n) O! e* Q/ R& A k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ n! _# r2 @/ @; v6 B1 y( h# ]+ o
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( Z" D3 g% o. ?6 W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 `. q/ K5 u% T$ ^7 |" n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 `* Z3 M) H: h; A) ?, Z
( (CUser*)this )->AddTaskBar();*/& ^* V4 n" z* G; S' G3 e5 b
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ Q0 i8 I5 S- b5 i5 r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, X4 t7 ^. Y( j% Y2 v# e ((CUser*)this)->CheckHonorStat();# S" m r, E/ I' o, ^; u: v
((CUser*)this)->AddHonorListAck();
+ R5 o2 P; ?8 m% A g_UserMng.AddHonorTitleChange( this, m_nHonor);
{3 S3 G v! E4 H9 n+ W#endif // __HONORABLE_TITLE // ′Tà?) w j! _; C* P! \: T n0 g3 \
}
0 o# V3 J4 A, U& G, d% S#endif // __WORLDSERVER4 v7 _% y6 I1 J; J$ k7 H. e$ e
} K+ Z% G$ y8 t: A H8 ]8 v
6 ?. K6 R# p, W( @: }, \
然后你进入functextcmd.cpp并添加以下
2 w9 x; x0 E- f1 b- t# T/ ^% W4 r* u
代码:6 M4 [) V5 p1 l- @
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! r0 d" c& |2 `# w6 C# f; |5 \下面插入
% M' G) r {0 r; p( QON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . \' T5 L7 c( p0 l/ m2 B
' |9 j5 E' J+ Z) O* f6 A* ^
然后你去' J* i* M( I2 d0 d% I" h
9 _9 W h- e/ Z" |
代码:4 I1 k1 K: r& R6 B. X6 Z
代码8 n5 _ l) A$ G6 `, s
BOOL TextCmd_ClearPropose( CScanner & s )
4 t7 G, p2 r! @5 \* a* Q* x{0 p0 Z: D! s& w' @9 {0 d& j( ]
#ifdef __WORLDSERVER
3 ^, ~' _+ A& z CUser* pUser = (CUser*)s.dwValue;
5 t3 I& [- U' j g_dpDBClient.SendClearPropose();
6 {2 v$ P( V: g" K7 q1 j- k#endif // __WORLDSERVER
" \4 x9 |4 G! l8 o5 c8 B return TRUE;( |, @) R y( X4 E/ v3 L7 I6 u Z
}6 S1 s- Y9 E6 d3 D4 e b6 x! \
下面插入 D7 P3 E* H+ q K: o
BOOL TextCmd_rebirth( CScanner& scanner ). {) t$ F8 V4 Q2 a2 ]
{
; O% u' m) C5 o0 ^) Q1 Q' k#ifdef __WORLDSERVER1 a8 U7 h3 N: Y/ I) }
CUser *pUser;1 j, o' ?0 h/ w. t- ~
pUser = (CUser*)scanner.dwValue;
, O0 x. [' F( L" Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 Z- I# b# c; _- T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" ?# s2 d9 {( X) j- u
else; o; ^! P( E1 n
pUser->AddText("你还未达到重生条件!");
. f& K1 G# E. b; r3 d#endif& I! z. q' `: e4 w2 _/ t
return TRUE;
* h# W, O$ ^6 _5 e6 ?* K} 6 r, v- B q9 ]) d0 w" K
# Y9 L8 D7 t3 d% N! l0 f4 S! X
, K6 N; J- i6 j. d* h Y( l$ j8 q: x2 e7 o: \* P) j0 }3 w0 W
8 P# @$ {4 z* l5 Z* h$ Z8 |4 l6 m
|
|