|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 y% d& _' R0 }7 q
1 E ^4 f7 A6 s$ oMover.h4 s9 o5 c0 ^" r5 T. R# z2 V
代码:& l$ x8 w& |" s S
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* ?! @5 s3 J: `6 {/ B4 U4 `+ Z& ]. Y( B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' A0 P1 [& w& ^/ _! E, k
! B; i' o2 Z. d2 J+ m4 P然后你去mover.cpp添加( P: O! W# s$ `4 Z8 n! f
, S" q3 e) d8 ]7 J
代码:2 u, G W/ H* l7 \- @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, `0 T' \- | ^ U7 }{, L! ^# f7 o. d7 o1 s
#ifdef __WORLDSERVER* p- w9 V7 I/ |) E1 }* S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 X6 q8 X0 \$ [7 w+ p! {5 w. j
MoverProp* pProp = GetProp();4 p8 N$ m2 D1 ~
if( pProp )* J, {! e0 a3 {7 g5 K8 N
{
: X) _: w, [; u9 W: d9 [, m2 w; D' _ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ W: i/ Y3 j+ u {1 y z+ e' K/ ~, i0 p# t) h
AddChangeJob( nJob );, ~" q! p/ L% P' Q, j- x( G0 q0 w
}else{
) N' w. g. ] P+ d+ q9 M" U7 h return;
; N4 S) F' {5 F) E$ Z& u* M/ \ }4 V% ]. N, \' C1 R
int nPoint = 0;8 f& m; X6 L( b* c8 _/ l% F
if( m_nJob == JOB_MERCENARY )6 m, P4 a. v6 e1 Y' x6 Y( [0 {2 l0 ?/ ?( I
nPoint += 40;2 b, i& A, _9 S: p- M4 c
else if( m_nJob == JOB_ACROBAT )* u; O& A9 ]5 i% V
nPoint += 50;$ ^/ V E8 s+ @" [
else if( m_nJob == JOB_ASSIST )
0 F2 A; \' o: J0 e N. ]- z nPoint += 60;* `! b' B; H- X) f( p% c* U4 ^, O
else if( m_nJob == JOB_MAGICIAN )
) R; r9 a* N. J nPoint += 90;
& e6 @, d& Y& e6 r' w else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) X. B; D- _& x6 F# w; u nPoint += 120;
4 X9 N# n. R* x$ x7 ] else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; a* N1 p4 L& [ nPoint += 150;
! a+ w( r! c. X else if( m_nJob == JOB_RINGMASTER )
, D$ I3 S$ ~1 t+ \) K# T) v3 a nPoint += 160;4 K" _0 N7 p) g! [0 \- A7 x0 q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 I N+ X6 U2 N% x nPoint += 180;7 J* A" `3 J* X' F- Q. I
else if( m_nJob == JOB_ELEMENTOR )4 T, `8 |/ Z' x' l
nPoint += 390;. y% Q7 P; `2 c. @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): C# k6 p* U. E4 C" w# ]( @
nPoint += 120;
/ g! B- b; f) [5 c8 i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 w3 G% m5 `' `" n: E
nPoint += 150;
5 V. p$ _; Q6 J+ B" M. ?) o else if( nJob == JOB_FLORIST_HERO )8 q7 L7 M4 z3 g, |/ V+ f3 Q
nPoint += 160;6 U) i/ j5 O/ x6 g3 x; |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! b' r# M4 _/ ?3 R nPoint += 180;; `4 s7 I, [( @
else if( nJob == JOB_ELEMENTORLORD_HERO )
4 V0 f$ a2 p+ W& G) P: B nPoint += 390;
% V |, A9 n) E* _! D& V9 Z( S, a$ U# G( `& @
AddSkillPoint( nPoint );2 @5 S4 b& w% q* p
m_nLevel = nLevel;! w' i g0 D. r
1 W/ m' U9 W6 ~, l; g$ [# D
SetJobLevel( nLevel, nJob );7 a' `- L) K: T9 K+ }
m_nDeathLevel = nLevel;
5 y2 A- h5 y. c! t7 v#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 y! m0 `! I7 K& P if(IsMaster())0 J) |# L4 w* Y
{+ d8 l$ i: B" {. O5 s2 |. o& H, m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 k8 n0 i4 ~, Q2 m
if( nLevel > 59 && nLevel < 72 )
; z( K$ q* p) g' B5 L dwTmpSkLevel = 1;
& n5 R7 V0 V8 ]2 `3 n' i else if( nLevel > 71 && nLevel < 84 )8 E- h" \- E3 T; q$ h, o
dwTmpSkLevel = 2;6 H# ?; N. x6 }0 S
else if( nLevel > 83 && nLevel < 96 )
1 M, p6 X6 Q0 h dwTmpSkLevel = 3;
6 f" X( C" Q5 V& o. \ else if( nLevel > 95 && nLevel < 108 )
- t P4 l$ j1 s dwTmpSkLevel = 4;
" [& J1 n7 i" t% Q& Y else if( nLevel > 107 && nLevel < 120 )
2 ^2 l5 |% E0 ]( o dwTmpSkLevel = 5;# A7 @8 ~4 ?& z5 m$ o# {
for( int i = 0; i < MAX_SKILL_JOB; i++ )
|! k& b4 |3 W, M4 C% M. x { 9 H3 I0 H1 B* A( Q. v5 i
LPSKILL lpSkill = &(m_aJobSkill);
1 y. b! X2 ^3 L. b4 }' {7 v if( lpSkill && lpSkill->dwSkill != NULL_ID )
. _# r( U0 c6 x( o9 c/ K! d1 `# P, P {' e' g& g1 r# v, g+ ?4 [/ X, `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# L/ v) m! p# | if( pSkillProp == NULL )
1 ^8 T7 Q! `& W* [+ G. p% j continue;3 G6 L* m3 w" o) Z) A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ t# ]; i0 d* ?
continue;
9 D; t, o3 p/ F' e" T; I& e lpSkill->dwLevel = dwTmpSkLevel;# }6 \# L$ P# g6 I7 {) E
}0 h5 Z4 w4 f& i0 F8 D2 x; Q- L
}
+ o& Z) S4 N' O3 ^ }( H$ I5 m( X% d8 }" N
else if(IsHero())- N6 s9 m X N
{8 X2 b8 `. ?/ o6 S8 h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; n' Z3 N. ]. s% X
{ % [' Y$ R; `# d8 u
LPSKILL lpSkill = &(m_aJobSkill);
) g* \% H9 i; L m X5 I if( lpSkill && lpSkill->dwSkill != NULL_ID ) r& Z1 ^7 A# j" `
{# a1 g9 I; r* y# h' m; K; M* C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 _6 p1 Q7 ?9 K0 A& k4 u
if( pSkillProp == NULL )
+ V$ Z5 z# G* h# W% i) g continue;# `5 c. T* _+ ^5 f$ o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ ?* Z m3 r9 r8 u continue;# D" E- R4 E2 {
lpSkill->dwLevel = 5;* y6 f# c( P2 m1 G1 n
}
5 B! g5 _% G. F7 O9 B }
4 s: J" _; t' P! x- w. t' M }
, S" m/ e3 O# L1 }: x+ A else if(IsLegendHero())
z% c6 b" f/ u: ]6 Z* J6 |7 Q {
# @& p* K- M$ I' T! [+ C for( int i = 0; i < MAX_SKILL_JOB; i++ ) , Y. u+ d P5 {0 D6 K9 B
{ ! ^+ ?: z8 Y) v. E
LPSKILL lpSkill = &(m_aJobSkill);3 T' G& `2 V. m5 O2 p% ^# Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: q3 g$ T8 h D' P {" Z1 I1 w6 s {2 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 }) t% X7 Y0 I9 R: w if( pSkillProp == NULL )9 X/ D/ \: e3 `8 ?
continue;
$ T- C2 N1 y& q- C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& F& _( T7 I8 k9 O
continue;8 w$ y7 _ H. j# O: N0 l/ }) }
lpSkill->dwLevel = 5;2 b+ R0 ^- Z; M1 k7 b0 z/ \
}
! u; _2 D1 b7 T7 S8 X }% _, t( {( |% _/ D
}9 B) h j4 \6 j8 J( A# }9 x* D
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 r5 v9 x8 i& V7 E% p" f: _ if( bGamma )% i( d- q5 [4 A5 M2 o- L
{2 }% i& p2 E- x( @9 F( ]4 U: j
m_nExp1 = 0;
& G' u& l( i% _! m% r; n, z- V }, z0 V1 q( Y4 R4 p( J
" T" @5 L6 k! [( ]+ \4 m6 B0 q ( (CUser*)this )->AddSetChangeJob( nJob );. a+ \- R& \. X) m1 Z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 Q' K4 F, D" j0 I& D; p/ @
( Q+ d% x* C. j% M+ o; S
" l: C ?3 }* y( J6 [#if __VER >= 11 // __SYS_PLAYER_DATA
- K' k* L) p1 d4 A. \- C g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! e+ L3 _; C- w" j7 S. [ r2 J#else // __SYS_PLAYER_DATA
" i6 N: z; U( u, g! H g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; s q6 u8 ^, {: c( H g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- e7 r: X* p$ }% e1 K. R if( m_idGuild != 0 )
3 E' f1 f* C- l$ n* P g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 e8 E6 y, t- n N2 R' W
#endif // __SYS_PLAYER_DATA: ^1 R' S- X8 G9 M4 V: \
SetHitPoint( GetMaxHitPoint() );1 n3 [ e( n! C9 b, E R: m5 I
SetManaPoint( GetMaxManaPoint() );! Y3 x5 B4 X9 e5 b
SetFatiguePoint( GetMaxFatiguePoint() );
. x8 ~- S6 J- V$ j& h$ I if( nJob >= 1 && nJob <= 4 )+ c) N5 B8 A, v6 d! o2 A8 \
{0 \3 y2 ?( a( l* J6 [
m_nStr = m_nSta = m_nDex = m_nInt = 15;# H; j1 W% D0 I" m {& m0 U
m_nRemainGP = 28;
5 z# `7 N% Y8 \. s L }
5 {; h, ~, X3 O4 t" [ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" a& r# \& m2 b/ d' o1 p# i `
{
/ n, ]1 A1 \$ Y9 M m_nRemainGP = 118;, n; ]$ P) l6 n; l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) W E. ]/ Z' x& X3 f1 M m_nStr = m_nSta = m_nDex = m_nInt = 15;
: n0 [" b/ r! J/ e1 n }# b7 c" y0 a+ f* Q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 g5 t3 m9 D& }2 w0 M' L {
7 q% R4 F3 @) h. m' k% V& v CItemElem itemelem;
. h8 d- U( o" q3 b0 k itemelem.m_nItemNum = 1;& ] k4 }9 h: O
itemelem.m_bCharged = TRUE;9 s% A; A5 c" E8 l
BYTE nID;
$ k! T8 M! j- \. s @ N1 c9 s* c" `2 o: n
if( nJob == JOB_MENTALIST_HERO )
$ _6 G# r- N) g2 W6 J itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 m, M& P+ ]; J t, D
if( nJob == JOB_FORCEMASTER_HERO )6 O! A- H' A5 m
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ d# g( k$ n$ L3 x7 j2 P! y. u. z& ~5 f; T6 p
( ( CUser*)this)->CreateItem( &itemelem, &nID );- t6 x9 H6 F2 f& E7 H5 I
}+ f/ Z& x' C9 ] \* L/ w, k; Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( V. H* z1 A, N. l* u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 f8 ]8 R7 V$ |* ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 u1 B! Y4 l! d7 s /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; l) I9 i4 H& k1 [$ c4 t3 V3 j ( (CUser*)this )->AddTaskBar();*/" p0 Y6 q3 o3 S7 R; v7 L# J! `1 y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
~+ x+ s( U. c# S9 {5 r9 C#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* C6 N, k, K e: V' ]' _7 B
((CUser*)this)->CheckHonorStat();( c' K: m/ U8 `# p9 y' w1 D
((CUser*)this)->AddHonorListAck();6 |! V3 H' b3 y
g_UserMng.AddHonorTitleChange( this, m_nHonor);7 _7 z# p0 Z0 i0 ^% l
#endif // __HONORABLE_TITLE // ′Tà?3 S d: y; z" H& X' d% \* Z
}
& d7 }( i' Z, o. a#endif // __WORLDSERVER
6 T" t. G% G5 z4 Z}
. u& N/ e3 n$ Z: s
% d* x3 X3 }- S7 ~6 q" ~然后你进入functextcmd.cpp并添加以下; P# O1 S1 d2 Z
0 w1 M7 h$ c& d" [2 T5 \% z9 f, o8 g代码:
. c& w: q4 d5 E: `( @6 `ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 s$ p4 ^6 M, J0 }: P. C
下面插入
- z" a1 x; H+ ^. F' [& n+ c3 EON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 g3 F* z; \6 o) {1 Z1 ] {
3 P+ S( J3 O8 D1 k. m
然后你去
6 Y2 B6 \* g4 g' j
% m+ |# k! M {代码:
" q8 t- ?2 [ o! D# \8 ]0 E2 w代码! X. n% L7 o3 c! K
BOOL TextCmd_ClearPropose( CScanner & s )# g3 V! |) {# V+ v/ m
{
; H- k) j# M7 k, {3 @#ifdef __WORLDSERVER
$ `0 p5 n3 U$ ]! v CUser* pUser = (CUser*)s.dwValue;
$ C" l& f6 l) A ]' q2 X8 ]2 I1 y g_dpDBClient.SendClearPropose();
# _. b( d! @' |# ~) ]#endif // __WORLDSERVER
) j+ u! l7 x4 h! e3 g return TRUE;
+ Z2 C( [) B% W}
0 R# b; ~+ W5 `& ~下面插入8 B9 g" I- O2 y
BOOL TextCmd_rebirth( CScanner& scanner ): z* a- ?- h% E
{
3 P: o$ t5 s! ]6 Q2 k4 X#ifdef __WORLDSERVER
5 z/ P2 y% z+ wCUser *pUser;
- K' y9 b9 L, h6 |& s. K- I8 i: DpUser = (CUser*)scanner.dwValue;0 b" Q8 e! c; n# C! C0 J% c
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" |) y8 o. X3 S* {$ G$ fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
B1 \. i5 q- k9 Y- w5 k9 _ telse
! F) z+ ]6 v: {" \4 I( NpUser->AddText("你还未达到重生条件!");% L3 @. z8 M- }! x* O! \
#endif
' d3 o0 [) c0 ]8 p4 i" oreturn TRUE;
( r2 G& x+ A/ |1 E}
, \0 o8 [" ^9 w$ ^: W; p# `7 L$ L+ S( q
( t' O) c6 h* b( q& V% G; b Q
3 O% W' t+ g; K9 {+ @
8 \, C, B( l) ? |
|