|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ b5 x. F2 X2 \/ p" H- {$ w5 D$ ~ {) a1 Z( \4 G
Mover.h' p. T/ `- P$ \! R' s
代码:" j7 ?* M8 Q; Y( Z+ @4 i; i
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 E# _5 t7 P; w* l; N6 @+ T$ O9 V
3 |# W J! F0 F: s5 v下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ b* ?# u' I. a3 Z
7 G( K6 ~! g* _然后你去mover.cpp添加
8 E3 F4 z$ W, c
" o3 f" {) ^) D8 h! Y/ o& H代码:/ t0 j4 M0 H. x( a0 a& y0 E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 a( m# p' v9 d* }{
1 _- z( D( w% W: Y3 u7 @" ~#ifdef __WORLDSERVER6 i! S. @3 ^' |8 T. K% N+ B
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) a( D1 T3 e0 a) Y* j* Q, t+ N1 E
MoverProp* pProp = GetProp();5 ?/ x6 K( s' ?4 } p" b. W( L
if( pProp )
: p( o$ c" h- h {* }! o/ D0 e, S% O* ]( V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 M& g H7 }( A( ~7 a
{% v. v- t3 {, z% ^5 `3 {
AddChangeJob( nJob );( s( K7 {/ q0 M0 w
}else{
8 n& u. M& i5 y' c. z return;( `. y: ?( i! I0 r
}( U O; D5 Y* @
int nPoint = 0;) p- G# j$ X0 u% C
if( m_nJob == JOB_MERCENARY )
l# j! H: g6 e8 Y# X# R+ l$ w nPoint += 40;2 E1 R/ I3 Y1 ?/ j4 `- Y/ \
else if( m_nJob == JOB_ACROBAT ); w+ D L1 I# J( S/ ~. N. o
nPoint += 50;
& p3 y7 N: L% q5 j( R% I" r else if( m_nJob == JOB_ASSIST )
8 @/ C( S3 O5 G$ }; n4 t nPoint += 60;" Z5 _# x8 u" e- H2 ]
else if( m_nJob == JOB_MAGICIAN )! O# f, s" Y- P5 p3 O
nPoint += 90;
5 E' x& Y! c$ ~0 K1 z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 A. |2 i( o% Q( Z' `& l0 T
nPoint += 120;
# B0 C3 G, S: r J# } else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 M& H) b ]* `, A" O
nPoint += 150;
; v6 G5 z- W; ^2 }5 s @. ? else if( m_nJob == JOB_RINGMASTER )2 m7 q9 y. L- o+ _% ]" v
nPoint += 160;
+ m) @+ u0 i5 q% v0 Y$ i else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) q3 K* I1 [7 D( n" Z r
nPoint += 180;
k# h* E, T( w9 y6 q& L p else if( m_nJob == JOB_ELEMENTOR )
8 M1 q4 M# P0 J! [ nPoint += 390;
2 o5 Q5 T$ d9 \3 X- n$ f/ ^ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 q) p, [' E* j3 {6 k" ]2 |
nPoint += 120;
$ H" t \9 ]# E0 ~7 i. T" P else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) u7 ~0 V) }& P( [- n! ?& s0 _ nPoint += 150;
4 q& g3 C, R+ b- k; b" j, c' L else if( nJob == JOB_FLORIST_HERO ): E8 W/ c7 d& B
nPoint += 160;
4 e, K) R2 | B' L6 ^9 t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% @& j8 \, h1 X* s z0 S. n6 f
nPoint += 180;$ |6 x5 c8 `+ p5 d
else if( nJob == JOB_ELEMENTORLORD_HERO )
( E' a. E) j- {) G: }& V nPoint += 390;5 ^- `- v' z8 m9 B2 W
6 N' k! F |" b4 G1 D0 H
AddSkillPoint( nPoint );
1 [, n( t* u3 q" K! @$ u0 b m_nLevel = nLevel;" j0 D1 A$ [" x. D7 c
: Z8 t6 H1 R0 Z1 s# G6 V5 e) R8 ~ SetJobLevel( nLevel, nJob );2 x# p7 p& P) E/ _, Y
m_nDeathLevel = nLevel;
5 _6 W% p$ L6 W. K. \8 K9 p/ Y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# J& }+ m1 F0 ~) M+ i if(IsMaster())
7 n' w3 j. B, D$ k0 u2 U8 | {2 m" Y( |! j' ?& I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% o/ o* s, W0 V7 {4 N if( nLevel > 59 && nLevel < 72 )
1 m T) Z. {! b dwTmpSkLevel = 1;$ o3 q3 q( W* O7 V( ~% X7 [, U. I, A
else if( nLevel > 71 && nLevel < 84 )3 t3 s: t" I* n1 Q# f! T
dwTmpSkLevel = 2;& i6 t0 L6 R" U; C, w
else if( nLevel > 83 && nLevel < 96 ), \6 t4 i; A# q! W- E
dwTmpSkLevel = 3;3 O2 F- a4 N I; P W6 W3 T8 X
else if( nLevel > 95 && nLevel < 108 )
' H8 E8 C7 z9 n0 W: t4 b dwTmpSkLevel = 4;$ F B) w4 D y. E/ B, o
else if( nLevel > 107 && nLevel < 120 )0 h9 {& d7 i* U+ F$ v) `, B, Z% S+ F( _2 L
dwTmpSkLevel = 5;
6 z7 b) L5 g6 `: N0 k. G for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 @1 H" N% b3 A& q
{
1 ^% Z4 W( c! C* p3 j4 @3 t LPSKILL lpSkill = &(m_aJobSkill);
& d- i4 b: N2 ~6 k+ b4 |" P if( lpSkill && lpSkill->dwSkill != NULL_ID ); Z6 X# {7 Z$ t, x6 E* T
{, A- r# G$ v5 y; y9 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: L2 R2 D$ W' u9 R if( pSkillProp == NULL )
5 R) ?7 Y9 @6 F$ O' C0 N continue;
" |$ j" d _' I$ Z9 l0 V) x% L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 f2 ~ g3 n9 W! ^6 @
continue;
4 [# x4 m% r% ^0 a lpSkill->dwLevel = dwTmpSkLevel;. j( p P0 J5 |4 F( S. g
}
' b( {7 p; E& X4 \$ O1 { }
' D% [0 F$ ?+ |7 B }6 m7 }& M3 X* ^2 z @. {
else if(IsHero())
( |- D& z5 a6 n9 b2 B/ V: q# f {
* e/ c, A5 |0 g: u2 E. Z, f for( int i = 0; i < MAX_SKILL_JOB; i++ )
: B+ G: [. b! w; o { 8 l( _" }2 ?# o: l, C& l5 X7 b
LPSKILL lpSkill = &(m_aJobSkill);0 N+ X# S. ]3 W$ B
if( lpSkill && lpSkill->dwSkill != NULL_ID )! S$ Z1 s) F2 \+ P* H
{2 E: E3 a+ M# z# n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 A! l$ u' Z" Y9 B
if( pSkillProp == NULL )
1 g: ]0 y" E2 u* M2 b continue;
, S- ]0 O# ], X9 c3 }; C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) @- a7 z) j% v& W9 g5 y! |
continue;" P4 e7 |, x+ N, h* P9 M6 U3 p3 V
lpSkill->dwLevel = 5;
0 u2 j5 M; X& x2 s- E# z4 a% s& g }
9 r3 C4 [2 y5 z5 L: b# b }. q. ]" a) `) T/ ^4 w" {0 P
} r' n# k3 `0 f' v/ U& k2 \
else if(IsLegendHero())5 @4 V/ T$ ~* a5 W9 C+ `6 s" g# d
{/ O* H; R) ^! L5 p! P1 n- s/ ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # e& f- a# C7 r9 ~& V1 }& L' w: _* a
{ 1 z9 d1 N2 D, Z1 v
LPSKILL lpSkill = &(m_aJobSkill);
. c3 k5 S( {; s1 F" O3 x* Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 F& j4 r0 f7 x, \! S {
1 w9 Z/ o$ ?, W5 Q, O6 X0 k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. g7 r* q. R! O7 u if( pSkillProp == NULL )4 z! S; |2 P: R( G/ {
continue;
7 z2 r9 ~0 e) H& q9 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) u3 Y$ R& P% K7 K
continue;: t# P1 s0 O5 J8 F1 n
lpSkill->dwLevel = 5;0 p3 j& U8 s& Z& H7 |) Z% U" k
}/ `- x# \6 V0 `" O" x+ y' j
}
; M5 c5 f/ S( {( \ }2 R) m! \* r9 u: \
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 f- o) `( }) j% H3 u2 e if( bGamma )1 Z5 u! T1 u0 l
{! K- q9 R! ]9 |3 H: _( _1 g8 A
m_nExp1 = 0;
1 m7 G* l/ r. p6 E0 g1 }# R }
, P: z" I( h1 M( X1 T% Z0 P
$ u$ z" b( B( u ( (CUser*)this )->AddSetChangeJob( nJob );' A1 M9 @& @+ M) W7 A! }3 V
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 [9 U. r4 C, T" K" v; s; Z1 A2 @7 K- E3 y( n& U, x
* a! p% ]" c7 L8 C
#if __VER >= 11 // __SYS_PLAYER_DATA
. s+ Y$ x, G# N) Y4 l g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ E6 L! Z" g$ w9 F) w( V$ o* H
#else // __SYS_PLAYER_DATA) R. u, H& o* s# Z3 |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ ^/ p% G! {- f2 _: h9 e9 ~+ F g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' F$ ?7 @- O+ p if( m_idGuild != 0 )
( \+ {# e& U; f# u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" |( q0 z2 Z# @
#endif // __SYS_PLAYER_DATA
& f$ q$ t, f0 m1 e SetHitPoint( GetMaxHitPoint() );$ k: F2 {' F9 }. ^2 P
SetManaPoint( GetMaxManaPoint() );2 O2 I4 I0 z1 `3 ?5 p D6 C1 ~
SetFatiguePoint( GetMaxFatiguePoint() );/ n% N A8 E% ^
if( nJob >= 1 && nJob <= 4 )
+ I: Q$ Y% ~* v7 p4 g6 m. {2 t {
! c% z1 W# N* `1 \ m_nStr = m_nSta = m_nDex = m_nInt = 15;% G, F) C; s5 k' M+ b
m_nRemainGP = 28;
K7 k* z" ?# W+ ~2 ^; S t }
7 t7 z+ {: v; J- y& B( f) D" ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 N/ t( F% j% U! h8 M
{
; y% g& c) c6 W6 r3 D m_nRemainGP = 118;% @& g$ @- [" p1 r2 [$ O9 M7 W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. m% Y" m$ P. D7 q
m_nStr = m_nSta = m_nDex = m_nInt = 15;: v; K, K# O) I: @# y
}
6 H) h; d* r: d* e6 b( V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 X1 { t2 n, b( e; L
{/ Y! D6 k9 M9 Q1 P0 Z9 g) ~- I
CItemElem itemelem;
* ~( J+ h8 o8 _- Z; F+ F itemelem.m_nItemNum = 1;( w6 v& M! V6 M
itemelem.m_bCharged = TRUE;/ _, v, u8 `6 }" p$ Y/ J# Y, I
BYTE nID;" M' j* k# d; y* q
% k0 w2 f, T3 N6 L
if( nJob == JOB_MENTALIST_HERO )' \1 f& p9 w6 _7 u1 j
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' G8 g, n5 V6 y
if( nJob == JOB_FORCEMASTER_HERO )
* T0 m- }5 c; F6 V1 {4 X8 d itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 Q2 X$ S1 c: I9 X' t6 o2 |" ?( a/ i/ y- ^* d+ O* v+ ~9 f
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ O6 J L6 g- u4 d: z" ^- ~5 I! n }' _& v4 s. r+ s' f% T+ B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. b) b. M7 S6 P5 ]& [1 j/ I1 ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& B5 @0 h7 a% _( t6 M% P
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
~/ L6 h& i* u8 E" |1 Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" T% a0 O, F; `' {0 D0 q3 T- }
( (CUser*)this )->AddTaskBar();*/
8 O3 H% D6 t5 D& } ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 m0 z+ I. {: @* f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) v8 C- l4 c' j! g8 d! x6 L
((CUser*)this)->CheckHonorStat();
2 z V6 X( U4 y; r$ s0 Q6 [! i ((CUser*)this)->AddHonorListAck();
& L: C" c) w; \% _* Z5 d- H g_UserMng.AddHonorTitleChange( this, m_nHonor);
- |! n) X9 @, Q; w: c; s#endif // __HONORABLE_TITLE // ′Tà?
$ Q: g' y% H# y S, p }
( T. ~, B/ t1 D( W: z#endif // __WORLDSERVER
& G& B! K! q# u/ t( _}
" r( ^0 y9 {5 K6 P Y# A9 S. R8 B9 p+ w0 @( z4 P
然后你进入functextcmd.cpp并添加以下
) _( S8 ?$ x* c! M+ D5 N$ [% @! W9 P& n
代码: C3 v9 W7 z& Z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 Q' V# b; O( p2 d2 P: }下面插入( j( |% k0 Y$ i' w( i
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : v! `3 _9 A. W" |% P% X( A
- t& c/ [1 N/ W O5 W1 f6 x然后你去/ F/ E! _. d) t0 G: O# N0 K: z
$ |/ `& ~) W5 V; O
代码:
0 g; _' b( _3 F1 g" \( J$ |( O代码
% Q' u: [* G, b5 LBOOL TextCmd_ClearPropose( CScanner & s )
0 G: _+ ~) N4 ~0 Y- {{
8 j( ^$ q3 l x5 M3 N#ifdef __WORLDSERVER
1 R& j. K' j8 x6 F CUser* pUser = (CUser*)s.dwValue;
9 ~" X- z. l! p$ C, W g_dpDBClient.SendClearPropose();
T1 q b1 I/ S#endif // __WORLDSERVER6 c6 R9 p( m' z% K
return TRUE;8 U0 d: f. z) T' T! ]
}
, q, I8 s) F7 i下面插入
; n$ P. F; t$ R6 T, YBOOL TextCmd_rebirth( CScanner& scanner )! w! a8 P' U! h
{
) U A7 ]9 m# n#ifdef __WORLDSERVER
+ e/ X( G& h* [+ ~: i* F/ I: g" BCUser *pUser;
: e W6 D: x+ ?6 g+ y- g' l: T7 n# jpUser = (CUser*)scanner.dwValue;
! _0 y" a( B, e: a% i* Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ Q. C: a4 k) E d
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ i! ?# D- Q8 T$ U b
else& d8 k2 j0 I" q; C1 ]
pUser->AddText("你还未达到重生条件!");9 i7 o2 V K* T R! V* i9 d
#endif
\, t$ R7 }9 f. i9 z! qreturn TRUE;
8 S+ ~( P; `* S8 }}
! t0 U9 Y4 g5 C1 w$ N! e5 e: } v" w# x" a3 i! s, f
( i, \8 U% G! _. V- R
: u+ ?' H6 A2 y) ^# z: o4 X, D
" s+ E+ ]+ Z, `1 R |
|