|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 a' _" z P9 {! Z) p/ f7 `% O
/ q- V5 q& T7 |! @6 j
Mover.h
) r1 y: a/ |1 }代码:
" `8 z3 b3 d" E& B8 x: J% f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% m9 _, |2 l5 p) `/ {1 a, I- V
( M( ]. `) [) Y* o
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# d) a4 Y; {* ]- E1 S3 H. e% T* Y% N* V6 M9 T, Z
然后你去mover.cpp添加
5 k6 J. b+ b. M f- z8 _+ m2 C9 `* E) l8 C2 x9 [. G8 _1 I+ b) {. `
代码:- \1 h% ~0 {. U6 O+ f2 m
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 g+ H1 C8 [/ N/ r2 \{
9 H7 d3 P5 ]# N: p* z% |2 X#ifdef __WORLDSERVER
# H9 Z: Z* D; l // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& ~ p* `7 f1 e
MoverProp* pProp = GetProp();
1 s5 o( |! t `4 U& B/ x if( pProp )
; }4 H. Q+ j1 R; w7 r {
6 Y& Z, c t, f6 x! A8 m if( nJob > 0 && nJob < MAX_LEGEND_HERO ) A) x! K0 J5 T+ ~
{+ h8 M$ ?8 Q5 B# F" [* h0 H* }
AddChangeJob( nJob );! n3 t2 E9 U8 X, F$ j; ~
}else{
W. u) Z1 ?9 [/ ~: M0 Y return;
3 d( A3 v" z0 w) R7 [ }
! W6 W0 H2 Q7 {/ y( F int nPoint = 0;
& c4 E" R: v* U, F" F @' K1 d2 O. ^ if( m_nJob == JOB_MERCENARY ) E/ |4 b7 u( j+ i" \& w \
nPoint += 40;2 ^( e0 ]8 h6 @% C* J1 C
else if( m_nJob == JOB_ACROBAT )
" m' ]& b9 [2 F" O5 C9 t nPoint += 50;( [6 I. U! C5 O3 C9 e
else if( m_nJob == JOB_ASSIST )) J( n0 z; G8 x/ B7 T8 J
nPoint += 60;
; i$ R! S- V+ b5 E* j4 V+ n' N else if( m_nJob == JOB_MAGICIAN )
% {# P: K7 A( X0 _; B/ [8 P nPoint += 90;* C/ ?+ v. c" d* N# I/ P
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' c! e+ n2 O3 e3 ?7 C; j nPoint += 120;
* i6 g% H# S& A3 Z) J' A& g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) ?' M! C3 L$ ~6 q H6 u& J
nPoint += 150;4 g" ^4 z- C1 q5 @
else if( m_nJob == JOB_RINGMASTER )9 t2 G& d$ A! E
nPoint += 160;
# R+ `- d; E- v else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 t' H ]$ Z/ M" E0 H nPoint += 180;
* d% \: V( C6 h else if( m_nJob == JOB_ELEMENTOR )1 Y; `' ^- T# F" V$ n& d( C' s# |
nPoint += 390;9 M5 Y* R) s- u% Q2 d
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 Z5 E' G/ I) W9 Z! Y nPoint += 120;
6 K! [ M3 q# U( h Q4 \7 x5 K, i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% P4 E/ W, K' M+ D2 [7 e2 Y1 C4 W
nPoint += 150;6 [ D8 a2 P ?8 m1 }# c0 q, \% U
else if( nJob == JOB_FLORIST_HERO )
- M! ^ X7 u" x2 _5 m% c, I* z nPoint += 160;# a9 @: e" B3 y6 r/ v0 J) D$ ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& F. { P0 w" `' `
nPoint += 180;2 f( ~1 v4 X. B
else if( nJob == JOB_ELEMENTORLORD_HERO )2 N) l9 Z7 L6 z" o ^
nPoint += 390;
! j9 t# W# Y6 [# c8 s* }9 R; A& \, h7 E5 a
AddSkillPoint( nPoint );$ T8 l- ]4 b; Q6 J
m_nLevel = nLevel;7 _4 a2 W1 \- w! A `
; r" K8 a+ t% v7 Q9 ~ SetJobLevel( nLevel, nJob );: P: B+ i5 Q# N7 l9 ^
m_nDeathLevel = nLevel;, O/ u& [- \0 o+ y0 }! z* F
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; X0 y5 L, J( Y3 R& o if(IsMaster())
, d% S$ A- b8 Y, O {
9 r6 E/ J9 v# K6 e int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
v2 e n% _2 J! S if( nLevel > 59 && nLevel < 72 )1 ^, f# T# X, r0 P$ k" D$ Q
dwTmpSkLevel = 1;
: ~5 |3 V1 ~. }1 ^9 y$ o else if( nLevel > 71 && nLevel < 84 )1 ^4 W6 g8 r3 D+ E: \
dwTmpSkLevel = 2;
" @5 u2 _' m. x; G E6 B3 z else if( nLevel > 83 && nLevel < 96 ): {# e T% s; ]! S9 Q
dwTmpSkLevel = 3;- S, o7 }5 n7 z" I- ?
else if( nLevel > 95 && nLevel < 108 )
- e; l/ q+ Y2 B5 X Y/ L g dwTmpSkLevel = 4;
7 i* }- x; |/ K else if( nLevel > 107 && nLevel < 120 ); b6 q5 S- F: `/ L' m: k' _6 w/ s
dwTmpSkLevel = 5;( q0 H# T- j4 e; @4 Q5 J
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; M& v$ ^2 C9 x5 i$ z: g6 Q' K( K
{
8 ^( u+ G' c6 Y4 Y( t LPSKILL lpSkill = &(m_aJobSkill);
% _. ]( H( O+ D1 ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
: y+ k. z0 B6 C {
$ p% C) l4 N y2 p# C7 B$ t& J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- }+ C. Y) v$ |7 E if( pSkillProp == NULL )
& k2 |* {3 U: w: t" R1 S q0 F& ?5 y continue;) ^: v3 S% \$ C' @( Y( z$ o6 P7 g* X! x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) X! X+ D: V$ @& i5 J \1 l
continue;
+ O' u( r0 H. Z& g% b& N- y. E6 J lpSkill->dwLevel = dwTmpSkLevel;
( c+ ?; @$ j) O' V3 f. G; z) P }
. \0 x$ a! k5 r9 @" { }
V- ^* ~" @) c a R1 y3 P( m }) A7 \4 p9 V3 ?/ q, S( l
else if(IsHero())) ~- p# T# o$ d9 b6 b
{% j- J, X/ T: Q5 W$ t+ K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# }) k3 J- J1 ^9 H { * V9 X2 C3 _$ H2 }/ a
LPSKILL lpSkill = &(m_aJobSkill);% ~! y" m) J0 Y/ m( C0 t5 N% }
if( lpSkill && lpSkill->dwSkill != NULL_ID )" `2 Z. U; f' e
{
" S4 G* L' | x, _" p" _, o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 ~. Z* {- m5 M& f2 T* w! x
if( pSkillProp == NULL )8 a1 b7 B S0 U
continue;
9 H3 \2 c# X! F* [4 S) x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. q, `) [/ }$ ?3 C+ c; p# s5 g% Z continue;' Y" E2 L2 U, G: \
lpSkill->dwLevel = 5;
5 @5 ~9 U" ] T6 j. _2 k }
' |1 L% R o- ]: [4 e }
$ R9 L% p8 T& B5 C& V, K I! u }
, q9 a- n) D, l& n) X# [: i else if(IsLegendHero())6 d6 d& L# s8 @1 X6 p
{
6 |+ d+ Q2 d: i: Z# \6 u' A' @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) & e. o6 o$ e; P0 u' P/ q" H7 {
{ ( A# L" [( L/ M% i
LPSKILL lpSkill = &(m_aJobSkill);
$ c |( j+ ~6 q- |* `$ d1 O if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 D2 @! B( v- S7 |: | Y {4 [! {* P, h: f# T1 m4 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( J5 r$ h4 R7 H; @# v8 h
if( pSkillProp == NULL )
4 `5 c% M! U H& D' t continue;
) Q2 k* d" ~9 T- g' B" i& x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, T# I, ?0 a. p5 |8 S continue;0 ~1 g& U4 Q3 k$ Z% s; {5 y
lpSkill->dwLevel = 5;
6 z) [: g% |" D1 R1 s* C+ b- M }( Y( I# d6 U$ { G! U. O. i) ]
}* M" n2 h% x2 M" y" [1 Y& }
}
- Y8 j- N1 s2 d0 t8 b# a8 ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ g2 j7 C% L5 E8 q7 U5 ? if( bGamma )
. K6 E: o+ S9 u% O+ U {# h5 u, |9 \' P9 o7 x. W+ M
m_nExp1 = 0;) N6 o. j( {3 ?/ r8 M1 Y1 j
}- c+ M6 F& J( O
! l9 U" ~' t3 M; c: f ( (CUser*)this )->AddSetChangeJob( nJob );
4 W2 k: M, \( F" S7 \) \4 ^" k) z G g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! N% ~ W- @7 ?$ C4 M$ p3 ~3 S) V8 j. N3 |
8 Q+ U! D X% L0 t- O) r#if __VER >= 11 // __SYS_PLAYER_DATA4 A" q8 a) ?6 Y9 g! u; m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 J' D: r9 M2 w7 I# i#else // __SYS_PLAYER_DATA
% ^! z( P1 Y U0 j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 A% ]% n( V6 i! V4 }) ^ `6 W: p4 K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; U/ Z( T0 J4 W3 J4 T if( m_idGuild != 0 )
& a/ u, |" A5 p6 `( ~6 D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 g3 Z4 q( \; F6 h* V
#endif // __SYS_PLAYER_DATA3 R$ Z1 B6 R6 K! W% A
SetHitPoint( GetMaxHitPoint() );. t/ P/ G5 ]; |2 L1 a2 n3 ~5 l
SetManaPoint( GetMaxManaPoint() );9 g1 w5 N! d8 S' z* A+ I! J; D
SetFatiguePoint( GetMaxFatiguePoint() );9 x' d" S2 m( n4 Y# b
if( nJob >= 1 && nJob <= 4 )
0 N0 W- ~4 |: \, }1 E {: m8 E- o% w, G* E9 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& l% Y2 U$ m0 H! P, Q m_nRemainGP = 28;
: J/ X! R6 j/ l. \- u( A }
9 |1 ^8 W" m" W& {( }9 ^+ e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ c8 N* j: p& t/ h
{+ q1 a" Q' P. B4 R6 X
m_nRemainGP = 118;+ T% i% Q$ Y/ F$ B
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 x2 @: s! i1 ^3 ^4 v5 G4 j
m_nStr = m_nSta = m_nDex = m_nInt = 15;( x# `1 n- r" C( c7 J
}
: x. Z: W7 h& M if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! e8 a5 w3 k) r4 t0 M {) {. l" P% g; X! X0 U
CItemElem itemelem;+ @! n% \: U7 H8 ?' k8 a: x
itemelem.m_nItemNum = 1;5 G; l. ]0 Q9 k
itemelem.m_bCharged = TRUE;7 V D. B* z, P( H8 ?8 v4 z
BYTE nID;
* E6 v7 D! ~+ e. B/ w; s- k5 S. p- v2 I+ K* l
if( nJob == JOB_MENTALIST_HERO )
8 k6 \* h* f* N itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) G) d( y& A |8 Z( m8 U
if( nJob == JOB_FORCEMASTER_HERO )
# g' g! f8 h2 Y itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% T1 y) Z; @& T/ d' [' A o: \/ f8 q& R5 @3 @6 i y1 a4 _
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ w; a; n9 R) G3 O" j }- E( C" ^* @, I% n0 ]0 R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. r/ C: T1 i6 V! e3 |$ F+ _: B, C ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 y& _; k: ] o7 c% I2 y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) j6 ?- Z4 ]* D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 z L9 U2 \$ {" M2 n1 B) h6 d0 E ( (CUser*)this )->AddTaskBar();*/
- c0 e, v6 D, Y ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 L/ \, @- ?4 g w7 Y$ z' F% H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: o$ \. L3 e% N, @7 ~8 ]
((CUser*)this)->CheckHonorStat();
v9 ?0 z8 [ v( p/ K) ]+ @ ((CUser*)this)->AddHonorListAck();
" ~" }( ]' @2 ?' H* l1 [ g_UserMng.AddHonorTitleChange( this, m_nHonor);. v6 a" g8 w6 O) L. L8 |$ T% E
#endif // __HONORABLE_TITLE // ′Tà?( w5 S: w. f; R% b3 ]
}
2 |& n7 o- |- ^+ O3 `2 J#endif // __WORLDSERVER
; z0 \0 ?& w" A4 S7 l3 }, Q2 I} * A7 m! n% I' c' P
5 E4 R% x- Q) {/ H* S+ s- T然后你进入functextcmd.cpp并添加以下; W2 e# i2 E3 f. b8 u
7 h4 j2 `& O: G0 D代码:
3 h' `; d. s& h4 u9 { W# \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 x& X# R- `" \1 n, z8 t" R) U, b A下面插入1 {7 g' G& ?5 E5 Q; L( Z% O
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # ]% m* @/ Y/ \# g
7 B$ r6 Q' ^: n" q& d7 ?
然后你去
1 B a0 e- D9 u7 L7 X5 \/ Z+ Y. T
& t9 M$ f0 A9 r$ ]/ W# \& r代码:' W- D$ t! Z& K0 h$ C
代码
1 p& x$ I" {% t6 q; e. NBOOL TextCmd_ClearPropose( CScanner & s ); _: c4 |/ @1 f5 F& `, O
{
, k( ?& f" N* r* V# _8 ?#ifdef __WORLDSERVER1 U2 o; T. S1 C9 k1 S5 P
CUser* pUser = (CUser*)s.dwValue;7 _& C7 f1 g* Q" t$ s. N
g_dpDBClient.SendClearPropose();/ K3 I4 |9 k2 A& S3 m) y9 {3 ]
#endif // __WORLDSERVER
& r/ s/ a* Y# h: J return TRUE;4 x5 |; k$ O6 n
}
( p$ N+ @0 K# i1 ?9 |/ i下面插入
* O, Z @# Y1 p" l: }9 u% B i1 CBOOL TextCmd_rebirth( CScanner& scanner )
. S: h# ]7 k. ?1 \4 m9 m) l; N{+ u w/ d7 }& C: ]. A' B: @
#ifdef __WORLDSERVER
; D/ N" p j; H8 G7 |' a0 H2 U7 RCUser *pUser;$ l( r4 o4 F) q2 b3 m+ @
pUser = (CUser*)scanner.dwValue;5 S8 Y+ R9 G/ S" g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# t# O& K! m5 v9 b9 r# B; o8 K$ EpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. r$ b1 o. y, e* k7 Felse
# D' d( o( C: C& M6 e+ R" [pUser->AddText("你还未达到重生条件!");
$ y2 K( P! i* J" g2 h% x& ]#endif
; D6 h! x* u0 }0 \return TRUE;( n$ d: t4 u7 H6 f b
}
0 [1 m& X, \2 w( z7 l
G4 X1 O& i! _: `' h: o, J4 B1 G
2 v7 r/ R u9 C* B; r% O# c. g- H/ ~; K4 C, T2 f2 }
|
|