|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 e# }$ _9 ]. O/ s1 D9 x: J
: ~% c6 U0 R: D* j2 r( c# p" L# u+ T1 @Mover.h2 k( V# D9 o6 s! {% w- F' E$ ~: |
代码:% Z0 @" W, }, {, P {) v
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ m: W1 |- |1 l5 V2 O
/ p9 l9 f% @* A6 q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , H3 W3 x! C+ _
/ y5 ^! o8 {5 D! E
然后你去mover.cpp添加
* a0 ~& i: t8 d5 M5 c* v
) S g0 n9 ?7 p7 ]代码:* L/ e* J, t# ]" v a, m
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) [6 k- Y: A# p0 L4 S{+ z$ j" r- D$ o2 J6 [0 v0 m
#ifdef __WORLDSERVER
: Z: w$ [& ~4 j+ ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 q0 H9 U# x8 {. q2 c# a
MoverProp* pProp = GetProp();# w$ t$ K5 W/ ^2 Q1 Z" e
if( pProp )3 i7 D7 V0 s* P" x
{
* N" H7 d; e; F if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ \( f( [5 t v) {& B* w {
% ~; z" ^" u4 n2 z* D; { AddChangeJob( nJob );3 ^! a6 X' w5 p3 H
}else{
1 F! @9 X( \: J; X0 s4 V2 n return;
# J5 z" D0 J& ]- U }1 @6 A) P8 o1 `/ n5 t
int nPoint = 0;) z3 {- R- ~1 R- j! Z9 q3 P. X
if( m_nJob == JOB_MERCENARY )5 j& J ?% b8 |. [3 I" l: v$ E
nPoint += 40;( h( F8 k+ m6 f p$ ]
else if( m_nJob == JOB_ACROBAT )2 v% J' A4 g6 M) _! ?
nPoint += 50;& h5 a* _& ~- c3 B
else if( m_nJob == JOB_ASSIST )
- T4 X+ v; ]' s$ n nPoint += 60;- L- U+ A% k- s$ o" g: q
else if( m_nJob == JOB_MAGICIAN )
1 d$ C: U5 J' m L nPoint += 90;6 g" {9 X3 h3 Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 G V' N3 E7 Q% Y0 P% N nPoint += 120;* ]" I$ [$ L; G, U+ v" M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). C; S, ?; g. o. g) {+ a+ q
nPoint += 150;
. ~: ]$ Q+ n+ M# A1 [. c else if( m_nJob == JOB_RINGMASTER )
5 i1 b3 L/ }3 ^& ]5 m) f0 L4 L nPoint += 160;1 v/ `' H# Y! K0 h2 s o" B" D
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 P1 r' v" g& a7 c7 ] nPoint += 180;( h1 Q( X' Z5 S/ B: i/ x, R( V4 T
else if( m_nJob == JOB_ELEMENTOR )9 f8 H7 L& m3 l z9 F6 ~
nPoint += 390;( B {7 a8 Y! L+ `
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 m- Z5 k" R' i: S! A* I6 T" e- F
nPoint += 120;
. a, D% L3 l- k, } else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 q: h8 W; M5 V
nPoint += 150;
$ U' E: o' c8 b& `% h, _( M" o else if( nJob == JOB_FLORIST_HERO )
- y3 Z2 P. C4 N$ g/ ]8 E nPoint += 160;& e% I, [+ W% O Z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ y) h( ]# ~, ?7 k7 W; y$ e5 N; x nPoint += 180;- w- d# t3 Q9 e' @
else if( nJob == JOB_ELEMENTORLORD_HERO )) A Y$ i w; p1 f* p
nPoint += 390;5 Q# G, ~$ `/ Q& y8 P9 D/ E( n
) o4 I9 L( r7 p. q" P7 l, s
AddSkillPoint( nPoint );5 ?& g- p$ g% j
m_nLevel = nLevel;9 E: \2 B% \) G. J
- @2 a8 j! h6 m. g9 I SetJobLevel( nLevel, nJob );
! [- A1 ?4 A' h% ^! A m_nDeathLevel = nLevel;
: u$ z" x( B& @6 m8 |! C1 ^* v#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& l( }$ H. w7 z$ `) w, k! G3 u
if(IsMaster())
" n+ |# C# k( l* f1 X( w {
% }# S+ B' x) U int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; i% \3 t6 G- z4 L' e
if( nLevel > 59 && nLevel < 72 )
1 d N3 C& E0 Q, s7 J2 t; ~/ j* J dwTmpSkLevel = 1;
7 Y- q; P3 @( I ?* s4 z3 b else if( nLevel > 71 && nLevel < 84 )
! f" I0 a: P2 A; k dwTmpSkLevel = 2;
# R# n7 l; t% F7 k1 w; t# _ else if( nLevel > 83 && nLevel < 96 )
5 O' |3 J+ A$ e+ B: u7 Q" D4 Q2 L dwTmpSkLevel = 3;
) E' H9 z6 l9 g% g else if( nLevel > 95 && nLevel < 108 )6 D) y- R$ x, V) n% ]+ t
dwTmpSkLevel = 4;7 N; G0 N) j7 w
else if( nLevel > 107 && nLevel < 120 )6 _6 j7 K0 C$ k2 _, S4 ?
dwTmpSkLevel = 5;7 k4 I" W$ e6 ^& m& ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 u! ^( l( |* s& l" A* K4 t { : H& Z. s) B. d
LPSKILL lpSkill = &(m_aJobSkill);
) Z8 F7 W+ Y# k if( lpSkill && lpSkill->dwSkill != NULL_ID )+ W& d7 ]* p1 m, e) v5 Z( W4 l$ S0 }
{
0 I6 q/ G* L( @7 a" [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ @$ X# ? z& x7 U if( pSkillProp == NULL )* I# R+ m. s; b
continue;
( z# V1 A0 P6 @* ^9 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER), n% ~$ Z9 n! }- D
continue;% n0 F1 T( F! C9 n- O: T5 l
lpSkill->dwLevel = dwTmpSkLevel;
) E6 u1 L; I9 q% }: K8 P' M$ I }
+ S6 s7 W7 f1 U& a( `5 H, C }
8 i) T' B! g% I8 P$ L }) `/ `: b% A5 @+ s6 J" L
else if(IsHero())
1 f( c" n' s% Y {
- v5 K: }/ H4 ?/ A4 c for( int i = 0; i < MAX_SKILL_JOB; i++ ) / t7 g% {+ V% Y% e/ k
{
0 h/ Y7 a% l& i- \* ~% G! d LPSKILL lpSkill = &(m_aJobSkill);
1 ~1 @4 V, _2 O! |; ^ o if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 |, f5 B1 f6 q: ?3 y {
+ `( A. C( `$ V. Z4 q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 {- }+ O8 P; ?( o if( pSkillProp == NULL )' n% S F$ B" B" g8 o
continue;: B9 U* }! t) q( B- c% o6 f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& |0 G- j/ G& m6 a6 X* n& c continue;
& o5 T+ w' p8 [' V8 @2 X/ _ lpSkill->dwLevel = 5;
( c1 |6 _, Z2 Q; G; w. w }. ?$ ?7 j. g. u8 F# E9 ]
}1 d; ^. \1 i* T8 z/ T- K0 [, v3 Y
}
* u! i) P8 z$ U: o9 N, W k+ s else if(IsLegendHero())
' U# e. Q, ~" E5 q% G. _ {
7 Q/ D) H8 r, j( g! M+ B" d# O for( int i = 0; i < MAX_SKILL_JOB; i++ ) * U# L K5 I- m6 e5 t9 }
{ , f+ I! W. j/ D T0 Y% k
LPSKILL lpSkill = &(m_aJobSkill);& Y8 Q% g0 Q" ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' g1 n# a7 u; A4 J$ D+ G( U/ Q8 f {
$ ]' ?4 A% r3 n; @+ f* l8 O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " b+ R. ^: {% Z4 W6 B
if( pSkillProp == NULL )
+ n" K( {% n( p8 A& u continue;, D! B! }3 y& G! g, P8 U$ t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- b9 M0 }% g# b$ `% J continue;* Z9 N( ] Y8 v [; S
lpSkill->dwLevel = 5;* F5 k* t1 i1 ^4 F) v
}! f. m |6 w- y7 ^( |
}
( O6 m* {) B& A* K0 q& T }: t6 x; e) W# {& f" B2 m& r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 J! ]( O; H% j, z+ T
if( bGamma )
0 l+ } M6 c. w7 ]# e0 I6 W4 F C {7 q5 E" i! r, g4 w; A; X
m_nExp1 = 0;
3 h ?0 M- a) I e }/ H% z3 M) e% ~5 n$ d' z
6 z. x2 l: u0 k5 I( B1 B" |, r. ]
( (CUser*)this )->AddSetChangeJob( nJob );
Y3 Q2 }& z" {) s# P; S g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- _& N Q2 L* ~2 i, b. u+ H& U
7 b9 Y. R! l5 J
7 G$ [4 X4 O8 P' e#if __VER >= 11 // __SYS_PLAYER_DATA
7 y! y7 S0 Z0 A g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ W+ C! \2 h, W) Q( v. F M
#else // __SYS_PLAYER_DATA. @9 U0 A" `1 o# N# i. C, V( Y7 Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" o: ?. t+ Q0 e- a& @; v g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, G' i, d0 B8 N& ^- ]
if( m_idGuild != 0 )
- _3 q7 O( D" c" E$ i3 Q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 D! [' A% f9 T# F" V
#endif // __SYS_PLAYER_DATA
9 }2 P! J* K: F# T% G8 K SetHitPoint( GetMaxHitPoint() );; I) N$ s R4 u" H# `2 s% ~
SetManaPoint( GetMaxManaPoint() );% [6 w# y$ x9 A( ^6 x$ e
SetFatiguePoint( GetMaxFatiguePoint() );" @% }4 u* s% o( Z: E
if( nJob >= 1 && nJob <= 4 )
' V$ `5 t: a; T2 K {
: |0 i; b# F; M% F' W! u3 Y* E m_nStr = m_nSta = m_nDex = m_nInt = 15;; C4 X: Y2 ]) f! _' K
m_nRemainGP = 28;
6 Q2 D9 t6 t/ i3 z7 @, | }; {/ h/ C) E- u
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- e6 v1 w1 w6 y
{
1 g+ n! K) E i% d9 z m_nRemainGP = 118;
0 i7 ^2 ^9 @* `4 K* P& G( j //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, M0 Z0 J+ Q1 m) h2 p/ s m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 M! f/ ?. }5 b2 z, h }
! V( x* D/ Y j% @: h; i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% k0 j4 ?% S8 Y9 H# C8 M
{0 Z" C- h8 R: J+ f/ t* T; v, R
CItemElem itemelem;' N" w, C7 ~1 m1 x2 U- n8 ^
itemelem.m_nItemNum = 1;/ H3 S0 q) Z9 \! K
itemelem.m_bCharged = TRUE;' E w5 ~6 e, H, a
BYTE nID;
6 r$ [7 g0 d5 y' r0 b: _- \
0 S! ]4 V0 p+ q% X D' K* u if( nJob == JOB_MENTALIST_HERO )8 V3 M/ ^& j. X! u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" {4 F- S3 `: ` if( nJob == JOB_FORCEMASTER_HERO )& _" g. E: M4 l# a0 g/ [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( r1 l' z; I6 E6 T7 N6 b9 U3 `9 q2 m: _# L$ t/ p" {8 d' s7 s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 T( O K2 E( ]: i( D }
" {& k' c0 o' S4 u2 b7 G: J g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ d) b; D( c1 a" y4 |3 \5 e ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 e- \9 {9 _0 R, Q' {$ n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: ^# h' _# o" d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
S }8 ^$ [+ b c4 z ( (CUser*)this )->AddTaskBar();*/) [: q3 F6 n6 O4 Z/ }' n; H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 h9 P/ g$ k7 T7 f: u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? O, ^$ z, F# [- w7 ~5 H
((CUser*)this)->CheckHonorStat();
- F3 R( s9 y8 h" Q' z0 _ ((CUser*)this)->AddHonorListAck();
' o! T$ h1 E. v2 m4 r9 _) q g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 B) V: H- Z: z5 E5 r* R: v; X#endif // __HONORABLE_TITLE // ′Tà?, q* A: a# t5 H/ v8 e- L& d7 @+ u
}
: T) L: ]/ i' B4 d: }) C1 D8 T5 H#endif // __WORLDSERVER
, i/ e0 ^$ O& f8 H1 q% ]/ d} % h$ D. Z8 s- q
( r+ T8 }8 t* x" q1 x然后你进入functextcmd.cpp并添加以下
7 S- D" t2 E9 P! D/ k1 j" r
: ]7 f' C' }+ s. K: P代码:
( `: k8 d, `3 z4 C) m* CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' I& X, ]$ d( d* n1 X4 H1 S下面插入4 W& ]1 l6 ?5 u0 Z+ f( `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* k! N5 g& j- \1 a+ Q! r8 Y( a+ E
" ? `+ p+ }( W; x% c1 O然后你去 g: u: E' Q* q
' j/ a7 B! b8 R8 d; G4 V0 G代码: T' U, l: t0 J* W
代码: p9 ], B8 X2 |- _2 l; V
BOOL TextCmd_ClearPropose( CScanner & s )
& A/ V/ \$ C f( l# o{
" ~" {+ P5 o# A) X: B( k! M#ifdef __WORLDSERVER2 |4 } @! a+ ~' S h" B
CUser* pUser = (CUser*)s.dwValue;& i7 _9 j6 ^& F# @" Z! ^. f2 W' q/ {
g_dpDBClient.SendClearPropose();& \# Z' A6 M* }1 E3 N
#endif // __WORLDSERVER
+ G& S& U% m, d3 h w W& o" b return TRUE;) B/ K6 b: G( x
}# Y- @) r- C( _: R4 B$ ]
下面插入
0 `) j3 Q/ P1 r' P y2 W# N bBOOL TextCmd_rebirth( CScanner& scanner ); U% ^+ \( F: x& S" s: `
{
, j* X& {, R4 e#ifdef __WORLDSERVER
) c# C1 y3 ^5 n z6 ~- t" q5 y3 eCUser *pUser;
) S* w/ V: b: U) p' KpUser = (CUser*)scanner.dwValue;1 A! r" C# q* R4 _8 G4 C
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 T' T; V, w8 w( UpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) o( J, ^0 ^1 `6 S& P/ l
else1 E* G# H G. {6 _7 r
pUser->AddText("你还未达到重生条件!");
! z9 Z- O5 e: Z#endif
. M- t* y( a8 T' Nreturn TRUE;- G, z4 p6 Y4 {7 c! ^
}
% @3 |" _/ g$ `9 p- ]# r4 F
! o: J& l8 R) R* M" M" U, h4 G) q6 ]
+ w/ z. r4 h/ l2 _
0 X( k8 ?. @' X5 s) a |
|