|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! ^- S9 X$ Z- o
5 D" O) \5 `* b" R# l2 }; @( dMover.h
5 y+ }" \) B( }8 j3 H+ t% k代码:& h! t2 s7 @( X/ V* Y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 Z, J" s& y+ T* d* Q
8 l K0 d# A& _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( v/ ^1 A; }! h" p
. T$ r: O' u( G& J: _* @, m然后你去mover.cpp添加, \/ X4 r( A. k& |4 G" t g5 i
" Q- D& b4 p- _) _+ r
代码:
) j0 x/ y" y. p1 Z, t# Yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- {9 T8 ]' x: x# x+ y' L. Q0 `
{6 o" q- p1 A7 R6 H- T
#ifdef __WORLDSERVER# P' u' F M3 X; D+ o
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# @/ e! G ] U, F! f, @7 C/ J4 u+ f
MoverProp* pProp = GetProp();! @) O9 {( V, b+ m) l9 r. H
if( pProp )
0 O' n( u. h$ Q' {4 c {2 U0 m1 M4 C3 N! x6 G+ j, {
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- M2 [3 g$ K: U" ]' X' x
{
. Q4 g6 M9 Y, O2 H h% q AddChangeJob( nJob );. M+ w- p9 F w8 w
}else{
4 ?0 D. h; x' a! D$ a2 N P; S8 T b return;
2 a" ?; _8 U$ ?2 Z% t }
( k# B4 a5 B* V; ~ [* b5 C, B int nPoint = 0;+ J8 j( k# q8 q! i
if( m_nJob == JOB_MERCENARY )/ B) ^8 Y0 r) I- u' k7 F# w; y
nPoint += 40;* c w/ _. @) @% W) r
else if( m_nJob == JOB_ACROBAT )1 V5 d1 }" k6 b3 N0 v6 K
nPoint += 50;
, X; h) @7 S5 D* K9 Q/ d7 X( q- B else if( m_nJob == JOB_ASSIST )- o U: R/ X- `% k! G- O( _
nPoint += 60;7 [: e% r, m2 D7 E" F
else if( m_nJob == JOB_MAGICIAN )
5 [. w5 t8 ]6 F" E nPoint += 90;9 Y1 u0 N# W8 |. g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ f0 Q: D7 ~' J# C& y7 k. {9 w nPoint += 120;% O6 Q5 C E3 @/ U8 Q( R" k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 j: V+ u1 Z7 i
nPoint += 150;
! E5 j% L) w6 m) W& ~* F# @ else if( m_nJob == JOB_RINGMASTER )# u$ K2 D5 k! i) y3 v- D0 \
nPoint += 160;
3 `0 }/ n5 N& S. o+ ~ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ W5 k3 j# B% r
nPoint += 180;4 b- h) R$ w3 t9 U% q
else if( m_nJob == JOB_ELEMENTOR )! T1 y i+ b O5 Y" k! X) t* p/ q
nPoint += 390;- H9 c' i# p$ ~$ q( y1 I# n+ E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- W; }7 S3 ~( D. m$ R" a nPoint += 120;
( O4 ^5 B/ m" S* u8 H/ X# e else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 Y! o* b* Q' ~, d+ E5 _
nPoint += 150;# M8 w& X) |. ]3 \
else if( nJob == JOB_FLORIST_HERO )# Y% e9 v; f' D1 r
nPoint += 160;: ]8 y) D. z+ h5 p
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! O: m$ Q$ U) o" R* m: y nPoint += 180;2 w$ U+ |. I. R3 _* W
else if( nJob == JOB_ELEMENTORLORD_HERO )
T u$ v, A- y: p$ b3 Z nPoint += 390;
- _7 s% w' U6 c3 |1 S9 F/ X/ [' C5 z& }) A5 m/ e
AddSkillPoint( nPoint );1 o# b% b% y$ ^
m_nLevel = nLevel;4 s. S; T. ?# z8 n
# c) v5 o- Z) G% v7 [$ v2 Q/ Q SetJobLevel( nLevel, nJob );
# E2 P7 t: m+ G, [$ I1 J m_nDeathLevel = nLevel;- y( m i c: a8 b6 [3 N
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ l7 W9 q, P' ]9 Y* b if(IsMaster())
- ?3 V2 _7 d9 Q% h {
) u8 I5 \ H$ e; e# z int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- h/ X+ |. s; u
if( nLevel > 59 && nLevel < 72 )
/ G+ U& u' T% q' T dwTmpSkLevel = 1;
+ n0 ]6 f/ h: @ else if( nLevel > 71 && nLevel < 84 )) _3 e) V' s0 s }% c
dwTmpSkLevel = 2;. F3 r( _1 c$ S/ ~" V3 |3 O2 G% N
else if( nLevel > 83 && nLevel < 96 )+ f: X; i, w0 Y8 K' A
dwTmpSkLevel = 3;2 {7 m ]2 y4 v: [5 \
else if( nLevel > 95 && nLevel < 108 )3 x. R% f z3 _* a$ q; R! ]
dwTmpSkLevel = 4;
- b3 W# @2 V C7 h% H1 D else if( nLevel > 107 && nLevel < 120 )$ o8 f! r" O/ | s; p! J
dwTmpSkLevel = 5;1 _ u# j1 g, x4 G2 E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 p; Q3 u7 ?$ T" O6 ?3 K7 ~9 T* G7 M { / }5 z7 o: B6 P
LPSKILL lpSkill = &(m_aJobSkill);
( w. s% z# ~5 V t+ j! \- K% X( E if( lpSkill && lpSkill->dwSkill != NULL_ID )
, b e4 q$ `! `, b" r {/ y3 ]. S6 D( d6 J. S9 v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' F) d/ {! m9 M6 M+ L1 v& w! N
if( pSkillProp == NULL )2 \2 T! U9 |* ]0 }' h8 Y7 B6 k
continue;
8 A6 y/ O' i% M! L* e8 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ G: D* |& O: }/ G. b continue;3 G( W$ A; r' G! N
lpSkill->dwLevel = dwTmpSkLevel;
% ?9 O7 W) _4 N/ k C }
4 v+ u- l |# A Y, d2 T. J( R }
: ?- w/ R; K" O ? }8 T$ K8 a- K( ?
else if(IsHero())7 Z; W" i: D# e) v
{7 }: y- K& _- G4 N. [8 `$ A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * U# N. \, C2 u
{ $ Y1 Y6 ^( o2 y; C
LPSKILL lpSkill = &(m_aJobSkill);
0 X, n* I+ U' B1 O, | if( lpSkill && lpSkill->dwSkill != NULL_ID )# V' c8 T, [1 w$ S+ Q$ z5 }' z
{/ P' R( W- _0 w% F7 q8 d2 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 M e+ m' d& |
if( pSkillProp == NULL )/ s2 E' m5 w5 z# i y
continue;; c* p- G! z2 d G& W9 N) |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& W2 Q2 R5 S# y; I0 ^ continue;
/ I7 E7 c% m" a7 a3 W# f lpSkill->dwLevel = 5;* q9 b" H% p9 [$ `: }/ n, M
}7 v: Z E: Q% O8 K, B' h
}
2 {* U* l6 e" K0 l0 B }% F: E. _8 T7 h: t& O
else if(IsLegendHero())# e2 F2 h5 _3 y$ H' K
{
* }1 r, I( g; R1 l; ]: a for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 z, N& s9 N* O { $ |; H1 E: l9 H
LPSKILL lpSkill = &(m_aJobSkill);
, g9 L6 b& O1 y if( lpSkill && lpSkill->dwSkill != NULL_ID )) p) m: k% q; [( \+ R3 h9 |7 k
{. @& P5 m! J, Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 t; V; b. W# x2 t6 Z' G5 h
if( pSkillProp == NULL )
: j3 P1 s8 \5 F7 V" \9 ` continue; k2 ?- B/ i+ K8 j! M& `! _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); S. T2 ]! U- X4 f/ \" q# o! w
continue;7 u' [. f5 p: c! {* t0 `
lpSkill->dwLevel = 5;
5 Q/ s+ C( D6 v. ?* F }9 P+ o' X0 D6 I' M8 h
}
{3 K' J+ E, m+ \( ] }" Q) G) j, Q0 y- A' H- x( e h
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 T- c ]1 P5 u
if( bGamma )
! ~7 t0 d+ ^) l* Y! P {
! b2 v2 C* G# p m_nExp1 = 0;5 g/ p; Y9 i3 G7 `
}; ?) w0 Q; w0 W: t6 y# i! q
2 O3 ], b$ X7 S# X# a ( (CUser*)this )->AddSetChangeJob( nJob );
+ O( B; Q% q$ F$ e g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 ^5 _: T) I ^% i2 { `# k
; H% h! W" m) m/ {# I. E# G/ ^/ P/ f" Y
#if __VER >= 11 // __SYS_PLAYER_DATA
8 `9 u3 r- Z; T2 Q9 w( a g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 t9 L3 I7 X+ a k
#else // __SYS_PLAYER_DATA% s W h# x+ u
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! @9 [1 ~0 Q8 Y. V- k) | g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( w8 P6 @9 e- T
if( m_idGuild != 0 )/ y5 R1 i1 W# U4 f% A- g; ?# X
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 x% r: ?& Z4 X" x8 Z
#endif // __SYS_PLAYER_DATA
/ l* U- Z, R' x5 a SetHitPoint( GetMaxHitPoint() );
; N9 M4 k0 v! w w# v/ E SetManaPoint( GetMaxManaPoint() );( G7 Z7 J1 w" M6 t& R2 X; g& D
SetFatiguePoint( GetMaxFatiguePoint() );
" v( X l. M8 C' |/ [( V' n if( nJob >= 1 && nJob <= 4 ) S: K; G; O" O' L/ P& g& C
{, V }$ V; p0 d- Q6 N6 F9 i H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 E* ~9 S$ r7 g6 x# ] V% W% [, @8 p m_nRemainGP = 28;
3 I% W7 o3 p' }" Y2 S }# [9 [( O. m& ^+ m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), d+ l0 h t1 z! y3 w$ J; j
{1 }6 ?, c4 p. X5 f2 K
m_nRemainGP = 118;) ] E; R$ y9 j- y; B+ B* Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; T: w' h# a2 E9 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! I8 T% N, t, e }
" r0 x5 M" Y" F1 R if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* V4 _. H) v% |* n- G
{
V; E7 Y6 K/ E; F" R! [ CItemElem itemelem;9 B( A! \: o8 e$ D( G4 r, L
itemelem.m_nItemNum = 1;( j5 j8 Y8 H) r) `1 `! y
itemelem.m_bCharged = TRUE;4 [6 ?0 y& }4 u% W3 d6 G3 ]4 O
BYTE nID;
; U `' l; {/ u3 w+ {
5 A0 h! [9 Q/ O0 S( Y if( nJob == JOB_MENTALIST_HERO )
- }- E* ~, T! h L0 ?$ p/ R. d$ ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ c2 w0 s/ o" o( v* I$ _ if( nJob == JOB_FORCEMASTER_HERO )/ ~' o. @' c/ o: a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' W7 C u- U3 ~3 h
0 E0 J# @# Z: c+ g4 V2 ^ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 h* h$ B; C$ | }& J! F% u+ r, F5 }. y7 b
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. S( S! l; U6 J- I) W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" @. x3 B, Q' w0 y1 [" W0 O/ x% {
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, E4 K9 l+ @6 g1 e* ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ ]$ E4 b+ E% T4 r4 m ( (CUser*)this )->AddTaskBar();*/
4 a; V5 c: ~; C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- T* M; H2 R3 W/ f6 r: l; Z! N6 G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- l) S- y( r$ j) |: f1 M2 ~ M ((CUser*)this)->CheckHonorStat();
& y/ d+ m; H* A; E _: h) c ((CUser*)this)->AddHonorListAck(); Z8 N( w; o( \
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 v& d6 P) ?4 B5 h1 R#endif // __HONORABLE_TITLE // ′Tà?5 @$ F; q% N+ O5 G
}
1 `; C) U8 e, `1 T7 _% E/ q+ d( Z#endif // __WORLDSERVER4 U. o. c8 f; G6 R, R
}
" j* n% m- W% o0 h% n/ w" \. y- B; g( x7 ~3 C$ ~
然后你进入functextcmd.cpp并添加以下9 `# V P5 ~: M: x, g( B- b
/ m E1 t' r. f3 E* I+ k6 V7 T
代码:
9 |7 |7 H" s2 VON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. y7 o0 x, T7 o, Q- ^/ ~' w4 ^% s下面插入
. E+ K# }/ t2 |" Q; `3 n/ a8 bON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 t, i5 t# d, g1 B/ J. B
7 x7 @7 d* y$ D/ S然后你去
$ K4 L% K& ^5 F* C" _9 F
: |4 h4 B1 Z$ l* p4 G) f代码:
6 p; D1 F- n+ A1 v+ o8 M' I( i代码+ u" v2 O+ P; b$ f" @8 l; q" I5 H
BOOL TextCmd_ClearPropose( CScanner & s )
$ c6 K" v0 g- T5 I9 E2 _4 b# T{
; N3 ?1 ?# c. `( @( m#ifdef __WORLDSERVER
8 T( I- O1 _2 `+ R) V! Y7 r- h CUser* pUser = (CUser*)s.dwValue;3 ^; C3 h( E' u8 T, K
g_dpDBClient.SendClearPropose();. k2 v7 K% j$ Q. f" X1 k c
#endif // __WORLDSERVER# k) W$ j2 t( p3 U. }2 M) [
return TRUE;
# V! G: _' y7 ~; Y: C' l1 C}1 E/ y5 }1 M) A# }0 y0 f
下面插入
+ x: ?5 ?7 I0 \3 \# L4 L* S. FBOOL TextCmd_rebirth( CScanner& scanner )
8 l8 m* N& m- V9 i2 s{6 I: [7 U& k# p* n) \
#ifdef __WORLDSERVER
# l5 I4 g! H) h5 o! E B. CCUser *pUser;
! H& ]6 l! s* A, u8 a/ b. j, |pUser = (CUser*)scanner.dwValue;$ U9 O( D5 K$ @, K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 x8 K6 f8 K1 G& K B$ qpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) v0 h: i2 M+ R Qelse
) ~2 f; a g4 J, I6 i- `0 S7 MpUser->AddText("你还未达到重生条件!");
5 f5 U1 K0 M, r/ ]* P#endif+ l* m8 S0 V* t; r2 X+ }
return TRUE;1 h/ m: e+ o% [% \# _
} ; w& D9 A1 v9 a d/ d
( q; H' l% ^5 z0 ~+ p! m9 z: W& T5 b0 h
) X# R. T' t4 U! v2 Z* a9 k: j: {* Q
|
|