|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! N2 `' B3 f1 U6 f* _) D0 ^( [7 F7 [$ t2 r- o0 k( S$ x
Mover.h
+ x1 B9 L, w. [6 W3 x. }代码:
4 F3 A: P7 r$ N8 H9 P) z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 M* X+ R7 T$ H- i+ a
6 {) {6 M. P1 U9 q* r. x. n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ r O2 V9 p; h: z/ M3 Z- j) t* ^ _) y
然后你去mover.cpp添加- m& C+ x) ]9 t1 D3 |8 l
( z" F1 X' v' J代码:
5 w+ L7 C! H) n) A* S Gvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ }4 z$ j$ N. f{* q0 z5 q+ n/ o! z1 O9 I
#ifdef __WORLDSERVER o% T5 M. Z/ h8 ? H: `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 u, @' U8 p7 r; R+ I
MoverProp* pProp = GetProp();+ w) _( W' l. z, @
if( pProp )0 W9 I1 u; M" h
{
; F9 g* P' _0 a% K& M$ U if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ P/ i1 X, D/ n3 y" `$ N { C9 b. }% ^) S1 L$ R
AddChangeJob( nJob );
% D" s( Q7 r# w' z4 ` }else{
/ _! m* G% u' w6 { V return;: `; X7 @! u( K2 ~' N9 Q$ u
}* D& R b9 w8 s4 S' Y# z0 _
int nPoint = 0;( m! S5 ]. t4 u% ^8 F
if( m_nJob == JOB_MERCENARY )
: r, ~1 u# S S$ I nPoint += 40;
z9 G2 L6 f) a; o else if( m_nJob == JOB_ACROBAT )
8 c ?# K/ W/ J' B nPoint += 50;
* d( a3 k6 T% I0 ~' H& ~2 Y else if( m_nJob == JOB_ASSIST )
. t' e$ H7 I3 J# E& S" A- a nPoint += 60;
, o" D8 M- x: R/ i# n else if( m_nJob == JOB_MAGICIAN )+ \" ^8 }; {3 |0 Z5 ]6 R+ j
nPoint += 90;
: `7 z7 l3 |0 _8 T( K/ a8 T else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( a* x4 _4 h. b+ r8 ?6 x* d nPoint += 120;
% U+ T. j, \ c. ]. i2 ^% T/ ~ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" H. k& v% z" k3 B, W+ M/ `' ? nPoint += 150;% f2 P( O; B( r
else if( m_nJob == JOB_RINGMASTER )
+ Z5 X1 A) z0 v0 { nPoint += 160;
+ c. i# S c' A7 n( |( Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. A3 q/ l. f3 K8 O" L' n; K6 Y nPoint += 180;4 B9 f! N/ ~3 x9 V j3 p0 B/ `
else if( m_nJob == JOB_ELEMENTOR )
' p4 {. F6 b8 Q4 } I* G7 J k- @ nPoint += 390;! u1 ~& [7 ?5 N6 P+ E/ D+ ]' ^
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& v: T: @5 R6 D* c* ? nPoint += 120;+ H" H9 J" Y) r$ t0 Z1 J; G
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); e8 B4 u: A M6 v& [/ Y- l
nPoint += 150;2 s4 i: C5 |& T/ ~
else if( nJob == JOB_FLORIST_HERO )
( A1 A9 d& o+ N# g nPoint += 160;$ ^* P1 U! o( P, X3 l: z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% _: W; E( y' o& k
nPoint += 180;
+ Z3 g4 P8 X t* B& X/ b- S+ g else if( nJob == JOB_ELEMENTORLORD_HERO ). H9 v& Q4 I% P( `& _( a
nPoint += 390;
: Y2 i! R& V3 X, t3 V$ X) M+ [! p& f, l0 U- v8 ^6 x% ?- m' f
AddSkillPoint( nPoint );
8 Z7 f# k2 E3 J8 s( W m_nLevel = nLevel;
! n& a) L5 d- _0 d; U2 y9 y$ f+ ^) r/ `
SetJobLevel( nLevel, nJob );2 m1 f. n8 _, H% ]7 c; `" S2 j
m_nDeathLevel = nLevel;, v- [4 P4 N) o; }5 b0 u7 d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" p7 w1 n$ [! Z& \" u if(IsMaster()); h3 t2 p) [8 P! d- Y. D" O- h* U
{
: K+ c) |3 h2 [; V int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# R8 c0 c/ ]3 C: x9 W, C& o if( nLevel > 59 && nLevel < 72 )
( c$ O1 V( S$ Q9 ]- P% h4 b$ m* C6 X dwTmpSkLevel = 1;
( E7 ?6 e5 g! ] else if( nLevel > 71 && nLevel < 84 )9 W1 G! a. l% }; ~; y3 I! h: K4 W
dwTmpSkLevel = 2;4 z7 v7 y# m$ t; H. B
else if( nLevel > 83 && nLevel < 96 )
* F7 v1 Z( c" F) X! k" U- Q dwTmpSkLevel = 3;
/ }0 v" L/ X* G* R, d else if( nLevel > 95 && nLevel < 108 )
) f1 d( `; N7 D5 {5 j0 u0 `1 N- s dwTmpSkLevel = 4;
$ r; R+ B9 H! M. A8 [ else if( nLevel > 107 && nLevel < 120 )2 |8 R5 k7 I/ j# Q
dwTmpSkLevel = 5;
7 T, l6 J& D: m/ K2 ~5 K6 s% ]# @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
. `2 {* ]3 V( p9 T5 ]* H {
0 n w7 D, N) W" } LPSKILL lpSkill = &(m_aJobSkill);! {7 X# u5 {: C* P; K
if( lpSkill && lpSkill->dwSkill != NULL_ID ) K+ ^1 j4 N) p- c
{0 x1 W0 p$ D% z7 w7 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: d" @' S8 ]8 f) k8 u if( pSkillProp == NULL )
Z) u7 L' c2 N2 K continue;% n/ }7 j' c5 R# p7 ]" [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ D# z& O$ n6 v0 }6 W8 @( ^0 h: a
continue;% P" l J. k$ v; F/ g; {0 B
lpSkill->dwLevel = dwTmpSkLevel;7 X9 r3 W4 S/ S, S2 A J
}
8 ~2 Z( c( b7 V }; Z8 t! n) n- w; i1 y
}
& p O( j" N' J, X else if(IsHero())/ H: u: L) [/ X8 z
{0 B" {2 {0 @, N. Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ h& `- x% U# O% E: S {
D% k4 G6 y6 V4 ?' A0 F LPSKILL lpSkill = &(m_aJobSkill);
1 @- b8 j2 G" d" `- d5 I if( lpSkill && lpSkill->dwSkill != NULL_ID )) L, f4 b) u2 Y( P/ t- ~
{6 Y0 Z% F& e% F7 |- g0 H& ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. M& M! T. F1 L1 i9 u/ [) f* H% v if( pSkillProp == NULL )
2 V- N1 @2 A2 v) c, N! b continue;
$ Z6 `- p" p! g, Z2 e( H& r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 X- d7 z$ N W$ Z/ i& x continue;+ f: `3 {, N5 J/ K
lpSkill->dwLevel = 5;: t+ f: R3 |: R" o0 h
}4 e7 X! h! _+ }
}
/ S( i6 F# h& Q4 y+ @6 \! q }
% y: ~" P& z$ C9 \+ { else if(IsLegendHero())
. e3 H% D6 S' n( D {7 W/ T. I5 `. r" r9 D
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # y. H# c `0 o5 r
{
% Z' ?/ p( L2 l0 ] LPSKILL lpSkill = &(m_aJobSkill);- Y/ |/ D- D: p: N, l% e; c. P
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ Y1 @% |1 S' N. \4 h {- p0 E5 b2 R0 c5 b3 b( ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); }: c8 `0 C, V% _1 H8 ^
if( pSkillProp == NULL )2 W. F8 q+ `" C u# y/ m- P# S
continue;
0 B, m& T0 W4 ^+ f* y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% l5 Z+ @6 A, e, b; l: p continue;' i8 @2 g; p- h$ M# C6 D
lpSkill->dwLevel = 5;
0 _2 _2 S2 L0 s: } }
; v# z6 m# [4 q7 a1 K- {, W }4 r: ?8 c8 ^( b% r- P- N
}
0 `* Y% t1 Q# d( ]$ q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 C! u* k2 ]! z! ] if( bGamma )2 ^# \, K/ a+ _* e y3 `
{8 W' W3 K) c. z! C
m_nExp1 = 0;6 k( `: \/ W4 v% @) a
}) _' N2 i S3 b- L% Z2 |: G
5 ^5 A' }- c. O5 y( a* p
( (CUser*)this )->AddSetChangeJob( nJob );
/ I: m& c2 E. d/ W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) d* E. K/ b* C: v& x+ I7 x& d% V. ~) W* x
. \4 d1 a2 d9 B0 U- t4 D8 T/ J p$ z
#if __VER >= 11 // __SYS_PLAYER_DATA$ K% y, k; \/ n$ y3 b' f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: s5 D' D! a- L#else // __SYS_PLAYER_DATA
3 m0 Z" t2 @ G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% T" m, ~/ ^5 N+ [/ p% E3 s
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ \2 e$ W V) c w i' I/ J
if( m_idGuild != 0 )0 I9 d2 v6 Q# V( v& H* x4 c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& U1 t. r6 d' n3 r#endif // __SYS_PLAYER_DATA
4 o# {2 s. X% b( s6 r5 ]0 { SetHitPoint( GetMaxHitPoint() );7 N0 ]# @! r2 ?. M8 R6 T# W: u- t
SetManaPoint( GetMaxManaPoint() );* c6 G* G) {- @% T
SetFatiguePoint( GetMaxFatiguePoint() );6 \ O7 \: _# Q1 v
if( nJob >= 1 && nJob <= 4 )' |% _0 M6 C. W
{$ O9 J; H! H" |- a% @3 o2 Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' v4 P9 I) v" `7 \, O H m_nRemainGP = 28;
8 Q1 v9 a: ^# u5 _8 D$ ~- J }
& x7 d7 T& s1 I+ b" ]8 D if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% b5 h, S3 l% Q9 m9 [* H3 R {
R5 |) [; B/ }/ k4 U5 L m_nRemainGP = 118;% i- U \' l: W, a9 E
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ m& @" k; ?" O
m_nStr = m_nSta = m_nDex = m_nInt = 15;& Z4 ]0 {9 V( k5 d4 n$ c* {
}( ?5 u+ A5 D2 } {3 E# [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); T, m5 L+ E4 Q
{
/ A& D9 B8 |" M, ~! | CItemElem itemelem;
3 \# K# q8 V5 C' Y8 \ itemelem.m_nItemNum = 1;
* J2 Y4 T; n9 H/ }5 ^5 S( r/ ] itemelem.m_bCharged = TRUE;
) @ A! V( e# m- u1 D BYTE nID;+ { r, J f+ G/ @
7 v- a6 M; a' m! g: U! k
if( nJob == JOB_MENTALIST_HERO )* n/ Y3 I, d$ L0 Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 O( Y4 Q) n4 E( G8 G if( nJob == JOB_FORCEMASTER_HERO )
3 X& O F" Z* N; `; @; k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* ?+ L6 u* Q' E9 {% x! k2 z! l- b0 c/ O' Q9 m/ d; H N
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( C3 h! k ]5 O }
8 a) z) x$ \; [- j2 c6 {6 S4 v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 e4 w% i$ f# ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( [% P* N. V7 q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: i( M0 ` ]( v0 n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 p& T0 H5 Z$ q7 X- p1 [ ( (CUser*)this )->AddTaskBar();*/. O7 i# Z6 R3 I9 x+ \6 o
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( d0 p3 x* w5 K( L8 T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 D9 [: G; u! U! e; T/ V ((CUser*)this)->CheckHonorStat();
) x" S+ m1 B" |% @6 o7 ~+ q" z ((CUser*)this)->AddHonorListAck();
* h% c) d6 z5 v& F, ` g_UserMng.AddHonorTitleChange( this, m_nHonor);
- d# S/ D! t2 ^/ r#endif // __HONORABLE_TITLE // ′Tà?
; V& e6 C; W. x( A7 \ }* \, W" V1 y1 {: \0 ~) f, c
#endif // __WORLDSERVER
# \+ ]4 d) ^) x0 u) k1 \} ( Z' ^& K/ V( u7 j0 j- |
/ O5 E- i7 G" h# g6 _ K# j5 j然后你进入functextcmd.cpp并添加以下
! a+ L, n$ m- D m( j. t9 z0 [% A" V2 _& l$ G: h8 W0 O, F* t( ~( O
代码:- l" v4 S o+ h7 O& X0 f- N' U
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: R7 L$ `$ U- Y# S下面插入! e5 R( b$ m% ~$ I, U. R n2 `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " N/ Y; h7 R) I9 i
( t% V: D& S* g- L7 w4 y
然后你去
# a& l+ [) n0 \# X2 Y
% h: w# n" W1 A X5 x# T) R' F2 q代码:' u0 Y5 d4 V2 |% d4 f
代码6 F9 \( f' H5 g9 ~
BOOL TextCmd_ClearPropose( CScanner & s )
- P2 p! A9 {: M{, Y3 [! s5 o/ O' B
#ifdef __WORLDSERVER6 ^: V0 \" z) M% Z2 ?5 T/ c
CUser* pUser = (CUser*)s.dwValue;2 }$ O2 q# p$ i0 l |. A2 ]
g_dpDBClient.SendClearPropose();
( M9 m% J0 P% _' E# c: B7 H0 X3 S; p% \#endif // __WORLDSERVER& m& s H5 d! B
return TRUE;4 L" v, C( M4 y; k' s$ f
}6 ^- G. W1 a; z7 V+ y
下面插入
& |* Z b k( C3 |- {# QBOOL TextCmd_rebirth( CScanner& scanner )
4 j6 l" q e1 O{
5 y8 g+ S$ m# W8 U Q: q0 T. C$ G#ifdef __WORLDSERVER
! {# f+ N. @- w0 O5 k5 FCUser *pUser;
; d" x, U& [4 b4 Y2 u. d" cpUser = (CUser*)scanner.dwValue;
$ C) T1 U5 u6 |- Tif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; `1 C' s$ n; p7 NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- V/ N: d3 R, t, ~! k/ K7 |else2 W' d: r" e0 u. B- C. Y) D3 E! P. C
pUser->AddText("你还未达到重生条件!");
2 T! l9 a5 F% z3 P7 k9 e#endif
- U$ ~0 `( S4 b4 d4 x2 @( M- W- M1 Areturn TRUE;1 s8 d% g0 L& @/ P9 F0 N1 c
} / ?7 x+ v" [, J7 R8 g: a7 `, \
8 B2 W. N; Q' ~! ?! e" o: p! ]
8 v4 b1 f$ i% E) p' e3 p$ G2 k
1 ?! ?) F0 {" N/ w; i6 j5 k$ I( [* j5 X
|
|