|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! ]1 W2 d0 k8 ~6 ~1 x# ~
$ ]1 @* V. J& S. r4 T, z2 XMover.h
0 a3 N1 N0 d$ w代码:
% k2 o, p! K% j# c, i找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& @1 P, ~# d; d* ?5 _: H3 y
1 I/ v& Q- B+ n$ ]
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 v+ o5 O( z% n' U; R" n
) X2 s3 v+ _* S
然后你去mover.cpp添加
, o- [$ N u2 @ b* j) p- n( K. ^3 p7 ]) X# @8 U4 J
代码:
2 q4 o" _* t j& zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 t. \. E7 u2 s{2 ]7 o0 ~1 f5 y& D ~
#ifdef __WORLDSERVER
, O3 b! j+ o7 m // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 w3 H7 C3 i/ M2 @
MoverProp* pProp = GetProp();
7 O; O& B, O5 r4 f. u0 V if( pProp )# j; X! J2 |1 ~! j) O6 s. y$ O
{5 {+ C; S. ?/ {4 a6 _8 H
if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ t5 t1 q+ d+ t9 U7 u
{
5 m: {% U, @+ R+ q AddChangeJob( nJob );$ X- s; D$ t8 n! f5 T( c/ k
}else{. n( y! s) v7 s' j' \# B$ K
return;
# W5 y+ M1 {. M" U: k6 j }6 `5 u5 V5 K f" u$ @. j& J* F
int nPoint = 0;
, A, k1 {. Y7 x, I# i if( m_nJob == JOB_MERCENARY )
8 J4 d6 O* e% C nPoint += 40;3 C: G/ m, ?4 ?/ Z
else if( m_nJob == JOB_ACROBAT )* V9 h; {' i& |3 n% V
nPoint += 50;
& W" A" I# o6 o else if( m_nJob == JOB_ASSIST ); W* Z! g' K$ O
nPoint += 60;
. h' o+ A4 s$ `& @ else if( m_nJob == JOB_MAGICIAN )+ t; I1 Z0 A4 L* I) C% a
nPoint += 90;) H4 T) A( i0 d8 f3 s) s3 e \" T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 A" ]& H6 {& E% l: N
nPoint += 120;. f b, e( Q$ T- e
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ c9 S) h) Y* p5 c" R6 M' x* S
nPoint += 150;
3 c2 m3 L) S1 h, a' D# q6 d# F else if( m_nJob == JOB_RINGMASTER )
5 u8 a$ \6 Y U/ H# ^" J nPoint += 160;
$ F8 d+ }6 B2 O else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% I5 u2 @9 w, s9 g! k, Q( b* D- W( m
nPoint += 180;
% V* x+ s% y2 E- m7 t" O2 A8 p" X else if( m_nJob == JOB_ELEMENTOR )
2 T, P) { i: W3 i+ B k& P nPoint += 390;1 O8 B' C& l2 P- D" b: I% C0 a! S/ J
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 F+ J- @# f" _ nPoint += 120;
7 l; X7 Y6 l, Z3 h1 P else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ M' I, K) ?$ Y7 V# E2 [7 T
nPoint += 150;
9 M8 `9 k6 P' w# g) f3 ]& r+ ?2 L else if( nJob == JOB_FLORIST_HERO )! [ v1 i1 G( u" l) x. S
nPoint += 160;% [6 F3 {' j! \6 ?5 Y O3 z1 B ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 [" h$ A! M9 g, C- t3 K l7 ` nPoint += 180;6 u" U! Y6 p% t$ |3 R! m
else if( nJob == JOB_ELEMENTORLORD_HERO ), u! O# h+ A- s m
nPoint += 390;5 `# u1 M) @! R) {1 Y6 N/ a. b' t
( e/ [4 W8 t3 v
AddSkillPoint( nPoint );& H1 x& ~7 l- ]" A5 M( ^
m_nLevel = nLevel;, z- i- T3 X$ x* K: B2 I0 b& `
, G/ m$ F, e- ~" R: g7 a
SetJobLevel( nLevel, nJob );4 Q3 W- d7 W, V# X& E( q7 }/ z% Z
m_nDeathLevel = nLevel;
: a: Z8 R, a& }2 T8 Q9 X4 u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; G! l# ^/ o+ o. \; Q if(IsMaster())) }& ]6 g+ m7 ^% d
{( `7 L, j3 ]4 J) [! S3 T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" c i" ?9 x( B6 e/ } if( nLevel > 59 && nLevel < 72 )4 Y: o/ j5 A% m
dwTmpSkLevel = 1;
$ M* N0 {& p4 X6 D else if( nLevel > 71 && nLevel < 84 )
0 Y$ n$ H c$ j+ \" {0 W dwTmpSkLevel = 2;
% U& i5 ~" L6 P* c7 p n. Q else if( nLevel > 83 && nLevel < 96 )
& N6 i7 J+ A# M) [& ]( u. s$ d dwTmpSkLevel = 3;: f, Q' Y5 w2 z9 ^
else if( nLevel > 95 && nLevel < 108 )
- f+ W7 \ w6 g H* \* r dwTmpSkLevel = 4;! G& X6 z' e, |1 A
else if( nLevel > 107 && nLevel < 120 )+ I' P0 I% O3 x0 m; s. _
dwTmpSkLevel = 5;
: _# D( o4 `1 z! H6 W for( int i = 0; i < MAX_SKILL_JOB; i++ )
; E) V, ]4 ~: C8 T3 N { ( e @) W; v$ \# W% O8 Y* a- H0 W" P
LPSKILL lpSkill = &(m_aJobSkill);
$ v1 d3 c' e( B( O' t& i if( lpSkill && lpSkill->dwSkill != NULL_ID ), \/ }+ j6 r; T2 a. ~$ i& P
{% S+ b6 ]% {4 d9 k( q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & I1 @( G9 p( q3 ~
if( pSkillProp == NULL )) A. W& ^- `. I) \ f
continue;8 R& S' K$ e8 M( b* ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ S \0 O4 Z1 g4 v0 o7 i6 a
continue;
/ N- L+ T8 B8 a4 g lpSkill->dwLevel = dwTmpSkLevel;
4 h$ Q% c8 \+ U# o5 D+ ]" [ }. P5 [* E S! h- D
}- \9 @8 t( m1 P
}; C N& l6 B4 B. E
else if(IsHero())
. h3 O! q2 U5 J2 d {
/ B, ~$ d6 H9 b7 ^4 Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 d G) ~; U1 B# B: r {
/ x- J- |' _9 y2 t& ~/ T3 o; I* s LPSKILL lpSkill = &(m_aJobSkill);
# I4 [3 C6 V. F) f& g3 v7 y if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 [$ e! X$ d o9 D; q {
$ w& f# h1 B- M0 p6 D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 E" ]/ h' I& h. F5 D! _4 ^5 H if( pSkillProp == NULL )7 u" i: b( i" W! _8 Q, k
continue;' j* s! o4 \: x- j& m8 l) z a T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' d7 q1 n% g1 [9 w continue;
* ]# n4 L& D: J4 @ lpSkill->dwLevel = 5;; D* X ~+ I, d% P4 ^1 D. y! f
}+ q- o+ @; W$ a" P% K$ N- d5 T. f
}
N( v* A1 z! G4 K# w+ i% | }5 X: E) [( C3 r1 m
else if(IsLegendHero())
/ h# d% |1 ^) Z6 V* h( v, v: K6 _ {
7 x/ I5 D' w& @. I9 W+ [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 j( H9 Z/ O+ P/ r {
/ D; j, E9 k: @: T3 z- ~" d5 I LPSKILL lpSkill = &(m_aJobSkill);8 W& q9 i* S6 T7 d' |5 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 b$ _: Z, R2 C6 R* S* r
{6 x/ Q* V9 l% K9 b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : g9 C% f. I0 S+ U/ X7 I
if( pSkillProp == NULL )
5 }( p l z+ a* s i2 y- Q continue;; E% S* o T" D/ U" G7 n! t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ u- t5 l8 f, `/ O1 e
continue;
# t4 W( G( c# ]9 q lpSkill->dwLevel = 5;
& } N H G1 a4 d6 s/ p; a" ^9 H6 h }7 ]7 D4 M- J. z
}
4 b* M7 y: a: o3 A. G! j }
' `- y- F8 @# r8 J% ~( x$ n! ^) v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 O6 e7 V+ P7 s2 k4 A/ Z4 u
if( bGamma )! C$ J4 t# N5 @% E
{/ t& G7 u# e- j* p& W) A
m_nExp1 = 0;/ c H4 F1 v$ V) v
}% b' k" Y- U$ y! S
M7 w' g7 }, o# Q ( (CUser*)this )->AddSetChangeJob( nJob );
. \; o7 h8 [/ o U g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- _( A2 {8 c* t& B
6 D. Z% Q; Y( p9 f
& n7 }# B0 M! h( {+ k#if __VER >= 11 // __SYS_PLAYER_DATA
9 S7 @/ T3 K" X; K1 s% ]0 @1 [; Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 q# Y' {+ {6 j6 n/ @#else // __SYS_PLAYER_DATA
8 H( D6 E* I# e" A g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, ^' n5 j8 C+ B" \& A4 `
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) l0 m8 z: q1 D/ N! g1 ` if( m_idGuild != 0 )1 X2 ~) W) w+ b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, y; {, k' ]) r
#endif // __SYS_PLAYER_DATA7 |/ D! P4 A- J$ s% X' g0 U
SetHitPoint( GetMaxHitPoint() );
! a" Z" B- I( k# y) f% Y- D SetManaPoint( GetMaxManaPoint() );2 e' w+ L5 x0 O( ~! K* x# b
SetFatiguePoint( GetMaxFatiguePoint() );
z2 X) ?% ?6 ` if( nJob >= 1 && nJob <= 4 )
3 I& @ P0 P8 D5 O- W! F- Y+ W( y {% D3 i) K# m5 i/ Y' W) j' I
m_nStr = m_nSta = m_nDex = m_nInt = 15; U+ ^0 L# J5 y/ p" u0 U
m_nRemainGP = 28;, c9 w" R* U/ E" Z
}
8 m$ j5 v6 n& j* f" @& p1 {$ w# L if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& ?! C" Q8 G- a; T! Y
{2 F$ u+ f. q& X1 _
m_nRemainGP = 118;( J, a7 a8 y3 t/ O
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 I1 M1 { ^# X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 ?' k2 w4 z+ j) z/ M: T8 v }/ f, `5 {. P# b& u6 F
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* h, L+ D! f! u* K$ h% G {- \% i6 }$ {% E A$ Y6 ~: `
CItemElem itemelem;
( I' l& h6 }! q8 G7 {1 k5 b7 z/ I itemelem.m_nItemNum = 1;
2 q' @5 C( [4 `, [. p0 n% Y itemelem.m_bCharged = TRUE;0 \7 t+ B, N. U7 d' X
BYTE nID;
" [5 \! l: [7 d
) a. a* W: h1 |3 k k2 ` if( nJob == JOB_MENTALIST_HERO )
+ R- a( g$ E3 c9 ~5 t+ [( c5 S! X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) B* D5 }* e. q+ \' m- u
if( nJob == JOB_FORCEMASTER_HERO )+ a' K4 M" N [( c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- _. `/ R5 P, h+ |% P9 \6 a) I% n
- {: F d5 H5 ~# \! v
( ( CUser*)this)->CreateItem( &itemelem, &nID );
) |5 k3 O# i+ o& z A }
4 U( b6 p* _- O1 K' x9 a) v/ Z8 Y( t! L g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# U( Q, O B- i, F6 x @ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ T1 y; |# I& B: p ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* g. `% d& c8 P R8 z- x
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 v9 J' Z# [, e0 }' [5 U+ H
( (CUser*)this )->AddTaskBar();*/
; E& D; |' m8 X9 ]% `7 Y& v% A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" l# I) g- T/ n# D5 Q* N4 m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. d8 c3 n( H, h1 k7 t
((CUser*)this)->CheckHonorStat();( s7 O3 k& u! P' o9 @0 [3 Q) o
((CUser*)this)->AddHonorListAck();
* a' k% C j0 j( ]4 A g_UserMng.AddHonorTitleChange( this, m_nHonor);7 u4 k2 e2 z+ @/ n9 w+ i* K
#endif // __HONORABLE_TITLE // ′Tà?. M9 z+ h$ I: d' ~5 `6 Z6 E# n
}
4 Q7 @" {9 E1 Z4 J; F#endif // __WORLDSERVER
, D9 f! ?+ I7 R4 t1 Q}
& r2 }/ f& g' E8 Q. J8 _# S4 Y# i3 Y0 M. W
然后你进入functextcmd.cpp并添加以下
7 C$ M, J8 u5 W0 z' n
# \4 B- r: S3 R* V q |& D g0 a$ R! n代码:
5 s; ]! Z5 K& ^. A' G1 WON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( W, A' @- N5 i
下面插入1 T4 e3 s: Y0 I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' u& P! n- a# p4 N/ @) N
) D7 _/ I$ ?4 ?( Y+ F
然后你去
" V) u* w0 V# ^) ?" V
+ C8 F" j2 A5 e5 X1 K5 B代码:
: C/ f! L8 b- g' m# j! C6 S代码
* `" h- L+ S! Q; u s7 |BOOL TextCmd_ClearPropose( CScanner & s )" S( R- R5 X( `9 h; t
{' _! L2 g4 T m/ y2 r: Y
#ifdef __WORLDSERVER
( }% P d/ Q$ F5 B CUser* pUser = (CUser*)s.dwValue;
: E- _* y& E% C6 F h% W& L6 [ g_dpDBClient.SendClearPropose();3 g) L) q9 k1 K. P% Z
#endif // __WORLDSERVER
7 |1 O$ d# @4 s3 ~+ w& y1 q7 n return TRUE;+ X6 Z" |8 c- a8 Z9 J% X# ?
}
& } q3 C' h) x下面插入
* ? S$ O& l8 d( Y4 q T, DBOOL TextCmd_rebirth( CScanner& scanner )
! F: r0 l8 v8 m) q{( T& {# i5 U7 L/ O8 J" ?' c: v
#ifdef __WORLDSERVER" O6 b ?9 k1 G- w5 t6 Y2 R) \
CUser *pUser;1 o" ?! Q, b w( r; y' P
pUser = (CUser*)scanner.dwValue;/ d; s( ~8 a6 _, r3 E# d W5 i
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 E( q* u% }! a& R0 i' `pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 {1 O' I8 |4 Y# N# t2 w) D
else
" l+ x- K+ B4 f( N! c0 K+ \pUser->AddText("你还未达到重生条件!");* Q8 x7 k" w: k! i
#endif
( Y" n7 Q9 O' _0 }) E4 freturn TRUE;$ Q1 E3 E# j5 Z! f8 ?( V
}
8 `1 [$ z; B/ \! v1 ~+ O
0 I) F6 M' w% F7 A: U8 L5 x+ @( X2 N
2 Q& F/ R2 Q3 w3 z4 w6 v9 P8 |2 ~1 J
/ L) d( X& @" h6 p- q |
|