|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 ?3 U9 ^$ A* E+ g
+ j& Z+ x' R3 I/ r/ W" b8 V& SMover.h
1 [9 ?0 Y+ |. ~- k/ D2 I6 c代码:
: @9 c& u2 {' s7 C3 Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: a4 }9 @5 k% T$ f: v
; W$ i7 A1 d3 e/ s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 F6 U! z8 {1 Q6 e4 m5 ~' S
! m, N4 n0 n) L然后你去mover.cpp添加
' ~0 O! w0 x# H
" a3 k* V* T: d# S! i7 H代码:) E2 E4 Q3 j9 g( M7 w N& m
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): a4 l2 Q" R, I9 D: ?
{0 @/ q% ~& g! W8 n6 R2 i/ h
#ifdef __WORLDSERVER
! ?. r/ Q; i1 S. N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ L [7 b) I/ F3 s! X
MoverProp* pProp = GetProp();
# I+ }& x/ J* `5 X# d if( pProp )+ {7 a+ V; _9 X+ e( Y% V$ t1 G0 B
{4 M( [# r Y4 N- N* ^ T( U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- L0 S/ i4 y0 H0 {& D5 D0 \5 K, P
{3 H1 [8 U! |# w" b& n1 U: {$ b2 B0 f
AddChangeJob( nJob );- ^$ U& P) X% Q0 H/ Q1 S
}else{9 R) t, z$ e7 \7 @6 v$ l7 H3 D
return;! I. O( I9 z H5 i0 Z; u# S
}! B; q" l, f F; H: A# K1 l0 Q
int nPoint = 0;
: p. o# S2 r5 B, K( ~ if( m_nJob == JOB_MERCENARY )' t: W+ B2 M3 j
nPoint += 40;
. g- `. T% w [, c1 e n% j/ \) K6 w else if( m_nJob == JOB_ACROBAT )
; U# j, D) _6 J; H, E7 a nPoint += 50;
- _$ k2 a) m% D+ m( j! g% @ else if( m_nJob == JOB_ASSIST )# Z) |: J/ L Q8 d: d; D; L2 v
nPoint += 60;1 c1 c* F, ?1 i5 W& N, o
else if( m_nJob == JOB_MAGICIAN )
* H. \8 J* I" ?* z8 c0 ^/ x, Q nPoint += 90;
+ t F/ F6 y5 c% G# R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. d8 h& a8 N2 W nPoint += 120;: C6 Y* l1 l L8 `' y+ [3 g) `6 L
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 X# B2 c. H4 F, q2 r
nPoint += 150;
! b2 H4 w! A6 B$ V else if( m_nJob == JOB_RINGMASTER )
. }- F- c3 x+ c. F0 g nPoint += 160;5 S5 z( ]1 O+ ?: [$ i9 ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, F; ~3 ~8 ~$ f nPoint += 180;3 N9 f0 v* {) ]; s" [( I
else if( m_nJob == JOB_ELEMENTOR )& g3 ]$ t/ C) `5 Z: @
nPoint += 390;
% }! W' u7 \* a- W: u( { else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 ~% l/ h$ M& M1 }# K nPoint += 120;
( H% a9 `7 }, m- ]# d9 F5 M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 \4 ?& ^+ B. O# q0 N. m nPoint += 150;+ Y9 r+ f) f: M0 Q. X. u
else if( nJob == JOB_FLORIST_HERO ) A. M2 \, P3 H/ l: n' m7 s
nPoint += 160;
# m+ s8 }$ e6 I1 |& x else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ i2 P8 c8 R0 G. d* [! `
nPoint += 180;) V: Z+ G }6 Z' b: Y v
else if( nJob == JOB_ELEMENTORLORD_HERO )" |6 Q* U; I" I) S+ E
nPoint += 390;/ X# w1 j& e( P1 Q
( K0 [% ?- R+ P
AddSkillPoint( nPoint );, a7 f; R j# r9 [" c
m_nLevel = nLevel;
. c& R) a% u- ~5 `5 O7 o8 J. j/ r6 V
R2 R+ b$ V$ ]8 c' M3 v8 ^ SetJobLevel( nLevel, nJob );" n$ q& p! m+ ]/ A9 \9 z4 h/ @
m_nDeathLevel = nLevel;
4 y3 p, o/ E( f1 v3 @8 l N- }3 ?( ~#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ H; A0 Z- @% \9 |. e! u( ?- r
if(IsMaster()); g6 D9 s4 ]) F3 j9 i9 d" Y
{
m1 n! _5 z' N( W int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( g, ?: l- X' T! e if( nLevel > 59 && nLevel < 72 )
( X" ?' t! F; m, z& a dwTmpSkLevel = 1;
+ X) r1 Y1 ~# w+ c [4 P else if( nLevel > 71 && nLevel < 84 )( M8 I# o- u; @8 h0 z1 {
dwTmpSkLevel = 2;
. O, T( }' t- ^ else if( nLevel > 83 && nLevel < 96 )
5 [" U% z! [( h; h2 Z dwTmpSkLevel = 3;! m( @1 d7 z$ e8 ~: p
else if( nLevel > 95 && nLevel < 108 )5 n" w: z8 B" `1 V- a
dwTmpSkLevel = 4;) L5 D7 D/ `1 T
else if( nLevel > 107 && nLevel < 120 ): j3 k; V/ |8 G/ T" s7 v
dwTmpSkLevel = 5;1 L3 {: G- R- @
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( `( w& m- f" ]- u' B
{ ( t5 h: M% p/ _4 M9 }8 J6 S5 r
LPSKILL lpSkill = &(m_aJobSkill);
/ h# g/ |/ d- z& {% L U9 U if( lpSkill && lpSkill->dwSkill != NULL_ID )9 ^7 E$ t$ n+ [: i+ }* V! X0 k% P
{
/ C# u7 ~; k8 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, h" w2 ?; T8 I L6 e9 |; w if( pSkillProp == NULL )" P+ U, R$ \% p4 D+ I; m
continue;
# @1 z1 s( B- {3 _7 }; w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. p, ~- D: u4 N" N4 s4 _ continue;
7 s' V0 [) N: S& R3 s, A, Z lpSkill->dwLevel = dwTmpSkLevel;
3 H6 `# L3 j; c- z } _# B: y' ^; C
}' A9 |) O: p8 N' L' M
}/ [6 t3 i0 h- l8 H! B
else if(IsHero())' \) C% L! {; t- v/ J9 U
{
0 n8 L# M' k* T6 h for( int i = 0; i < MAX_SKILL_JOB; i++ )
: q5 h9 T5 ]7 }5 Y* K! t { * \! R& R! d7 ^
LPSKILL lpSkill = &(m_aJobSkill);- [1 }& K4 a1 J; m. ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 i5 w% \3 H0 z1 ^ {7 |7 `$ B2 e$ V2 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% f, p7 L q, }$ J" a) P* v9 L if( pSkillProp == NULL )
& |! Y3 Z5 L; i continue;
4 l- x% a" S3 `: ~* P8 I5 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* E3 Z% |; D+ }& `! s* Y5 e: \. h continue;/ C: i' Y% x! Y/ f2 J
lpSkill->dwLevel = 5;
! p4 f I. k" ?1 g. g }
0 G5 X/ R: W/ X! W. N }& h+ H- G* |# D C: Z: {* q
}
# K b" G1 J+ u6 c1 m4 _) q else if(IsLegendHero())
1 A$ M3 L$ A. i$ o$ V4 W$ E {
0 r1 D4 z* E g% b! Q4 M" D1 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) " b, h6 K3 M8 f9 g6 z/ q* k
{
8 t; ?1 v& Q. k. t, F0 A LPSKILL lpSkill = &(m_aJobSkill);, `6 R( d: l, ]+ K$ V- x1 y5 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' z( g* h4 S o$ A- f' Q {0 u& f1 k+ v- T" M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 c8 R& g5 J/ ]: x. b4 V4 x8 i if( pSkillProp == NULL )
H# f/ ^' [: b) O H continue;( x1 F; F$ H X+ {0 e" V: \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 n! r K1 ^. n5 O, y6 G continue;
' s# ]& w) s$ R lpSkill->dwLevel = 5;
! m4 s$ Z$ B5 N. c }
7 S a$ A: y8 Q' p- c% n* E" \ }
) E- {8 H5 f7 d- h9 [8 }8 ]( _' F } x1 f% W* c* [+ Y0 |; O+ ]$ e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( F+ M; g$ b2 b2 S
if( bGamma )' m6 ~( X$ M; A8 N8 \4 N' ^& C
{& o- v0 e( _! ~- {+ |/ K* w5 M% p3 m" |
m_nExp1 = 0;
/ K0 ?9 R) F5 S8 | c }# C' W- S) ~' J0 h; w
% y" W# e) A& ?! ?, h7 g. f
( (CUser*)this )->AddSetChangeJob( nJob );( ]4 ?7 Z' S5 R0 U& t, Z, O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# ]" ?# J4 ]+ z/ r$ p. l, T! P
; u3 U" O- f. v7 O# {" I- U; E+ `' b5 G8 j3 z- W
#if __VER >= 11 // __SYS_PLAYER_DATA
3 m R' D- j* n# m% _0 _( H0 C1 m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& i0 }# T$ E9 k, n ^
#else // __SYS_PLAYER_DATA8 G0 k6 f* Z2 |' j: N- w- D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 ]9 l1 p! `1 V b& ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ O" K; X# e3 M9 ^7 N* Y: ` if( m_idGuild != 0 )! Y+ a" J6 H# P' P. O
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. a0 i0 _4 S8 s* ]' X#endif // __SYS_PLAYER_DATA) J* J3 F$ k9 n. _2 Y7 Z4 W2 Z! X: m
SetHitPoint( GetMaxHitPoint() );
1 J4 ?, B$ f8 y5 z" B SetManaPoint( GetMaxManaPoint() );. b# b* y/ ^- V
SetFatiguePoint( GetMaxFatiguePoint() );
6 _- r" ? o. M% o6 t6 { if( nJob >= 1 && nJob <= 4 )
8 I; r2 N$ d! R6 X& o) t" I* r7 r {
! b8 E+ N6 @& i1 K m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 q' H& W8 K) w$ a% O8 v3 g. Y m_nRemainGP = 28;9 s2 D# y; u$ m8 E( Q6 H- N
}
! N1 g' P X8 p5 J& a a% t if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# b( W8 {- r) @9 W8 G& ` {
# J' o5 f4 y5 x D! @# O% @ m_nRemainGP = 118;; F3 D% b, ~/ k/ g" T6 m
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 G5 J$ M/ D. g6 a' l. O1 W% A- T m_nStr = m_nSta = m_nDex = m_nInt = 15;
" Y/ u- P" C7 R. E3 B }
6 q4 L7 @6 x) h# e/ n; F2 U if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ k: O2 e+ i- [5 J* |
{
$ V4 I+ F+ _. {+ W R t+ L8 D% v# W CItemElem itemelem;0 D& u& H" V% t* n- P
itemelem.m_nItemNum = 1;
* S* }. J! W; Y/ h! U itemelem.m_bCharged = TRUE; p" a5 K. h/ a) A; @/ q
BYTE nID;
/ g8 T- E! F) e! B/ z* l' i! Q( j- ~
if( nJob == JOB_MENTALIST_HERO )- n8 t: t8 m# Z @8 r" [% j/ e# l, g/ N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, W: }* M' v& R5 p( a; V9 f if( nJob == JOB_FORCEMASTER_HERO )
6 f0 }, ]% U6 F$ r$ O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 w9 f" n& z/ G2 }, `! g
4 `5 t0 ?! w1 M, f" l. Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
v1 N* U* f- ^ M9 f. e) R }
* ~) b6 M, @- ]7 S5 G0 v7 q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 d/ z/ R, u* v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 ]: f. _ w+ g- ~* k
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& s8 R# J; O) o, E$ M% }
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 B Q! y; l% T- h2 p ( (CUser*)this )->AddTaskBar();*/. o( M4 u: S1 a5 h" U% ~7 E k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; v( E) p% N9 ]. ~ o#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 N4 b2 O' {& |) d3 H
((CUser*)this)->CheckHonorStat();
+ s! T. }' h" r- `. o ((CUser*)this)->AddHonorListAck();; O* [. n& A6 k* E, _& l
g_UserMng.AddHonorTitleChange( this, m_nHonor);% I& A2 k9 {( l2 f M
#endif // __HONORABLE_TITLE // ′Tà?
3 i" o9 ~5 C; I* B" d7 P0 C }
9 J9 W: b0 V3 I' E#endif // __WORLDSERVER
8 L* n/ }7 ]8 } o}
1 [0 U' u4 }$ N$ m& g) ]
# G; M& h6 _& B( s5 w8 w- G8 O然后你进入functextcmd.cpp并添加以下
9 Y1 q X+ d3 p) T! [* c
4 K1 ~% v- m* n5 R代码:2 |# c9 i* j" T" A# n( \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- H: j' H) }1 O' g4 q! F4 q2 f/ W9 c
下面插入- ~# q) C6 G+ k9 S+ ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * M5 |) C" j7 G: N
4 _5 R3 U; z0 Z9 U$ `) f$ j然后你去
+ D) ~1 v2 s' k* Z" Y1 |6 O6 w F1 O+ L5 i$ h1 i5 K5 m
代码:
# i1 {, s' {( y# P0 z& R, n代码
& I) u: k# q/ }4 Y# ?' ~, h; a) R9 zBOOL TextCmd_ClearPropose( CScanner & s )
1 b2 Y$ j) F% K! q{
0 | \! B9 b; d$ I0 C: o. Y$ O0 m: N#ifdef __WORLDSERVER" P* E6 j+ Z" k/ K- D1 H9 L4 j0 h
CUser* pUser = (CUser*)s.dwValue;
, l0 |4 a* z, T3 i0 f g_dpDBClient.SendClearPropose();& H/ a ]7 I) i; B* ]
#endif // __WORLDSERVER
$ v0 A# w/ P& x8 n return TRUE;' W( M C' E1 u
}
) c8 z. T6 ~, a! q下面插入
& _1 J- S: r: PBOOL TextCmd_rebirth( CScanner& scanner )
8 R8 }. u ?4 ?! C) f" R{. \ {7 f8 O0 r) B
#ifdef __WORLDSERVER3 g1 H1 p& L4 {' r" q; |
CUser *pUser;# z9 r9 ~8 B2 A& m
pUser = (CUser*)scanner.dwValue;
. _1 t k6 H7 E# n7 r/ h: g6 M3 vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ f4 `4 f; y. L/ s, b% CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ p+ e r+ @% G [. [7 }4 celse
2 L& A0 `) n7 @; C( [pUser->AddText("你还未达到重生条件!");
: q. ?* o; r: r) ^#endif0 w- {" D. O5 i( E5 g z* v
return TRUE;' n5 m, i( b, b0 I1 W. c
} : T M6 a0 e- f$ K
: u- [7 ]# Y- N2 N) X' [4 ^/ i
6 \" t# H( I* E9 _& K2 I2 ~- A
1 v+ f: [: J- G9 T# V
& x- a& }; M1 r D$ ^( } |
|