|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: E0 o" P! A4 M! A
2 C! {, [* }' l5 ]* J/ OMover.h) s" N2 w) e% q" p$ m' S4 x7 V5 [
代码:. ]5 W% u8 q) r+ w" c
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 J" z2 f, ] N# Y- H4 ?6 G* t
! b w J5 R# f: H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 G$ r( q2 I8 I% W$ B0 {; v+ o* a) `+ C- x4 K2 e
然后你去mover.cpp添加8 L* ?7 |: a1 a: J* l! A3 o
& E7 U: @+ T8 }0 ]9 {- U" j代码:
. g2 {' ], M9 {/ F/ j1 Q% }void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ V1 S; ~/ S+ V
{
) H) i7 j5 T) w$ R#ifdef __WORLDSERVER
! E% R. \) |. ]/ Z! g1 w5 \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& ~6 |# o% `, k9 v5 H& l
MoverProp* pProp = GetProp();
3 b+ ]* E- o7 ^# |9 f if( pProp )
! W+ ~+ x" s2 e- @" Y9 N8 [: i {8 r# V0 |+ `$ G. q8 ~9 w* [
if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 [% S) f, V, E+ ]9 a3 a
{5 W3 k, e0 B# w
AddChangeJob( nJob );
% H. c* `7 ~- G! R8 r2 o }else{) F3 i+ H# w4 V3 f$ A* R# X8 i
return;0 C# t( F- {+ \3 Z9 u
}# `6 B: c6 m4 b; K4 O$ q! p i, @3 a
int nPoint = 0;
- ]: ] N1 J& e( m; ?4 } if( m_nJob == JOB_MERCENARY )/ h. o) P h# {% w( f
nPoint += 40;1 P- S0 u5 C, H* N1 w: ]! N3 A) E
else if( m_nJob == JOB_ACROBAT )2 w2 c3 t- h& q; Q) @8 o8 F
nPoint += 50;" v8 k5 n/ c/ U+ t& W: o/ D
else if( m_nJob == JOB_ASSIST )5 }) H& p1 i( U, a: ]( U, _
nPoint += 60;0 J7 }0 W& q0 `
else if( m_nJob == JOB_MAGICIAN )5 k, i) j' ?4 E3 d7 i2 c
nPoint += 90;( s. K1 u5 h" E) E' O
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 m( `( K0 [( P! n
nPoint += 120;
a2 H" O; d4 y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 y# D1 g6 V+ O- Y nPoint += 150;
! a6 L" J, O2 F8 p else if( m_nJob == JOB_RINGMASTER )
1 v7 p' u3 m; K+ f nPoint += 160;
) m) N) P* d; G9 V$ X6 ~, h9 d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) h# W' A- j d. D& f% i9 \
nPoint += 180;
4 G% b4 }( g, X else if( m_nJob == JOB_ELEMENTOR )+ D& A( J" _) N3 ~! n( b! S
nPoint += 390;
- @: d" K* D! L+ m9 I2 S" { else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) C: c! B* t6 \/ J. ?9 r
nPoint += 120;, q9 J: `; y& J' O1 K/ o. K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 D& A( N2 E- \5 s: u nPoint += 150;. K/ |9 d" W( y
else if( nJob == JOB_FLORIST_HERO )' v' H7 T8 d2 ~! k3 L4 O& t
nPoint += 160;/ ]. P: h0 H* h7 z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# M6 H9 e% ~3 Y) N
nPoint += 180;! ^& k! O/ j4 l
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 @! G6 D# R7 F3 q8 w9 L+ i! G0 V nPoint += 390;
# z+ w7 t* a+ t) ?: z2 G/ R/ e- n" P5 r% \! W! r3 l% f
AddSkillPoint( nPoint );2 c8 s$ @# ^! o; e. S" a5 q
m_nLevel = nLevel;* j; _2 t& p8 ^1 z2 _; I9 n
7 r4 [+ i/ [0 Q- Z/ l! b SetJobLevel( nLevel, nJob );" Z' i( R9 c9 Z8 y& g( E
m_nDeathLevel = nLevel;) x! p* y0 J. i$ Q4 P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 B. ]1 P: U9 ?' P
if(IsMaster())
- p* t/ }) Y7 [7 _. |( k8 d { W" J) D6 W: I- |
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 k: i) w3 W4 i4 J2 l+ @+ Q* i; o* O if( nLevel > 59 && nLevel < 72 ) k' D; }; y0 Y$ B& D! _7 C
dwTmpSkLevel = 1;
4 n% m7 @) r. @5 i- j3 X4 m8 G else if( nLevel > 71 && nLevel < 84 )4 p0 }. b& N( d- E. V% Y B/ W
dwTmpSkLevel = 2;
4 J, }1 n2 `& F: c j3 q else if( nLevel > 83 && nLevel < 96 ); j1 B. W% r1 v) Q6 G" x
dwTmpSkLevel = 3;% t+ V+ N l! ~
else if( nLevel > 95 && nLevel < 108 )
# e' a$ P6 o9 d5 ^* H5 Y, S2 q dwTmpSkLevel = 4;$ b- ?( ?/ l- ]$ A
else if( nLevel > 107 && nLevel < 120 )
7 f0 r3 P- L, @ dwTmpSkLevel = 5;
# b+ w3 h" U- {. G1 l3 R for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 d! m+ U9 H& M3 ?$ X {
/ X# h5 ~, m0 }' o' \5 `, J LPSKILL lpSkill = &(m_aJobSkill);
- `, ~- q) c% V$ _8 D if( lpSkill && lpSkill->dwSkill != NULL_ID ); ?6 {2 j1 k1 A
{
3 ? U4 ^( z3 o- j0 s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * Y% R( e& ?( d
if( pSkillProp == NULL )
# w+ [# K r8 Y' w: Q ^1 e+ Z ~9 D* l continue;0 C1 L) ?) G; P1 o- y4 f: o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 b1 ~! a* p1 _5 p continue;3 p5 y# C1 n3 `" ?. x* N! q! i4 {8 F
lpSkill->dwLevel = dwTmpSkLevel;
& n7 P, o/ A7 c$ g+ N6 X }/ _) V0 K+ W+ P: Y5 N
}
" O3 h$ T1 ^# b! U, i; {- W( E }. W Y {* J- }* |0 r
else if(IsHero()); @: b$ O3 D6 g
{4 M5 x: f* f) R/ n' d& s7 d% M2 q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / i$ ]+ q: @' ?" s8 @% M
{ ) L! o% E+ V7 Y4 ~
LPSKILL lpSkill = &(m_aJobSkill);
& p0 N9 S) v! D if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 b; K4 m- @% f- D2 B {
5 v6 \# T, x8 l. o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - |1 h* S9 E. L! ~
if( pSkillProp == NULL )
# }0 h$ M1 ^+ ? continue;
+ ~- `3 k) [! H8 @ z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% I' h2 g3 L7 u) u7 B8 W0 o continue;; h: Z1 \% [ f, G1 v! {4 Z0 ^5 {8 y5 K
lpSkill->dwLevel = 5;0 S# Q; _, V( v! A
}) H! W7 O: E2 Y. S+ \
}. x; P5 h4 J8 ?3 L- x* U& @
}6 |3 F2 t0 J5 P; u; ^
else if(IsLegendHero())
/ L! N" P' U: M2 h. S2 { { j- X4 v. P. q/ ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 c# L$ Y \7 N9 n3 s L
{
. Y- W* ?! W& W- O& w$ ^ LPSKILL lpSkill = &(m_aJobSkill);1 C3 w5 y# @: S- G$ x( E( T. A0 Y! L
if( lpSkill && lpSkill->dwSkill != NULL_ID ). H2 e$ g( g% c
{
2 A( |3 i8 _( D* ^: B& E& ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 n5 q) A2 o& g, v7 t/ F if( pSkillProp == NULL )
5 e$ t' l7 \: V continue;
5 u6 F0 s" J* g- b. g6 ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 W6 d4 d* R8 p6 k continue;
E" p `0 L" r7 G: A lpSkill->dwLevel = 5;' d) C' ^# ^3 {* v+ J9 E* I
}
. N o5 Y% _+ |+ i9 q3 l6 O }
2 h" o& K7 H9 o# D0 S }. d0 T8 v6 {( c6 U; }" @. U
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans L5 g& v$ y: A$ ^0 ]2 H) O
if( bGamma ), M% o% S4 Q% Y8 N* j
{
. i/ T+ O: c; l; L9 r B: E m_nExp1 = 0;' v4 \0 ^! N4 m$ a
}0 t3 Z4 q0 D, d4 d. m4 l+ L
8 a+ ^" I8 H* m' N ( (CUser*)this )->AddSetChangeJob( nJob );, \2 y8 J9 W5 D# a( p: Z% U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 M. {( s$ @: J
2 b `+ V! N& S. q. K* |9 r6 Y @, ?# j; ~6 T
#if __VER >= 11 // __SYS_PLAYER_DATA
* J& u# Q6 B. o: O4 s6 U0 u g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. b+ c# J/ |" v- X S3 ]
#else // __SYS_PLAYER_DATA
1 ]. M# A @2 e; `& l9 _ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 @+ p0 E3 ] r/ ?
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: E- w( J% j t+ W3 S8 K if( m_idGuild != 0 ) B/ M/ W8 k1 c4 ^5 W: i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 g+ [ u- t ?/ |- @% h
#endif // __SYS_PLAYER_DATA+ _( c0 Y$ q+ v) d
SetHitPoint( GetMaxHitPoint() );
6 M- m0 ]% s. [7 l/ U1 K SetManaPoint( GetMaxManaPoint() );
o7 Y+ j6 m' k8 P5 s/ h6 d SetFatiguePoint( GetMaxFatiguePoint() );
+ Y: u: g7 X$ Y0 ] if( nJob >= 1 && nJob <= 4 )9 l4 B/ u. G3 L9 p) H# O
{
$ i/ F' E2 J2 z T @- D1 H7 K m_nStr = m_nSta = m_nDex = m_nInt = 15;8 p3 j; ?) A8 {! I% W" L. b
m_nRemainGP = 28;
' ?. o3 y+ ]: H) W }
0 x/ G0 X6 n% w if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 t+ P8 }% _4 m% U9 y2 W
{' Q3 B0 C! e R
m_nRemainGP = 118;/ k# B9 O0 W8 `% s" [
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 V* U ~- }( @6 e
m_nStr = m_nSta = m_nDex = m_nInt = 15; w3 G, o5 k. z+ P* j
}
# a* D9 }* s+ t5 Z% o if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); O9 ]7 S) \& u$ }
{2 j+ r* K* C9 R0 [% B
CItemElem itemelem;8 t. q0 @% e( K
itemelem.m_nItemNum = 1;
- f/ i; e! y8 M# K+ p; v, s itemelem.m_bCharged = TRUE;; M7 u; P! ?: p: h b. U) O9 n
BYTE nID;
& I0 ~4 }1 X4 y4 [1 p% f
) u* n) k7 E- t9 J ?! i9 j) t) ] if( nJob == JOB_MENTALIST_HERO )
. I2 y# [! g' c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ p z% ~- U/ w: V! |% y if( nJob == JOB_FORCEMASTER_HERO )
. [; k3 q; U4 x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. o: B; n6 `' D8 D7 V( i* D
- T* A$ W$ o$ e ( ( CUser*)this)->CreateItem( &itemelem, &nID );
( M. b" L/ L) k8 e3 L }
! p4 _9 s: @9 x g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 e6 L4 m- j3 H, b' l4 M ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; x( i( f, {7 S9 P7 O8 }
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! c- N: q; C# `% f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ v" L/ ^" U- i8 F, S5 k& D* } ( (CUser*)this )->AddTaskBar();*/
% }; ?: x) s( { ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); `( z, H) V3 b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' b m3 f7 o4 T ((CUser*)this)->CheckHonorStat();
! G# w: e9 E; M R9 I! @& P' [ ((CUser*)this)->AddHonorListAck();
- y5 V. X+ [6 F! D/ } g_UserMng.AddHonorTitleChange( this, m_nHonor);9 F2 E& g% W z. x0 n1 w) p ~; P+ y
#endif // __HONORABLE_TITLE // ′Tà?
, m* W. I6 k* \: `9 j9 u. ?1 Q0 J }
! |: J$ ^) V' Y- t' Y#endif // __WORLDSERVER
5 m4 k$ j2 v) I3 |3 u} ( q- v6 Q/ u; z. [+ w1 {* `
# \6 d7 E; x6 T \& l% G9 l然后你进入functextcmd.cpp并添加以下
5 _1 ~3 v$ W* ?! R7 i( D2 r9 @4 R1 a+ e' A
代码:5 q k( l' m/ g% ]8 n2 [8 H+ g+ e
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 U9 h- _. H! S
下面插入
! r+ ^9 H9 C2 o% H1 `) J( WON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 {* t1 X# \, D1 [0 b' u( i
) |8 l' Q% Q7 c! |. g$ j9 J/ i然后你去
' f0 b- }$ p( I/ j+ r; ]8 y c9 ]9 M5 ]8 Z
代码:
. `- L9 u) @# _; W% `' h代码
6 f& k4 g& ^. V4 g( B- y1 SBOOL TextCmd_ClearPropose( CScanner & s )
' C% g3 N: {/ H: Z{
) t$ B! {* Q6 ]6 y' P8 c#ifdef __WORLDSERVER1 [/ ^9 c; m5 y5 [
CUser* pUser = (CUser*)s.dwValue;
! A. H% t `) O! K- f g_dpDBClient.SendClearPropose();
+ q; j( G, @( { Y9 {#endif // __WORLDSERVER
+ {. A; y7 R4 R9 V return TRUE;/ I1 @2 f) R l. R4 j& W S
}. f( Z( X+ z8 A+ F6 s
下面插入
# v4 K+ n! L j+ `. UBOOL TextCmd_rebirth( CScanner& scanner )
% N4 ^: H5 \( r: o$ }' R{) [9 p) a$ S1 K" a- ]2 E( c
#ifdef __WORLDSERVER- e4 J$ }6 I3 @, d n" D
CUser *pUser;
0 Q4 T& {) l7 B% C# ?( i! OpUser = (CUser*)scanner.dwValue;
) J0 \/ K- L7 w n$ d- A. rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 W: {8 K3 n" k e5 NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60); M+ e" C, s$ n$ [* S
else/ Q$ }. K" O4 @7 n8 Q4 f: U; p+ ?
pUser->AddText("你还未达到重生条件!");
/ I$ [: ~0 A/ }6 d4 `#endif
/ N% o7 m( B! s% s0 ?6 }7 z* Kreturn TRUE;
0 F5 ?6 j6 C7 d2 G; H2 A) ]; r} $ j8 |4 k9 c8 z# z/ ?
8 o. t _* Z# @2 p6 y$ i6 i
/ k' D) _' R" b" m* ]" L
# g2 k! [3 ^, m) S. m, l
E5 C' t; |6 f% h: s+ e |
|