|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! ]4 ^6 v- g& y8 u& ~( h
3 }) I C1 V+ y6 ~5 t& I( bMover.h
0 A: {2 {, ~4 h( m代码:' O1 x( C9 A6 u1 ~+ Z. j& B6 J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" @' X' v1 h* V @* E9 }, d8 d c( O' D
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- r% Y& s" a; S4 W$ V0 j4 v
z5 k# U E, l5 h" N( R然后你去mover.cpp添加5 P9 O* g( x9 X9 S9 Q+ M: S3 c* D8 d
x% F5 {: {3 {* x. g1 h
代码:( b6 t" [' v5 o! }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! W$ [6 Q) E: T- W; W* l6 Y4 O$ W{
: X8 T6 k6 g7 l+ F6 ~, b#ifdef __WORLDSERVER
^% {2 a& f9 f // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& U* D, K, F8 f+ S5 a/ U; Y4 a
MoverProp* pProp = GetProp();- V2 r/ L/ y+ Y0 n, a
if( pProp )0 o% }9 y8 y: z8 S/ ~) S& R1 a3 G2 b1 N
{
& \* T% D. ?+ [4 t if( nJob > 0 && nJob < MAX_LEGEND_HERO ), ^! U. z; E0 Z
{
% {3 V- X. m$ g% m( @/ y" W AddChangeJob( nJob );- y% C& |" F* s4 o# z/ j
}else{
8 u# K8 Y: j% `) W5 x+ K! r return;
% Q( |4 g2 ]2 I( D8 s }. c. F+ k- n! A6 T/ E' X' [0 [
int nPoint = 0;
( k- l k0 E: Z: a; R4 z if( m_nJob == JOB_MERCENARY )% S" y' X1 [9 [0 Q" ^, ?
nPoint += 40;
) s. }" q- J! U else if( m_nJob == JOB_ACROBAT )( A2 B& c9 L8 d$ L! k% I
nPoint += 50;7 } `+ m; L( }. E9 M h8 {
else if( m_nJob == JOB_ASSIST )6 ~' X x; B5 g. |) ?4 M/ w
nPoint += 60;
; M$ N0 g V3 W/ z# B: H! E else if( m_nJob == JOB_MAGICIAN )& H \3 v7 h) X
nPoint += 90; Y6 o% [/ G6 k) K+ b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' M# C0 w/ Z& h ^
nPoint += 120;
9 h2 F: H6 n! `; j; R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ }" g2 `, c) n# w) a* a% N
nPoint += 150;
* X; p; ]& D3 y0 n else if( m_nJob == JOB_RINGMASTER )8 ~4 X: C0 F0 l8 L9 G
nPoint += 160;* T& E! l" {0 a3 b
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): E: l; Z4 O6 _9 O( x5 d9 D4 A$ Y( s
nPoint += 180;. x5 _0 U5 R1 i) U4 H" j0 ^, v; i
else if( m_nJob == JOB_ELEMENTOR )( ~& g; r% {* |
nPoint += 390;
$ }7 k" E/ N: _1 P7 ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): A& z" d \: F( ^, w* K0 i
nPoint += 120;$ W3 _* W" U3 \6 r+ J! ~% y. k% G
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
x$ S! D6 b8 {2 O nPoint += 150;
6 t% D" `# J8 @+ R/ f1 Z: s" A else if( nJob == JOB_FLORIST_HERO )
) e( v+ @4 _$ @! M3 J nPoint += 160;
) W4 S. Z4 W8 Q Y* n else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ a, S% O. ?9 s nPoint += 180;& h# A: h( P5 x( c8 L+ y: I
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ L& w u& f' } nPoint += 390;
$ c8 d- A. C+ a) ^6 ]' e4 o/ q' c& ^/ W
AddSkillPoint( nPoint );+ h% C. I) U/ r6 s, n+ E# v/ z3 _
m_nLevel = nLevel;( X$ n4 x' i# n9 z/ Q2 f2 I
+ J5 q- F% Z) {3 _
SetJobLevel( nLevel, nJob );! b1 |- s3 |6 c
m_nDeathLevel = nLevel;
$ D; F( G8 t9 j6 b0 W+ G3 ^- @#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! B5 s& G# C0 C3 w if(IsMaster())
! \5 L% o8 n; T+ t4 s% R: [( x {! W7 l4 y) Q' ~) I' K
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 U% C' _! x& ^: o5 C if( nLevel > 59 && nLevel < 72 )$ ^) }9 J3 r6 I
dwTmpSkLevel = 1;& \ }2 W# K$ z- m
else if( nLevel > 71 && nLevel < 84 )
l# E( D- f* V4 d9 ]3 g7 R) ^ dwTmpSkLevel = 2;
7 w& W h( X% j4 [9 x else if( nLevel > 83 && nLevel < 96 )
, A# D* q8 y) S% u2 J: X dwTmpSkLevel = 3;
9 ~) F D& j' a! _& S0 w/ Y else if( nLevel > 95 && nLevel < 108 )$ q3 h0 s) B' t& p C
dwTmpSkLevel = 4;5 H) b9 {" N5 B: U9 D u. E
else if( nLevel > 107 && nLevel < 120 )- z3 }: \5 h1 r5 ^: x
dwTmpSkLevel = 5;
; |; Z1 B9 Q! D) `. q! G" K for( int i = 0; i < MAX_SKILL_JOB; i++ )
. a* l8 W1 ^7 A1 C6 x' u2 ?' W1 t { # v, c3 h) [. A4 H- h( S- B
LPSKILL lpSkill = &(m_aJobSkill);9 _8 U8 a! F1 h+ i+ b
if( lpSkill && lpSkill->dwSkill != NULL_ID )% N! ~5 @' a9 f/ ]$ j5 a+ `
{
1 V0 W: H2 j5 n }0 U0 j- X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 g* A" Y# J4 o: M+ h: r3 R
if( pSkillProp == NULL )0 Y+ v0 Y j3 X" y5 L' {5 ~
continue;
+ E( Q+ j& s7 ~5 g" y' y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& e( w q+ u- l' ~% o* D
continue;
+ G0 l& p E6 S lpSkill->dwLevel = dwTmpSkLevel;& {4 s! I% t/ U& Z. E, H
}
' s" P4 m& V! `# t4 ~7 p! X" O4 h }
- v1 I I7 L' o }/ h, B0 G- m4 e9 J
else if(IsHero())8 } v3 G7 f" z
{
" u6 @2 O+ e2 x0 ]- E+ P' n for( int i = 0; i < MAX_SKILL_JOB; i++ )
! o* i1 M; @$ v { - {* U$ _. Q- Q. Y2 c3 h, d/ D
LPSKILL lpSkill = &(m_aJobSkill);4 N# J8 T# i7 l1 W z
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 G" \" V/ T, ]1 Q" ?. j
{
( L! F2 n+ U" ~8 F3 Q8 o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 [$ }6 v# c [7 w- M! Y* v
if( pSkillProp == NULL )
& i( M$ M) y; P. R9 @ continue;. \5 W% B" K( S0 z6 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( e! v4 A- F8 l [6 t' W% X continue;+ H. P" @- M. P. Z1 C; {8 S. D
lpSkill->dwLevel = 5;3 i d! n% o( C) _+ H+ A
}; J% Z2 n; C: G( ~ |3 e
}
9 H2 j# ~7 B# o5 [8 p1 l }
) o ^2 C3 v; V, v3 J1 B else if(IsLegendHero())
+ k! |# m& f; n, I1 [ {6 o; Q, j6 H y( D8 {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 {& [; T) f# J) u% I2 g
{ * u" x7 Q% i' e) h [$ d
LPSKILL lpSkill = &(m_aJobSkill);
- e. j$ Y) _. y5 ^ M if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 B- c6 r( j7 Y( |1 O7 G {
* b2 `# \, Y" f- l+ } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, n( A+ d& g! P# F, S" h! b if( pSkillProp == NULL )
2 i* D0 D4 ~3 U- D8 E! @/ u continue;
1 G0 h. c; Q7 Z, t C7 Q m; Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 U3 e! \8 A' S' h/ C continue;0 Q+ ~( A/ `9 P' b, C0 N3 J
lpSkill->dwLevel = 5; w- j- N# {2 y- P
}
( o6 D. n: [" R4 f4 j+ S }
+ z( Y# a3 z+ t5 a' Q }4 g; i( t4 H' v7 k% `& J" d
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; t3 a7 R& N( o$ l
if( bGamma )
5 j8 M6 F; t9 a {
$ y: I( w( B2 d7 \ m_nExp1 = 0;
* H6 @# J& e% u4 ? }* U D! U- K4 M
3 ]5 b' i3 g8 ]
( (CUser*)this )->AddSetChangeJob( nJob );
4 Q, V: f2 R& f4 C+ G. p% p: ] g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 o: P& Q6 ^. k) b' g# j8 Y
c! ?3 Y: |* x& [7 T
5 T$ ~( V/ z, [/ D#if __VER >= 11 // __SYS_PLAYER_DATA; [) ?* E& Q s. P: L
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& V0 r4 Z0 F/ o; F( r2 j7 Y
#else // __SYS_PLAYER_DATA
$ F1 R/ S. E7 A# n+ V, `; H g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 q1 ]6 r6 e7 F- g4 K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 b2 j; Y Z' |" F" P& o- g
if( m_idGuild != 0 )
% ]; j5 U: t6 s. \% S. V# w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
X5 ~/ J) q( A- ^#endif // __SYS_PLAYER_DATA* i& [& @( c) T4 u: h
SetHitPoint( GetMaxHitPoint() );
7 J! \; [4 k. P' i# W SetManaPoint( GetMaxManaPoint() );, b7 N/ k, G% s1 Z+ s! M* w7 w
SetFatiguePoint( GetMaxFatiguePoint() );
. |# _/ i& e9 G, r0 L' p if( nJob >= 1 && nJob <= 4 )
, r. X; j# n% W* ]* X/ U4 V6 t1 P, T {- ?$ ?& \! W, h+ P' o6 B
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 a: z' G9 e8 Y4 y- t7 y9 b1 ~! G m_nRemainGP = 28;% m4 C3 b5 K- e
}
# m6 @7 `: |3 R; Q3 j: _ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' O. a+ H* g4 l* \; u7 p, t4 u {
- q+ _7 W) m* ^) f" i% l; f m_nRemainGP = 118;/ J0 a- |. N0 `0 l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 T" `* h5 Y" j5 w$ _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
. Z: ~: p% O& D }% {' c% Y8 [ l2 R/ f5 n
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) N8 T: f2 l9 I0 F4 _
{, S @" w& |1 r# S {2 S
CItemElem itemelem;% ^% w7 E+ {) l% B1 I
itemelem.m_nItemNum = 1;4 y3 P( w9 ^9 g% J% k( A0 H" r
itemelem.m_bCharged = TRUE;
/ I7 j$ f5 `7 H# Y BYTE nID;
8 C7 W6 @5 ?# C2 [$ K; {/ t. v% l0 M5 V5 H/ l/ B
if( nJob == JOB_MENTALIST_HERO )
/ K C( T) t% V) V' R# N" Y itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 a8 Y8 S1 l$ I5 s if( nJob == JOB_FORCEMASTER_HERO )3 a! F& a: J2 m' T
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 E' P; I6 b% S4 B' G* t+ @$ O
0 h W6 P0 t0 l( k, ~4 H9 t ( ( CUser*)this)->CreateItem( &itemelem, &nID );0 l: c2 P6 C2 G9 o, |9 O% a
}
3 F; T4 U" p3 u0 ]5 o) p g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! ~8 q6 l8 ~2 c; n/ x' u8 V. n7 U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 a$ A& J D( y1 f! z1 I/ \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# Z7 r) e( _2 j1 K4 q' g# l, S. l s /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, z" u2 C9 h( }- j ( (CUser*)this )->AddTaskBar();*/
3 W: {( L x# C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 i# r& W0 J, L4 B1 K6 I( d
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* {# X# j! K1 F$ ?4 |" V ((CUser*)this)->CheckHonorStat();' q5 Y/ _4 F) ]$ D, e7 c5 w
((CUser*)this)->AddHonorListAck();3 f4 a3 c5 L3 n
g_UserMng.AddHonorTitleChange( this, m_nHonor);
( C! j4 Z; I: k- u+ [5 l5 d#endif // __HONORABLE_TITLE // ′Tà?
6 E+ c. H0 V4 t4 g0 A/ N2 _ }& @; ~, t% i) i
#endif // __WORLDSERVER
2 R' H. @1 T+ ]& ~} # l: H4 w: v. D) A2 w: Z& p P
4 K% j$ f3 D2 N& ~, r# y
然后你进入functextcmd.cpp并添加以下6 |' C2 M% w2 r" `# l" P
' Q8 Z1 ~, h4 j8 p
代码:
8 A+ k4 s# @* _/ \. mON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 f; o( K# g7 [6 c2 O
下面插入
1 q: V0 s3 @: X! [4 U. }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 t, h9 Q6 Q" W+ {. s; H N" Q+ T, t' D- K$ A E* `& y4 m& D
然后你去
8 Q1 R( n6 Q' I+ z1 ]
0 D* I5 M8 c7 D$ I& o; p* i代码:
6 ~' D/ o3 l, K, y7 s0 j代码5 v3 R" I8 X' i$ K1 X! Y- o
BOOL TextCmd_ClearPropose( CScanner & s )
) O; t, Y( Z/ ~9 |2 Q{: X1 b7 ]: i1 g
#ifdef __WORLDSERVER6 W M" k: }7 Y# J. T3 H8 W
CUser* pUser = (CUser*)s.dwValue;
9 Q2 g0 V- U! A1 u$ |+ } g_dpDBClient.SendClearPropose();! r5 T7 \9 o: x3 D0 ?
#endif // __WORLDSERVER
6 Y! I! ]. L6 Z* F" J return TRUE;/ d$ O3 _+ ?/ p6 X) c+ l
}& I( g3 k6 Y' {) [
下面插入5 V* q* i' i2 r
BOOL TextCmd_rebirth( CScanner& scanner )+ t4 s% C" v& o8 j8 H
{
. m9 d1 \" h7 y& }" q$ h4 k( d% [#ifdef __WORLDSERVER
" {6 i& Y: y* m! k0 w/ LCUser *pUser;
' y; i* E8 Z5 xpUser = (CUser*)scanner.dwValue;
9 g( Z; S: m& J& n; y& |8 A, I) p; cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 q# Q r. k9 M2 S' D
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
U5 T/ E% e& k; a8 G( b; {else( |3 P* N% O4 q% P% V r
pUser->AddText("你还未达到重生条件!");# I4 W4 G2 Z% {0 X
#endif# F- G; p, x _. M( j6 W; V* P; F9 q
return TRUE;
1 @ @% A0 y' Z6 s3 i$ E}
8 r+ _1 x8 W0 X, u
. L6 v5 O. B7 H" W T% j3 a- _8 {$ L. |- L; i. U% a/ a! `9 x* b
) }9 I9 F+ G, h. f: E6 C6 u" T) O! N
. E8 j; a/ R8 Z3 v! c _ |
|