|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& I3 Y- W$ F( x' X$ R$ ?) \2 ]2 i( I% y+ }" P
Mover.h
; q, T% H5 L3 I代码:
4 U8 r( b& _& T: r. \2 V0 s8 b找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 g: t* L; j ?
- Q& l' y1 l+ ]) |/ |' U1 z2 `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 W- S+ ]- t# C+ E+ ?+ z' Y' d1 V
, s" w0 _, ^& j+ @5 y9 w3 y
然后你去mover.cpp添加4 {+ ?, ?3 u a2 Q% Z/ g
/ K6 Q% ^4 X" w, O4 {9 }9 B" m1 p
代码:
1 j1 u' f1 N3 O- Yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 e9 _: W1 I4 A6 z
{7 c0 o& M/ r! ? u
#ifdef __WORLDSERVER; T1 b& _* l1 {. P0 S3 C& F
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! Y2 b! s6 c/ O5 b' ? MoverProp* pProp = GetProp();
) t! Z1 d8 X3 a3 O if( pProp )9 y5 u) h% f) F2 d/ P
{ w' ~9 b: n# d' m
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); C. t% m# @6 W+ {
{! r) |) W" T# V/ X N
AddChangeJob( nJob );# W& [2 y: ?& `; J) ~$ b
}else{
; {% j3 n( u, I return;
( \" i6 A/ g' {4 ?7 E; U }( F6 L) m+ I' g: H9 I5 U1 @
int nPoint = 0;
8 M0 p3 `! P: K% j, @4 s/ O" b if( m_nJob == JOB_MERCENARY )
5 w- @" k9 g4 K, e nPoint += 40;
- S4 y* o. ]2 ^8 L1 H- Y" @: V6 B else if( m_nJob == JOB_ACROBAT ) n/ J# h! o1 k4 N9 t+ r
nPoint += 50;
1 r# ?# T1 E( m$ d$ C else if( m_nJob == JOB_ASSIST )
+ B+ k' a" ^* \0 B+ X% l( s6 A* O- U nPoint += 60;
, G9 h, k K: f! x! X5 V else if( m_nJob == JOB_MAGICIAN )$ L) L7 V2 D5 P; n/ _* F9 U6 K
nPoint += 90;( d! f# r! g1 z- f. x' I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ W; P4 X* Q1 `% s/ I9 W. c. K
nPoint += 120;: K6 n3 h& \; S
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 u3 F* x5 n; U+ K- {; y
nPoint += 150;
0 [' E* F! w% `2 `" h( a6 k1 b else if( m_nJob == JOB_RINGMASTER )- I. `1 o4 H; w6 C& f, s' v
nPoint += 160;
4 Y; B% T0 s* h% o: {6 D else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ J: P: l# D+ f/ A: E( R" v
nPoint += 180;
3 p6 f1 n: V) w else if( m_nJob == JOB_ELEMENTOR )% j( p. w3 W- g. w* U6 @8 ^! N
nPoint += 390;- K5 r- T- P1 _. Z% S6 h6 W, X& `* }) O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 C* {" E3 Q' f0 M# X6 t# [/ T
nPoint += 120;0 d- D, n( D8 b4 y( c$ l: P0 S
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# M8 R4 H6 D E* _+ a8 { nPoint += 150;
3 y' {' m) Y: }6 L& k7 V8 o else if( nJob == JOB_FLORIST_HERO )
/ T5 M X* Y! T! P8 v' e1 n nPoint += 160;; G) T5 s y/ h2 V
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 V5 O0 }. C1 K& _ nPoint += 180;
" H9 s, f a+ R' G( M) j1 I1 `) P else if( nJob == JOB_ELEMENTORLORD_HERO )
" W$ n; C t$ a! g' A$ m nPoint += 390;, A) q$ a2 n q+ L; `
9 }, `: g4 y( ^
AddSkillPoint( nPoint );
. b0 v o& z. e7 a+ K- i, J m_nLevel = nLevel;- d! p ^; h) I+ _
* e+ i! _. |& T% s) l$ f" b
SetJobLevel( nLevel, nJob );" z) j; m4 D% ^" }
m_nDeathLevel = nLevel;' u9 ^: f/ c$ ^2 R6 a. {& e. s5 j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" V: W) _: j, \: ^9 m
if(IsMaster())) } O% V" w1 G" a$ y0 J
{. N. M& V8 }" e) t" ^0 j0 a
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 I1 P7 I ?5 \0 r) J4 U9 T% @+ B
if( nLevel > 59 && nLevel < 72 )# @$ k5 h8 T+ Q. u4 a/ w. d$ h# h8 `
dwTmpSkLevel = 1;1 c+ R. _) C- X ~- W
else if( nLevel > 71 && nLevel < 84 )
/ `& N9 u0 f+ a dwTmpSkLevel = 2;! @2 @+ }9 w. Z- G) P
else if( nLevel > 83 && nLevel < 96 )3 w7 f9 {4 o& B& m1 \) Z. H8 X
dwTmpSkLevel = 3;
4 f8 H* z: n& q else if( nLevel > 95 && nLevel < 108 )% j1 {( C! s! O) W9 |$ F
dwTmpSkLevel = 4;$ }) T9 `( _8 z- j& V9 H4 S0 \: v
else if( nLevel > 107 && nLevel < 120 )" e7 I$ }, |2 q' ~6 i. G) D
dwTmpSkLevel = 5;6 R7 I& d3 {2 s3 G( [& X1 t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . A1 F( L C8 [" s! T
{ 0 _# _8 C* W+ S( r- l
LPSKILL lpSkill = &(m_aJobSkill);
, t: t( E7 Z, \/ s+ Z E if( lpSkill && lpSkill->dwSkill != NULL_ID )! E' r' h3 @. h2 g* M
{3 z; E" D7 O. D& _2 m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( p* {+ P0 S+ y# E0 }
if( pSkillProp == NULL )1 D+ D3 U/ q5 g7 U
continue;: G# i7 k# k/ C$ v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( P7 I' p! B8 c- |/ }8 Z* f% i continue;
8 t! y: o D6 p7 @7 z( r lpSkill->dwLevel = dwTmpSkLevel;5 m) M3 r5 Z L; K; t3 y* @9 Y% y6 L Y
}
. C/ @2 p. v% [8 k! u3 n }
. G' m. A' K# F7 X, }; `* t! r5 Q: \% Q }
3 e$ a/ M: H: ~1 ?$ O% X else if(IsHero())' z' Q% p- P0 L3 Y8 i& c7 R
{" t' N0 b2 \* e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 _" b* q0 Q5 C- }' J, h9 Y
{ 8 E' X1 S) T, x4 S3 D* Y' \# f1 _
LPSKILL lpSkill = &(m_aJobSkill);
. M+ k, b; b0 }6 n# v if( lpSkill && lpSkill->dwSkill != NULL_ID )! s; i% }) k, v1 G1 E% L( O& h
{
4 D* P! \2 n. `# D+ |" ^/ ?1 b0 d) O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 a V) [! W( A1 Q2 X! S
if( pSkillProp == NULL )
I r9 r& o( r3 {* f0 @9 O continue;; {+ k0 r! a. }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 D" d3 n* l% o
continue;
- u+ d: u7 ^ t/ R3 ^, } lpSkill->dwLevel = 5;
# i4 e7 ?, _" k' \" w }2 s. g- O" k# X2 C% g, P+ n; P
}$ F( ]& ~9 z1 S( c
}
7 d( ~+ |9 y: O: s4 ]3 h else if(IsLegendHero())
" z$ h, D" G' a {
+ n, X! ~8 ~( [0 h' g/ ~( V% Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) G- f9 M- H# R# f$ Y: X2 q
{
8 B# q! O: {& E1 Q4 s+ H: Z" ]) P LPSKILL lpSkill = &(m_aJobSkill);
$ Z8 A5 n) o9 q* G if( lpSkill && lpSkill->dwSkill != NULL_ID )( T1 X- [& o" D; y- n: H8 ]& ?
{
# \% ]& i+ ?6 i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 n' v- m5 Z+ x' O# A
if( pSkillProp == NULL )
# Y8 d/ n( G+ O' `$ y1 t+ z3 Y1 X0 F continue;
! o& Q5 |+ B& t( ^$ j' c$ P) C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. u4 @( s8 Q5 [- d6 U6 U" a continue;
3 W9 K) l( T- b* J* G. O# n4 N lpSkill->dwLevel = 5;
4 Y4 k! j# @; E( e0 _( Q# V3 [( _, A }
6 b- V/ I: p. X! ^% r0 I9 ]& u# e }
$ T; _, Q3 ?' v: b( } }
! l6 D& Z5 y5 Q' h#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 T- f2 `$ t! O: v: Y* M if( bGamma )( d$ {* C# a$ E/ u0 @ l+ c
{" R& }) t. A$ a- Y' |
m_nExp1 = 0;
3 w5 c i7 z( P. v }
: k3 x2 |' ~/ F' W' n5 P# p$ z; M! ?8 U2 z
( (CUser*)this )->AddSetChangeJob( nJob );
0 p- Q) j1 v* U+ t g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& p( F3 w# S0 N- z
7 H- J) |' a2 b3 k1 n- }% x4 g6 E! F$ V J7 {. D1 v8 |
#if __VER >= 11 // __SYS_PLAYER_DATA
2 G9 c$ i) n% O g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 ^6 Z2 A; l2 u* q7 b$ N
#else // __SYS_PLAYER_DATA& p2 P. G, O O) Z8 [
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 o) Y" `& L$ G& \; l% u2 G+ a
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ A% y9 d# ~# L/ d
if( m_idGuild != 0 )# K5 u5 a- f9 b3 c& j5 T( z0 E& j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' n- c; `& h4 F: m# o3 j& w#endif // __SYS_PLAYER_DATA+ g% v3 f1 @8 c8 n
SetHitPoint( GetMaxHitPoint() ); L9 Z# q9 b0 j( V* a3 t" A% B4 _
SetManaPoint( GetMaxManaPoint() );
1 [0 y- }$ m% d3 ^5 W SetFatiguePoint( GetMaxFatiguePoint() );3 y) W9 W6 p* P
if( nJob >= 1 && nJob <= 4 ): k( C% H; T( I. k8 w. ~; h
{5 M5 _& ^* p# _; R
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ q* d$ T4 P& q
m_nRemainGP = 28; N8 [# I2 Z% [
}
5 K) K+ x$ L* w if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 p9 Z! T% X( D/ h# i {& Z# _* x7 t7 Y/ U4 l
m_nRemainGP = 118;
$ G2 C* r- E0 _) X; w- S% \% w //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 s' A1 i% o' U5 C1 }7 s+ j0 `0 n m_nStr = m_nSta = m_nDex = m_nInt = 15;* q3 I, T. e# H/ q- F+ i
}8 g1 J/ q: E; y; n% J5 P8 Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 E7 S- h& E- p' F
{
/ E, \2 g* {9 z8 w CItemElem itemelem;" L: Q9 r5 Q8 `6 Z# E" t
itemelem.m_nItemNum = 1;
7 G2 b( `) A U0 } itemelem.m_bCharged = TRUE;
) a9 y8 d; s t6 j' H$ ]5 j BYTE nID;" @9 ~( j2 ~! M- q4 A* I* y' i
% x ~9 c- E# X, K7 } if( nJob == JOB_MENTALIST_HERO )
2 I* |3 s$ Q$ P( f) Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( r: c, J* D! T9 B. e- e; P. ?
if( nJob == JOB_FORCEMASTER_HERO )
& b$ h6 ~ i* p itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 O% l0 \' g& u6 w: J k. t; \( c1 Q: t% @3 _. N
( ( CUser*)this)->CreateItem( &itemelem, &nID );2 J- m1 Y+ a7 G B/ U; c: H! m
}6 H& c! O4 w% T9 q+ `5 u; X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 b: @% Z* h' D* ?" ~$ _
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. w5 `2 x# s4 A) Z6 v ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ e- s8 h# ^; b4 _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! C- K0 t- X" b% m
( (CUser*)this )->AddTaskBar();*/8 O& A. r; x. ~2 c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 b2 z/ h4 e2 b1 t, t' m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* l- h# z* B* P
((CUser*)this)->CheckHonorStat();
1 h; O; U) X+ a8 }% Z ((CUser*)this)->AddHonorListAck();
0 N) f9 _. b4 B0 u! ^' e& e5 c g_UserMng.AddHonorTitleChange( this, m_nHonor);& E2 l8 o c W" m' Y: T
#endif // __HONORABLE_TITLE // ′Tà?7 f2 C2 t& C/ [6 b7 z- N5 y
}
$ r# ]! \0 l7 B3 H7 \$ N& ?#endif // __WORLDSERVER# E) h, o+ i% W1 E
} * p+ C9 _! y7 N; m! \
& ^4 o5 V( z3 E- {然后你进入functextcmd.cpp并添加以下
, U' W, c$ w- ~
2 V. g& }7 c5 M代码:* ], p0 y; x% j% ^1 D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ S8 T. T k j2 X1 E6 [ x2 C
下面插入* A: D3 {7 W0 _. u+ u' }2 P/ }( T- n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 D. c+ t6 r& z; Q
1 S; |2 n( | f然后你去6 d9 @' i+ u, T( E( f
7 C/ w+ T; _6 @9 e0 W
代码:
6 f9 }" ^, M/ L) }9 i代码
9 T1 y# j) o6 Z1 OBOOL TextCmd_ClearPropose( CScanner & s )( v7 a% g, z) v# a) [
{# o* a9 m! Z% @# o
#ifdef __WORLDSERVER* l% \1 h4 ?( Y8 r
CUser* pUser = (CUser*)s.dwValue;
0 ~/ Z$ Y. j* D5 m0 F+ B, @6 @ _: a/ F g_dpDBClient.SendClearPropose();; F' t: Y8 \, ^) ~2 S) ^& R
#endif // __WORLDSERVER
7 L& K/ V4 t8 J5 t return TRUE; e% s0 w8 W K" g" W
}- u% H+ d2 @( L: K
下面插入+ J+ s7 T1 O5 B+ K5 C% H7 {: r
BOOL TextCmd_rebirth( CScanner& scanner )
7 B% a+ L9 d" s2 x; c Q{ o+ q$ T5 V$ i7 T5 ~' C( g
#ifdef __WORLDSERVER n8 N% N/ E( l h
CUser *pUser;$ @- |0 _5 q! R! _
pUser = (CUser*)scanner.dwValue;
2 i; X6 p4 p/ C: y* ?& qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 F8 Q, j9 h0 i; G0 `
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( x! ?! C, Y, w3 o0 c2 h* `else
+ P# C3 g7 \' E0 u- |; bpUser->AddText("你还未达到重生条件!");( u& G3 e- l5 z, q
#endif, \. c* h' U! w/ w$ X
return TRUE;
; K' o$ p( m" u8 A# K$ g6 H2 E; z} 3 i+ q: l% W/ V
; h' t1 K, {5 p- S
2 ^0 P3 n4 d/ O) H5 K9 p- Q8 I/ E& ~+ L F
) |/ F7 O& n& u |
|