|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. q+ u3 j9 R" l: t$ e/ {6 U
# d/ l1 }; f- ?. L( E( Y+ r) }Mover.h
0 v* ^7 W' G$ U. B# o+ G2 f代码:
3 x$ d* S! w3 X: O; ?找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; a- k5 _4 q! @2 H. R9 }9 |/ o* ~5 u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 G5 f+ U% j& S- f, j
* t3 l" @8 ~! U然后你去mover.cpp添加& f' J0 y2 e$ X+ E
5 E( g; G+ Q1 L0 e0 ^8 Z( A
代码:) d3 O6 V, V: ^0 s/ ^2 P3 _
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( m/ ^' N8 o" Z+ P# R7 Y{
- U( t4 a% F! w#ifdef __WORLDSERVER* g @! j2 H8 b) t) N4 M3 U7 R1 D
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 d9 d$ }4 y' ~( W2 E& o" ` MoverProp* pProp = GetProp();/ e7 z( p% a6 t0 T9 [+ F
if( pProp )/ X7 i0 A- j% \( Y, R; @' ^
{
/ N2 ~0 Z% C& P0 x if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 p/ \2 Z% b& V& n( [5 y* `
{, Y, V( u: t5 z p
AddChangeJob( nJob );& Z! x* A. i; p
}else{
/ a! a1 _1 C6 I return;, c: ]7 n; P2 n. T0 m) j o8 S
}# o- R1 G. `7 ]* b" @3 t4 \( s
int nPoint = 0;
3 Z7 H6 W! |' ] W if( m_nJob == JOB_MERCENARY )" }) ]- u( M$ s0 I
nPoint += 40;; S3 P8 y h5 {9 F6 |# C# h
else if( m_nJob == JOB_ACROBAT )
! t0 }! _: \) |8 n/ Z nPoint += 50;
5 {' V; f1 U$ h else if( m_nJob == JOB_ASSIST )& G' L b# y$ }; w
nPoint += 60;
. U6 `' v% {( w5 h" K, ? ^5 H else if( m_nJob == JOB_MAGICIAN )
1 W# J$ V1 L1 g1 f! G nPoint += 90;1 P: D# W. n/ p2 E
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# |$ ^# d' N/ y- |1 [( ?- `9 K$ U
nPoint += 120;! @' A5 z, y4 i& A2 N1 c7 {
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' k T7 l* q' D; ?
nPoint += 150;6 z8 _. h, y2 j5 e9 g
else if( m_nJob == JOB_RINGMASTER )
2 y$ J5 Z9 w' z0 S7 ?. D; F$ J7 | nPoint += 160;. t8 V$ m" K% }! ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: ]! A/ }7 m6 Q* R" Q nPoint += 180;
' i" o1 F. l+ S+ }8 M else if( m_nJob == JOB_ELEMENTOR )
' g# V$ A/ l$ o4 @& G2 V B nPoint += 390;
5 K u8 h- Y# W d. |% k' M+ G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ w) s. K( w/ q/ H1 S6 L nPoint += 120;# |+ b8 w# t: m4 A' Q/ P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( J0 s5 c9 N0 ~) E. P# R2 U nPoint += 150;( e( i; W2 M0 f, r" o* v5 @
else if( nJob == JOB_FLORIST_HERO )
: W2 u \# l1 M nPoint += 160;
8 z& R1 j( N# A# b1 M else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& f" c0 y2 \& R3 `3 ?
nPoint += 180;
- d& |+ J* \1 ?& j! n8 K* r else if( nJob == JOB_ELEMENTORLORD_HERO )
8 S7 F/ @0 X: t7 v1 v nPoint += 390;1 n, d4 I- C7 Y
: I/ w7 n5 k8 s6 R8 n, U
AddSkillPoint( nPoint );
3 M0 W1 y ` s- c1 ~; h m_nLevel = nLevel;
! e) V( v l" S6 R! k5 k9 ~* n; P r( ]8 c2 ~& v! W) t& z
SetJobLevel( nLevel, nJob );$ k& s4 `3 V3 G4 h
m_nDeathLevel = nLevel;
+ |3 i; b* E/ F; d5 u' @# R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ H3 p* }% t6 E# I* W9 x) [* V3 F
if(IsMaster())
: o' I1 q4 S* u6 }: I3 B1 y {# R' t1 y3 J7 I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 M) @. v( D: t3 I& T+ R T w
if( nLevel > 59 && nLevel < 72 )
/ D9 W7 F$ I3 }& S: m9 ]! k dwTmpSkLevel = 1;6 `( R4 c H3 l- L* \4 V2 D
else if( nLevel > 71 && nLevel < 84 )
8 w2 k1 W' P$ Z+ k3 n' ^( X3 M dwTmpSkLevel = 2;5 H# {( P1 W2 s2 V, {! f% o
else if( nLevel > 83 && nLevel < 96 ): M) v9 D/ h, U+ X
dwTmpSkLevel = 3;9 n' s+ v4 n0 Y X2 L1 u" G4 B
else if( nLevel > 95 && nLevel < 108 )
/ P" p4 V2 t: s0 u+ u dwTmpSkLevel = 4;) m/ Z) f1 c( _' n+ f2 ~
else if( nLevel > 107 && nLevel < 120 ): U* c0 n% v3 x5 x
dwTmpSkLevel = 5;! P2 d ?$ T8 S# C" ], `, u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: `' ?" _0 b+ p5 Z {
0 J6 o- m! L) Z6 A: A- z; P8 T LPSKILL lpSkill = &(m_aJobSkill);
+ _* z# i' t' W5 S2 ~- o. C. h if( lpSkill && lpSkill->dwSkill != NULL_ID )
! Z& _2 `$ `! v W5 h {
! C2 @' } ?+ o2 d. E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 ^: p7 M% ] M
if( pSkillProp == NULL )' U# O7 n( @3 w5 Y, h/ B- ` h0 i
continue;
, D& |# x9 q" n2 ~/ p5 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
l5 b0 v9 }" e, {8 Y9 [ continue;. r$ \4 I2 @# @! r
lpSkill->dwLevel = dwTmpSkLevel;) R; E) x( Z; T
}
8 {; _9 [* L: z/ _5 _6 N& D; M }7 q& e; V( _2 ^! U: R2 i
}" L% w1 o. r2 I& H) u
else if(IsHero())" C r* T9 V" s2 [) c
{
8 T1 f$ z( z% l! m" n$ }4 C for( int i = 0; i < MAX_SKILL_JOB; i++ )
* y" f5 ?, L2 K8 d+ I { 3 n. A7 h$ j. @; F
LPSKILL lpSkill = &(m_aJobSkill);
' y( F& b% i) w# g if( lpSkill && lpSkill->dwSkill != NULL_ID )
, e4 P' a. j- z0 g1 p- |8 P) H& R! R! E+ ^ {' Y1 ?. |1 m7 X. {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- G9 q3 M0 o n! y5 V if( pSkillProp == NULL )4 D8 u! ]2 q2 u( v6 o, `
continue;6 F6 h1 b( y# _4 Z2 @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# _$ w5 C3 S2 q3 x+ f
continue;7 A. y% a: Y( w T- \" k3 I
lpSkill->dwLevel = 5;
' ^% z% L4 T8 `! r! k8 F }
6 E+ F+ Z% Q- J. O; W; U; t( O }+ @* R' M0 U8 ?3 B/ N4 k- U
}
$ P- g* B6 d5 q0 f7 x) h w else if(IsLegendHero())4 }+ B7 I/ _9 u
{# P) A1 n/ ?6 ]1 w/ q: H6 O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 O* [& K M& a. [; B. I; P
{
( \+ T9 ~% \. j LPSKILL lpSkill = &(m_aJobSkill);5 ?1 q- ` z' A& v0 m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 k% Y0 u. B" Z: s8 E8 I! X {
$ O S3 n% i! t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 B5 }* Y, f+ V7 T/ _
if( pSkillProp == NULL )0 `, @" O" {% ~( ]
continue;
' y: |* _# f2 n# I; u4 Y5 x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- _& O/ ?( N; M5 V$ z continue;. q! h }' U' o8 c8 i0 U) y* {' Z
lpSkill->dwLevel = 5;
+ Z5 {. e' g/ S4 e1 K7 _! r: J }9 \) l! D" U. l+ r6 @8 z1 k4 M
}! Y& X, W/ U9 a# e2 d
}
" h6 w' M9 m; w$ K% z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ i& P" B: s$ m$ A if( bGamma )
1 g: u4 E5 T2 v' v {
, H& W, D' S9 N% s z m_nExp1 = 0;
2 C* V1 P! e: s L8 o }2 _ ~6 { Q) W+ n7 `
* N6 x# p6 _- h4 C& {) L ( (CUser*)this )->AddSetChangeJob( nJob );9 ~7 o0 Y' ?3 h# z; z9 ~7 p/ w, Z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; U- H! i+ ]6 k) l9 E% L0 {8 f$ v; w" X, G
$ S" V, g% P- \: T! N#if __VER >= 11 // __SYS_PLAYER_DATA
' u. e: C- m0 L6 W- F g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 ?$ x( r' o% W- R$ d: X( Q#else // __SYS_PLAYER_DATA8 X$ [- ^$ u! w+ B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ e& X1 _6 y* U: s g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 E% t- ~" R) R, Y8 E9 r% l8 T' j
if( m_idGuild != 0 )
6 m* |/ n& u2 C0 r5 T& F g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" I3 Y' s4 v$ t+ j) S
#endif // __SYS_PLAYER_DATA
3 Z! a/ S1 P. g: `+ R SetHitPoint( GetMaxHitPoint() );3 c) S7 E S. ~
SetManaPoint( GetMaxManaPoint() );
! j2 n& l) T* n8 f& B# @ SetFatiguePoint( GetMaxFatiguePoint() );7 u& Q$ }7 M2 X0 ?- N. C- d5 G6 a
if( nJob >= 1 && nJob <= 4 )1 W2 p( N" E: p; w. J) T
{
3 A/ ~+ m$ S8 M" O m_nStr = m_nSta = m_nDex = m_nInt = 15;. P/ X/ A$ ^4 l# N: f
m_nRemainGP = 28;
4 D0 E: r" W/ v$ c. @6 n) p) R& ? }
, j+ W. y+ s9 Y' h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 L8 F6 b1 H2 o0 \
{( I& `7 ~5 J9 n- j2 j( ~- ^( @5 W
m_nRemainGP = 118;6 b) C+ z; w$ I) D$ {) Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% R% n+ _0 I" ?" P* O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 ^! F8 n5 f% _+ g# @4 e+ s }" T' h Z9 y/ Z+ M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) f Z) z. F4 x; r6 D% a {4 y$ P+ i7 B( c. k3 L1 D/ G i n
CItemElem itemelem;
! Q6 c' |' |6 w& r8 Y; |4 E itemelem.m_nItemNum = 1;0 i) Y+ L T# P# V
itemelem.m_bCharged = TRUE;
( B& q7 V. N' M4 v- ^5 d+ `/ z BYTE nID;/ L0 h' `6 p, ]/ W+ p
; \0 I) h* t: f, S; k
if( nJob == JOB_MENTALIST_HERO )
7 _8 l7 c$ c* A! S1 R- O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ p; S* X5 ~3 Y( P0 G6 @4 T
if( nJob == JOB_FORCEMASTER_HERO )2 n' H. h1 K: d! ~: C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. x$ h6 ^4 r4 ?& J
/ d" |$ b8 x; p8 m8 F( g
( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 r( D6 V! S+ [* a }
6 K1 g4 N6 W+ `4 m& B: S1 x g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 X4 B2 R7 R3 J' I% {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 ~+ K7 Z( ~2 |0 D" _
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 p7 B! p9 p* g; D( c5 }% t1 l /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: b( Y( W V- o, c& R }
( (CUser*)this )->AddTaskBar();*/
# b1 @# q+ W8 A) a( i( |1 o. S* A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 @5 c0 v( h' [1 n7 Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 C1 {' @4 Z2 V, ^* { ((CUser*)this)->CheckHonorStat();' \4 U; }8 p8 T3 g( `
((CUser*)this)->AddHonorListAck();, W- `* g* O# p0 O
g_UserMng.AddHonorTitleChange( this, m_nHonor);% Y5 H% x9 d z9 [$ Z) s
#endif // __HONORABLE_TITLE // ′Tà?
' B; s2 b8 P' W8 F( N. x1 ? }1 I. H) @1 R$ H" S a0 h1 J9 c
#endif // __WORLDSERVER
! A- s0 e/ o+ H4 S% u5 G1 E7 C} 5 I0 S7 L# Y2 E' P" p+ I( g
1 x( O& ^9 T0 A; H然后你进入functextcmd.cpp并添加以下
* ?$ ]+ J1 ?* ~7 F: a" N8 T2 G) w: G( U7 L8 N. {8 W3 q5 ~$ b
代码:: V* M8 X, C: z. l7 k! Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 _7 [' d6 x9 {/ i: E
下面插入# b8 H: e# u$ e" y, e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' J7 O8 S% e" J6 v' ]) P
" l; k% s) |/ [0 \0 u& f2 z然后你去
* D i8 Z% E8 X5 r) b
8 v" X0 l+ a7 z& |: N: i. [代码:
2 d5 F4 t4 @% _1 w- @代码
$ c3 d, ]3 e# D9 ~BOOL TextCmd_ClearPropose( CScanner & s )
9 ~$ k' f; a: I{/ c4 {! j6 L# ^. x
#ifdef __WORLDSERVER
# w7 w% A7 @% v/ P CUser* pUser = (CUser*)s.dwValue;
: V. {$ S" r. |9 p9 g0 v g_dpDBClient.SendClearPropose();
4 Z( F( x* w3 r2 w0 _#endif // __WORLDSERVER
; U2 J6 a) H! `; w return TRUE;, w( e( }: X8 r& C
}, Q* } h& _0 x2 \$ ~; _
下面插入; U' r- v, _0 m% f
BOOL TextCmd_rebirth( CScanner& scanner )& b' L6 v% l; j/ _* F
{
5 x* G& ^* y. G8 u4 g: }#ifdef __WORLDSERVER! u( l e4 h3 {4 ?( r
CUser *pUser;# X- `2 b( u) X7 D0 Z/ M& K6 Z+ j
pUser = (CUser*)scanner.dwValue;
9 {! L; u! M! M( W6 }$ vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; a' b+ B: v3 G- MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; v+ K* ?$ Q, e2 a; ielse
# L& X1 g- C! ypUser->AddText("你还未达到重生条件!");0 c9 u4 V5 Y$ ~/ [$ u+ D/ z
#endif: \7 v' w* A/ A8 o
return TRUE; q- @. }4 `( N1 c1 T1 q
} . z5 K7 g% d6 i$ P; X6 j
4 n0 \7 |% M4 \ b$ T) E- x- C t! s- Q$ m* k9 ~" p+ r1 E) ]6 M
7 o' v2 K' Y- Q% f+ ~1 }
* ?2 y4 f" x7 \( f2 Y& M
|
|