|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 @ J) f& o. ?% P9 P* w" Z# b: [' n, K: }- `3 z7 X Y
Mover.h3 b8 d; G0 b3 ]8 G) x+ h9 @. `
代码:& t- N1 w7 T! B1 Y' H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* C2 _6 Q2 j9 M2 l! B# S* Z& i
( ~0 S* F/ o) F下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 v$ e3 x3 f5 T8 b( X9 Z
3 e/ i, y6 R- O% h+ l! p% n# ?6 l% n然后你去mover.cpp添加, A% n |' I6 m% W7 @
1 b1 [$ f9 U7 x$ E* p- s
代码:
' J. s5 y4 a/ Q/ S: _* Q |8 [9 u! Kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ J& e' S/ T+ M9 K: E# I# ]( s6 `" [{+ _5 d+ A: ^( n. g$ ^: L
#ifdef __WORLDSERVER* N+ m; b: a4 _4 B2 M1 H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% E7 V x1 T f& c" E MoverProp* pProp = GetProp();( `4 n# Q& O6 u$ y, P2 z3 f$ @
if( pProp )- l! h( D4 C4 b% F; O; s+ l
{4 M/ P% ~: q1 R0 Q% V! w# `" _
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" {4 r: s1 V9 W1 \7 y {) ~/ h9 d! o5 B" Q/ n; \+ Z8 @1 \7 }
AddChangeJob( nJob );* j! s) }* P# Y; [1 x( I
}else{$ J6 T" G, x, R7 ^
return;
$ [3 m6 T& `* q }
* I0 u3 G) C7 I9 [" L int nPoint = 0;% }) ?6 ~: s" J2 L! M0 f+ t4 Y2 U
if( m_nJob == JOB_MERCENARY )
) r9 f7 g" J; W! T4 z, T2 x1 n nPoint += 40;
! M% R3 _6 n# Z0 e e) v else if( m_nJob == JOB_ACROBAT )
; r" [& s3 `; N0 I. g nPoint += 50;
0 I) T! X# d8 E |" q else if( m_nJob == JOB_ASSIST )" Y' X! {9 u0 M! e. P& n
nPoint += 60;
5 Q3 K& B1 a" |- L! v else if( m_nJob == JOB_MAGICIAN )
1 t. I+ I. k7 E/ v: @# I5 { nPoint += 90;) }4 i) @9 T: D- t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ G) d {- K5 V& T6 [) I& `( P8 T9 L0 s nPoint += 120;
: V9 e& A; O/ k1 ?5 ~3 k* r else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: o7 C/ \% A% |* ? nPoint += 150;
7 D4 r0 v, t* W. w# r j else if( m_nJob == JOB_RINGMASTER )2 a' j, c4 L0 }% k% X% E1 L
nPoint += 160;+ ^5 j: k& H! x9 X& r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# I( A4 E' B! T5 u9 E; F p& |9 k
nPoint += 180;
& @ o# d! ^8 a( _, s- x7 ] else if( m_nJob == JOB_ELEMENTOR )
& I8 p9 U# g5 d nPoint += 390;
7 M* [! q9 Z0 P' K: ?( D else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) g- k0 O. H# |# C! L+ d0 y2 D6 D nPoint += 120; c3 ?+ Z; \* Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). s" C. e% F& H, {1 m
nPoint += 150;
" c8 y# M' y% R4 u# A else if( nJob == JOB_FLORIST_HERO )
9 n) ?9 g; I+ b% s nPoint += 160;7 A8 j3 Z/ m9 ]: i
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* ~% W0 J4 S* ^ f. Y: ]+ D nPoint += 180; v" J$ ]$ G* o% g' ~' C2 g
else if( nJob == JOB_ELEMENTORLORD_HERO )( ^& @3 V2 ], J# d, l
nPoint += 390;0 d. p9 {6 h4 ~! [
- D6 X8 K; A8 }8 F' T* | AddSkillPoint( nPoint );# b9 K6 F2 |& y# ?
m_nLevel = nLevel;
3 L; Z, z5 A/ `0 o1 K& V8 B3 N$ |4 G* d. D0 o
SetJobLevel( nLevel, nJob );+ }3 j0 j8 O7 P$ k; y# ?2 |
m_nDeathLevel = nLevel;" T. f1 ?* O4 r d/ ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ K( r' c5 t K* c9 W if(IsMaster()) W0 [/ \, [- e- P. q" g
{# |3 L; T. b0 g% o, O' I" v
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# H9 J. r+ W- p, \4 O7 D0 r* X
if( nLevel > 59 && nLevel < 72 )$ g* U3 w3 ^: l+ F; v
dwTmpSkLevel = 1;
) `4 E! L, Y: R! _2 O) f/ c else if( nLevel > 71 && nLevel < 84 )5 X) P. ^. a8 M: m- `" t! _
dwTmpSkLevel = 2;
8 j, _; r/ P! R9 u# H, d$ z g, _ else if( nLevel > 83 && nLevel < 96 )$ ]' [1 Z: n5 M' F
dwTmpSkLevel = 3;
+ S5 V% w0 J+ j! g: r2 U {. O else if( nLevel > 95 && nLevel < 108 ); X) c. }* V% X; j- W/ E
dwTmpSkLevel = 4;, o* ~- t: b, ^3 g. @
else if( nLevel > 107 && nLevel < 120 )' j* e" K3 N9 C/ G
dwTmpSkLevel = 5;/ B% a) S6 l& O$ x7 e3 r' f D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! D" m" q% f, r {
) ]5 P& t4 f, B/ P1 H0 r" |5 { LPSKILL lpSkill = &(m_aJobSkill);1 c, b3 A) e: }7 d7 X6 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 ~# C! V2 ?! `& p, q( I {
; d+ D" h2 c+ J0 v. G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , m7 S5 V8 T Z, E. R* M
if( pSkillProp == NULL )
+ V+ `) m" b4 j" { continue;1 I' g4 R6 R- e/ q. D$ u7 A4 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 J5 s- o- C( G% W! J# z7 ?
continue;
) \1 T7 C$ [$ w lpSkill->dwLevel = dwTmpSkLevel;
, W' o' {5 Q. }; r8 z7 x }4 H) X6 W( o0 _( l J
}; Q' E( X2 D9 w+ n) {' E2 }; v4 `/ f
}
" X9 ~" }3 |7 y else if(IsHero())) ^* L5 `+ ~) v2 w% |1 `
{
K; `/ z3 R" W; x for( int i = 0; i < MAX_SKILL_JOB; i++ )
- V7 P3 Z4 Y4 ^8 x& R; [ {
- v4 p& L: ?% p. Y$ \& |; o8 Y% M7 | LPSKILL lpSkill = &(m_aJobSkill);4 K! ?: o% ]. _3 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# `0 L: @1 s/ q' h { u+ X5 K1 ~9 E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) ?7 E/ R5 G0 G, [. e
if( pSkillProp == NULL )
- `4 N/ \3 b/ a8 x continue;) Z; q2 ?: q/ z. E, B7 d/ P+ H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 C: d( _6 h8 ? Y continue;
& n& E8 j: J% C4 s lpSkill->dwLevel = 5;; T3 G1 n: Q$ d z3 ]
}( w* R3 E+ ]7 c" V9 L
}- ]) k# ?) A _% t4 A9 z9 n2 P' L+ z
}+ Q$ B; D$ X. E+ Q( v* t
else if(IsLegendHero())4 q; k3 K8 `0 c2 A
{4 X, n2 g, q2 l7 u& B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 ?, W& ?7 q$ I6 s0 D" {
{ 4 g3 Q. l: F5 T' z0 h- C! W3 ?
LPSKILL lpSkill = &(m_aJobSkill);
( Y% l* e! w. ~' a if( lpSkill && lpSkill->dwSkill != NULL_ID )- s* @2 w6 g7 m, I# v
{6 C6 f6 t* Y% h: E! I7 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) j* M- k4 V5 a% t) p! y( u& Y% G9 p
if( pSkillProp == NULL )
/ o" ~/ U$ g0 s/ V: h continue;
1 P; \* y& s h; k, [5 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 z) u3 y/ Z$ w+ \* y
continue;. o- P! p& |: \
lpSkill->dwLevel = 5;
7 ?- ~+ G$ t) k' [9 D6 s' W }
9 L) t8 g2 h! f1 N {# ` h }3 t8 H' ]% ]$ ^' w; C; v. [
}' v; C) N! C+ l) [! e+ I4 B$ t5 o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 L) |; q+ V6 ]# [2 e* ]1 f if( bGamma )- Q g9 Y' K. E d4 X9 _9 w
{. E: w# {8 o' h8 @
m_nExp1 = 0;7 @% ^; n8 f6 G0 e5 ?0 }2 [( X
}
0 B1 X! N1 Y3 b+ Z2 r% t3 p0 g5 U% Y' n
% A) O; o+ s" p+ }3 y, y) W& h7 Y ( (CUser*)this )->AddSetChangeJob( nJob );: r+ _: l a* W4 M2 k5 k- {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, j& h; k& m/ O+ `! w" B
6 {! i. Y6 q1 D! ^" \. ~# s: k! i7 @- b6 k* N/ N6 V
#if __VER >= 11 // __SYS_PLAYER_DATA
) }$ o' @: d7 L' m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* J+ `8 {, t; I8 ]0 ?* G#else // __SYS_PLAYER_DATA6 c& }# L, C8 M& y7 x
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' ]2 |! G! @& o$ v& y8 y. b, T g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); Z4 b& T, z/ q, K) d1 F
if( m_idGuild != 0 )% C3 _/ e+ U( c+ Z. q/ H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, z, T2 q, W% W5 W* h @#endif // __SYS_PLAYER_DATA# d, [% h( w: w" ]( Q8 L! X
SetHitPoint( GetMaxHitPoint() ); W: q: E7 c3 f
SetManaPoint( GetMaxManaPoint() );5 y4 }" x% L4 a
SetFatiguePoint( GetMaxFatiguePoint() );
! b8 v6 E [7 k+ f: U) z# c/ }' ~ if( nJob >= 1 && nJob <= 4 )5 X' P9 l5 X4 ]* K/ G' D
{5 j9 |# L2 {6 j+ v& x4 k8 N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- Q2 w+ h- O( J. X) ?2 ^* L! N1 m m_nRemainGP = 28;
: v/ B/ Q$ Z- g9 ]8 Y2 b! Q! z" v }
5 N" F% |" F+ X; c) J6 D) { if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; N- |# c" v/ V {2 x# B, f1 M6 e1 {! o8 U/ N6 k
m_nRemainGP = 118;' y L) S: z9 G
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 z; K3 a' }! s3 u1 G2 L9 s2 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 ~' u: N$ X2 S3 ?* |( O& ` }# B+ R' Z) }/ P7 i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 N$ \# |. K- N4 D. |, O
{' G; Q6 I& ]6 I- Z9 W0 g: o7 j
CItemElem itemelem;- ^6 M) Y" D. ?" j! L
itemelem.m_nItemNum = 1;
/ @0 I$ `; m! i6 q6 q( t$ d0 a itemelem.m_bCharged = TRUE;
/ [3 P1 h, s% |& B" u BYTE nID;* r) M2 R C# a" |# H9 O
2 v9 ?" L: r* y1 c( J if( nJob == JOB_MENTALIST_HERO )+ @3 X7 m- h0 x( _) ]- w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. c( G' ?6 x$ g+ M8 K8 [
if( nJob == JOB_FORCEMASTER_HERO )
+ c8 }9 x3 @7 q, ^9 L itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 ^9 ?! g( g9 j4 X. W; S9 o! c; s6 F$ U& B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! R! d1 w& J, r0 d1 ] }
7 U- A3 k* U# M' i) D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: I& T: s3 C+ ]5 H ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& O7 G% p% [ ?6 r& g R
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ U/ K6 L& I9 Z' f, I$ s9 |$ M
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& C# B2 l% ^. D7 i9 { ( (CUser*)this )->AddTaskBar();*/
+ `0 M# B' }8 f5 n4 F$ x3 i; c& G( @ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! A& Y, j2 x) A( Y5 c" _6 z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; c# } l; ^3 Y5 f( a4 u: K ((CUser*)this)->CheckHonorStat();
6 u$ [6 T L9 ? ((CUser*)this)->AddHonorListAck();
# o, B! {1 a' r! t. q g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ `9 Z; \3 T) `8 e#endif // __HONORABLE_TITLE // ′Tà?! K; \* S- Q. g2 K; q& C
}% n6 z! d4 N0 L+ T% q4 }
#endif // __WORLDSERVER, t8 |- b x5 q
} - b! ], W* d& }( U2 T1 T3 w* r7 w" u
: ~, g( K Z! n# L5 l然后你进入functextcmd.cpp并添加以下: L9 \$ x& ] S" x5 R- p' U
& Y1 J3 l! N3 [$ W2 {代码:; z0 L; x+ ? f+ s
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) y6 p0 _; U( h6 g& ` p, Z2 F1 q7 F7 {
下面插入 I7 l# g; U2 O: ?4 ] q" ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; ?5 p# a: u1 J5 k5 R& d
% h: M# y0 g8 f0 b
然后你去" ^3 R {; k n( ~
9 l9 j3 z4 @. y+ k代码:7 D6 p5 _4 Y7 }7 T: p
代码) q/ A. P, Q- j6 j6 @
BOOL TextCmd_ClearPropose( CScanner & s )4 _" k$ W9 V& s
{3 q9 @/ w+ B- X& ?
#ifdef __WORLDSERVER: l. N, \1 [. w; l& ~. L& _
CUser* pUser = (CUser*)s.dwValue;
' e! `* B) y6 V6 g# Q- y' u9 U, }! r% { g_dpDBClient.SendClearPropose();
8 X8 s) H% Q! p0 F$ O#endif // __WORLDSERVER# R. w+ J% K0 l U8 @4 v0 }
return TRUE;
' K( P' M! W4 P$ Q9 L/ }& ] y! Z}
% d" Q) e q4 z: P下面插入
& ?9 B- ]4 ~6 H* q( d* tBOOL TextCmd_rebirth( CScanner& scanner )) i" Y! j: g! w9 @1 Q: O5 }( s
{ }! A. d( T6 o( \
#ifdef __WORLDSERVER6 b7 N/ } j7 A7 N
CUser *pUser;' H. {' y6 V3 n
pUser = (CUser*)scanner.dwValue;
1 Q/ K8 I" M( o. Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& O: x9 W' D) Z7 z% Y& ypUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* y- O% P5 m! d% F/ q- Yelse$ Z9 }) Y9 S& Z
pUser->AddText("你还未达到重生条件!");
/ \- R, `, {# |5 y3 g% l#endif
! Z; J7 n! h; x' z; U* \& {return TRUE;, y+ K3 S3 q7 P# u* W* t: Y2 V
}
! Y6 b4 [% P/ X9 m, ~
, K* y& F- w' @/ M' k- b# |2 c- [4 Z. F C, J; y' T2 t
& [$ @) M+ H2 ]
% |6 C: C d. x9 ^
|
|