|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 ?* W) i: P9 e4 `$ Q* r9 S
+ y- r+ g% c8 e1 _& T% Z6 g+ R. MMover.h
- i# l, I# ~3 d3 X- C8 q3 R2 |代码:
) H: ^5 S( D$ E' e' Z3 Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 L, _ s5 ]! Q
' }- i1 y7 _; Y( n U" s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 V' k B. v0 Q+ I/ k8 N* w+ F7 u4 W3 W2 R# c" ^
然后你去mover.cpp添加# F/ S9 y* n; G0 g
! _5 J* k- z6 t2 I3 @ b, N
代码:; m3 t4 X& R- r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! I4 I/ L6 I" Y. |8 Q
{
* K+ Y2 O! C6 g5 w; H7 w, Y3 ^9 o#ifdef __WORLDSERVER
7 R& E* W4 h9 e# U" Q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ R* g) z4 \7 q6 {$ |
MoverProp* pProp = GetProp();
* {, Z# Z& a, W+ [8 k, ?% G# Y if( pProp ). [# v! E. y' W$ L; ]. E: E
{: J& r' J' z# w; b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )# _ d% P% o# g: G8 U8 D/ s/ r* I' x+ x
{- G& I9 a* c# o1 r+ A7 |+ g! u
AddChangeJob( nJob );) u; {: P' \" B! E
}else{
: @8 ~% }3 {% c D! p# i& ~ return;, D; l6 P6 Z& f* x6 D9 P
}8 Q/ M- v' U/ Z# p A, L. B# T$ ]
int nPoint = 0;
" n% c+ a1 C; \; t8 C/ }2 v if( m_nJob == JOB_MERCENARY )% V7 w( u, P% ^8 E! Y D" x
nPoint += 40;* Y1 f. [$ G+ Q
else if( m_nJob == JOB_ACROBAT )
% G& F+ X. k" C% v nPoint += 50;3 h- X. b9 n3 @4 B2 Y, ~! F
else if( m_nJob == JOB_ASSIST )8 N2 B- D& g0 F) M5 ]* \
nPoint += 60;
2 I7 k i g! C# K2 p else if( m_nJob == JOB_MAGICIAN )
* g5 Q* v; y6 S7 B nPoint += 90;
( G% y# {9 d) z. Q7 f, ] else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 g$ e5 U( \ U' J. r5 A% `/ } nPoint += 120;
9 w6 @6 {8 ~/ J' c- w) d5 s! o else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 f+ Y2 C: r3 H
nPoint += 150;- x0 v) B# {/ w+ i3 v- |0 C
else if( m_nJob == JOB_RINGMASTER )
" K0 k( j' f1 E5 [- v1 | nPoint += 160;( b& J" G' N4 z! W$ k- Q a* e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% I* v" b" f3 \: t% q nPoint += 180; v5 z3 _1 ~" i3 V+ b' e( ^
else if( m_nJob == JOB_ELEMENTOR ), G0 a+ o2 F' m6 V- I/ H# ?
nPoint += 390;
6 |3 b$ D6 G( F. I9 r else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 w! P1 @- q" Q7 a1 A5 A nPoint += 120;
- N: O& H5 o; y ^* r5 x- k! H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ V4 Y2 V! z7 M& i nPoint += 150;
7 _6 K& M0 T0 Q& P3 x5 F7 P% ] else if( nJob == JOB_FLORIST_HERO )& Z/ N V2 u% l! b/ w
nPoint += 160;% l9 y' K! h- J6 ~# B' e" Z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ p7 x4 \4 L6 C* H5 ~0 q
nPoint += 180;
+ D) `9 j$ |. d6 j; p4 A5 @ else if( nJob == JOB_ELEMENTORLORD_HERO )
* I% P! ]- }0 U7 q nPoint += 390;
" O/ g2 m3 R! h
( t5 V ~0 A) H AddSkillPoint( nPoint );9 ^: l; S2 R5 M# N
m_nLevel = nLevel;
0 @: Z% `' g: n1 S
7 c3 v5 M7 z3 D# K SetJobLevel( nLevel, nJob );6 ~. u! m" z7 V+ Q: p% I9 `0 E& ]
m_nDeathLevel = nLevel;/ \! ^% G7 k! m$ |6 j( f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" e1 `: M- r4 ~! x9 m
if(IsMaster())
% b% c5 a% Z( n7 o, z; R {" J0 K! m: v% Z2 X# {$ u$ ^, p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
a( B6 s3 F0 ^) P; l if( nLevel > 59 && nLevel < 72 )% m9 j. ?* b+ T
dwTmpSkLevel = 1;2 l- b1 ?" z3 g) U
else if( nLevel > 71 && nLevel < 84 )
8 a' p& |( P6 i1 e+ j dwTmpSkLevel = 2;
+ x4 @9 a& ] x! v( R& C& e% f else if( nLevel > 83 && nLevel < 96 )+ w. }4 ?- r" W1 F/ j" K
dwTmpSkLevel = 3;, n7 q4 Z5 R1 X9 c
else if( nLevel > 95 && nLevel < 108 )# N: \/ K: G, m( @ a# L& ]
dwTmpSkLevel = 4;+ x$ S) `: g$ k5 m) F* g' q% _8 k4 b
else if( nLevel > 107 && nLevel < 120 )
1 L9 [% ~: x0 O6 `) S2 A1 |9 w dwTmpSkLevel = 5;
) A) y7 V6 e) R* T1 | for( int i = 0; i < MAX_SKILL_JOB; i++ )
" N1 ?" ^. x5 V \$ A; s- z5 } {
3 W% l6 f* q7 Y$ ]8 {1 B8 D# N% b1 } LPSKILL lpSkill = &(m_aJobSkill);( g2 q \; H; K1 S* r* c
if( lpSkill && lpSkill->dwSkill != NULL_ID ). H5 y, _0 ~4 l: e6 n: {1 k% s
{
2 a6 g ?. ~$ [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , _- w# |* K, f# e8 `9 j
if( pSkillProp == NULL )6 k4 m% F' p+ v4 e7 C
continue;
( b! H+ X4 y- J0 w9 D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% p5 j( K W: Z/ G. R4 D
continue;
% A) D# g/ X- L lpSkill->dwLevel = dwTmpSkLevel;4 ^6 s6 `# ?8 K* k
}7 [+ ]" P2 Q* g, ?: |
}
' [8 P6 R/ {$ i1 X( k2 q0 k }$ j$ q( S- [: x/ j/ h1 I: G, u
else if(IsHero())
$ K2 {! S& a, i4 @5 U& O3 y {
) H. G' c U# p0 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 Y, T; r) u6 l
{ $ \1 x2 O; {" j
LPSKILL lpSkill = &(m_aJobSkill);; v* I: d& K2 \9 V* t4 u2 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )* M, L+ H4 w* g0 l
{# d. q% a" B( @) W1 e, D5 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) t2 q- k$ c" z" C _2 w. j if( pSkillProp == NULL )) M2 S& |6 A) d+ v# ]5 P, |. m
continue;
_; z5 S2 ~ L& m3 @% |3 I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 s5 V1 ?" P/ v! R3 c
continue;! J* T, P- }! L8 }. u: U0 D# ~
lpSkill->dwLevel = 5;: X- g# q' b; S O, h( M# F
}
5 u4 p) @' X" P3 x2 C1 O/ E0 t }* Q) Z: g+ x0 e7 E3 u
}' v# L* S ^2 H6 ], O2 R G# y) C
else if(IsLegendHero())$ @5 p5 v- V8 v" J
{ }/ q v! X" h* V( H0 S9 \$ E( G2 x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, B4 q* ?0 U5 b& ^, g- m { ) h, D) u5 v0 h/ t# W
LPSKILL lpSkill = &(m_aJobSkill);( u [4 v7 G; Y% i+ ?2 v' h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% [- M4 R% u" R( F4 |; W {
% V( Y2 y, _1 @. L6 i0 `1 S3 t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 h8 x8 D: ]$ H if( pSkillProp == NULL )" ^7 i/ J/ @, l
continue;3 d! G3 J9 y; q# w0 w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 s# F* e' Z, B* d& U/ o
continue;: _1 z, |+ u# y* B/ d
lpSkill->dwLevel = 5;1 N. Z6 t1 |5 O9 f8 `( Z
}
7 j* O$ K) G. a, |: @ }' |4 l o! n6 r- H! a& i
}
" d, `+ h' W% Q4 o6 W4 D- n) v#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 e% ]& P8 x+ K if( bGamma )7 E, q. d' r0 z7 C
{% Y# _2 A" h3 ^! @
m_nExp1 = 0;" F# W9 d" L; P1 w- s& Y
}9 ]1 `) p9 D8 m$ C0 X
, }% c$ Y6 ` X3 l- s; Z/ A ( (CUser*)this )->AddSetChangeJob( nJob );
3 t. d5 y4 v" F3 N, m+ _+ ^ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 U4 M- K, p0 G1 h$ H
, K' j" w2 R' I7 M
5 T0 w1 A d/ E$ {#if __VER >= 11 // __SYS_PLAYER_DATA
6 X. C0 A' w$ [, s g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* M' Q9 y7 t/ v, z* Y. N
#else // __SYS_PLAYER_DATA6 f! ^# s8 c! S7 w# W+ ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' ?4 O3 n% x* D3 F( w
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ s: b4 X; \( t* u* N
if( m_idGuild != 0 )
3 G6 ]7 j5 A) C8 C g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );! l* x* W# k. K5 u+ c: w; D% g
#endif // __SYS_PLAYER_DATA* V: E, a- i% N) Y% h
SetHitPoint( GetMaxHitPoint() );- V/ G7 R% V, X: w7 ]/ J
SetManaPoint( GetMaxManaPoint() );! m- _' s0 d6 ]+ _6 W: t0 H2 ^
SetFatiguePoint( GetMaxFatiguePoint() );
`0 v. f; c- \7 I if( nJob >= 1 && nJob <= 4 )+ b+ E5 O5 J" g4 b: D. o7 k7 K
{* I+ l+ z m8 f' a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( A0 b( Y- H1 m0 E( B% c m_nRemainGP = 28;* a; w( T- Y& r# X) ]
}9 J: J( S$ U" ?% |. m( X9 U q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* R$ Q% C" J9 k% Q% E# t {
) }' E# M9 U; @, L3 E m_nRemainGP = 118;
6 l& D8 B4 N! |2 {$ ^, @( V: l, P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
E1 V/ @0 S1 I$ M+ J m_nStr = m_nSta = m_nDex = m_nInt = 15;2 w7 {6 `* V( `. H8 E! {. U; ]
}7 k. V; r' n4 q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ W, t' L) }" X1 y( V9 R) t$ J {0 ]2 V: }2 K. p% c( n( ~$ d
CItemElem itemelem;" t4 q( ^: p d! e- K' `0 Z
itemelem.m_nItemNum = 1;
{7 E/ \+ p3 X. m" p1 D2 ` itemelem.m_bCharged = TRUE;
$ f- G. A: O& |9 Z% v BYTE nID;) u5 L% Y; n3 ^/ x! w% j& P6 X
% y& A0 z- R3 A) a1 d$ g
if( nJob == JOB_MENTALIST_HERO )( p$ u: U* t4 u& r
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* o" S5 M- r$ |$ s# V, C
if( nJob == JOB_FORCEMASTER_HERO )
7 A6 b* N7 k H' k3 ?" G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! \; Y3 g2 p3 b% [9 i( W' V# u" j% K0 n: j1 e7 P* F$ m
( ( CUser*)this)->CreateItem( &itemelem, &nID );" g$ _, c3 a5 b2 X# M9 |0 E
}
, V' M/ W7 _; m! k, O6 E* T6 }- ] g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; j% F' Z3 t* Y6 d/ E ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- s8 S: K9 }* k& L# C! M$ O3 r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; O! E& b) N% E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% m1 ^8 `) ], \) c, Q& i ( (CUser*)this )->AddTaskBar();*/+ s; E o' f+ i* p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 x5 U1 e# z1 }: i6 }* X' V#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 Q @7 O0 S R3 s) s ((CUser*)this)->CheckHonorStat();
" g) q- j% d! B ((CUser*)this)->AddHonorListAck();, {( U, b' M* T3 [
g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 P3 Y& O4 ^7 p, ]& ]#endif // __HONORABLE_TITLE // ′Tà?! n# P& c9 X, y6 T3 A2 b1 s8 F" R
}; Z" X1 [' s1 f3 P, j6 H
#endif // __WORLDSERVER
6 Z1 {: q' n6 L& J9 q} ' I, W, B6 W5 |; k$ Z0 C
- h% l" |. [5 N6 U) f4 D然后你进入functextcmd.cpp并添加以下
+ i/ Q4 j" ]% T7 ~, ]* u
* d- p8 A8 m- K- \; w代码:% p B0 T5 A! a0 r2 p; B8 ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 P/ ?$ ~- D/ n$ {4 h- B3 n. `下面插入0 @" q$ q) r! o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 j8 L# ]3 b6 y. c$ X
. ^2 B$ j# k$ n' m1 J3 J4 y然后你去
* }4 q* k/ F9 {1 c. m+ i6 x; A7 x5 d
代码:3 \8 R! K5 G) P! z4 R
代码
! |9 H" {! C- |BOOL TextCmd_ClearPropose( CScanner & s )# w; f! Y. X4 o: G
{
2 Q# @) {8 f' t/ X% z3 J2 E#ifdef __WORLDSERVER& T4 \. \& `5 r2 d5 J2 ?; d" R
CUser* pUser = (CUser*)s.dwValue;
' @/ X$ u% ^& V" l g_dpDBClient.SendClearPropose();
7 s1 z9 k# O5 k7 x( t#endif // __WORLDSERVER
U: Y9 G @9 ~0 t return TRUE;! [2 g5 n2 _3 j# W! |9 B
}
6 J$ k! H+ [0 m% y下面插入
: w% A8 w& A! PBOOL TextCmd_rebirth( CScanner& scanner )
/ Q4 \$ k+ O5 E4 Z{
6 A( R; g" x7 @; I$ ]5 l% i3 M& W#ifdef __WORLDSERVER
* Q% B. U4 c% |* [ |CUser *pUser;
( M/ u* t; ]6 V% m: KpUser = (CUser*)scanner.dwValue;
& F4 D* _: P5 |! [) Mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ `( N0 k; G8 L4 [6 \
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. |/ m: _" Z* ^3 e
else
7 T7 @* f& _) b2 u0 @/ D/ B% rpUser->AddText("你还未达到重生条件!");
* Y6 C/ S& E! G7 e#endif
q: Y' Q. [0 T; O7 \7 T- Creturn TRUE;+ b. C! i3 |3 j8 D9 J- t( O
}
6 O" z, l! g6 K) O( i1 b6 G$ K7 U$ i4 V z
5 B) G/ V* P7 l' X" t# {% a s4 q. V
' _* X. w- V& e4 [! H, y+ A" {* V9 E
|
|