|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ b# ^0 q3 I1 C- V4 W2 v3 D
0 c+ d: l, L4 U# I @8 |
Mover.h
' u8 F! Y# F8 ~& _% @& J代码:
4 W1 y: y. q: z z# X: _找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; ?- z2 p( u2 e( z
4 G3 d# |: @6 p( v- i& Z9 c3 {下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' Z2 _0 q6 e/ A+ S/ }" u
9 M% [0 L8 B; M' j
然后你去mover.cpp添加
# M/ m( f7 A) E7 Z% R5 r0 [: X9 m0 |
代码:+ V" V! j& f) y# @8 z& T* S# `3 l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ ?6 O/ X- @$ Q% r! A{
, Q8 D8 W( ]' Q9 q9 n% c#ifdef __WORLDSERVER0 r7 w, ^ `; e: I- i$ W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- k7 ^# `5 `: X MoverProp* pProp = GetProp();( O5 X$ Z5 Q& p$ g
if( pProp )2 ]/ n1 B4 D A7 ?, K# v9 c
{
: ~ p# k G7 ^! A. J. _9 |" P if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 ]) p0 z% k4 ^2 c- w
{
; f, b6 V6 {5 U" |) b) `" g* i% p7 s AddChangeJob( nJob );
: I/ m* I' v. W }else{
. f! q% j' e8 Y# { return;
* }$ |) T1 m) ^' i$ J+ n }
* M) `5 A4 }& o' f' N2 C! [' A int nPoint = 0;
5 ?: b1 P2 X3 P if( m_nJob == JOB_MERCENARY )
$ F3 _/ Y% [ ^* A nPoint += 40;8 C: `# @% V0 C; Y
else if( m_nJob == JOB_ACROBAT )
( l1 I; K: k* v L! p& H1 R7 o X" I nPoint += 50;
7 m# C% u, G$ M else if( m_nJob == JOB_ASSIST ); }) W1 E" D$ B" c/ d
nPoint += 60;. ~ f3 q6 v2 m) [. l# [ c% n
else if( m_nJob == JOB_MAGICIAN )+ r+ \& y5 d# i' Q M
nPoint += 90;
1 T$ E( b$ [/ }8 L else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ V. ` X' H2 D3 c2 t( N nPoint += 120;
7 B P7 ]3 A4 C4 t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 d% ]- E1 E$ F( ?4 V
nPoint += 150;) E: ^8 K+ \( k4 a% B$ Q
else if( m_nJob == JOB_RINGMASTER )2 _' g% g2 f/ _1 h) Z- @
nPoint += 160;8 Z' h. T7 i8 \2 Y. \
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): M9 a0 N" j) \8 m
nPoint += 180;
1 a) h6 i5 W9 }6 m0 t; Y else if( m_nJob == JOB_ELEMENTOR )
3 p9 P- F, Z" G! j: C. [5 c( O. X nPoint += 390;; L9 {# K# o* X; T3 x
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 E- |" a7 ~8 X nPoint += 120;
& }" i. f0 j4 L" ~3 ]/ |! o else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). ], E6 x1 y7 t/ \2 O1 D- ?
nPoint += 150;
4 n0 L9 c6 Y7 o! }6 g: t else if( nJob == JOB_FLORIST_HERO )
# t9 g) g) S B b9 R9 x0 c! g. |: i! s nPoint += 160;
0 P$ n4 f! z* X- C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ e, S8 v7 _- n% N/ \! r! ~) c
nPoint += 180;
; A0 M/ u# ]8 M3 i else if( nJob == JOB_ELEMENTORLORD_HERO )# l0 ^- L' y5 N0 [: Q0 j3 M
nPoint += 390;9 V7 I0 x8 J, }# ?/ v
' n3 T g7 U; O- W& {
AddSkillPoint( nPoint );
3 T: C+ ^7 W: B7 r+ O) f m_nLevel = nLevel;2 l7 M# `7 t- M8 E f
* a) ^3 K. |! Q2 B2 h* D7 {0 J
SetJobLevel( nLevel, nJob );. `) b; V/ O9 a9 k2 m
m_nDeathLevel = nLevel;
0 v' C" d" u; v3 [#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 B5 e7 l0 p- J
if(IsMaster())2 J5 ~# l) P$ a0 _2 n: D6 s
{/ l5 B% t* \) Y4 i9 [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 H- f4 X- v" f0 ? if( nLevel > 59 && nLevel < 72 )- N$ F- d/ |6 ` |3 Y9 p4 T: I( _% r
dwTmpSkLevel = 1;: Y& N8 o! p" r: J1 n( `
else if( nLevel > 71 && nLevel < 84 ); F: H% l+ |9 U3 |, a! M7 u- k
dwTmpSkLevel = 2;
6 R9 [7 C7 Q% h# l4 t/ U, r else if( nLevel > 83 && nLevel < 96 )' n5 _% r$ z8 C$ o3 l' U
dwTmpSkLevel = 3;/ j3 r& K6 {! {( M$ u+ }0 @9 g
else if( nLevel > 95 && nLevel < 108 )8 x7 k% z$ d* z
dwTmpSkLevel = 4;
0 w$ k8 h1 \# | h! j, [& l else if( nLevel > 107 && nLevel < 120 ) p) N+ p# L2 C, ?/ y: g1 Y3 \8 X
dwTmpSkLevel = 5;
' s' X! E$ }/ K: c; G% f for( int i = 0; i < MAX_SKILL_JOB; i++ )
- B/ j, w. W1 m9 b) f& H {
' b2 u7 ~# D0 e LPSKILL lpSkill = &(m_aJobSkill);
& X8 O5 _9 G! z& c) Z5 a# [% A if( lpSkill && lpSkill->dwSkill != NULL_ID )
" m: O q! D& i" u. u {
( S, l! T8 \5 K# `( K# [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , v# T U4 R5 j) l
if( pSkillProp == NULL )
" D$ v8 e9 k* ? V4 F. F, ]# ? continue;; N" d+ k3 G0 ~+ v/ m: x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ z- v/ v- N I& w! S7 @ continue;
& o" j; O) o }4 t j# u; L: Q lpSkill->dwLevel = dwTmpSkLevel;
1 P- t3 ]* V( [9 T; | }
/ l' H3 A/ T6 U/ v5 S) n }
1 I% z! q1 i% }4 B }
' V2 x. S3 [( _# I) v: C& L+ l! w else if(IsHero())2 A7 a M9 C& Z5 N
{; e1 s" M' i1 s% B' a) m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( }& k/ H$ c, c) Q4 m
{ / u* g: A9 M' J; }/ D- v
LPSKILL lpSkill = &(m_aJobSkill);- H B% ]( @% r, V5 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- C$ d, ~" x7 K& }. o1 P {
4 j( S& ? h% R9 H6 K% Y5 p+ G' v/ ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : X. X9 B9 a/ I* a# v+ v% s
if( pSkillProp == NULL )2 k' c0 B8 X9 p) w& g; b" _3 {) R' ]
continue;2 K' `# ]2 m; N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% w9 i9 {" q, i& \ continue;7 c, ?; c- L2 D" T6 p9 B% ?- z
lpSkill->dwLevel = 5;
8 d( u7 l$ z/ ?3 n0 C' y( h& Q, _0 h }% k5 v* Q( G2 v7 R5 L# }- F
}
0 R* Z+ R- }( A( n% @* \% N& D0 f }; y8 X9 V' [$ t; ]; Q
else if(IsLegendHero())
( u5 [" u8 w! h {$ _2 u, O g& r$ n! B. E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ \, n+ w: ?1 x% @ { " l* b8 |! U: z5 ^9 o
LPSKILL lpSkill = &(m_aJobSkill);% Y) N1 y8 p( e* O& X) y7 m9 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )- f4 _0 L$ \- s# w. C
{
8 X( w" t! y6 D/ u, Y3 J* Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 ?. D) Z0 {2 ^& F6 M- H* T7 L if( pSkillProp == NULL )
/ G5 w/ ~* F! [# r/ r8 T: y! L: E- g continue;5 H/ |$ A: l* W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# S0 J9 G' E) J/ C4 r5 \+ m) V continue;
+ O0 k5 ]) k% P# Q1 g8 i4 v lpSkill->dwLevel = 5;
5 e& Z; ?- a, }& _. G3 @ }
) c$ X. m0 i$ w }+ G. [$ i, L v& Z& _
}: S5 B! t! i' H1 }5 A
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 r9 q# g0 \& W/ S1 {! x$ @ if( bGamma )7 X# a# A3 D, ~* e
{ X" T' u4 V# g8 C; |# H; @
m_nExp1 = 0;# C' O# ?6 ?: ~+ J; A
}
k( M+ O2 `% g3 k- M& Z0 S- c2 j
7 P* [! v# X* o* K3 [3 [ ( (CUser*)this )->AddSetChangeJob( nJob );
7 w- _( C, O3 _* U! w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 \7 I/ C# v2 S4 a0 P& x( B. P- m2 x( d
1 t8 {% p; U. k/ f% a5 _% O
#if __VER >= 11 // __SYS_PLAYER_DATA
$ k$ u( n7 F4 `2 u1 L g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' k4 K; A9 y- ]0 b#else // __SYS_PLAYER_DATA
( I% y# g% _0 l- \0 y4 p- z9 Q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. x. T/ n6 `& R3 I& D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# w" K3 G) f/ C- n if( m_idGuild != 0 ). ]1 G# r+ ?! ?6 O) u6 w
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 N( M8 O" [, g; u, p+ ~$ v
#endif // __SYS_PLAYER_DATA
9 q- k& r! l; |5 | Q$ E SetHitPoint( GetMaxHitPoint() );
3 W$ f" X& K+ Z& n SetManaPoint( GetMaxManaPoint() );
" }* g- Y; C( m4 z SetFatiguePoint( GetMaxFatiguePoint() );& F9 R9 V: Q' C
if( nJob >= 1 && nJob <= 4 )( c) l4 M1 T! `; x9 j
{
$ ]/ K- Z: ]* ]* u) Z0 I m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 A/ [% ^ K5 ?' ~4 H/ Q6 m1 V m_nRemainGP = 28;
3 q X9 R' K; d: a }
+ A6 r. O" d7 j7 I* H if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 O' _4 j( I2 L
{
9 O' _% w* k% Q+ L7 N m_nRemainGP = 118;
) W/ _# ]# W( P- P" p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' C9 ^! H! K4 c: E3 M; X
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ q0 b* [$ E6 R/ G& n0 D
}- W6 d# d3 a4 C6 b- w
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- W& ^+ F: B, ^
{
$ K; v- H- g; ^! b. N% G4 Z CItemElem itemelem;
_8 b& n0 g, z+ D+ x/ q itemelem.m_nItemNum = 1;
# {0 S5 l" U* w5 C' M itemelem.m_bCharged = TRUE;
5 ~7 f* x6 r% o& e& P BYTE nID;
/ {+ y! P! G6 `% J8 s0 q' p" l1 |. z0 X# U3 d
if( nJob == JOB_MENTALIST_HERO )+ Z$ Q) C% C6 ?6 V8 @ O7 n$ V/ l
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& c; d% O! @3 g
if( nJob == JOB_FORCEMASTER_HERO )% f1 \, e2 L4 J# N# y) i3 g9 Z4 T$ `
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 `4 S& f6 F7 t* C. F+ Y) @, C, D( ]8 ^/ z8 F
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 R5 P& c" {% D( z, ~% b9 c" g
}. s! q4 q) s T& ?
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' V. b' a; D% \2 C! C) x- Q' e0 M ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" h# e5 G0 F+ R6 ~* U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 G" R) J* B$ |! g3 ?1 o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! l9 U; e1 ^; U$ U
( (CUser*)this )->AddTaskBar();*/
3 m" b- b% Y2 T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% N6 H; e/ E' @6 F) r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 g5 B, c5 k# L1 i( ~& U ((CUser*)this)->CheckHonorStat();
; @# a3 z; c) T Y6 n7 X ((CUser*)this)->AddHonorListAck();) X" k4 V2 A" O4 B8 W. o# x
g_UserMng.AddHonorTitleChange( this, m_nHonor);) q2 ` m x# C" i. E1 w, ^+ {
#endif // __HONORABLE_TITLE // ′Tà?
" M/ |/ [; u! x3 Q" m }
4 h: ~) Y/ u! I#endif // __WORLDSERVER
9 h1 J# O$ k& U$ Z& ^7 I) q}
! k- ~' `! r" o8 f' r2 B9 h% L0 R/ R4 P
然后你进入functextcmd.cpp并添加以下
/ Y: A4 a2 C2 g. F% B" z/ k& \0 F! K5 f3 W
代码:
" j+ N6 c) `8 f6 mON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 q0 {7 F7 p9 X1 \$ q! A: j4 t- |
下面插入9 u, q/ a) g+ F9 [3 R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % r$ g, z- E" e* [1 p4 A
" V/ M6 v3 W+ |% m% H; _4 M然后你去1 @' t! X1 p7 ~* e7 R! O
* A; n7 D( G2 B0 N( M2 g9 j
代码:9 a2 q" x, m! E8 l/ x
代码
' f! O2 a. S% L4 Q1 yBOOL TextCmd_ClearPropose( CScanner & s )
/ Z1 m- b+ n7 o+ W* `+ I8 n{# P+ q: J6 L+ d
#ifdef __WORLDSERVER
: n3 A( G* W9 a5 t CUser* pUser = (CUser*)s.dwValue;) V7 L2 G$ Z/ b
g_dpDBClient.SendClearPropose();
# ^) @, {; u) H; a1 k#endif // __WORLDSERVER V- j- S) A" K+ D
return TRUE;
# u2 W6 b5 n9 {8 E/ b- y% U}$ K4 j& `8 b" k7 c, p" _" o" d
下面插入9 x+ g. F% G! Q; }! L
BOOL TextCmd_rebirth( CScanner& scanner )
% u, i: ?$ K, ], a) ?; C! ^7 v{
* a. |6 }8 ~3 ~1 R#ifdef __WORLDSERVER1 R% `4 i0 f( W8 f% p
CUser *pUser;
c6 e# r2 h8 f" Q) C- Z8 DpUser = (CUser*)scanner.dwValue;
6 u/ M& y1 N2 Q% V* Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())- i2 E3 j- E/ c9 M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) y i/ o) _3 X
else
9 H! Q( |% }" d4 p# YpUser->AddText("你还未达到重生条件!");3 W6 E/ R( d8 D
#endif4 \6 }% i4 k/ l4 ^+ t9 I
return TRUE;5 J- T; E7 t$ G" d+ `
}
W9 R4 r/ l+ N+ i1 `& |6 E! u K
3 Z- K( H; k" \$ k" V, M- b, u8 b% D2 J5 g
% E* B) v9 }8 b7 [
4 u6 C7 f9 B( o7 Z1 _2 T# w4 }
|
|