|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; Y/ x0 H7 {+ v2 z3 r7 _) a
. c! ]! }- L% X: gMover.h& d) u+ Y! J( w t$ h, p2 _) g- ^
代码:
! V# ?4 e9 n# j: e找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 y7 M7 W& ?5 b
, d" D- R+ Z, `8 Y Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 B" Z: F1 B" A P
1 r/ d4 N7 s3 v然后你去mover.cpp添加
' u$ b8 q( ^5 N+ D* m+ G6 U: w8 A+ P b7 J! t
代码:& n; C5 W, A0 A) q0 G& O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 {" z1 V: W$ p6 K& T* t( _{, M' ^, p$ _* h' v' M2 r
#ifdef __WORLDSERVER
; L" q M- a/ @$ e- ` // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ B& P9 M8 f3 X6 q& D- j MoverProp* pProp = GetProp();
' q \2 Q& Q0 Q5 f/ p if( pProp )3 ]9 `) [. }* Q+ V- D m
{
' W6 A S7 z7 \! g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 k2 J1 N; N3 C4 L {
0 S0 f: @8 N0 i3 h5 A" E" k AddChangeJob( nJob );' u' Z) l7 J# u7 j, B# ]" A: b1 Y
}else{ \9 \5 l- l( z0 s" N
return;
% k3 \ a( D+ p# U }6 i( i1 h" f m9 A! u
int nPoint = 0;7 L0 g! y* g( \( o% E. [) ?
if( m_nJob == JOB_MERCENARY )
( t- z% p' n3 K0 U4 X( p6 Z# O nPoint += 40;
( A1 v5 y5 c* N# G else if( m_nJob == JOB_ACROBAT )9 [9 d" W* _3 m( S( q
nPoint += 50;
% r# o: g; O7 @: K1 a5 a else if( m_nJob == JOB_ASSIST )- l0 d" ]6 H; r
nPoint += 60;0 f: q# g* ^5 G+ s+ j
else if( m_nJob == JOB_MAGICIAN )6 a4 q& x* y2 }
nPoint += 90;
" E0 x8 Y8 k1 ~' @! d- g8 r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( `% e) m: h0 u0 m$ D nPoint += 120;
% z @& Q# E& a$ e; }0 j! W4 ?9 P else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. [' M" U+ K. J# _& @8 [0 c nPoint += 150;
1 M p( x+ q* M5 f1 }) L else if( m_nJob == JOB_RINGMASTER )/ {- e& n! h8 y8 [6 _# A N1 ~
nPoint += 160;" V8 \/ n2 K1 E# d4 F- C
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ v( i* t6 i) k0 V# P: E+ `
nPoint += 180;, z! ^1 B; i6 o! @
else if( m_nJob == JOB_ELEMENTOR )) k6 ? A( V" W$ l
nPoint += 390;
& j f5 B6 g. L( F9 `. r2 D) j else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% r% ~0 Y/ L5 B- |+ T3 E1 m5 i
nPoint += 120;: Y! \4 j V+ [( V; P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 q1 M$ E9 q0 f
nPoint += 150;
2 T5 r5 J( c/ H' D' I6 k else if( nJob == JOB_FLORIST_HERO )
# H* ^! H2 C( N- U nPoint += 160;/ [# D1 `! e" m) Q' C: V
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); K" V# V6 Q0 [' T- ]
nPoint += 180;' L% q" k* H5 V7 Z" O* _
else if( nJob == JOB_ELEMENTORLORD_HERO )
, i' ^( K* B* ^6 ? nPoint += 390;
' \7 Z2 G+ ^! n$ q( u$ m; X8 ~' m7 k8 r
AddSkillPoint( nPoint );2 f1 V. K n; o. G0 V
m_nLevel = nLevel;
! R' B. f" \* }/ [) h: f
5 ?/ G" E9 `2 q! q SetJobLevel( nLevel, nJob );0 |& _% S! K. `& a! M, F- C- D
m_nDeathLevel = nLevel;+ F1 g V* d$ s9 W
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ t9 M2 D. e! ]8 e* w8 Z3 ~ if(IsMaster())# g$ ~1 {, J: D) f: j4 }
{( j! X- _9 r a6 P* J' s% q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" y% m8 L1 c+ K9 Q. t
if( nLevel > 59 && nLevel < 72 )
. ?" C# }& S0 m3 }# t dwTmpSkLevel = 1;. X D1 J6 R/ J0 n; y( ^: s
else if( nLevel > 71 && nLevel < 84 )8 E i4 o* T/ j [5 r3 |/ \; z& x
dwTmpSkLevel = 2;
0 ]) J* f7 R1 e( l9 D4 j' v else if( nLevel > 83 && nLevel < 96 )
A2 u, q/ p p; A& M dwTmpSkLevel = 3;+ L: I0 h# }6 n, b* z
else if( nLevel > 95 && nLevel < 108 )0 ^" P$ j1 w7 D
dwTmpSkLevel = 4;
2 }1 E- v" p: K+ G/ b else if( nLevel > 107 && nLevel < 120 )2 ^, ~4 M7 P3 f$ i5 n- s
dwTmpSkLevel = 5;
" f6 R% M: ], \( W! q% W for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ L9 q3 s2 Z d' _! Z {
: o: M) g3 k ~( E LPSKILL lpSkill = &(m_aJobSkill);6 k6 s* X3 O7 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! x$ r3 j) F8 t+ W! F) e! s' c {
: x) C9 {4 S! q' ]/ C- Q+ w+ z- {1 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 T6 i4 P8 k- _8 C
if( pSkillProp == NULL )' B% f% L0 |) O" w
continue;
9 K7 j8 q: \& B, d) G( D) o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, i, l8 x9 W: K- g3 K continue;# s* c4 I) s! B' A0 n. \3 n
lpSkill->dwLevel = dwTmpSkLevel;
0 W8 V. H) I; N+ Y! G }
0 L5 }8 O7 ~5 Z1 x }
# e% m* n* q4 Y6 h; \# N, ^3 ~- Y; e }
. `; d# \& a! X/ P+ d% Q/ n else if(IsHero())- K/ M) r8 U: p
{1 |$ \( n& Q" _# Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) n! F$ t' G$ k! g5 t4 D- c' i2 [
{ 3 s1 |0 `. Z* r
LPSKILL lpSkill = &(m_aJobSkill);6 ]2 o$ Q& B: f# \; R+ m% K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& B8 K/ _9 g- k) f5 n+ ~( @ {/ |$ m: w4 j& y. p, h* v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ I( w& l/ G9 e. Z* E3 e
if( pSkillProp == NULL )
3 d' s2 J( P1 h# o' ^. E: F continue;
9 p L6 o! e! Q$ S, a% C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" \. H: p% u2 x$ H: b
continue;! h- l; i' D- \5 P9 e
lpSkill->dwLevel = 5;1 l% v) h) ^- ?
}% h' r: C- C5 H) `* C5 M
}8 V# N/ z; P% Q1 z; s
}4 d9 B2 b, D5 t) K- v' G6 i
else if(IsLegendHero())
5 A& |" d; O5 A+ j: h5 W. f {
& h+ Y! b( a7 n for( int i = 0; i < MAX_SKILL_JOB; i++ ) + i0 I9 H( v+ a4 ]" h2 {
{
8 |3 E; z/ r6 r3 a4 P$ P# | LPSKILL lpSkill = &(m_aJobSkill);" x0 Y; {9 ?1 ^7 c6 W* m5 N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% E) l) _; j9 S/ Y8 z6 y3 ~ {: s$ R' j, W' S- p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . B D% G% C; e" T P
if( pSkillProp == NULL )
, I: @. v* t9 K# H continue;
8 g. r: ~. [% J" B# Z, r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) W! T1 @# L& P* F5 d3 a. d continue;
+ L) U0 Q6 u1 {6 V( G! B lpSkill->dwLevel = 5;% s* w5 k! E4 P2 U+ C- T/ s
}" V0 U( a8 E. W' | D
}4 h2 A7 N3 I& {- t, m& D' F
}
! N v$ Y* Q" u5 j' j8 e#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 @* u& Z# P3 `5 l, l" |
if( bGamma )
/ x) b) O" F; G0 F {5 |/ L0 U, {' A! Q: p- i. R& B
m_nExp1 = 0;4 @ q& P1 U5 d5 a; ?: _9 S- Z
}: H3 G1 }: D3 _' f
' l/ @% U6 U* h; k8 e! z ( (CUser*)this )->AddSetChangeJob( nJob );' j+ ~% \4 h/ _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* z: f- ^* k) _! g G5 F5 @' q$ I- i+ ]) `% _1 i
) j6 B1 O" N! B0 u
#if __VER >= 11 // __SYS_PLAYER_DATA1 t6 e$ ~& I0 S/ _" m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" C0 b% \9 }& i2 N6 S#else // __SYS_PLAYER_DATA
0 r% \3 r' J0 B6 p0 a M$ t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% E$ F) q. F: t" R# a g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ G' J1 f7 g& I2 u9 n2 m9 ?# |- @ if( m_idGuild != 0 )/ ^& i+ a9 X3 S: g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. D7 w$ J6 S: ~' V& @4 q! o* K
#endif // __SYS_PLAYER_DATA; k7 J1 o' j$ Z' y" l$ p9 f
SetHitPoint( GetMaxHitPoint() );7 b# E! A- r G" K- ^; e
SetManaPoint( GetMaxManaPoint() );
; D, w$ X+ [+ l) J" l* o SetFatiguePoint( GetMaxFatiguePoint() );
7 |7 q9 T" ? w8 Q: F3 }6 y( Y if( nJob >= 1 && nJob <= 4 )9 M% O/ D9 m. _) B4 C. o, d3 ~6 i
{
6 V, l7 b3 O; g# Y. b e m_nStr = m_nSta = m_nDex = m_nInt = 15;- |% e( }: T" Q; H" q. A, c
m_nRemainGP = 28;
6 O7 w: a7 H( d# z9 Z( L, x8 j }( u* O; r9 o( k9 f/ O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 Z1 O4 v7 ~( g O( |" ]! v) f {9 i3 v3 W/ ^- g3 f7 o
m_nRemainGP = 118;4 z# J7 ^; ~& H% @9 J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 D6 c+ v; h; t2 P/ ]; ~! L/ N m_nStr = m_nSta = m_nDex = m_nInt = 15;4 `1 k* l' L- m' N
}
1 w0 O9 J7 Z9 y! ], S if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 Z/ r" Q# f7 H2 `9 s) }1 @1 _ {8 t2 Y$ U) M4 f' k! L- [
CItemElem itemelem;
6 ~% o% y3 V5 H( ]( c itemelem.m_nItemNum = 1;. A5 C& w3 @) E9 }7 k
itemelem.m_bCharged = TRUE;# K/ A- Q2 R' P% I5 k$ ]
BYTE nID;/ h1 p2 x' O' @
$ _3 S2 ?- j( p! F9 ~: a
if( nJob == JOB_MENTALIST_HERO ) A# M' J! D% d/ l) ?' W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# f3 l+ Q+ }: m& N
if( nJob == JOB_FORCEMASTER_HERO )% s& i1 L! |9 I' g: {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 e. Q N3 Z6 W! x/ y$ l* k& y2 b" g2 q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
. g# @+ z: {* Y9 u# x }6 \# D; o6 h p5 |3 Z& T. V
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; }5 q3 X! K4 X4 R ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( Z, i- v0 S7 L% t5 r3 S) V% [
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% T" Q, v& x# g# Q3 J /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );6 |( s8 s" L2 S' {
( (CUser*)this )->AddTaskBar();*/
1 N7 x7 p/ _$ F( _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( G4 S& v5 U+ \. g7 S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' E8 j0 y0 d! V) m$ I, u V. S ((CUser*)this)->CheckHonorStat();
& F' K' V- Q* Z4 J: B% v ((CUser*)this)->AddHonorListAck();% h6 c+ W8 N8 U
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! A }% j0 Z/ [' s/ \4 g#endif // __HONORABLE_TITLE // ′Tà?$ I8 g2 D* o4 L1 {+ e3 G9 g( ?
}4 y0 I5 }- ^& M* |* I
#endif // __WORLDSERVER
0 ?8 W9 n& j" j5 q}
/ V; J8 l+ r3 h& ?, z
2 }6 E, _1 ~. [: t% {1 r然后你进入functextcmd.cpp并添加以下
" C$ b6 K3 H# D0 u# q, T E& F3 H$ h* Q& }+ O$ M
代码:& E! ~0 g5 q' X4 ?+ G Q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 _. @5 I, R, F下面插入7 w# o6 @# S& V7 O) E
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " N5 W) m! ~2 l# s9 E4 I) ?5 ^
- y# {7 {/ P# ~; ^9 Q然后你去
4 ~! }; t/ y7 x ]9 `! h1 @; h6 }$ G2 ]1 i
代码:. d2 R3 x0 d$ B$ a
代码
1 E3 b0 B1 Q, W3 PBOOL TextCmd_ClearPropose( CScanner & s )# G& ~% N; V& O
{
% `0 A, x3 E( h. S8 i#ifdef __WORLDSERVER
) T2 \7 x2 S4 c6 C G" a9 i CUser* pUser = (CUser*)s.dwValue;
@# R1 E1 v" V0 x: ]% z( l2 F; \ g_dpDBClient.SendClearPropose();
; ?/ b; r( z _9 J& v#endif // __WORLDSERVER
8 Y* R: P. y! x return TRUE;: m9 Q7 J8 V8 y X* a6 F$ }+ I( n
}
+ L" ~$ B7 B/ u% F# {2 ^7 e3 I下面插入, u! G0 v% z ~; x$ M
BOOL TextCmd_rebirth( CScanner& scanner )" d2 O, {3 ?, j$ R3 m0 P
{9 a3 {( h9 |, z* C
#ifdef __WORLDSERVER
, i* Q0 o; O1 c$ _0 ECUser *pUser;- d" S# M) s: G
pUser = (CUser*)scanner.dwValue;7 z; m. m) b; P+ F% y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( v9 _1 Q2 B6 B: r+ _* ?5 f
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 x0 M6 X. X9 `
else
+ K+ B; \. u, [% e6 x/ c5 SpUser->AddText("你还未达到重生条件!");
4 f( X' U. I$ R: O#endif) k% Y+ z4 {5 N
return TRUE;
2 J5 p. I( _/ [}
6 S. P) o# m2 E) l1 ?" N( O: x- M9 n+ O' j2 U0 x Z7 y( F
2 {/ P9 W( J! O# X& q, k% y
& g+ k! H$ D+ b( R% q/ K
8 N. q; N9 L! |' L9 p8 G& A |
|