|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 s6 [# Z' Y0 X& X/ @
" m5 y: d: [9 QMover.h2 k- j; t4 u, D6 v/ U
代码:* @* }4 j" M( d
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 o6 N5 I- s* J3 r3 l# Z
1 \' `' S w6 C* l下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: C/ v8 l2 c- Q* j' z2 U/ K% r+ H/ ?3 K3 c
然后你去mover.cpp添加' V9 X ]/ | V- D) f6 v, ^
" ]6 W5 }- t4 g) I+ \代码:6 Q+ R% ?. |5 ^6 Z. N8 i
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ V& @$ y. ]. v7 X+ f
{
5 }) t% `0 g9 x- H1 {! j#ifdef __WORLDSERVER
; F% L8 u- \6 s. }# C // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! C; N) O# x3 L8 J: `# L; m' |7 f7 }
MoverProp* pProp = GetProp();
) L, f% W+ F1 F4 O if( pProp )
8 l% b6 a& J2 q) [2 m {
# s0 N/ N2 c) }' A9 a if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 r# S5 u. z* U2 b# |! L {
3 z* B" c B4 n( V6 R: F AddChangeJob( nJob );
- T K" c4 y/ A0 J9 r3 q! n c6 i: U }else{
) P1 f) E8 v- i/ \& a( a/ | return;
- Q0 E/ Z' b5 y& R4 z/ M! H }
" @6 a9 g3 T+ u3 [6 G/ O2 R int nPoint = 0;/ O2 i! [- o6 x; d' _, p: R
if( m_nJob == JOB_MERCENARY )
( a, V2 B n/ O! r nPoint += 40;) r/ i0 |/ E% d2 g& q# Q$ {
else if( m_nJob == JOB_ACROBAT )% w" N- H6 _; c; j
nPoint += 50;
9 ]# ]! g4 k6 j& U2 M8 O$ ] else if( m_nJob == JOB_ASSIST )
! Z2 F2 h6 r# z0 q/ [ nPoint += 60;
7 s' c3 O8 @- G3 _7 P# X else if( m_nJob == JOB_MAGICIAN )
2 L, b* t/ l6 p1 g, z: X3 W nPoint += 90;! _3 B$ x" H2 ^$ g4 h& y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! o7 O5 y/ ]5 ] z4 s# ]4 r) f
nPoint += 120;" m- i) [6 E5 q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 K0 j9 P- P8 d; R& @' i& g( ~: N nPoint += 150;
1 b/ M& _1 {5 m else if( m_nJob == JOB_RINGMASTER )6 L7 M( t% @3 I* O' D, p( L# A
nPoint += 160;" s1 h/ d9 p% A5 e7 ^2 y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# n c7 f* B5 Z nPoint += 180;- L) f) ` }* y) E- Q$ J, I0 V5 O6 T
else if( m_nJob == JOB_ELEMENTOR )8 [' W0 K8 C9 s! R9 _
nPoint += 390;0 m4 |" T! ^4 u) P! u' N7 h9 T
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 `: W( P2 D" o2 B! |, R
nPoint += 120;- V, P+ _6 g& @, a" B3 d" i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( N& A& h0 ]1 ^8 f4 {! k* `
nPoint += 150;
; v* Q+ Y, S; _9 H else if( nJob == JOB_FLORIST_HERO ); K7 }4 _; |7 o) d
nPoint += 160;
2 N; U& r* _; Q- X5 [ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). i* A$ m* G8 I& Q; `6 n8 _
nPoint += 180;
* |0 e! Q. [, s9 I$ h else if( nJob == JOB_ELEMENTORLORD_HERO )
, Z; r# z3 d) V nPoint += 390;
F" F3 y5 u6 w8 ^5 l4 I& i
7 n* Z6 ~' B2 g+ @9 T AddSkillPoint( nPoint );
* j5 C4 B3 A2 ?! l x m_nLevel = nLevel;" b$ V; Z7 L i" X; n8 U# w B5 I
0 W& U, ?" b4 F" ?
SetJobLevel( nLevel, nJob );
6 q6 l: r r) {. a8 n: @; { m_nDeathLevel = nLevel;: R' w7 _( A0 D% }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, d* [, T. i% I; z, c
if(IsMaster())$ r; H' `" K& \( e
{
0 w) Y0 h6 G' B" J int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ E: e9 m" m, M- D p+ g if( nLevel > 59 && nLevel < 72 ), a1 j& N7 Q" l
dwTmpSkLevel = 1;! S5 ? m; `# U" P0 ~# ]& c
else if( nLevel > 71 && nLevel < 84 )
9 c* b! K0 r: l# R6 a2 \ dwTmpSkLevel = 2;
! z$ S2 ~6 y1 a! [ else if( nLevel > 83 && nLevel < 96 )# F! ]9 X7 Y: g4 g
dwTmpSkLevel = 3;# I1 [$ \% o" Z
else if( nLevel > 95 && nLevel < 108 )4 b, K; J4 _, ]! V0 n
dwTmpSkLevel = 4;- w# m1 @) u& w
else if( nLevel > 107 && nLevel < 120 )
9 o8 I2 I. b7 [% Q2 w4 `# V dwTmpSkLevel = 5;; ]# K* A9 c l4 D- R8 k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; w# \% S7 q& O" Q
{ ' v# S& J( G5 |; a
LPSKILL lpSkill = &(m_aJobSkill);
9 O& W; b3 { W if( lpSkill && lpSkill->dwSkill != NULL_ID )
( w8 I. u4 T5 |0 O' R* [9 ] {
3 |8 `+ F, _ p0 |3 C8 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 m# z6 g9 N7 ]
if( pSkillProp == NULL )1 q1 G7 [1 I( e3 W* b
continue;
. V/ Y: g4 W1 w/ ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) K- s A) ]5 Y2 N$ M
continue;
1 o5 b( v; Z2 {9 S/ o lpSkill->dwLevel = dwTmpSkLevel;
3 i. J8 M! ?; ~' |3 R0 ~ }4 ?. C8 y# c( T. R( s
}
0 P E' Y- X/ @7 _- t }9 @4 k1 ~, r$ G5 [( ^3 }
else if(IsHero()) ~6 B0 H$ e$ M K& e" e! J9 a
{: K ]0 E+ e1 w Z: B/ u8 h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( ?5 l6 x- I# q# x) o { . Y* \/ I, \/ H( f: P: c } q
LPSKILL lpSkill = &(m_aJobSkill);* E% J [& X" W& K$ P
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 W$ ?6 H% C+ h1 y8 X% k! r, h
{0 Y+ l N" D, B% M9 W$ _+ R, d$ Z+ X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - G* e2 \5 b% J6 Y$ z8 c
if( pSkillProp == NULL )
3 ]* K1 ^9 i" | continue;+ O6 k2 U2 \& l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( x3 V0 d& b' m1 g" m# [ W. N continue;, A8 g: p: C3 n1 k; I H# C2 B
lpSkill->dwLevel = 5;0 |% q! o& T$ A D" A4 W
}7 H6 g+ K! u" Z. T4 U; E8 _, S: @
}0 p7 x' P! k7 ?" P& ~
}
/ j/ M% I5 u+ {+ g" z/ c else if(IsLegendHero())1 g; c& M, ]$ S0 K7 ~
{3 g4 V# _6 F. ]$ x. ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 R# X# N2 a+ x: ?$ r" z+ z$ P
{ / z6 K D. A: T3 _4 k9 Q; ]4 z9 ?
LPSKILL lpSkill = &(m_aJobSkill);
. D* E, h! ~9 i9 A" ^; U6 L if( lpSkill && lpSkill->dwSkill != NULL_ID )9 X9 @9 d! A4 Z: `3 O1 L$ c
{
6 g' c' ]2 f* p9 q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! J0 u* c9 ^2 D6 s6 n. c
if( pSkillProp == NULL )- B' i0 ^- A" k6 T. @
continue;" }* x5 w# b' d4 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. j9 I. o$ T4 x% K continue;
5 U+ G1 ~3 F- R lpSkill->dwLevel = 5;
8 ]+ Q- Q, `5 B( `1 { }& i! C* g B2 b! h1 ?! h
}4 p* g" n* v. D! W- b
}
# J' O$ u* B: V. ^( z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, ~% C# @8 Y6 u1 X) _' ~ if( bGamma ). J+ ]1 X% L+ L" G3 }
{
M5 P* M$ n+ _% _# i: ~) L4 ~ p m_nExp1 = 0;* R2 i3 a1 n' _0 y$ l! o
}# D0 h2 J8 `8 P( a* o1 D' p
- M( g. l7 e1 `+ A" G6 x1 q ( (CUser*)this )->AddSetChangeJob( nJob );
V: I$ t' p, S, ] g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 {! b) [5 r8 |8 |; ?$ G6 d) i
* T/ p2 w5 J. J. ~3 V- y) c- J& b/ F
#if __VER >= 11 // __SYS_PLAYER_DATA
3 l$ Z( I: I5 h7 r: R+ v2 E g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, L+ @4 G& x7 m$ V# G#else // __SYS_PLAYER_DATA1 s$ a, Z/ |& u) X' T' d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( A4 u% @5 v' U( x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 \; |+ v3 N5 W4 D* c1 y2 r
if( m_idGuild != 0 )
4 y* i, ~2 T1 h5 ~+ I2 P+ T g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: E1 Y. h3 }/ q3 Z+ n4 X$ R! X#endif // __SYS_PLAYER_DATA
2 `8 e, F7 @+ E3 K, f SetHitPoint( GetMaxHitPoint() );
5 Z7 V b0 y3 B6 {6 ` SetManaPoint( GetMaxManaPoint() );/ o' s r2 N, z9 Q; f* j" I5 z0 C. x- B: s
SetFatiguePoint( GetMaxFatiguePoint() );
# e" C m7 y$ k; Y+ r; d5 a: h if( nJob >= 1 && nJob <= 4 ); o$ ?9 Q% \5 t* z0 S p
{* J+ g0 Z! c4 f W$ \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, N! U8 b! D d m_nRemainGP = 28;8 M U0 C. \' i" ^4 G& I
}
8 Q# f) w6 ^% U/ r0 L. e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* L2 ?" S4 Y1 C+ I- N9 | {. a* t9 A; f( G
m_nRemainGP = 118;
4 o9 R* q/ W3 V0 c$ R //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- _( u. C& H: w/ s* k
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ z) |3 t. }0 |! p. g. v
}
" ~9 p) |) N- }+ a: S if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% D) Q! C2 @3 q9 q6 u# Z {
0 z7 l6 `) L$ E. K4 H CItemElem itemelem;4 C1 K0 F( c! J# v6 j
itemelem.m_nItemNum = 1;
9 d. R$ g% v* m/ i6 H itemelem.m_bCharged = TRUE;
4 j4 A6 Z+ ^" d+ [$ G: x$ U BYTE nID;
7 O7 f9 ~( k3 B; m! X) D2 O: _2 \5 \! { \' J
if( nJob == JOB_MENTALIST_HERO )2 z V6 y, P, k2 Y, T" Z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' F1 z/ ?& Q% o8 I) {3 P, }3 {
if( nJob == JOB_FORCEMASTER_HERO )2 I) ^5 d5 H, }$ A
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# C, ^2 Z7 h' q" B6 U
( s4 G# M" F9 ^& y4 w! s6 k ( ( CUser*)this)->CreateItem( &itemelem, &nID );3 u: a% M- z! t1 H5 w$ L
}
. F( Z9 v r) c4 i! p g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ P7 ]1 ^6 `6 d% T8 J7 c& D/ X' d' l
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& @3 {$ ^" q; E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ i6 i; r7 u6 U/ {' x' m
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 J& S. a: `9 T$ Y ( (CUser*)this )->AddTaskBar();*/7 Q5 E5 I8 ?+ C9 Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, L/ F9 n |5 g' X' V. V#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- F8 @: d( _5 {; p+ z
((CUser*)this)->CheckHonorStat();
8 {1 g( F& g* y# D) o ((CUser*)this)->AddHonorListAck();
7 o: u) k. W* i/ O! d, I) V# | g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 e6 g% Z6 ?0 G: }#endif // __HONORABLE_TITLE // ′Tà?' W. f2 b r% c8 @( }
}
4 |9 u5 @2 [' ^2 F2 [' t#endif // __WORLDSERVER/ T: o* n, G3 ~- O& D# }
}
\8 T7 z# V- ^0 S L( w
- ~+ g6 S& B3 a7 |( ~然后你进入functextcmd.cpp并添加以下1 t% s; H1 g& Z7 C- Y3 N7 H
4 j; t& Y& m l1 x2 L- d代码:
( A! f$ U7 \& D8 nON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) l5 K( w4 }1 K
下面插入" S; j6 ~+ Z: o( ^1 d+ L6 S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , D- g" ]6 C/ O! m1 }+ f
6 b- u4 f0 S) O% D z: ~) _
然后你去
6 S2 ~3 W" w+ k7 c: |9 R$ g! h1 R( n& [6 C" r
代码:: B% G! s7 t! r# H. o. t
代码8 l# P4 W. p* \8 [9 I
BOOL TextCmd_ClearPropose( CScanner & s )
3 b# u. `* y5 g{( J! U r9 J! P* N
#ifdef __WORLDSERVER
& p9 F: P; t1 _- {% A: u$ ] CUser* pUser = (CUser*)s.dwValue;+ e3 E( N7 M6 B& r% l' I3 B. V; X
g_dpDBClient.SendClearPropose();/ K/ T2 V1 \% h0 L- y
#endif // __WORLDSERVER
+ ]9 t/ D% B$ v2 Z# ^1 R return TRUE;: T+ T9 `2 A( E1 o1 q/ d8 x3 r. ~
}
9 e+ f. t, [) I4 f4 D# x下面插入
' f# `, }+ W: i. `BOOL TextCmd_rebirth( CScanner& scanner )
- o4 p; o! ]3 X7 s{
% B% T# h5 X7 G) t- v/ d#ifdef __WORLDSERVER
& I4 a1 n0 F$ ?% T# _) ]CUser *pUser;* N8 Y* U! o4 p& g
pUser = (CUser*)scanner.dwValue;
7 V- E" w$ O$ G2 ~7 f, y5 L$ eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); \. `' H* K7 C7 @
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( l O# E4 {- n. B) D) M2 t) ]
else
* ^7 u5 Z. I6 s& FpUser->AddText("你还未达到重生条件!");/ G6 F/ ^5 R( {" c
#endif B, i! V$ E1 K% g% c, m% t
return TRUE;
1 @$ Z0 z1 N" N& B9 w} 7 W/ ~0 ^3 r! o3 @) Y: z6 }3 Y5 t7 a5 r
* W; t3 M. w$ Y* R
; W+ l9 [) [: k3 [ T
+ `( i; A3 R& N) L8 q$ j
% j% P+ b& S0 h& s8 C& `# x
|
|