|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 } W5 w8 M) x5 z2 I6 _5 b: F& ~0 W( a# z1 J* \2 t. x' K
Mover.h
' J# e, x1 I, J5 b+ u代码:2 | N: n# v; p* [/ y! B. ?
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 d( ~% h- v3 }3 c5 y2 G4 C6 f" T w0 G/ Y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) t! M4 B+ j) H i( g. m; O/ g/ }
" T/ a4 c/ U; k V# b( g# d然后你去mover.cpp添加, x, H7 {! m5 W0 e; @% `
: w. p0 R( O7 q, r; \7 ?代码:9 U0 l$ ]1 B5 N7 o) O- A$ C# J
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 c! V" ?. o0 g' L{, w9 t2 i; H) M! E1 @- ~9 s
#ifdef __WORLDSERVER" h# C2 B& L& w7 S& S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 y! l4 r8 G6 A: d- k MoverProp* pProp = GetProp();
1 @7 d+ H2 T( s d6 A0 [4 j! G7 F4 ^ if( pProp )( g, O4 c- @4 {3 N
{
7 b# h3 J; [1 N4 F- |4 T; j( ]. S if( nJob > 0 && nJob < MAX_LEGEND_HERO )* r/ Z6 k7 \- W4 W6 h; i
{! y( W( Q& ?3 T8 d9 s6 z1 M
AddChangeJob( nJob );( P. j0 D9 g0 v; [3 C5 t+ l
}else{) x5 U; b1 R$ y" S+ V8 S
return;
/ h5 o, Z, B0 Q- J- V. n }
5 g8 _* q3 L+ W0 ~ int nPoint = 0;
% N( B5 B' U+ E# ~% s: x7 r4 a if( m_nJob == JOB_MERCENARY )
6 m- x3 x1 t7 G* c% X( u nPoint += 40;+ Z0 z4 a7 _5 w
else if( m_nJob == JOB_ACROBAT )7 b) T9 u6 g B9 O& ]+ ?4 v2 [
nPoint += 50; f1 i# f+ @7 @: U
else if( m_nJob == JOB_ASSIST )
1 f$ e U2 l6 I- w1 b1 |* b nPoint += 60;; ]7 X9 [5 c. Y2 J% F( ^4 \; z
else if( m_nJob == JOB_MAGICIAN )
z9 q/ r! L* F$ Z& H! `- J `- U3 ~ nPoint += 90;
/ C+ N" R6 D& B$ l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( k: d+ R/ y$ s nPoint += 120;
$ L( f z* f) J# S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), m/ J- R, o' N. n8 {
nPoint += 150;
9 s; ?' o6 n: t: ?, u' { else if( m_nJob == JOB_RINGMASTER )7 f# G; P" v6 Q; S$ k" J& o; F
nPoint += 160;) L- o. T% T+ w
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ Q- |6 {7 Z: y7 f. O, o4 c
nPoint += 180;; t* C- I& Z; A+ K4 s7 s5 T% ? o# S
else if( m_nJob == JOB_ELEMENTOR )
. r6 d4 S- v- h nPoint += 390;
l: X) Y# a2 ]: T else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' W0 A9 P* G+ M g9 C1 K. L nPoint += 120;9 o7 f" j& ?# s# x/ x
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 s. D. [" Q/ n/ {! L) C. R: W
nPoint += 150;
! a; _2 }# D2 [: R* W5 c6 _ else if( nJob == JOB_FLORIST_HERO )
) q9 P. a2 O5 E' I5 f, g nPoint += 160; w" g0 n8 s; ?
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; G: D$ Q. w" n( \- `' q3 c nPoint += 180;# M5 {( i0 o9 f9 m0 G. j5 I0 y
else if( nJob == JOB_ELEMENTORLORD_HERO )1 W- O# I$ j7 a
nPoint += 390;. F2 l- L* Z9 }+ o' {, t, f& S
: b1 m6 }, x. M- e2 q+ u' |: I
AddSkillPoint( nPoint );
7 o2 s0 ?: P/ M" | m_nLevel = nLevel;) |: K1 {/ } ^1 m U1 b( ? L& ^; G
) T- x3 E( ]# n f! k+ y( ^0 E: D
SetJobLevel( nLevel, nJob );! T# |, R% U6 s4 O" q1 w
m_nDeathLevel = nLevel;7 }3 k' `: P: d+ d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. H6 [& p, f3 \" A% L [) Y8 J if(IsMaster())
2 r8 I$ Y. W4 {' i% n, D {
" M9 r) m% n" w int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 |' n2 n7 L" a4 ~' I! F
if( nLevel > 59 && nLevel < 72 )8 E) l- O8 }8 \- U
dwTmpSkLevel = 1;& q J/ Y% m+ l6 R
else if( nLevel > 71 && nLevel < 84 )
9 Y4 t6 u; S4 Q' q6 S ]& ?) ~ dwTmpSkLevel = 2;
' H1 t% `$ o8 D else if( nLevel > 83 && nLevel < 96 )4 ^6 x+ C6 q9 t) z: R
dwTmpSkLevel = 3;
$ _1 b5 l# r0 [3 b! ~ else if( nLevel > 95 && nLevel < 108 )
9 d5 Y* \8 S9 H dwTmpSkLevel = 4;( e! \6 B4 f; N: U" n
else if( nLevel > 107 && nLevel < 120 )
) S& Q# H, C. P4 h/ T) R+ } dwTmpSkLevel = 5;
0 A: I1 m0 _7 h; D" i for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 q4 R& T$ Q- v @+ k
{ 4 r( \# T1 z4 i+ j' P
LPSKILL lpSkill = &(m_aJobSkill);
: t+ v5 R: ?9 _3 L9 n if( lpSkill && lpSkill->dwSkill != NULL_ID )
# G6 T# M1 g" D: O {: l' x2 `. a; |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 R! O& W# r2 |9 L% Z4 J" N if( pSkillProp == NULL )
9 W5 ~- `1 r2 l1 C' \, H& ~9 J continue;, U( x+ q3 X. x' M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# ~# _1 J2 C, k* Y0 C; V continue;
/ P1 C+ O& }8 X+ E9 X& F: k1 y* Y lpSkill->dwLevel = dwTmpSkLevel;
8 `5 U+ F1 G6 ] }6 Y" a* e4 |1 Q5 k
}
' r6 |, S' t0 U/ d: ]5 m }9 _' F3 N) N7 a
else if(IsHero())
$ L7 k7 P. Y+ T8 k# r {7 N; ~* H/ j& ?; B" h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, P9 u U8 R& l- U- j {
3 m6 t7 c+ ?; Q. p5 ]: n+ a LPSKILL lpSkill = &(m_aJobSkill);
4 M; k8 A. @( r& B% b5 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 }" y( Q2 K, a C6 H. P {1 h6 U8 w/ f' ^: L$ T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % H$ }' o! w$ B; \7 d/ m; p
if( pSkillProp == NULL )8 w; h+ P J! A7 b
continue;
! p6 o* W! N: \) B/ y) u% k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 t& a; _! |4 h8 K
continue;+ d0 C7 Z' c) W' f- e
lpSkill->dwLevel = 5;
+ b; W. k/ P# o( a& n R# d }& }8 {# j1 y7 ~3 l
}
7 Q. f: Q9 |* X4 M$ _" n }, N, [4 y Z, n; ~- i2 ]
else if(IsLegendHero())
' u- A1 L. |6 ] V0 Y& E( k {, G" b0 ^% A( c" Y3 T; C7 `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 b; m" }1 ?0 k { ! o& V3 {. h$ {- w2 G
LPSKILL lpSkill = &(m_aJobSkill);4 Y3 e; R5 z/ H3 `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 D( f# N* Z4 P7 v5 C" ^ {
7 E5 X4 B F# }2 J) {: V A- |7 f" z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ J0 O5 \) b/ j5 k! C if( pSkillProp == NULL ), O- a) n8 f$ N7 `0 Z
continue;
3 ] {/ F' X5 U& v5 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 s* l$ T( ~% l# A @ continue;
# k- |. ~+ j# \3 { lpSkill->dwLevel = 5;
% J3 O: F2 \; v- C+ |. c& Z# T6 g }
) k4 r- b' h, E8 g: A- J2 U }
# N- M% \! S9 M: X% e8 N, S d }
' w1 @2 h) r" a' Z3 A) s' ?( r#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 z4 }% z0 w/ U# y; p
if( bGamma )
1 u* y t9 P9 T& N8 U9 M {
7 o" x+ R7 u3 g3 s$ e m_nExp1 = 0;. v$ D" M' K3 n& F4 \
}
( K- }2 Y* H, W) g
" V s& `1 a# g5 [! \ ( (CUser*)this )->AddSetChangeJob( nJob );7 M8 m( F! J6 O2 n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 T: n% D4 W! ~# j3 O$ n) A
4 ^0 s) D* S0 m* l' c0 N5 S" u3 h5 _! k5 J5 R. U7 F7 s
#if __VER >= 11 // __SYS_PLAYER_DATA x( k6 |' f7 j4 l& Q( H* Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 H3 n( f+ k1 D) K
#else // __SYS_PLAYER_DATA# a' o3 B8 q& ]; E' S, r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 y* ^- c7 [+ u% H* U g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); ?7 H9 T8 Q2 m, k( W
if( m_idGuild != 0 ), @( o+ N7 {: p$ P- ~; h, h! }( B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); k, q9 ]; S, I D* R
#endif // __SYS_PLAYER_DATA
$ G. M5 H2 F, M4 [1 [7 f' p, w% X SetHitPoint( GetMaxHitPoint() );
9 q' J* p# |. H: z SetManaPoint( GetMaxManaPoint() );
2 B c; O& X0 X4 ^5 N3 d SetFatiguePoint( GetMaxFatiguePoint() );
U7 t) R7 @" j$ f# V; u if( nJob >= 1 && nJob <= 4 ) h" I- U9 O- w5 ^( q% Q
{6 F3 c8 o- D5 X) `7 d) i: q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* R8 _9 Y3 r3 O/ F* z H m_nRemainGP = 28;
x: R7 L# j( N5 \7 p. P/ @ }
( H% R. o7 e; ~) a/ T if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: T6 {1 {1 M8 U. \* L8 W" ? {
$ f% L) \. |" N m_nRemainGP = 118;( d: H# W6 Y2 a1 F0 R- v
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ ~* A. @9 Z. w5 d. |& L, k& \ m_nStr = m_nSta = m_nDex = m_nInt = 15;# c( q* M! p# c6 ?% w g
}
1 D" g% K) K4 }5 z+ @ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* y4 ?# A: X+ L- Y' ?& x( Z {
. w4 B3 U/ Y: B! @. x+ p CItemElem itemelem;- Y7 l0 [. o( P* X A/ `3 J
itemelem.m_nItemNum = 1;
2 ~" ?8 ]1 ], _( p6 Y itemelem.m_bCharged = TRUE;& d- U% M/ T3 R+ Y* T: N
BYTE nID;
6 c; W) k8 R6 ?1 h$ R- m$ x, w4 o1 Z; s2 W" C8 w
if( nJob == JOB_MENTALIST_HERO )( ^# ]) e- d9 w& G0 @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) H3 p, N5 G1 h' m* e if( nJob == JOB_FORCEMASTER_HERO )
F' g( J- k) x; J* n itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; F( F; J( C, N- l
& Q# ~1 Y) l, h2 Q2 L# y ( ( CUser*)this)->CreateItem( &itemelem, &nID );8 q6 l/ c% o/ q5 _2 _5 ^- w
}/ W/ |5 I: s j& O: F2 g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* R6 g/ _" C; U" y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# n' \' C! z3 `: F& C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 A0 p" B6 P, n0 U$ v) n /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 m7 ~! g8 S) B' b
( (CUser*)this )->AddTaskBar();*/
9 |5 J3 ^8 V4 S$ F0 O( i/ z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* M0 B/ [4 G8 u8 {2 D) M6 K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: D. s4 i7 ~. W6 {- N9 ` ((CUser*)this)->CheckHonorStat();; e6 O% L7 E0 S9 @
((CUser*)this)->AddHonorListAck();
0 e5 X( L% l' `9 ] g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 V# p' h2 {0 k2 C#endif // __HONORABLE_TITLE // ′Tà?
- O9 w( |& p; Q' j! F }
1 U) u5 o. F& j#endif // __WORLDSERVER- v: }1 _) |; k" u4 Q# y4 R: w
} # U$ h6 p9 K9 r' c* k
: i4 `- M$ k4 x( c$ X
然后你进入functextcmd.cpp并添加以下
: H" R) r4 L5 n) j( @1 E0 W) H P& j& N9 G4 O# c
代码:
$ X0 P+ ^$ C( Q R5 Z* |# jON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). B" q; i' A" `) @8 M( D% [
下面插入( t' a4 C2 u* H, v4 s' f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ r9 N/ U# F* f; o1 x0 V& i9 q7 A
6 W+ z& ?. z C0 Z% A4 h. |
然后你去
+ t, \ H. z$ r# _* ?6 @0 ?! w$ `9 F4 C+ d0 N( [4 ^) V3 l: p
代码:1 x; S' a9 P Q0 C1 t8 r& b$ d
代码
/ {6 ~# w0 I z( H8 U1 uBOOL TextCmd_ClearPropose( CScanner & s )
" _$ {* V( s+ a{
1 c w( S' Y- C5 [: ?' W: W#ifdef __WORLDSERVER5 M" |# X ]/ M! L2 Y. s' @+ h, _
CUser* pUser = (CUser*)s.dwValue;
3 V: a2 j; n/ l9 v9 G! \+ ~ g_dpDBClient.SendClearPropose();
, f, I8 t- k4 |8 J$ |#endif // __WORLDSERVER) z6 A5 z8 j# k: C1 Z2 v' e* E
return TRUE;
* H7 f3 Z. ~. i}
3 D+ y/ ?2 g- H; @) q下面插入
/ M' C# d& R4 d, x0 I; \BOOL TextCmd_rebirth( CScanner& scanner )2 o: o k1 W9 c8 \ t
{
R: S6 j4 g1 x2 Y# C; K2 ^#ifdef __WORLDSERVER
# c- Q+ S* L" J8 ~ I8 B* b# K& lCUser *pUser;
7 D7 ]. L( q+ }1 L8 p* u1 TpUser = (CUser*)scanner.dwValue;
6 `$ O5 c* a: d9 yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 @+ J) b' ?; d3 BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# F9 ^7 G8 Q" T) n0 T. lelse
" B8 E: T/ G5 m$ ] E- z% D+ JpUser->AddText("你还未达到重生条件!");
& \9 h, L$ k( Z0 J3 o* {) h#endif
/ ~2 c( Y% W. treturn TRUE;
9 b& ]2 W' p* A* Y% R} 3 [4 {! x7 {1 s/ I# o! y
" u4 i% z: H% |5 n% G7 W
+ J6 t0 }* F7 f3 \$ ?5 g1 l: ?; u8 g1 }
% A3 X" }, t# S, e
|
|