|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& z3 s E7 U+ K, t$ t+ ^7 k- }
, H9 b7 U& ?0 v9 G5 P( c
Mover.h
/ D8 s8 T5 n& C1 o& V, B! Y+ ?- q' {代码:
4 F. D! m* `" J5 C- P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! o3 \5 Y/ E' U' A8 Y
" A& e0 e/ c; b# L0 N* s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 ?6 Z, \3 N" F( R, d- Q @9 B
* `8 T' ]- g$ ` H
然后你去mover.cpp添加
& z* h4 d5 ^0 r7 v5 L5 r- b$ A9 T- N$ B3 _1 P
代码:
1 |* M W8 C+ Svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* V# p8 \ H; c8 j
{
& G) Q# P ] Q2 P4 B+ q#ifdef __WORLDSERVER+ C" c" b: P3 }. h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó S$ }7 @5 S! w" c. @; x/ ^
MoverProp* pProp = GetProp();
) V% Z8 g4 d/ d if( pProp )" w) T1 n, o1 c0 e
{) M8 g+ Z+ G% q+ A
if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ _ W$ J) G4 }. |. n: D- T7 r
{
+ c! N$ B( K& j/ t AddChangeJob( nJob );
) H; v2 |4 H1 W }else{1 l% z# L5 m' f9 w4 y5 `! Q) k; Q
return;
& O, P4 v" g9 R4 R9 P }! B/ p9 J. Q6 Q/ h% D9 ?
int nPoint = 0;- U; O+ [: J, |& L
if( m_nJob == JOB_MERCENARY )
) m8 ]: Z8 j: Z c7 [ nPoint += 40;' d3 k* T, L: R& X4 ~ g( ?: @' @
else if( m_nJob == JOB_ACROBAT )$ K5 E ]% R, R. D' u: b
nPoint += 50;
8 Z; K2 G1 W: I* B" T7 D- r, } else if( m_nJob == JOB_ASSIST ), }: ]3 ~' |5 W& z+ Q% w$ y+ C& b4 S0 W
nPoint += 60;
# @" [2 N) b* z7 r7 r# u( f ] else if( m_nJob == JOB_MAGICIAN )
1 R- U& f% _" f nPoint += 90;
0 U" a* X+ Z# L3 n* h5 V# H else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: [- v2 i' U+ P+ p2 @ nPoint += 120;
9 j2 p$ t# `) A7 P else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( Q8 p& r T7 T, {" P nPoint += 150;
[% C3 a$ K+ _* c& E9 { else if( m_nJob == JOB_RINGMASTER )
+ y$ q7 h. U1 f/ B1 S1 f nPoint += 160;
- |9 q9 T% K/ ~+ b0 o else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); u" b4 E* c, {- ` \. @
nPoint += 180;4 M$ F. t+ s% K6 Z' N
else if( m_nJob == JOB_ELEMENTOR )
[$ Q0 F/ `5 Q9 N7 m nPoint += 390;
! i5 s; \3 I( R else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* C* X! D2 G3 Q nPoint += 120;
4 d- m- c3 c$ q. F else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& k$ T, E/ l1 X. j4 t7 H7 W( u+ x4 j
nPoint += 150;0 K! C) y1 @3 d1 \& i
else if( nJob == JOB_FLORIST_HERO ), Q6 i. x! o( Y$ B
nPoint += 160;6 C7 r9 }: @! H5 {* Z9 \) d" I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" l. X9 N. v; m0 L5 P nPoint += 180;
% C1 P2 C& o6 P/ o! M: q$ z0 r else if( nJob == JOB_ELEMENTORLORD_HERO )2 U/ G9 {8 X1 P: I. A* L: X
nPoint += 390;3 w/ V/ s# `8 ]$ p; [
% ^" `! y" [7 r$ D( f AddSkillPoint( nPoint );
- X% s* v4 a! e8 H1 S7 |/ X m_nLevel = nLevel;. C/ [* K0 o! c( M' r: [# c l( ?
* o* F; P3 U) s
SetJobLevel( nLevel, nJob );" q" q( u3 @/ W7 Y
m_nDeathLevel = nLevel;
4 _4 h* j3 z; c% m- f% ^* T#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( A( y4 T+ {2 w+ N8 l: E
if(IsMaster())2 v g p7 G9 j+ t1 A3 T
{
; M3 S" S8 Y( t1 Q& B K. s2 Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* }. J- G* G3 u
if( nLevel > 59 && nLevel < 72 )
+ ^. z7 X: L6 M. |+ r- f8 c* P, J dwTmpSkLevel = 1;
& o0 P& o" U! E; c! A* ^$ a" d0 x! y else if( nLevel > 71 && nLevel < 84 )) K) ^, E) F( w0 H& O& i4 n- z' }
dwTmpSkLevel = 2;
2 [2 a* U, s! {9 |/ M0 @ else if( nLevel > 83 && nLevel < 96 )* p4 Y* \+ r1 ?! ?( U
dwTmpSkLevel = 3;
: A8 O C. ]) N2 c/ D else if( nLevel > 95 && nLevel < 108 )& _) m: j, H; {
dwTmpSkLevel = 4;
1 C" M F' ~. t& G: s, F else if( nLevel > 107 && nLevel < 120 )
2 E. T: h0 _) ?+ Y- R9 T dwTmpSkLevel = 5;* q. I/ ]* |. U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ C, j8 C1 w4 W4 W& n
{ 5 o5 V5 [0 G0 `8 q [8 C
LPSKILL lpSkill = &(m_aJobSkill);0 E3 f3 N1 @0 ]4 ]1 x0 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 b- G3 d$ M% R$ j {
& N+ l/ x) m% J- h0 u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
Q# M" ` X) t% G' ~+ n if( pSkillProp == NULL )) l, n X3 F2 `5 T7 f
continue;
3 E7 \. A/ p% H6 M& ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
G$ m& B7 v; B1 w: a$ k& m8 ^ continue;" i& B+ k, d' f# T9 I$ h" ^
lpSkill->dwLevel = dwTmpSkLevel;
" I4 F3 @% v/ O0 \* ] }
7 t8 b7 P0 i" y" { C6 j/ X+ ] }, u0 z0 g" D/ |* K% z0 Y
}' g( F& L( q, C8 l8 C' k
else if(IsHero())8 Y2 g( @2 \7 k
{
! g& v+ M, }! P# T- p( f6 _4 j for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 C8 U: L6 K; F8 V {
0 }; h# A! w0 C4 u- `- s3 j LPSKILL lpSkill = &(m_aJobSkill);
7 ?: _; w o' n& H1 s if( lpSkill && lpSkill->dwSkill != NULL_ID )* |- B9 M2 M9 H1 N7 [/ `" I2 v( @9 `
{
& v; \. `$ v7 |9 p; l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. z4 E, E& n: r- Y" @$ B$ `# G# @ if( pSkillProp == NULL ). z/ `' n: b1 x
continue;9 q& [* ^9 l( t% t" D4 ?7 ] l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# l# A. B; n% e6 u* _2 q9 k continue;
' Z/ y" e7 w& j; w( B lpSkill->dwLevel = 5;
* [% u9 X. u; F) f( B, w2 L3 B }
' w0 U7 ~ @* w# I. q9 l }# j# s5 t/ E ]9 R/ V7 i0 Z
}
! j) l6 F2 J# R2 a) d else if(IsLegendHero())
3 l% S& V6 z# r y {/ D" h+ M% L- u, g% ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ I& i( O" W8 N; { {
5 ~1 U# l- E) q9 W4 H; O2 {( w, Y LPSKILL lpSkill = &(m_aJobSkill);
& d# k9 K. C# L$ y. l' [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 N' z1 F0 }) R- m {
+ n; Z+ X5 ^6 t4 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 o8 v$ A0 o7 e8 Q
if( pSkillProp == NULL )6 n( e9 ]7 P3 e# m8 P
continue;% a5 N% x6 z. {7 B- g) w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 _$ f9 E- Z) P5 i continue;
* j- z4 r, ~$ O/ \# |6 s lpSkill->dwLevel = 5;4 X3 }9 L1 ]( j
}8 G7 r$ _. P' p- ?1 e
}
f( [% i! `3 { M3 n }
8 ?, D9 l9 a; E7 j. _#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 m, s+ u" t6 b) |% k
if( bGamma )/ c6 ?, |- f, I# z
{
. J7 L4 U3 p" ? m_nExp1 = 0;/ Z+ m6 ?) l* Z! L
}
+ q" U C W! b
1 D# a# K- a( x ( (CUser*)this )->AddSetChangeJob( nJob );" ]* \ Y X& K. s/ Q) ^+ R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; u+ A! h. g8 a: M* i+ J" T1 a: V
& Y) @$ l; l) ?$ g0 D0 g. Q3 u: N- |
! d/ D# ^3 M: W, ?#if __VER >= 11 // __SYS_PLAYER_DATA# y" n0 `0 T" j; i( W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 y8 w4 @( ]1 P3 k) C7 {/ y9 |
#else // __SYS_PLAYER_DATA
1 h0 l4 q" B* d# p g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: f1 A9 I8 w8 c( L4 A g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* Z0 K) k5 b; r
if( m_idGuild != 0 )- U: e5 }% ?8 c, e0 h+ l2 q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! g$ E# [* b- ^' h#endif // __SYS_PLAYER_DATA
^9 d. ?& ?" R1 Y F5 a SetHitPoint( GetMaxHitPoint() );
& A$ m6 R& O+ m" r SetManaPoint( GetMaxManaPoint() );& R" `/ d3 z$ p6 @7 `2 a# P5 U0 C% S
SetFatiguePoint( GetMaxFatiguePoint() );9 `" i0 j/ `8 e1 |7 s% a. e
if( nJob >= 1 && nJob <= 4 )
6 @( C) Z4 [1 |6 y2 \8 v9 @# j9 l {
$ Q" R! B; R, {/ W3 [1 Y m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 z: r6 B6 ]. t9 f m_nRemainGP = 28;4 n/ _0 w1 n2 R0 O: b3 ?, D
}7 E9 Y/ O9 \8 m+ r* N/ V
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- y& \9 h) x5 Z0 v
{
9 f- U* Z x# ]! T m_nRemainGP = 118;
% n1 Y# `+ E8 r3 C. Y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' h# y; C4 O! ~ D! A; i m_nStr = m_nSta = m_nDex = m_nInt = 15;
% f& t; }6 f/ ]# b9 K }" z! M; K/ N7 D. k/ k" L2 ]. s8 v/ G' O
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 v H& s6 I& H" \& I/ @) N
{( b' U% \7 j0 T
CItemElem itemelem; E/ d; w: ^ ^, |4 s
itemelem.m_nItemNum = 1;
$ A4 b% l6 }# D6 w) K0 \$ p itemelem.m_bCharged = TRUE;/ _- D. k8 K1 I0 h+ \
BYTE nID;
+ j ^% G. [( R9 W$ Q) _, d% b, E8 p- r( c' e
if( nJob == JOB_MENTALIST_HERO )
% y" Z* f O; B7 M9 R% V5 B9 H- v, p" K2 ]% Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: f9 y9 S, B0 H
if( nJob == JOB_FORCEMASTER_HERO )
0 L, e7 i7 Q2 v" |0 w8 V* a1 j itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) [/ X8 j9 b9 n* }: V/ d' ^8 ?1 N, k5 G) f X. `3 O
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ k* N S) w5 |0 Y, ~
}
7 i3 N3 ?6 @, W. ^. k- B( w F g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 E- Y. N) l _$ d. J
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 o0 c- u/ ~- [- c1 r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 O9 y F# b; Y) P6 U# r9 r2 I. d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 l5 H* D1 [: ` s) r
( (CUser*)this )->AddTaskBar();*/
9 H6 V, g1 `) Z/ c/ t* f; T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 D+ V/ g, ^" `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' W- R$ @6 w$ t2 U ((CUser*)this)->CheckHonorStat();
) M+ O$ ~, T( X# I, I) t" X8 ]) P ((CUser*)this)->AddHonorListAck();/ D9 C; U7 R. _/ \; I7 L
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- {7 }# z. T) a& @#endif // __HONORABLE_TITLE // ′Tà?8 N! i, K, V- z, Y
}$ }" b/ e- {% L6 G/ N1 R) t) V
#endif // __WORLDSERVER
# a! ?8 L. E0 h4 Y}
. R0 i* u$ h- ~3 ?) p4 m8 K0 C4 M" \- f- I. y
然后你进入functextcmd.cpp并添加以下. U+ Z7 J1 Z$ _. P' _9 L
# i0 y9 {+ O; [! W/ q
代码:$ t% I4 x% p; z S% \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 H& g+ d) d9 x
下面插入3 s+ { y& U/ e2 L- v% |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 F' F; p5 F- W/ ~' m" X! T! y& m1 ^! g5 P, g S: Y8 J6 U
然后你去
: q, `$ [( g# z: ?% W& T; m" U- H6 x7 z" G& C/ o0 q
代码:: m/ n: r* S+ _
代码' j- d, q9 [9 x3 |5 i7 I* T
BOOL TextCmd_ClearPropose( CScanner & s )
- p* k" D w% P{3 n" ^+ G) ]" `; F+ W' i
#ifdef __WORLDSERVER5 I' N& M& t: _
CUser* pUser = (CUser*)s.dwValue;/ y& B+ `6 H1 T4 f
g_dpDBClient.SendClearPropose();+ a. x% I: ^& R# b. Q
#endif // __WORLDSERVER4 H+ {+ L/ l$ [9 S% M; X* v
return TRUE;
" Y) U6 A3 V; {$ K7 q- s1 u; J7 v}& ~/ @9 }8 h4 Y9 @$ ^+ Y: Y
下面插入, R2 L3 o! s8 p& P
BOOL TextCmd_rebirth( CScanner& scanner )
5 h6 ~2 O8 y& Z; m7 y{
# R/ f9 H# V6 H3 m1 M. B#ifdef __WORLDSERVER
3 P `0 D" I; pCUser *pUser;) }# V8 f' w2 \- M
pUser = (CUser*)scanner.dwValue;$ j- G* H0 g; j% t2 X
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); b* {# v7 r7 }- T) E) T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, d: A+ ~- X3 Celse
# M: c6 W$ T( d$ b- G3 Q- ^3 ?pUser->AddText("你还未达到重生条件!");
5 a$ n- r" ]4 i3 ?3 x& [5 {6 W#endif" @9 u: Q8 E- x1 l
return TRUE;
3 ^* ]9 P8 P2 \! P/ p8 r% l3 M0 C: i3 o} # ~$ a. L8 T" g) A4 P
) C3 i3 f w) O, R
' a' l: N+ M* d$ W( t
# ?1 A" t* f8 ~! E3 `2 ]/ v2 a' l% r7 \8 `7 ^5 A. [2 H: ~+ @; O, N
|
|