|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! N9 z7 m. t2 y/ K: m
; d+ v2 h& N. b5 ~+ DMover.h' A: K# j& ?) Y) P+ d0 p
代码:
6 o; X& f; r4 g! P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 S# L# Q9 a: I7 g9 J# R4 y
% b: V* c9 o. L3 G6 s6 T5 d下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; s: F0 O+ w/ G, ` d6 b' x% i
3 @/ ^) c- v; f
然后你去mover.cpp添加3 C4 @) Q* g! D- B1 P
3 T' C9 N5 ]; x4 L$ L9 J代码:5 {5 W3 `- Z1 M# g [' `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- o6 y4 X8 m) }$ c9 M0 S. `
{, z+ p. f- B1 q+ C
#ifdef __WORLDSERVER
! X! L6 Q: F1 F) q5 i/ o( N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 u3 `5 M) J! m- \) T3 l8 f. s
MoverProp* pProp = GetProp();" N7 j- }7 F& C2 m7 l+ E: }7 D
if( pProp )
, p2 B# d1 {* F. J& m {
' M6 Z! G) e9 y% C3 P: } if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( Y2 B* Y9 l, M, P6 _8 v {
7 p4 M) ~ d: Z/ y5 E* S AddChangeJob( nJob );+ b: x. l$ w) Y+ x; w+ I+ E$ Z) x
}else{* Q7 v+ q: y+ J- m5 {- F, }
return;# \) O! t0 q! V3 P5 A$ W3 z
}6 ^ K. I& R0 [ O$ s" D
int nPoint = 0;1 L Q1 G( w9 ^; s+ @1 S0 ^, O
if( m_nJob == JOB_MERCENARY )# k) _6 `2 B( B! |# x' x8 G% i" ?+ W
nPoint += 40;
- D/ Q7 f/ L4 R$ h% I3 A else if( m_nJob == JOB_ACROBAT )
9 R$ a* W) K' W& @9 F nPoint += 50;1 `2 E6 A& r9 n! y: ?% e8 n
else if( m_nJob == JOB_ASSIST )# G! a' V( m! l* d6 E* c0 C
nPoint += 60;& L. [/ }8 Y' d- O" N
else if( m_nJob == JOB_MAGICIAN )
; P7 s3 \; u3 w( p* w) f+ ]0 d nPoint += 90;) O8 P: v! Q' {- K' D
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! k* `9 V* ?5 h# K/ c" K nPoint += 120;% ?5 Y1 E9 ]2 Z# ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) C9 ~* [. b. ^3 U nPoint += 150;4 h! s1 e! y9 P( i5 c& A
else if( m_nJob == JOB_RINGMASTER )/ A* @3 U0 M' O9 Z2 u! k: p1 z
nPoint += 160;0 b4 o8 N2 I# s9 H! {$ L a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 L2 y! r; r% {( N7 R/ i nPoint += 180;
" s2 |- S, T& }" h- L1 k2 \4 [ else if( m_nJob == JOB_ELEMENTOR )" _* {2 u; W- Q! h
nPoint += 390;
8 P1 n9 l( P( Z! F$ m/ I% O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& Z9 J, c/ E U- A# R# E
nPoint += 120;" [* j. Y4 V2 _( z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) c$ S+ N; d. z" n& W
nPoint += 150;
5 l3 A* B/ x: W/ u% K5 w% s, [ else if( nJob == JOB_FLORIST_HERO )6 w- x K2 y/ t2 _, j* W) w
nPoint += 160;2 r5 G9 ~- h0 ~' J: A. v
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 T8 {/ W# \' f* p nPoint += 180;
% A6 `8 @. C7 |$ o; { N1 U else if( nJob == JOB_ELEMENTORLORD_HERO )
0 O) [# k& V! n9 D nPoint += 390;
+ ] i5 w& V1 t7 S4 w% i) M) R; i. C% ]7 u1 R0 _/ v
AddSkillPoint( nPoint );! I5 x4 C( S S" Z( T2 l
m_nLevel = nLevel;
5 D3 a, O. N' N0 E( |
! F( b3 p- f, C! t# U. x SetJobLevel( nLevel, nJob );
: E, }+ S; U( x' m' v. T m_nDeathLevel = nLevel;' l3 x8 z% O2 j* `) ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 `" i& g1 ?1 @
if(IsMaster()) @" B G& r7 b: Y, }1 C8 x. A# i* G/ @ @
{4 V' Q$ U6 C, y7 E( L# f
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ w0 \0 C! U9 `( F* ^& `* i
if( nLevel > 59 && nLevel < 72 )
: h# ~' e5 b! d3 L dwTmpSkLevel = 1;
$ A- V' f' K, ], p else if( nLevel > 71 && nLevel < 84 )
( ~) m; M8 X4 P. Q$ I dwTmpSkLevel = 2; {# A- x+ j Y3 ?1 m, d2 p
else if( nLevel > 83 && nLevel < 96 )2 j7 F6 c3 |2 |4 o9 v. F
dwTmpSkLevel = 3;) P8 X9 B0 ~/ k) z* U
else if( nLevel > 95 && nLevel < 108 )
8 h p$ b2 I: H+ C! k5 t dwTmpSkLevel = 4;( i8 e6 U! C% p& ]( e$ H9 z
else if( nLevel > 107 && nLevel < 120 )
5 ]# t( M9 x# E/ i2 W1 [ dwTmpSkLevel = 5;
; `: @9 C+ ? c/ K7 Z, X; H; L9 |7 \ q) E for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' j. L; T/ K, k3 `6 k1 K
{ 1 p4 ^1 {# g. k/ C/ U6 g# @: v
LPSKILL lpSkill = &(m_aJobSkill);6 @% m2 i, Y. U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* @2 B: }3 z, L {
. c }4 u( _( i9 y6 M+ \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ I2 z! r7 A. A/ e) R; y; W3 F if( pSkillProp == NULL )
9 U1 U0 u9 g. I& T continue;
& h! Q2 u& W9 B; ]! Q/ V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% i7 X/ g' W$ W' l* I1 R
continue;
" W1 S8 P1 e+ h% A& U' M I lpSkill->dwLevel = dwTmpSkLevel;
$ j5 L `5 G0 q" `5 y# r) O }
# U- c; H& D: |2 D& z! y1 h }
. ^7 s' I3 s( a& [! @& @ }! {3 |! K3 r: N: G% H6 m1 ~
else if(IsHero())
6 p7 C7 r) E8 X {/ `- V" }8 I% S4 b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, Q: P6 F/ {3 i. a k. [ { - O/ c* ]% t% ]' U. {- }
LPSKILL lpSkill = &(m_aJobSkill);0 Y4 _( R0 P a" E% h1 v, c" d) ^) ?- ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ i: b4 y& c4 U. B z
{
8 ?3 R; i6 v: e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! \9 W, N) T7 {# i1 y1 G
if( pSkillProp == NULL )
, v6 e* i* y$ d4 P continue;( r0 L6 Z) P% ~( K1 f& u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 c5 a( F& k8 A( j1 O
continue;- }$ Q8 B' r/ n& N, f5 c2 b7 _3 t( d
lpSkill->dwLevel = 5;
! A% V: I* F9 L7 k% |( E$ H }
1 x2 z* @8 ]/ Z6 E }
, @9 S4 }1 f" j4 f/ U# b5 ^9 H/ ~ }
. L; ]7 V! I- x. j5 z else if(IsLegendHero())
5 H; A* {2 ~4 X; V) R# W4 B8 _ {1 ]' u- h/ x3 b! W( m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 G* H! ?0 ~) W. g* u) l" D& t8 @
{
8 Z/ o1 `% |6 _% c3 M LPSKILL lpSkill = &(m_aJobSkill);0 |) f- e( p, D. L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 W& s1 E! L6 J) { {
+ G B! G E0 w- w. `& J8 }1 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % H. a& X) N# w0 G* R! i& N1 |, @
if( pSkillProp == NULL )8 H( s1 q5 s# \
continue;. N4 ^! l; q0 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& B; x- O2 y; I) M8 e# O
continue;
/ U" Q% M( h( m; Z; \, j% C lpSkill->dwLevel = 5;
1 A( C! ?5 X' ~" q1 O# Q4 N }! @! r" ]5 t9 g, l
}
( T& h- B4 T/ h }4 @# O: x; T# H' B( @, f4 D- J6 A
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, q( k! F/ H; K4 v" f4 I if( bGamma )7 Y) P6 _6 s8 G2 D9 l2 o+ }; c, p
{
$ x D* z% ]5 P- O; x+ | m_nExp1 = 0;; J" m2 d; x3 Y
}
: O& R5 B/ d/ c/ L
1 z& R& ^4 K- p. w ( (CUser*)this )->AddSetChangeJob( nJob );
8 [2 z" N9 f7 _2 t. D g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ c0 ]* `" K5 x) {9 N! G' K/ F
* c3 E9 w9 X* w l9 ?4 w0 v* k
& [+ q" Q7 R: s* [+ M$ W#if __VER >= 11 // __SYS_PLAYER_DATA6 c5 J! n, N+ G( J, k$ X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* `( O/ Z+ w0 E" Y! {
#else // __SYS_PLAYER_DATA# O, h% @, ~! v$ k5 \) I
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( i4 W' c- @% B( j2 }8 l g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; E! @+ o( P$ {% @! ^9 i if( m_idGuild != 0 )2 h1 }: D3 m" U d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 R4 f% X! I5 v" c
#endif // __SYS_PLAYER_DATA: p2 k( N2 g4 W9 d
SetHitPoint( GetMaxHitPoint() ); H9 J: U. W9 e l" ]/ K
SetManaPoint( GetMaxManaPoint() );
! l: W8 n* a9 r& }& B SetFatiguePoint( GetMaxFatiguePoint() );5 K1 F: @6 V! u: R1 t, e. r# \
if( nJob >= 1 && nJob <= 4 )" \0 [' `. B! J I2 u8 u1 K
{6 n3 _) t- V% U# I1 Y: N5 B7 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, y- r/ K) J. y; `% ^) j m_nRemainGP = 28;( N6 E9 P. P. ]3 _, G& `
}
5 B' _: f4 j0 w* i7 A5 q* E* U+ c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- N. g' F. ~6 ^
{
% w/ s" k k% E8 X# f4 z m_nRemainGP = 118;
, ^! ^: X p0 ~8 p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
o+ c1 M2 r/ W# D/ z m_nStr = m_nSta = m_nDex = m_nInt = 15;# P% S/ R+ S4 a2 a+ ?: {
}
8 \7 P4 S0 r# m. O if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! e% V2 N7 i9 Z" F1 R. Q7 Y/ a
{
- q+ j; v# V- f9 R$ k CItemElem itemelem;# \, U* Y' {1 B% R; Y
itemelem.m_nItemNum = 1;
! n: O. Z( j1 Y1 ~/ M+ q" N itemelem.m_bCharged = TRUE;1 o8 H5 K( u7 f( T1 A- ]$ l( E
BYTE nID;
( c) F2 Y% ~9 Q& v& O$ q! T; E( O# y8 j. G3 f% O9 d
if( nJob == JOB_MENTALIST_HERO )
7 ~) ]1 u1 k4 v) o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. N* G, Z5 I0 i- y
if( nJob == JOB_FORCEMASTER_HERO )* T# ?% A" ?# f
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ C" X" o& i, B& y3 U; |# k; e: F1 G6 `, C: H3 B4 B
( ( CUser*)this)->CreateItem( &itemelem, &nID ); ? F& B9 T. p# S
}
) s' K) c' E, j% a! t0 {( L% t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, ~6 u: z9 ?8 @5 w* b ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 `+ Y/ w. l3 W6 t% |' ^4 `0 y7 k ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 h4 L/ U: v' H" g% q" m6 R5 _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! [5 |" ^ x2 t6 H7 x% R0 }' C8 m ( (CUser*)this )->AddTaskBar();*/
0 y/ J* D8 w) f/ B$ ~8 V! w1 I6 P; k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- p' W5 J% g/ l0 l' B
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 ]! X. l) H9 |0 ]
((CUser*)this)->CheckHonorStat();
; n1 s' W# R" D' d& | ((CUser*)this)->AddHonorListAck();
: E D. h; \1 {1 q- }' | g_UserMng.AddHonorTitleChange( this, m_nHonor);
, v0 S. w! J/ P7 I0 K#endif // __HONORABLE_TITLE // ′Tà?
2 q; ?% W' V7 j* u" ~ }1 h1 k" ~, Y& ?8 z6 C$ c. N! u
#endif // __WORLDSERVER$ R0 `9 I! @! ^) u+ }
} & p8 p7 n7 r; I0 m2 x/ b& H
8 I. z$ v3 v6 H3 t) q; J3 K
然后你进入functextcmd.cpp并添加以下
, U# P( \' W+ R7 e4 [- i1 d: M& a
代码:
6 s+ q9 @- G1 ]ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 f2 E3 T" M* A7 x) Q& A f下面插入! y) B" b7 W- ]5 r; q) F0 G
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( _" @: B5 W8 T# ^ M5 `
3 W5 t ?; A! w3 ~0 n
然后你去$ Q% U& {- s7 P- Q) A
2 @. L. h/ N* @+ v& @2 _
代码:
& p9 L! O0 |' @6 |6 i代码
4 ] z! y1 u3 m8 N4 H5 e( ~! r* RBOOL TextCmd_ClearPropose( CScanner & s ). ^) F) X9 @8 h! x+ E9 z8 O* p
{
' {! _8 T/ R1 F G3 h1 K* r#ifdef __WORLDSERVER1 E4 \8 @' B' I: x+ B
CUser* pUser = (CUser*)s.dwValue;
, Q/ P3 s/ k; J g_dpDBClient.SendClearPropose();. a' z4 v) n" l$ S9 ~
#endif // __WORLDSERVER& B) ^6 T9 y V0 P0 [
return TRUE;# ^& Y3 ]. X* h7 w8 Z+ Z1 b' G
}/ a; N* x+ V/ u+ e. G
下面插入+ V5 \% }5 O K7 l" e# |
BOOL TextCmd_rebirth( CScanner& scanner )
~9 S9 j, d. H{. z, o& a' o! A/ A) t7 Q
#ifdef __WORLDSERVER
( Z0 M( A; X( QCUser *pUser;
$ u. i& i3 b6 k. d$ g0 a5 JpUser = (CUser*)scanner.dwValue;
% a1 T. j: ^7 Z4 Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; W/ @ N2 N+ RpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 N+ a$ U8 v+ }" Helse
9 C6 K; F) v& L7 spUser->AddText("你还未达到重生条件!");
" J% `8 J5 y. r" `9 E#endif2 B! c5 b/ z0 i2 A5 | d
return TRUE;2 ]) p' R+ k2 U6 l2 J+ Q
}
' q6 _$ n+ {9 A+ n- }3 d6 d8 }
4 }7 N- y" T2 p% Y7 S) D- N7 I' d7 g V1 Q8 L( ~
8 {' o; }+ T2 d( Z9 z n8 r+ Q% R$ ^1 B: G$ K% a
|
|