|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# x( p8 W: J/ M/ S2 X; _# ^- e' s/ a( w
Mover.h
+ C0 [. N7 q |9 e0 b8 N& ]$ a代码:& i1 u; _: V K8 G! k( A( W @
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# F- l2 X: ]& W% E e
2 `% V" b2 h5 K% I1 E5 ] k! B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( D0 x; E S7 ~- r2 W( H; }! h$ W1 ~2 z8 X5 c. C, ]
然后你去mover.cpp添加4 ^8 W6 ^, D" U+ @* Y; a
) |* h' w& u% ?代码:+ Y3 K! \; }' a: M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ A5 D1 Q/ p1 _2 F7 t' m
{1 l' v$ {4 q2 t6 o8 B" S
#ifdef __WORLDSERVER8 Y0 k2 V% N0 M! P) }, g2 w) p v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, g. ^# h1 ]( q; E8 U( P8 C6 t' ]- ] MoverProp* pProp = GetProp();
. K% c$ |$ n+ W# l' X5 @ if( pProp ). J2 T- d" n8 H& i5 \* J; t
{, ?/ B7 ]6 ^5 I; a. t9 E# \3 ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# W+ P5 K7 A( c, Q/ z( f. m {. o8 f. C( D' F7 Q+ Z* @
AddChangeJob( nJob );- c! f. {- U" v% H' R3 l0 n, Y
}else{/ L6 h+ [% R0 l% K
return;
5 t" U- g% J1 g }$ _# M I7 W6 b6 Z, l# I1 k
int nPoint = 0;
: ^ q' a: h$ J) \% |, B+ k7 K if( m_nJob == JOB_MERCENARY )5 n, @. u" V: u2 g7 i
nPoint += 40;
$ R# v: b v2 V. j2 N! b: ^. c9 p' t else if( m_nJob == JOB_ACROBAT )( A, p7 Z! C! {" ~
nPoint += 50;
7 ^2 Q8 n/ y3 a else if( m_nJob == JOB_ASSIST )
( ^/ g* y+ M1 Y( `+ U) c nPoint += 60;
. j7 N% Y! G t4 k6 Z else if( m_nJob == JOB_MAGICIAN )
3 K8 q0 p# K; L* u nPoint += 90;3 f; F% ^5 p& l# E0 k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 e4 z/ P! j+ d0 W nPoint += 120;3 Q8 K- |9 c5 M9 i% i! D# x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ f* R. s0 K$ o/ \
nPoint += 150;- G2 _, d S2 A( O, v8 f: ^
else if( m_nJob == JOB_RINGMASTER )
( G& c6 V* X+ v3 y) s; `: L nPoint += 160;- R w& L1 r6 s% [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); y( w/ A/ P/ p: d9 b2 J
nPoint += 180;2 x3 n# q/ ^( ^( t! _
else if( m_nJob == JOB_ELEMENTOR )6 W4 \, ~, N# H7 Y' K+ F3 @5 q
nPoint += 390;& p$ X* Q. R: y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 h G% F1 J7 Q/ B/ ^8 U2 g J
nPoint += 120;: E- i, h* h& o! [7 m6 p/ J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 R: _, u, j" @. _ nPoint += 150;" e7 t1 P! K; C9 ?+ i
else if( nJob == JOB_FLORIST_HERO )
: a5 d+ u+ ]+ R$ U' S; _( I nPoint += 160;/ `9 U2 G2 p, `/ c2 K% S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& |5 K/ @, s# p* q: M2 l. V
nPoint += 180;' P6 }, ]1 W5 k1 T9 Y: H2 D, H
else if( nJob == JOB_ELEMENTORLORD_HERO )
; G4 H) s6 I" g0 v; u3 O nPoint += 390;4 z1 F! l" d% x
: z% K; e& g' F: d( ]6 z AddSkillPoint( nPoint );/ [) L/ v% Q+ J# Z% j1 V5 Q
m_nLevel = nLevel;$ w$ G4 }& I8 R0 L! e
6 @/ J: x* M& y+ ?, ^1 A SetJobLevel( nLevel, nJob );. \3 N2 k9 }' c8 n5 J' b
m_nDeathLevel = nLevel;
4 t8 ]' {# q+ I% e#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 _6 s* ~: `- Q* d- n
if(IsMaster())& |0 K0 f3 F( q% S! F0 w; P
{% D k) j ?! o( w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 M5 H" H+ O* q `; E# ?
if( nLevel > 59 && nLevel < 72 )
: E$ [( r% V, h# f& T4 T dwTmpSkLevel = 1;% P& Y8 y1 w% h( D
else if( nLevel > 71 && nLevel < 84 )
; W- l7 `2 p, v dwTmpSkLevel = 2;
* E# p( ^/ N- r' T7 I* Q. I4 A0 w else if( nLevel > 83 && nLevel < 96 )
) ?- E. g$ r$ ~2 S& F1 b dwTmpSkLevel = 3;
P1 u8 Q( {/ N1 T* O4 L else if( nLevel > 95 && nLevel < 108 )3 p: A8 U9 N. C! y1 P, ~# {+ \, o
dwTmpSkLevel = 4;; A- m# }# [, x& p9 z
else if( nLevel > 107 && nLevel < 120 )
1 R1 F* I r/ _' a9 @ m" c& t) n dwTmpSkLevel = 5;
: I }. Y1 n' p0 p2 N F+ K" i for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 s7 l# e5 s3 R, j {
1 n2 p. \& a& B LPSKILL lpSkill = &(m_aJobSkill);
+ g, q6 M# K7 [) |3 Z1 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
' h! b/ Q7 A2 `' A {
, v7 Z7 n: W1 G( l) b( j# t4 u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 W Y$ r+ b! h; `3 k( z if( pSkillProp == NULL )' N$ a8 ?# S+ u
continue;6 O/ H/ Y! ]$ _2 C! {. U- S- I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), ?' f7 b1 { A% N. r, M
continue;
7 z, l+ i3 Q2 y4 G lpSkill->dwLevel = dwTmpSkLevel;
# T3 ?6 f" `, e5 m; t }
: c }2 P$ d, a; \: ]0 z6 g }" W$ q8 K# ]( V2 g3 v: j" ~5 h
}
3 R6 H8 d/ I1 i( D else if(IsHero())1 W/ j! v" d0 @( ~
{
$ e2 _0 V5 J7 j e for( int i = 0; i < MAX_SKILL_JOB; i++ ) * ?0 y/ |/ R8 [3 Z
{ $ x7 ^0 i0 \% N+ u, n; A' c/ S
LPSKILL lpSkill = &(m_aJobSkill);8 k+ v! O, V) u1 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )! ]! e4 W* W5 A3 O: g/ o
{
0 Y3 y! B: [( `9 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ F) T9 o, i8 B$ L; y$ g, z3 a# b [. S if( pSkillProp == NULL ). _: l0 N% W/ ^) s' x0 h5 }
continue;
+ T- z6 H4 w/ K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ o# D4 v% w( l6 |
continue;
/ Q" H: R4 X& H lpSkill->dwLevel = 5;" v) F0 f! O1 @* R; F6 R
}' d, V$ ^! L" ^3 P
}& E, ?; g2 e- i" h2 Q j
}1 h, L" @; z: O8 f; P7 U; ?
else if(IsLegendHero())
) W) R. U) X! y5 i: O( P {
' r. s$ u5 V M- V$ K for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 {! M+ w8 U! p1 \ {
6 f0 r' g8 F$ z" y$ ]& S4 B4 @ LPSKILL lpSkill = &(m_aJobSkill);3 W9 ~0 @* _6 \
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ o; |/ N) z4 p0 j7 @+ j! Y
{
) `) \2 z: |8 @; G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " H7 m+ O/ K9 A- u. R3 w, d B* z
if( pSkillProp == NULL )
3 ]) l* T- G0 V% p" n continue;
. r/ ~3 D0 J1 O: N3 ~9 p1 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 T y6 s' o5 c$ t continue;
/ D. t: ]; i$ ?9 w$ ` lpSkill->dwLevel = 5;5 _1 s7 S; I( m, Z; ]; k. _4 L
}
! b8 f. S+ E! S# e# h- _! | }3 C5 I- z6 }9 ~6 [4 T
}0 C9 E& M2 n; c5 J$ w/ D& r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 i! e: b5 C* c0 N9 W; F
if( bGamma ). B" \/ o+ `1 E: Z; j' B4 A
{
/ Y( _$ G$ Y# N w7 D/ B7 }4 H6 [0 B m_nExp1 = 0;
) q, Q- {1 o6 k7 H% v" l5 w }0 ~5 D3 g9 S9 \* H& I' n6 p7 k
N: h- Q) l" ^$ y1 u* d
( (CUser*)this )->AddSetChangeJob( nJob );$ h! T5 V7 ? a& y: q- ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! c; U( Z; Y; k6 d% D, |7 d
! V- R' w% ~7 v' z, S9 B8 m/ {1 S1 n, E- [
#if __VER >= 11 // __SYS_PLAYER_DATA8 y5 M) w w2 A$ J
g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); e, Q4 \: D8 g1 `* @
#else // __SYS_PLAYER_DATA" V* z4 O% B/ }. y$ _+ e
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" A/ m9 \7 E& g/ |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 Z/ T' e/ K R K1 Y2 F
if( m_idGuild != 0 )
" i( z( n- s8 k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# z/ c) t% H0 N1 ~" b
#endif // __SYS_PLAYER_DATA
, C3 p: W P9 w2 G5 T4 _3 A" i SetHitPoint( GetMaxHitPoint() );8 Y! R( m; I" _+ h) `
SetManaPoint( GetMaxManaPoint() );
, ]& u" g8 U, E! i* Q' C SetFatiguePoint( GetMaxFatiguePoint() );" C# F& a j R- s
if( nJob >= 1 && nJob <= 4 )
5 C, f/ x- ~/ _ {8 `4 @, N1 Y; |4 n( a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ b, t5 Q1 F3 p6 } m_nRemainGP = 28;
0 F0 b, t3 R# e( |* k4 x8 S }' F6 O7 v6 c# _( L. v+ C C8 S
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ X) h$ \1 F5 U) v( Y
{
o2 n0 \( Z7 |2 f& D% s: g& V, K m_nRemainGP = 118;
$ e8 ?7 `7 M1 o* t0 n //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 O5 e, R: l7 M m_nStr = m_nSta = m_nDex = m_nInt = 15;- ] n- l& u$ h
}! Z; v! @- Q* S; Y7 o* X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- F5 k5 e( _2 k- S4 Q; ~' A1 `9 R/ m, v
{
4 i' _2 g3 O" I) N/ c' E4 J CItemElem itemelem;
, d- m& P. L9 Q! C/ U7 ? itemelem.m_nItemNum = 1;! I( y8 y G: {7 X4 `$ d
itemelem.m_bCharged = TRUE;
/ k) f4 E0 h7 L* p BYTE nID;
3 R% f) h( v& t+ i. G4 Q9 H& V
: H8 d2 E5 z# X, n v3 |6 n if( nJob == JOB_MENTALIST_HERO )
1 g/ a0 n8 F: L o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 c7 p9 `3 w" N4 I" T0 |
if( nJob == JOB_FORCEMASTER_HERO )
5 F* f( M7 @) h" Q; S6 t itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 H: E3 h, p2 e6 t" ?
$ p+ P4 u/ d6 S+ Q3 t# l, W2 I ( ( CUser*)this)->CreateItem( &itemelem, &nID );
: R8 j! V5 B1 ?, x) i( }$ p r2 F }5 e" b6 W" }2 s! v' n
g_UserMng.AddSetLevel( this, (WORD)m_nLevel ); {# m8 }$ {0 |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: o' n2 c* O. c1 E: z) u Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 k7 w/ }8 Q7 G
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& M& H* U, m7 y" S( j. g ( (CUser*)this )->AddTaskBar();*/' Q, ]2 s/ t* V0 G4 Q# H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 y# J! A# O3 p+ v$ M& C5 {* L+ K: D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ d" R3 z/ G8 x" F6 S- M* X" [; ^
((CUser*)this)->CheckHonorStat();
( z) [. _+ ^; W! G- F ((CUser*)this)->AddHonorListAck();9 e: h6 Q' N+ {: N0 a$ H! h8 ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);: E: D6 \$ ~2 g8 N; g* f6 U
#endif // __HONORABLE_TITLE // ′Tà?
6 ^& P, N' O O0 }( ?( X& n }/ F7 V9 Q* S! P: Z: v: R
#endif // __WORLDSERVER
* h& t( R% j' T# g} 2 h+ E) r1 B) z" o
0 u- Y# e% `7 i! ^然后你进入functextcmd.cpp并添加以下2 [: Y- \% c: M7 |; m8 a
# T6 w- p' Q. g, F
代码:
6 G' ^( j, ^& {1 A6 x$ tON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- ]6 F9 k! A8 t7 L下面插入
0 e0 t& w* f }4 o2 A9 vON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 l+ t, I; R9 y. a$ r9 R$ x: w( F7 {7 w$ r5 R, P
然后你去9 M) H. j0 X- o* k" m. H
# {+ s4 y* K' c. M3 ]* b
代码:& @3 U9 y5 N: a" F9 e1 W
代码
7 l: W- }' h$ P% `. ~% zBOOL TextCmd_ClearPropose( CScanner & s )
: ~6 z9 b$ o. U# G{
& v* l; K* k! b+ k4 A2 i1 f#ifdef __WORLDSERVER
, X3 g' l# o) v) l' q+ O CUser* pUser = (CUser*)s.dwValue;6 a3 I0 Q& S$ I6 K/ G
g_dpDBClient.SendClearPropose();
- L/ B8 t. z6 }0 J#endif // __WORLDSERVER6 y: [ b- U& [- }% v
return TRUE;" Q7 V' x' i" T1 U; h" `1 J \
}
$ W7 w0 Z- O3 ^下面插入. O3 Y/ U2 } [* `& y* ~
BOOL TextCmd_rebirth( CScanner& scanner )
6 [1 F0 a* V8 w$ D4 C* a" m: t+ s M{
( L- I& J8 E& ?8 V" @) e& W#ifdef __WORLDSERVER
+ s, E) ~9 I3 D4 X* n& XCUser *pUser;
2 a7 ^2 S' Y, C) g# ppUser = (CUser*)scanner.dwValue;4 c& H5 _7 @2 R- U% _3 F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), ?) A1 j. v- l- t! H
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);5 ^: j# z& B, J o6 C1 w/ O, J% u
else
{0 @/ F* [1 G3 a' XpUser->AddText("你还未达到重生条件!");% }1 u% V! F# z* ?8 m# Y
#endif
- ~! `: [( W7 S/ z2 treturn TRUE;9 O6 y) K; R8 H$ n$ w! W# I' f
} ( s# Y5 d. L- ^: ?
7 C: W0 ~7 B4 T
3 l- C! M9 U$ s# U5 [
+ ]/ i Y! l$ Y2 L- }+ W" I
1 P4 d0 t* \* H |
|