|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" ]/ {. I1 S! n6 `9 ?4 l- o
. h3 b# U0 t- V n5 G
Mover.h
% s$ D5 A- @6 k! t) k, ^+ {代码:' m4 S" G2 ^. h r! N& G! N
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! u4 x$ i8 b0 r/ }& ~. D0 v5 f0 A/ @8 k! a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& ?$ x' |% j6 Y0 M! v" ]4 W% |. f4 h5 j) c4 j5 |" S) _
然后你去mover.cpp添加
! ]; G7 U3 S$ g$ f8 [! Y, F* X& ^" M; q- D
代码:
8 q3 m, p0 |) N+ Y* N, Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( ~5 b: X+ e: ]{$ Y+ }" v# k# {# \. v7 q5 M
#ifdef __WORLDSERVER1 C" y( m# B1 H0 h6 V+ l5 X* y
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ N8 y8 t- |2 j- W5 n% w8 V x MoverProp* pProp = GetProp();: t, {0 Q- C; e5 x5 ^: N3 }
if( pProp )
" D9 w: I& `+ _. L8 X/ A5 b {
t3 u9 w- J+ c# j5 {; { if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 u& K# F l8 z4 l( w
{
5 u1 P9 v- I! @, K% F$ L% d0 w5 @) v AddChangeJob( nJob );. B5 D5 P% R8 U5 J+ r
}else{
, p& m% D6 a2 I5 Y return;
7 ?7 C5 _5 O) h- {" }3 U/ I }; B* R! ~# z7 w" S- x }: P- O
int nPoint = 0;
) F6 z4 b& K9 B. i9 Y1 ?+ Y if( m_nJob == JOB_MERCENARY )% k% ?7 P! X- k
nPoint += 40;
6 D' S9 [- [- D else if( m_nJob == JOB_ACROBAT )! d* M2 Q% C7 e6 n/ g5 \2 A, E
nPoint += 50;- k! L7 ?' E# o. h2 o
else if( m_nJob == JOB_ASSIST )
; W5 @6 m/ [/ V, _; i! O7 n1 `# A nPoint += 60;
2 ^ L6 j q; g+ _* _! P2 r else if( m_nJob == JOB_MAGICIAN )( n# x# Z: |# L
nPoint += 90;
$ G7 M4 B! i2 J, u' u7 S7 Y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! p) V1 {' W5 W0 J5 U4 H% ^" ]
nPoint += 120;
: T5 X) Q; c' H# y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: R4 g5 `5 `2 p, B7 V2 p nPoint += 150;
% W1 o& Z, {" [) [. f else if( m_nJob == JOB_RINGMASTER )
# X2 ]9 ?% H1 v7 C0 O nPoint += 160;
- E1 |! h5 i. f+ F9 b' ] else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 g0 E* A8 Q' N5 a# p7 k- U
nPoint += 180;7 w% A. P; O7 `% H9 v t/ S
else if( m_nJob == JOB_ELEMENTOR )
8 F2 N& W5 C; e% v. f nPoint += 390;
& X$ l2 G" T z) J else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* E7 L4 H! b2 I( y nPoint += 120;
& T" I, |. n& M6 Y' V else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# W- S& B8 R8 J$ A nPoint += 150;
- F% `( E4 K; q, }. J5 \ else if( nJob == JOB_FLORIST_HERO )
6 ?; j5 L( Q2 s H9 @- C nPoint += 160;5 b4 v% q% V+ C& D
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% g4 P* Z9 r2 Q2 I
nPoint += 180;3 w5 }2 A* n- P2 e) X
else if( nJob == JOB_ELEMENTORLORD_HERO )" e; u5 v5 \% Q# b7 k
nPoint += 390;* y$ y) L/ k7 R
! e3 N+ t: L( y5 L& V* b4 T7 g AddSkillPoint( nPoint );
1 T0 C8 k9 _4 ^/ F/ O$ F) a m_nLevel = nLevel;
# E7 C8 R+ H7 h4 ^
& K/ p" {* N4 ^! l1 F6 w SetJobLevel( nLevel, nJob );
2 V, o' \ B8 o2 ]. M8 a8 M m_nDeathLevel = nLevel;
: K0 H, I9 X) {) s# H#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) a4 D( M/ U9 o. `; J9 |3 q if(IsMaster())
5 x* j o$ @/ o- E4 |- P {
% n& M/ A ]8 k5 S& _ int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 A" y- A: ]* {/ B) Z0 U4 j) w# B
if( nLevel > 59 && nLevel < 72 )
" L* Z) K0 g* m$ }5 t/ h$ \: ~6 Z dwTmpSkLevel = 1;
0 U9 }) u* `( x. E7 d$ |" w else if( nLevel > 71 && nLevel < 84 )
9 ^ |$ V* k) Z2 P2 G* @6 ] dwTmpSkLevel = 2;
# V6 ], V/ w( e* i0 k: s) x else if( nLevel > 83 && nLevel < 96 )% q/ |; F: z" z! H4 Y
dwTmpSkLevel = 3;
" n* ~) h" {0 j+ C! d; Y3 N4 m else if( nLevel > 95 && nLevel < 108 )6 f) u! v9 [# L# @4 I
dwTmpSkLevel = 4;4 y+ |/ ]9 y( T. ~; {
else if( nLevel > 107 && nLevel < 120 )7 L! R2 a( i+ |6 l
dwTmpSkLevel = 5;
8 O7 K5 [* ^* \7 ?9 Z. C+ K+ @) H6 e for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 i7 E7 F+ K4 v2 O, V' P {
$ a4 G9 i) t3 b% Q4 ~2 g7 G LPSKILL lpSkill = &(m_aJobSkill);
& e. n/ j$ u% h) ~6 N if( lpSkill && lpSkill->dwSkill != NULL_ID ): A V) M/ M" N f
{# M: q, ~0 R0 H9 Y- V0 E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; W% P$ R, Z* x Q
if( pSkillProp == NULL )
) j1 S1 d# e2 }# r continue;
0 s8 r, ]' G! M% _. L! d _) a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 ?' ~0 \5 K' w) B$ `* x; a, T9 G
continue;0 c! R( f+ b& z- }" {. f8 O; V
lpSkill->dwLevel = dwTmpSkLevel;
# P% A: M5 B5 V' Q }
9 _5 U0 B9 g5 V0 Q# J }
( {: q1 `! b7 D: q: I }
4 B1 k4 W9 x. c2 ?1 k else if(IsHero())8 T5 H" Q u* Q+ E8 y
{
b# k6 A/ l1 e for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 o4 ^: e8 G5 v7 R
{
4 o. i4 y2 `( X# r% H LPSKILL lpSkill = &(m_aJobSkill);
' I& g: g5 X5 @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
) v4 d* I- A2 ]- f1 E5 A {
2 F+ Z% C! X) i+ B9 B* z1 h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 D( o+ G0 l. q- G( x+ Q
if( pSkillProp == NULL )
/ a% f7 J+ ]& [4 F' b2 l/ ] continue;
0 d8 U! f: p. q, N7 V3 ]! k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, g P7 {8 q) l% _# @0 c continue;0 r: t" B4 o* N M) E7 f
lpSkill->dwLevel = 5;% {/ s/ J; ~: X! k% r
}
' q5 ^0 s+ ^4 { }, b( Y$ O! U* r& q6 g# B
}7 o, T/ E) r* a3 I
else if(IsLegendHero())
% t+ C. N- N9 V7 K# D5 t1 a9 ]. v {
, ~$ X% R2 f6 A" g) V6 y+ B7 l for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 D7 G6 B% e4 D
{ P# ?% w Z% y! G5 A1 M5 \& U
LPSKILL lpSkill = &(m_aJobSkill);
8 F& l* G5 z% p0 }* ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )) z$ R3 F5 J4 [ {
{+ Q- ?! M! K- h: o3 b5 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & z# M! P2 h, F T5 V
if( pSkillProp == NULL )
4 y% G5 s6 r D4 Z' v& A1 Y' ] continue;. }1 v: l) e3 b, O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); U$ X: Y( n6 F0 ~% H" @8 T, |
continue;
+ r4 {% u- q* m* H3 z2 d lpSkill->dwLevel = 5;7 j; Z6 T; A4 S; R( S
}5 O* y: d( ~3 W3 K8 f1 I6 k% C- ^
}
- Q9 W( X5 J0 T: ?7 H" Z }. ^6 e. k" U' @: l5 L! @) q) E
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 _' Q" n8 J. v) g, T% v/ P: G9 S if( bGamma )
( a0 G- W0 a8 s# { {0 @1 T5 E0 N' n8 z8 Q( _; t
m_nExp1 = 0;
2 V( H4 \ [ O8 o) {0 J }& j( s6 X7 ^* H9 c. [% Y
\+ w# T! m& q @ ( (CUser*)this )->AddSetChangeJob( nJob );. K1 a+ y7 [, ?2 z0 G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 q2 x3 \9 e' x
! M* K9 }) Q2 L' z( G ~9 q N# M$ C7 ^, H6 }; o/ t5 Q
#if __VER >= 11 // __SYS_PLAYER_DATA5 [' d9 ~, w% \2 G% a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: _+ Z1 }7 N' w( i0 J#else // __SYS_PLAYER_DATA* S0 X" o4 V6 B4 o" G+ g' j6 \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' k" u3 a+ t' S, k+ I* T2 q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ [2 [8 ~/ g$ b* z! l
if( m_idGuild != 0 )
9 m, B. X/ h4 Y4 v3 A5 P4 {, ` g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 V1 O: f% T) h, a" j6 }#endif // __SYS_PLAYER_DATA
" R2 ~$ g6 k7 X: X# W SetHitPoint( GetMaxHitPoint() );
* r0 @" ~* r; D7 {& n6 J1 _ SetManaPoint( GetMaxManaPoint() );9 ?; o0 P8 s5 R
SetFatiguePoint( GetMaxFatiguePoint() );
+ q- ?; E8 F, ]% H- `# q if( nJob >= 1 && nJob <= 4 )
" _- w- p* D0 T0 | {8 l. J3 E- u3 ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ M4 K" f9 |3 @% d m_nRemainGP = 28;# b9 x, J( K# T! s
}
& [3 O& ~! D! { if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 F. S" Z) S4 H, r/ G& S {: C3 ` S i( b: |) R* q
m_nRemainGP = 118;/ o4 A+ S+ X8 U d7 W* B
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( m( ]5 X% P% i8 A" A$ ]/ R; V
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 U& N# a: f& G& F+ w
}5 U% H* F3 o l$ S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) T6 G& i! g: K g6 j+ I7 z
{ N. T* X* H$ L" ~# y/ J3 A
CItemElem itemelem;
! p- K) k, }7 U7 s% V itemelem.m_nItemNum = 1;' W8 r# c1 f) J6 V, T
itemelem.m_bCharged = TRUE;
3 b3 ?* |7 m& n# E; q. p BYTE nID;8 T6 V7 S% U0 u2 B4 V
) q' H7 R" {; Y
if( nJob == JOB_MENTALIST_HERO )
& f, O$ J$ U. ^& _- B5 y# \ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 E# h; Q+ }/ U0 D7 n. e) E2 m0 R if( nJob == JOB_FORCEMASTER_HERO )
" @0 u5 R- Z* w" |8 y+ U3 ` itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# b0 D8 M, R0 x! O5 k8 b9 ^0 }# y( D
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! w$ ]% t0 {7 [5 L: w( T, v }
+ M: ~- g9 I, O. |& r5 t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 x! W+ ~% h% [+ t3 Q# o' y B2 c3 Y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- G- z; w1 B9 |% M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 b( R8 V, V' u5 T* F0 R) F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# l% s, N4 J' P3 T6 Y1 `8 c' Q8 ]
( (CUser*)this )->AddTaskBar();*/
7 @+ @* V2 A% u& i ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 h& x, w6 D4 V( F#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ ^# g! m8 @3 }# u5 b0 V ((CUser*)this)->CheckHonorStat();
- |( \4 s) ` u/ G4 l ((CUser*)this)->AddHonorListAck();* G" z9 w) i4 i6 V# Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. _2 {; R- c) a1 V- s#endif // __HONORABLE_TITLE // ′Tà?, K5 E$ k a7 v" R. w
}
$ T- T$ H J9 D3 u( }#endif // __WORLDSERVER
/ I8 Y! |& ]5 \8 d. ]' A} % o' `% T1 k' Z3 h$ g0 a) G. g( Y) V
2 C1 f% l: W- T然后你进入functextcmd.cpp并添加以下
- h* J$ t$ g! u9 P6 f k3 w3 I. D- ]$ w" g; d* x3 q* [/ U$ g7 M
代码:
' @$ V' k [6 AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' ?$ |0 k: A& X6 N k, q
下面插入
" V2 y; F& _& U+ Z) A- P3 X% BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 F* i/ i8 ]' ]
* f, A1 @- u. x z然后你去
7 S: o7 f1 ~" b; o# b' ?+ P
4 _. ~* ]' I* _+ S代码:7 k+ \1 y* G$ R, j7 q7 ^) I
代码$ W5 y7 Z$ d8 H2 U
BOOL TextCmd_ClearPropose( CScanner & s )" ^8 }, G8 V# T
{
* p. E2 c4 Q; Q# V+ t#ifdef __WORLDSERVER
; I$ z5 V9 S- j" v: P6 N CUser* pUser = (CUser*)s.dwValue;
" k' q: L2 R& I- \5 s/ c. o: } g_dpDBClient.SendClearPropose();, L! G4 Q; q j
#endif // __WORLDSERVER
5 u8 v$ n) N5 s% i- u return TRUE;* E P' i4 c% B0 f1 F2 C1 }7 d/ ~
}* G; @" A! c) z
下面插入
/ |) _& b' N2 h( x# u* v% F0 U3 RBOOL TextCmd_rebirth( CScanner& scanner )5 X! o* t$ b& u6 e
{
& Q. U2 h. G* B% H' D ^8 i# w#ifdef __WORLDSERVER
1 j3 I% d& g) m; W9 z0 ACUser *pUser;
6 G3 ]0 S/ l0 m5 a7 P0 }7 a0 VpUser = (CUser*)scanner.dwValue;
; w6 X( J5 k6 r5 Q9 @/ ~if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 i' i9 R) {% [( GpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 k6 y4 x* ~0 w; d
else
. z; Z5 c, }% ?! u& N8 W2 E9 zpUser->AddText("你还未达到重生条件!");
1 o9 \8 ~! B$ S) B- G' C#endif
: k' @- R [. F2 wreturn TRUE;4 ~5 p7 r& W# J
} % A5 e) r! S8 v. o" }
0 {' O7 h# o/ F0 U" C
: H0 _3 t+ J7 [7 ~& D! A% J& m& y9 U @' c7 w. y+ ~* I
! l' O- \ i( r2 o1 M |
|