|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% ^. G; t$ I2 l! c- N
5 ]0 g) l* d, _" H" } N, EMover.h
; l+ I. N# M5 P$ a2 Z代码:- y; V4 T' f8 F: m) B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 L" I9 O( U. N: S/ E* ]
) u b# x% @- J
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* m. z; s+ D3 x9 M( m. p9 Z1 X, W8 G8 Z) q+ c( r5 N/ n. b
然后你去mover.cpp添加
9 L; z! M0 I' i
2 O J' u2 F/ @0 }% U+ k代码:
9 ]/ c- C6 ^% p1 N/ s$ u: ?; Yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 R1 {1 |1 n7 t% ~
{# m. ^7 `0 i) |( ~
#ifdef __WORLDSERVER
: W. `# P- b2 Y' C$ [( H // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) y9 Z& f* n* C, A, D5 |% B MoverProp* pProp = GetProp();5 e! j' D7 x* Y# s7 r3 d
if( pProp )
8 q7 f- g3 j* @6 D {' T8 [# @9 s6 o; B% F( G: c7 L9 s
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( R1 h+ x3 b9 j9 u% ?; z {; H+ `7 `: r2 P/ S
AddChangeJob( nJob );) e* z/ I, o: a$ `& I3 ]
}else{
( Y7 P2 t: J; a8 a1 A3 z2 o( y return;% @% a5 I- q* ]5 j; J
}2 w6 ]) H) h0 n- y# g6 m+ q
int nPoint = 0;3 J4 }$ G' ^2 n# J" q* y
if( m_nJob == JOB_MERCENARY ), d L, Z9 z& p( f( J
nPoint += 40;
% @" F3 v, y6 s1 h5 w: y6 v; k8 J else if( m_nJob == JOB_ACROBAT ) n9 S9 x9 N$ k0 O+ n
nPoint += 50;
& E m3 L2 t; a# W" d$ B+ g else if( m_nJob == JOB_ASSIST )
3 W+ m5 T$ x. b' W: L8 x nPoint += 60;; W7 W3 d' `+ D! ? J
else if( m_nJob == JOB_MAGICIAN )
6 Y o! ^: j/ _: W) X8 R nPoint += 90;) h' f" _! G) Q( u" h9 z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( c+ d" ]( E& E% W b
nPoint += 120;% S0 K, i E2 g& p& V8 [" A4 @
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! P8 o7 g7 T9 I) s) s- ? nPoint += 150;
5 x, u6 E+ u5 v; Q* k else if( m_nJob == JOB_RINGMASTER ) M8 w0 G# _5 j3 X) m2 X
nPoint += 160;- ^# J! G7 Z. ^/ a3 b7 f5 J
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' b* r" n/ E P$ Q1 U2 }( P" g
nPoint += 180;
7 r5 j. E6 ~- T& q/ i# e9 X else if( m_nJob == JOB_ELEMENTOR )
( H4 P* {8 \, ?1 @7 V$ }1 j nPoint += 390; q- ~$ v3 }0 |! ]' s4 s; F+ [( e
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ N3 V0 o8 z! S" c
nPoint += 120;2 k$ N. P3 n; U& ?; J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 ~% @6 ~" b8 f$ M% N; v
nPoint += 150;
- I3 k9 a* {0 u9 N7 T else if( nJob == JOB_FLORIST_HERO )
6 y# c+ _1 z7 J- \3 K; O3 e nPoint += 160;, c( x5 t: ]$ A+ d1 M
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) E# J1 q( Q M; T- m+ O4 F3 u9 U
nPoint += 180;
6 F2 Z0 m( [2 O0 |- X" ~ H5 k else if( nJob == JOB_ELEMENTORLORD_HERO )
5 `" y1 N/ T0 n4 `5 }7 F1 a nPoint += 390;
/ l( C4 G* Q/ R' U1 @- D8 O `% y7 R. r+ L- U& ^
AddSkillPoint( nPoint );# |! f8 S5 G( }9 |5 Z7 S
m_nLevel = nLevel;
; @2 _7 ~0 k2 z
P: M) ~& j1 Q* s: G, k SetJobLevel( nLevel, nJob );
8 _( v0 x/ g' U( e% t# q9 G! ]1 m m_nDeathLevel = nLevel;
# L/ u% k3 q, w+ z/ B3 {! e& `#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ E1 o* [+ d$ I- o0 f# K0 M
if(IsMaster())% l5 T- r$ O% E, m N4 Y4 l
{! J2 h2 t1 e5 ^+ \9 R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 G* y% T! }" _( t3 c if( nLevel > 59 && nLevel < 72 )! z. G1 i) S5 V3 R' i
dwTmpSkLevel = 1;$ M; B7 \; ^3 v* N# n% j8 Q
else if( nLevel > 71 && nLevel < 84 )) i8 ^' K8 s) N* @" z
dwTmpSkLevel = 2;6 y4 `- H) E/ o$ X* v4 q# [
else if( nLevel > 83 && nLevel < 96 )! A3 f. z8 _: I; x
dwTmpSkLevel = 3;: p# G/ L( O5 p* x: d
else if( nLevel > 95 && nLevel < 108 )' H* Y8 s6 i, Y! n* u3 |
dwTmpSkLevel = 4;
- x0 {& L. @+ y) z! A* ` else if( nLevel > 107 && nLevel < 120 )" ^% o# t8 x z
dwTmpSkLevel = 5;
( c8 A0 d; `6 Y* J' D# C for( int i = 0; i < MAX_SKILL_JOB; i++ )
" U' J* e9 r( c3 r, x { ) P7 g0 ]5 H s1 j
LPSKILL lpSkill = &(m_aJobSkill);2 f" [: J5 g* t# H1 h1 `+ b' P/ `: @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 j. W& X: E, W; v% O" }* N! _5 O {% `6 Z' Z/ k/ L( t8 S0 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 B9 `% D# ]5 Z% Y, n7 }
if( pSkillProp == NULL ), T+ E; i, P5 ]1 Z! I6 M$ s
continue;2 M( H1 b+ Q. s) |5 I- ?- Y* U c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- S# S9 t" l+ }, G4 E% ~
continue;5 T/ b9 S, C5 e& K J9 y
lpSkill->dwLevel = dwTmpSkLevel;
% {% b. \! g) `; G }
$ J3 R# J |& }. j, N4 v; E }
) g4 d f5 X, |- I" P+ K }# |' t, G. H" F; t( ~5 r, J
else if(IsHero())
% Q* `1 V1 d' g: |& g( z3 r {5 k0 _, x! c( F" {8 u
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + N7 V/ K, a! v5 m
{
- z8 S0 n5 \4 X( i* h LPSKILL lpSkill = &(m_aJobSkill);
. v/ }) V* p8 W# r if( lpSkill && lpSkill->dwSkill != NULL_ID )* t* ~. W4 k# ? v3 S0 S: r
{
" z( Q& r. j4 R, |& h1 T8 B$ a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # A2 [& ]; R# g) i
if( pSkillProp == NULL )% e V+ i# T# I. m
continue;. n6 r7 P7 `5 b; E; n& q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 |7 S' s4 O, I
continue;
+ ?& F8 V& g3 Y8 r; j2 O lpSkill->dwLevel = 5;
9 D" I7 R( x0 ]; D }; K' {: h, ^7 {& ]2 C% e7 o6 B+ {
}
2 Q$ X! b4 ? o6 C/ b P( V4 { }# I3 e& `3 M( W% a a
else if(IsLegendHero())5 M" E. U, D0 \/ E
{ w+ r q. K) X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' G: M$ x. w0 v- a2 [
{
+ Y* p" j& N! S. {+ M LPSKILL lpSkill = &(m_aJobSkill);
* }6 C; D" o/ @( ^+ C if( lpSkill && lpSkill->dwSkill != NULL_ID )
. S" s. W0 s0 C) m0 _ {+ ]0 M% n; v8 `& K5 U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 o: O# x o5 Z7 x9 O8 u if( pSkillProp == NULL ); s& d; x, H& _$ V5 g( _
continue;; E! u5 {7 ~* v- N! B6 i; c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 U2 m9 U, N8 q9 W1 r% @3 t continue;8 g. a8 ] m* B
lpSkill->dwLevel = 5;
: ~3 L. w/ D3 H }
' m9 I: r/ M8 H1 Q2 R. h: B }
$ G$ P( P4 P, e) a7 y. a9 b }- P0 H) D. ?2 s6 H- I( P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ }0 I0 N7 F3 `' K/ S) l# N* N
if( bGamma )5 U8 r& t; H7 S3 ^$ N& R# t
{ y$ N) l; C' Q8 G
m_nExp1 = 0;
k6 g# J" z& s" [ }
1 ^( R# b: O, V9 W4 h' g( \6 J2 l' U! [0 B L
( (CUser*)this )->AddSetChangeJob( nJob );
% z! C2 C+ k, B+ _* T( B% ? g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, i0 I, w% D6 I( W2 c
! \5 S! L2 \1 U C$ d7 [1 A( V' h$ H4 @2 h3 [# e7 m1 s# y
#if __VER >= 11 // __SYS_PLAYER_DATA9 Y" z) R. M; a; T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: B( T0 R/ j* G6 ~1 {2 G4 z5 X
#else // __SYS_PLAYER_DATA
* [' v3 |: ~* H, K g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 x, d8 J& v5 j3 K' Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. d. _! B0 l& e+ `; ? if( m_idGuild != 0 )+ Y+ l5 X# [* R3 a7 z4 A
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 W) K( t0 G( C3 t% w#endif // __SYS_PLAYER_DATA' B% e9 ?& |) {
SetHitPoint( GetMaxHitPoint() );
+ _# v+ r7 G" T6 h2 i1 C SetManaPoint( GetMaxManaPoint() );0 Y, j* K0 x4 c" e* @
SetFatiguePoint( GetMaxFatiguePoint() );
8 w ~/ \& Q' B7 j3 g/ c/ `9 y if( nJob >= 1 && nJob <= 4 )
3 q+ a) d# o. m/ I1 i {
' U& g, a: D) T1 e( a8 \2 o# E" U m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 n0 D q R# I' `% m0 m* l2 i m_nRemainGP = 28;
! `" G/ ]# c5 G. Y0 V }
0 o# P& x' ^. b2 ?- P: c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* H8 n" b5 F5 i# t {: u K3 X2 l1 g4 j
m_nRemainGP = 118;
# N7 D8 ]) l3 ^, s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& ?; C9 c' A" Q) P; X/ m5 t/ _2 `
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 W w/ r5 v" i% d
}
- d9 T \6 V* z8 T- k* m if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 c5 `* s/ y) M* M, h% W {+ v5 y/ a1 t3 k$ X% L
CItemElem itemelem;
+ J. Q3 w5 J5 t7 p4 c itemelem.m_nItemNum = 1;' `2 v+ F2 b, u( N
itemelem.m_bCharged = TRUE;
* z- U2 U o9 c/ p) [( @ BYTE nID;
9 D! C ]" |5 Y. W( s3 `' z" X
# s1 t3 ~1 x( i4 l L0 A1 h if( nJob == JOB_MENTALIST_HERO )+ x/ F. p6 U# z/ S7 s: x+ _ w( N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
~, h/ k T: a" {6 _$ K; p8 } if( nJob == JOB_FORCEMASTER_HERO )
2 _! L3 O; v6 z" O& `0 F( x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! f, H8 ~ Y; F2 P0 E5 M% {7 _0 Q8 R1 F
( ( CUser*)this)->CreateItem( &itemelem, &nID );
# I9 ^+ f- k6 l* \+ ` }; N' M3 L5 K5 \: x
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 K# f% I; P. A1 M9 b8 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; k. x% p. t0 [4 \/ _
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" S+ Z! H% ]( C) A- I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* I. M4 A7 ]5 o% J# h
( (CUser*)this )->AddTaskBar();*/1 j* A) v0 v5 K/ p( k; E/ ]
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 b. c8 O! d, V. A/ m( d4 V: ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ L. B7 y, S5 `0 `1 e ((CUser*)this)->CheckHonorStat();
( K0 a, ]" }+ l7 _+ _ ((CUser*)this)->AddHonorListAck(); k- j9 Y: a) B" m, U) P% S$ v
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: O6 P* `- [& W' G! N0 p#endif // __HONORABLE_TITLE // ′Tà?6 m. |+ P& i; ?; I6 q
}
/ U) R; h2 u! h9 G#endif // __WORLDSERVER0 J* ?) T9 B! d# T- U
} 3 ?4 C9 w/ D) o! o# q, H0 D! t' l
& @$ o" \ S# P
然后你进入functextcmd.cpp并添加以下/ t: C$ f& t3 ?
0 T* T# Z. ~: N0 E# s B o2 m$ p代码:: y/ ?6 `) C; i5 A4 [1 O
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, d, u$ n8 f8 D/ P下面插入
5 ?- n6 M* {0 I) \3 K% Z4 U0 BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; [0 F# U( }: t* o* X& D
; N' j5 d3 G1 f( g% g, B
然后你去& Y# \9 u' z6 r6 m8 r9 {
# ]! Y4 K$ w9 x! F$ Z6 Q. w
代码:& e( e- W, ^0 B: k8 o
代码
$ W" t0 U# A1 R( UBOOL TextCmd_ClearPropose( CScanner & s ); K5 I8 @1 A, ^6 x- b& a) Y
{
2 R( i& t+ P5 C; o1 h% k#ifdef __WORLDSERVER
- m! V4 B+ a% H' A. ? CUser* pUser = (CUser*)s.dwValue;( q# O, Q0 g3 O$ I: t% y, K* t& p
g_dpDBClient.SendClearPropose();! K. F8 @3 E! n; K. o
#endif // __WORLDSERVER$ Q- ~5 }. U8 g
return TRUE;' y+ u+ g- O3 k, ~7 u2 d
}
3 d8 ^8 n( g6 O& L/ @下面插入
3 A1 W6 L& }/ O% G! \% r" Y( mBOOL TextCmd_rebirth( CScanner& scanner ). s1 l: g2 e1 l; ?2 x
{
4 g {( d9 `/ I: ~' D+ W#ifdef __WORLDSERVER% |2 W6 M2 P4 a( Y# n
CUser *pUser;
9 m. h4 m/ V/ e/ m+ `4 GpUser = (CUser*)scanner.dwValue;* j* Q7 b. K/ d g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), j# b+ n1 s* B# p. P( b( b# b
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) F, ^+ u1 [0 I
else* g$ t+ l* Q! d" t
pUser->AddText("你还未达到重生条件!");
- K$ r& E' h- q8 ^1 o6 E#endif
, I# L% n1 U; q; Y$ M% W5 N3 i. hreturn TRUE;
: y+ m. D [$ {' y} 8 l f" j' |& r
* C0 w5 k e; H
/ m7 g3 v$ P" @2 a1 I+ y6 v0 O" d0 h
, [: \- h" C$ h: `/ {4 o/ Y0 ~
|
|