|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 s+ z9 I/ V4 B7 ~# ^ a
) N* d4 {7 l% Q- U5 @8 UMover.h
5 a0 r8 P# w7 y, [/ T! O代码:4 N5 @( w5 w0 K" d& ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- j, u7 Z0 Q$ x( Q; g3 W, `& j( m; L
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 V8 ~7 C4 n' w
. V- Z& B5 p4 o) }' r然后你去mover.cpp添加1 P) C4 U2 Q3 u' I6 _5 l
w4 m7 p. ?; I1 S: @
代码:
$ z+ _4 R3 Y$ R' V* K, W- hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) p$ e# K2 x* B* \+ R+ b6 H{) u [& o' `) v( _! \
#ifdef __WORLDSERVER
( ], D; f2 F/ o2 z. l, l // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 y# R h6 P, f5 l2 b
MoverProp* pProp = GetProp();
" d S! D9 b- W if( pProp )
' v+ l; r, N4 u+ U" C- O4 S {- P2 [% {4 H7 E0 `$ v" u6 m' y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 y) ~3 F4 D% C# T: Z, A+ P
{
- N6 K: D+ j9 p4 P- c& D AddChangeJob( nJob );
5 p% E7 t0 H! C5 ^ }else{2 m" {2 t0 a* q4 J$ M& _1 m1 P- g
return;& U2 j+ D! u. |" K( \& V1 R! D5 Z, L
}, \3 U& Z/ g- U1 d3 d% L: i4 x4 K
int nPoint = 0;
# z( H) j" W) O if( m_nJob == JOB_MERCENARY )
- }9 W+ W* S& u9 @- E2 e. J3 A nPoint += 40;' T: | a# W" r4 t8 j8 F$ h
else if( m_nJob == JOB_ACROBAT )
! ~6 X1 Q7 q% Z7 h$ I nPoint += 50; [' b% o1 @0 V9 i2 S/ i2 d
else if( m_nJob == JOB_ASSIST ); C7 Z) |! _. h6 k: J9 T' F S
nPoint += 60;
* l; u$ E3 e4 r$ `/ @, M9 x else if( m_nJob == JOB_MAGICIAN )
& T h R8 `0 P3 i. C. u% P nPoint += 90;
" k- d1 k3 {+ | else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: S0 H. ?2 o) g# q- e nPoint += 120;
# ?4 w N8 _& ?7 g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) ~/ y( }* a6 p/ t4 v
nPoint += 150;1 m8 Y( |8 V# R" s* Q5 q" I3 ^' A8 P
else if( m_nJob == JOB_RINGMASTER )
9 V* f$ A* T- `2 Z' s) z) f nPoint += 160;0 Y6 w* R" y6 y3 S. u Y) x. d
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) x6 T) a' p$ o
nPoint += 180;
4 k8 h7 `% _/ N: D. ?" r else if( m_nJob == JOB_ELEMENTOR )
2 V1 e" D6 ~1 h3 E, S1 o nPoint += 390;
9 x0 ~ B# r3 Y5 E$ x else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ |3 V; _( N5 b1 V7 k& x7 n, `1 P( y
nPoint += 120;' @: E1 ^) @# E: p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# r* M2 p7 U/ \
nPoint += 150;3 w1 d0 V$ L" f, e
else if( nJob == JOB_FLORIST_HERO )) w4 D- |6 g; J$ N( y, f
nPoint += 160;
% }) V2 \# M0 k$ p& s8 Y+ E else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 _2 T+ P+ j$ u2 ]6 z nPoint += 180;
# f* G% \2 a; ~ else if( nJob == JOB_ELEMENTORLORD_HERO )4 s$ u; L" ]' p" @: C, p
nPoint += 390;, w- G& e$ X- e4 W: @4 x
% h2 y F$ D* W f0 }5 t g
AddSkillPoint( nPoint );# i$ A6 f5 b. f& M& x( O% X( ]& b
m_nLevel = nLevel;, K' n5 p( ?, L: t# c
+ Z0 n3 k, n( W+ ^2 K: |" s SetJobLevel( nLevel, nJob );. q5 O+ v8 S: s! s1 N& g
m_nDeathLevel = nLevel;
# K! D+ D& l$ n! a; B: s% t' Y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, h9 A+ L7 {( f6 z/ y- k
if(IsMaster()); p. Z- P c: N; w& t
{. n, a& o0 n- R: v$ | C, y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: J; H( \6 h2 b# [. c if( nLevel > 59 && nLevel < 72 )7 Y$ D# R$ `6 g5 ~! i+ Y' A
dwTmpSkLevel = 1;
' D. o% i& O* W# Z7 q0 Z else if( nLevel > 71 && nLevel < 84 )( w7 |% M& t- R
dwTmpSkLevel = 2;" I. `$ p% Z5 Z9 E, O0 @! w
else if( nLevel > 83 && nLevel < 96 )
/ q/ p# n1 q* Z: L dwTmpSkLevel = 3;
" x4 a' n4 Y% K. n else if( nLevel > 95 && nLevel < 108 )
- @ G$ r1 d; f" I dwTmpSkLevel = 4;
/ r+ n; V$ p. X+ E) Y+ g else if( nLevel > 107 && nLevel < 120 )7 x) Q" I- r [/ Z* `
dwTmpSkLevel = 5;1 a" N. R, ~: f3 n( I" z! W' q1 {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % I6 f! v+ ~% ~5 y8 Y! S
{
6 w8 E4 G' M' K" H' I1 K7 R LPSKILL lpSkill = &(m_aJobSkill);0 y( C) Y! F* Z6 \, C3 a/ b; {
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 Q* d* k. s9 o
{
. V( d1 h. A% g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( ?' X! ]' C! j8 ?& u
if( pSkillProp == NULL )3 H$ E7 C- v, N/ A5 z: d
continue;
5 x8 ~' r1 E: B. s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& k6 [0 l" S/ N A/ a continue;, p& o1 J6 W4 @# p& n
lpSkill->dwLevel = dwTmpSkLevel;; v& H" r5 h8 ^: a' p# A
}4 @2 m- M% v& i# m2 ^) l% m
}
K% K1 q; x( `* [! Q/ l7 M }
; V2 N' r" f+ M9 R+ H1 \* V3 @- v else if(IsHero())
u) M" W, G" W" Y6 e2 |: S1 l {* _$ h* G2 B) m. @3 f, y s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 e+ z+ Z; [, @
{ # n; j3 m1 a9 {7 T1 m
LPSKILL lpSkill = &(m_aJobSkill);; G! H2 B: E2 } m5 P8 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 o+ _; ]) x5 ?# t {# W- w9 D! v/ g; t$ Y& k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 O9 n4 w b9 g- _" l$ ~* J if( pSkillProp == NULL ) A H6 P/ D0 s% D6 e
continue;$ W2 Z% r) A1 p1 l- ?# i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ P' c) s/ m% A: `" n3 w$ i continue;
- a3 E' d! F. }2 Y% \2 `, A c lpSkill->dwLevel = 5;
* x6 `9 v! [1 o }$ k! k0 N& D4 h) u: V ^
}' o, n, D9 R5 h% B' l6 u
}
/ Q% `6 n% S# h) z else if(IsLegendHero())
( p0 k3 ]: u1 c; d/ R {, r3 v! q/ C, i( V/ C1 k; i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 g% T( i: j- \3 l { 4 B& ?: N) }+ n6 {
LPSKILL lpSkill = &(m_aJobSkill);- t( h4 ]" j5 P' K' a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 W. I( d7 v4 o# ~2 k+ d {: S/ G7 {' `. d7 |1 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 |8 F3 A( _( T" k' Z. m
if( pSkillProp == NULL )! y% J! N; N7 _
continue;
+ a- \' b" ]* u% s& D" j if( pSkillProp->dwItemKind1 != JTYPE_MASTER). Z5 j* f" K( i" @/ e* m
continue;
& r8 m9 c; n* F/ j- ^ lpSkill->dwLevel = 5;' K9 P7 \* W1 W6 T: {' ]
} p4 T5 b6 ]/ q, X7 T3 N \
}
/ ~2 |$ U) C% W& m1 A0 s$ v }3 X) k% {" G+ n5 b" l! E8 _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 o' z) c. `% J7 J if( bGamma )
& |3 S4 w% Q" m: E2 f: o+ c8 O. w) e {6 S/ g: s) z y3 E( \
m_nExp1 = 0;
: l) u# M2 V/ {$ v, t }$ h9 r" X/ M( M5 l
! U8 J2 @$ B: D6 }* T ( (CUser*)this )->AddSetChangeJob( nJob );* P# _, H) M: V. C! ^4 ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. S% ^# j( d9 o6 G! g" z1 X
1 l/ Y) o' M: k
5 n, J5 z- x" a$ T% m+ w
#if __VER >= 11 // __SYS_PLAYER_DATA
9 @$ C$ O4 a# }2 S c* r5 Y9 ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 t4 z7 _1 F% V2 ]; U5 ^
#else // __SYS_PLAYER_DATA k+ s7 H+ Z8 Q y0 }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; X9 Y2 j4 N# f9 F' |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
n6 ~. w6 c( c. g% p$ J if( m_idGuild != 0 )% x1 D* K0 I3 F8 X0 V
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 I9 y# S# ~0 e" a5 X% e9 l, V
#endif // __SYS_PLAYER_DATA
8 y: `( m# S+ }7 F% D0 @. J SetHitPoint( GetMaxHitPoint() );
+ {. ]& M- D, R5 r( Z SetManaPoint( GetMaxManaPoint() );. ?" j8 p& {2 i6 L- c
SetFatiguePoint( GetMaxFatiguePoint() );
5 k. d2 r" k) c1 i- ^ if( nJob >= 1 && nJob <= 4 )
" }2 s+ z: ^. ?% P! [: r {3 P' t2 h) ]) K# ~9 h3 o
m_nStr = m_nSta = m_nDex = m_nInt = 15;# V' H9 t( R H8 }4 o6 a) j9 d8 D
m_nRemainGP = 28;0 U, m7 b5 ]: q$ [
}( x2 W1 ?* g! U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* }; u) w; s' R' I: h {
% x/ f+ K) x+ c5 x) _# ^: V m_nRemainGP = 118;4 S/ s- A) x' l* e; K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* j8 R1 X5 z+ w' H8 a. p; k) O4 T m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 c$ d2 I/ B" O }0 L5 M4 ]4 ?3 k$ X, K; D
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" r2 W7 M2 L+ w. t% c {
3 Q5 z- s$ S/ ?3 R CItemElem itemelem;" P' s6 Y5 x7 S; v' F
itemelem.m_nItemNum = 1;
4 W" a3 q& ?1 c5 D itemelem.m_bCharged = TRUE;* e% A, a, b# A5 c) j, l: j
BYTE nID;1 |% K! i, z2 F8 ` k! P
: k2 O6 r- O3 x& Y! U' v/ _" y
if( nJob == JOB_MENTALIST_HERO )6 Q+ J7 R8 n$ W/ N" ^* _
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 @" a. s& j; B0 t0 f8 e% O
if( nJob == JOB_FORCEMASTER_HERO )
$ s5 h6 H& K- K9 T itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) u& f" N$ a' @8 V0 d0 ]. Z$ Q
$ Z* i- y; ]6 r7 B Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
) j* [& V8 q4 _, I" W6 g( e$ T }* T- h P. n( P% t5 m
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" e) j( b, y0 V5 D/ h5 S ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) ~# w# o% g O) n( g
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( M [! A0 M2 L& ]+ q$ |+ e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; b) [* D. N8 G; t9 v) `* J ( (CUser*)this )->AddTaskBar();*/
/ I1 n3 b' I3 J ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- J- o" g/ X( ?. y7 z3 H
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: j9 ?/ }9 W0 R
((CUser*)this)->CheckHonorStat();
# m, G' N% `- F7 L: U- p* K1 P ((CUser*)this)->AddHonorListAck();
8 j/ M8 [0 ~* K( n0 E g_UserMng.AddHonorTitleChange( this, m_nHonor);
( ]9 ~/ L$ a- y+ O9 h#endif // __HONORABLE_TITLE // ′Tà?
& F& ^ m d+ M$ I L }
, ]+ i: C: l) V( e#endif // __WORLDSERVER4 r7 l1 n; v" c* f m' \& _
}
S [+ }4 ^5 f& m6 M) U Z. W/ z- S/ c
+ \0 _, O# I6 W% w$ B2 S* m; X7 `" K8 V然后你进入functextcmd.cpp并添加以下
) F8 S: e- n4 b& \7 g3 u
% m* [7 \- y0 J: d5 ^5 S代码:
2 a' L" d; E7 W9 KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 u; I# u _2 ~# w! I+ n2 t; `2 W
下面插入" v5 L2 ?4 c1 F7 O0 }/ N( u" |1 y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
D5 J1 V. C7 R4 y; G H U- M& \( G9 g4 D: Z/ w
然后你去7 J! \1 I2 g# ?# W* l" F0 E
# v, N% s& t& e) A
代码:
( v7 [7 e* y* f1 Y8 Q: b% y代码 P/ u, Z. ~. X' G# Q
BOOL TextCmd_ClearPropose( CScanner & s )! Y' D. b& {; o2 F
{
# t/ j$ |7 j b" S- G#ifdef __WORLDSERVER2 u1 k p6 p+ I3 W S1 }
CUser* pUser = (CUser*)s.dwValue;
0 ^. w0 M* l0 G7 B' ~: r+ N g_dpDBClient.SendClearPropose();
! A1 O! A# O$ e* K#endif // __WORLDSERVER
+ O# |2 ]. p2 x# Y6 K return TRUE; v4 ]$ V: |5 Y+ V% n* h* k w
}% j, t2 ^$ |5 o% `
下面插入
/ m6 z8 m& Y1 z8 x3 |BOOL TextCmd_rebirth( CScanner& scanner )" _. K( k+ q( ]; {
{
$ j+ l0 i3 r/ @1 {+ _#ifdef __WORLDSERVER$ o G! F- s3 H
CUser *pUser;& E0 r0 i5 c/ u: T a' a8 J
pUser = (CUser*)scanner.dwValue;
?8 D* S2 u& U% M$ Bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 [! }1 {9 w( ~# r' R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; }( b8 }& U+ {9 K# n
else
' r) s/ c, X0 Z* [# O, |$ zpUser->AddText("你还未达到重生条件!");+ x$ Y$ A3 U- x! U7 p8 D1 a% ~
#endif: a9 d3 |5 g, x7 j4 z
return TRUE;
! I% _( g9 v* I5 E: t} " u N! z, s" p3 m
) W' W" W' M) I3 b% J- s7 J. O3 V5 E H* l) d' V
4 d) _- b& D# E" B# O& M
* Y# C/ h5 T q) P$ ^/ Z |
|