|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. T I# d* o$ D% Q. p* ?
1 f& J$ m6 {; l: LMover.h+ H4 J# @. {4 C
代码:
! X! x" ?& Q$ R& J找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) J+ i! u' O6 I8 O1 ]5 H
! f9 b) l2 |; Y( W' S
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 L1 B, c9 t/ [2 p- v
. Z9 ~5 o9 q9 W" s! w
然后你去mover.cpp添加4 C9 J4 k5 Y5 I o; ?& w, v
2 }0 ~2 ]; y U" E# X% Z
代码:
8 P. N, h9 c# [ `' e x( ~ Dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 Q6 T; s; q* \) N5 q- T
{4 Y% W6 N) i' O) i5 p" K0 |) g; s
#ifdef __WORLDSERVER
& D6 D; }' C. i5 G // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ Z* z9 t- W2 S* Z MoverProp* pProp = GetProp();* [7 E* ^+ d$ o1 L7 }" F2 H
if( pProp )
2 k2 u9 i" n5 Z' ^ {
9 |6 H2 H' o- x& z7 x( z) ~ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! h* X( o! l5 B3 t {
* g i9 r. g9 p$ f AddChangeJob( nJob );% X) a8 e4 i( |2 \/ s( U2 d( P
}else{
- x+ D$ @' U) V. m8 A, _ return;
7 {( H; Z5 n# R) k( I N) e }
% {2 ?: I7 Q: }& ]3 J, a1 i* C. T2 \ int nPoint = 0;
" G; D; C" I5 Q4 U9 w if( m_nJob == JOB_MERCENARY )
' v N& i9 p- d" b# F5 b. _+ l8 o1 P nPoint += 40;: W5 e( r& T5 ~8 C* I! q3 I
else if( m_nJob == JOB_ACROBAT )
4 i. Z' O V8 \1 e2 H nPoint += 50;' T6 c, H. R2 M7 s- S
else if( m_nJob == JOB_ASSIST )
: l# n9 V! \( t F! J/ Q nPoint += 60;6 ~; d" m' ^. H$ e. r4 W
else if( m_nJob == JOB_MAGICIAN )
1 M" O& @! j+ M% Q; g, ]4 o3 C: y nPoint += 90;
2 E; `$ I5 l/ _. T, t; x0 g1 ? else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 E* j- \' c! k. r nPoint += 120;- P, U& o& ~( G( F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' h2 }5 H/ a& }8 ]3 F. H
nPoint += 150;; g& n. o$ i6 [2 ]* n# k, H
else if( m_nJob == JOB_RINGMASTER )
/ I, @5 n& r/ [0 r4 V0 c nPoint += 160;% D: w2 g" ^' s4 m6 D
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ |0 t9 u' [3 ]3 R: G: T$ U- v
nPoint += 180;- W6 _* n) G+ r7 b0 C
else if( m_nJob == JOB_ELEMENTOR )# ]* ?6 l2 Q& |6 r* O
nPoint += 390;
6 s% b$ v, j5 Y3 e4 @ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' g( @ i0 x, K7 F. v& i nPoint += 120;4 H5 q2 B/ u3 N$ H1 {5 i6 Y5 a2 M6 I7 s- j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ U" X% u R" q: X) d' H
nPoint += 150;- @1 ^, a; h2 w) s; U$ u" R
else if( nJob == JOB_FLORIST_HERO )7 u! s6 g' c9 ^& f. I) W
nPoint += 160;. B2 D8 h" j j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# k* |+ C. M: V nPoint += 180;
& C6 J$ N4 P5 @, a$ R6 Z$ E% v3 a else if( nJob == JOB_ELEMENTORLORD_HERO )
" K% N- o! e( K9 L$ ?" x& L0 p nPoint += 390;
5 n) L' o9 j! f; r$ R5 H" B8 b7 Z: O" v: Q( R3 _7 f3 v6 B
AddSkillPoint( nPoint );) ]) ] O% d/ _. |0 M
m_nLevel = nLevel;
1 b- v$ a' {: t: b' ]- F& t& ]: K8 B( K" K( S) x7 i
SetJobLevel( nLevel, nJob );
! G3 M( ^# f+ W4 e9 t2 H7 v m_nDeathLevel = nLevel;& u% J4 J( S- ]4 y$ K1 [
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% x7 Q+ w3 m: K y! _ D, j( ` if(IsMaster())9 K0 {/ K6 U" G/ H* H
{* j7 Q& p$ O% U7 T% X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ V4 k w$ v1 g6 [& n) M if( nLevel > 59 && nLevel < 72 )
3 t3 ^5 \, l0 { dwTmpSkLevel = 1;
8 z* I8 E2 X H( \# B else if( nLevel > 71 && nLevel < 84 )/ |, e0 L& z* m4 j4 Y! M4 {
dwTmpSkLevel = 2;
* @; o) q7 R0 Z n$ C7 k6 Z else if( nLevel > 83 && nLevel < 96 )
. m, c6 `* H [- I7 p1 {$ J dwTmpSkLevel = 3;
: q2 |# J0 S( e# ^ else if( nLevel > 95 && nLevel < 108 )
: W4 y/ b6 t& \. C% G- c" e" c dwTmpSkLevel = 4;7 }: H- F( Y# b- z7 ~' S
else if( nLevel > 107 && nLevel < 120 )
2 K; B" v3 X6 W6 s( a# r dwTmpSkLevel = 5;, U/ K4 S, L1 O2 L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * E# `/ f& z# t( E7 \, v: P* Y: _
{
9 o1 |( r6 d% U T- F LPSKILL lpSkill = &(m_aJobSkill);4 w& G2 v# Z+ p7 `7 j/ V$ W
if( lpSkill && lpSkill->dwSkill != NULL_ID )" U3 v$ S! ?$ y6 ]+ z/ T
{# f+ C" k8 O) d" ?) ]1 o" p' W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " Q9 {7 D8 B' R, o7 q/ C
if( pSkillProp == NULL )+ p* D# |( N& j `% K5 _
continue;9 N% U% o. T; k% Y* J( V( M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 \- S, p9 f9 R1 H
continue; W' s, L5 o; G
lpSkill->dwLevel = dwTmpSkLevel;
* f# _$ }& \+ W% d8 ~ }
" c; @* B U' T$ K" H }
' {+ _" x( W0 `- v5 p }
$ {, K; x' d9 \4 _8 X2 Q/ B- J else if(IsHero())
3 O3 S6 g6 |/ Q+ q/ n7 h {
9 N) E2 e; J+ s9 k( Y" H0 O for( int i = 0; i < MAX_SKILL_JOB; i++ )
: r* [+ R4 w4 w& L) X ?$ G$ d { 9 C) b2 S9 @/ q3 [0 E8 n4 {# g& n
LPSKILL lpSkill = &(m_aJobSkill);
* d& i' k$ B7 p, }5 E- c if( lpSkill && lpSkill->dwSkill != NULL_ID )
' W6 x, I7 p% X$ x% Z# U$ o; W {
0 _5 j N+ H3 O6 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 G( D. ^3 ~& z& N( {9 C if( pSkillProp == NULL )
. W) a7 c8 g4 `4 u+ ] continue;( T1 `$ B$ l2 ]" `/ |& E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" G7 P3 o3 Q" w continue;
! ^0 j: y& w1 F0 g5 k2 ?& `1 u lpSkill->dwLevel = 5;( }' v( Z; ]) \8 c- f/ k* K
}
' x) t* M8 K( o" ]2 L% i }
& ~7 v ]4 n: h* |% c1 C0 @* i }
; L, O5 t( a: X4 [2 D: F else if(IsLegendHero())! | ^5 E% L% Q5 ^; a
{
2 J* p* V# ~" Y5 |' L1 q for( int i = 0; i < MAX_SKILL_JOB; i++ )
, S6 r2 w: p, q/ k9 P {
6 d- R. V: U8 Z; U0 ^( u3 }) I, _ LPSKILL lpSkill = &(m_aJobSkill);
+ ^2 l' ]% ^. P9 R if( lpSkill && lpSkill->dwSkill != NULL_ID ). m/ a0 e4 t: U( C9 }' w
{3 H5 f, V! X" g2 k: N$ l- a' S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; \# h! b( p; m( n8 T% L7 v$ u
if( pSkillProp == NULL ). F" E, q4 B! ^& l( J7 ~7 m1 f
continue;
^) D! l9 J6 x$ a1 ]: V8 f' o, W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 T- r' S' L8 k5 S/ ^
continue;
1 R$ ^& A& O; A1 u lpSkill->dwLevel = 5;
" `4 D/ K4 z9 p/ x z) M' c }
+ n$ W; M( _, t( e& J# ` }
' }7 E, ^. n' ~+ @: l1 u# W# H }
% h1 m8 H8 o- a4 [ I! O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# T6 p0 I6 _$ t) C8 ?4 |0 h
if( bGamma )
# z! ^2 E- u# N' U5 L {3 Y9 M1 n5 `4 j* \6 t) l z. P
m_nExp1 = 0;/ W' q- I) Q& Z3 q/ C6 l
}
2 t& Y5 h2 P$ k* F6 Z" }# x7 x- ?( K5 b- C1 I/ ^, Y [" Y
( (CUser*)this )->AddSetChangeJob( nJob );
( N* \. I2 b/ M+ F: X2 K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 r7 ?; w, G8 X/ ?) a* t% k+ j% M
( w4 F7 _4 g4 W9 k2 Y) F
1 G$ j# u& O9 o# u0 \. V9 B+ t#if __VER >= 11 // __SYS_PLAYER_DATA* x: _' ?& `$ I4 D" g( h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' q0 b. a2 w7 m5 A# w" W! H
#else // __SYS_PLAYER_DATA$ G' x" N, {' u C3 c) V. f
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ y0 S0 O5 v6 P7 O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" x' Y2 D- m L" W8 e+ \2 ]
if( m_idGuild != 0 )
' f: z3 ^ @. J& N7 D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 T7 y7 _* N8 M( L, ? e#endif // __SYS_PLAYER_DATA+ q6 g% M& O3 x6 I& k% B: D
SetHitPoint( GetMaxHitPoint() );. o& }; \6 @; v# Y
SetManaPoint( GetMaxManaPoint() );
2 F0 r. R S4 t6 `& d+ F' h; W SetFatiguePoint( GetMaxFatiguePoint() );+ h$ B* q) S* S p4 H2 `
if( nJob >= 1 && nJob <= 4 ), _) [' m/ z; f3 A Y% g& x) T
{
/ L6 F) c! l( y& D+ `* F6 V m_nStr = m_nSta = m_nDex = m_nInt = 15; w# x0 i8 w1 r) a! F- n
m_nRemainGP = 28;, l- i5 z& H" i. i1 s5 R% W
}
3 L! m+ X0 R. C5 R2 E* x if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% p3 G/ ^+ P+ t* T, J) \ {
; {; w( D8 i1 C, S, A* | m_nRemainGP = 118;" W# R/ L% L) e. N2 Y1 ?& w8 B s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% F) ^9 j# ]3 B, w4 ]8 o/ i m_nStr = m_nSta = m_nDex = m_nInt = 15;7 x0 \; {; R7 Z' u9 S
}
: [# H8 t3 i" k2 Z3 g' f/ t# d4 N$ b if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& y% o+ l [* t, P# n- w {
# L- I, ?: H5 I6 ?0 Q6 t CItemElem itemelem;; c' _7 Q# d5 f# q& h6 z, @
itemelem.m_nItemNum = 1;1 I/ T4 p, E0 K! x7 B @
itemelem.m_bCharged = TRUE;
7 T X+ Q/ L( p. U1 C% x$ w, n BYTE nID;' B: n" W: } f& Z
! \) K* _" _: p& z% P. ], \
if( nJob == JOB_MENTALIST_HERO )
. |. c8 F6 H5 U2 c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 t: h2 D! D$ B' B; T) c) S* N o
if( nJob == JOB_FORCEMASTER_HERO )# f' @/ f2 d4 z( Q" c% S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 ~8 |. f4 z f) _6 N
8 `% o* ]" i9 L- } ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 i' _8 y; t5 Z3 y1 W }/ p" K @2 n' l/ u. l
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ B0 _: Z" V* C2 ]8 @' s2 M
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); ~& g, M( @; _$ o8 N j9 g3 f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 m" Y2 L3 w! ?4 H3 O& A4 `2 F3 G
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& J$ f6 D5 I7 t5 O7 J" x- _# \0 s4 ` ( (CUser*)this )->AddTaskBar();*/
; M6 q: V8 \" B* i9 F ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 E( {) ?8 ^& t+ [4 X& R3 C8 {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ ~" |- N( G: H2 L7 M5 [ ((CUser*)this)->CheckHonorStat();& z( e% F: @3 T
((CUser*)this)->AddHonorListAck();9 _# z* ?, \* F% c7 h6 e
g_UserMng.AddHonorTitleChange( this, m_nHonor);2 y) p9 l4 ^8 i. S* x$ d+ r+ `
#endif // __HONORABLE_TITLE // ′Tà? ]- h* y- C4 R- A S; c
}6 b2 g4 l3 A; B. a! H) R) [
#endif // __WORLDSERVER
( q9 g7 h6 c/ n) R1 N8 M} & m( ~/ j; w# ?; T" \2 {4 e
/ R4 s" p; a% l: x3 I/ ~然后你进入functextcmd.cpp并添加以下
* g" y: k. n8 m" |7 w6 `$ ?$ j% l
代码:
. h* Z. ~* g1 ^; R# kON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 A; e# F! C d: j# Z
下面插入
Y# w. W% {. _+ LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! L1 _# \- |2 o. k9 V4 Y( p
" p; p( V7 K: R _ ?然后你去. {3 @* J8 F* D# N7 X$ f
6 J& G$ A& z M% k; h$ L代码:1 m. q& h5 m6 G1 X w' V
代码
* R# A1 X2 q# N+ _7 i% |BOOL TextCmd_ClearPropose( CScanner & s )4 q* @5 O; D5 `5 L! X+ n; c
{
# U1 P) k5 P$ s#ifdef __WORLDSERVER
S. ^; i3 E0 f. m9 I3 Q. N; j0 a CUser* pUser = (CUser*)s.dwValue;6 C( N H: p8 B' {! |5 n' \
g_dpDBClient.SendClearPropose();
. J$ j4 w& C- O#endif // __WORLDSERVER- G0 w! \$ P7 k8 |4 n+ v
return TRUE;0 ]: t) [% I8 a- _, J: o8 D
}
, |1 I8 _- i+ G1 n. U下面插入6 a9 C1 M+ A# N1 N
BOOL TextCmd_rebirth( CScanner& scanner )
O# J7 T" y! j( `{# x% l( v! w2 `' E
#ifdef __WORLDSERVER
2 E- o+ B& G, g! KCUser *pUser;
6 u5 B- U0 K2 d) P9 |) QpUser = (CUser*)scanner.dwValue;
- y y8 C! }4 J0 p! q( Aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 Y R. u4 T" `) |2 y) VpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: o1 ^$ u" }$ e' {% T
else
: c, a, L0 S" v$ i3 @pUser->AddText("你还未达到重生条件!");. R7 J$ B. P! [, i
#endif+ C' }1 T9 b+ T! n5 \9 d
return TRUE;7 b W% e$ V5 O* v. g& u
} , o# d5 S2 n9 M
) ?4 l/ Z1 Y* A
- e$ f) R' m/ x' _1 ?' M% h$ k
. I5 r. x$ p1 e# b
0 ]. A7 T7 b, ^+ U/ G, _2 O |
|