|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, i+ q) M+ Y# c6 G
: g1 ? i a* RMover.h) K- e* V( S6 ?6 b" Q' D
代码:
/ Z- i0 n+ c' V9 O3 Y, J找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 ?$ N# f: d: x2 M/ Y e
6 q" |2 R0 q7 `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 m9 ?; E5 P7 }7 X! ~, _; L1 V! C& H1 e& a% Q* w+ s+ x, [
然后你去mover.cpp添加
5 Q, d0 h0 s) `- @. w
4 A3 [. x! q! P; O6 l: Y; t0 j) u代码:
% N' F- O c3 M6 wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 T ^* H- f, C- R" B{
' e( L6 r6 c& J$ n, N; ?#ifdef __WORLDSERVER9 ~$ p6 D8 j$ @/ x; d; w
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' N7 ~6 H) H& u
MoverProp* pProp = GetProp();
+ n7 O+ L0 k D1 u4 x if( pProp )2 X c& I3 K" c1 d* E/ ~0 X
{
$ b$ U# s; [2 x$ m if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: o; u4 e9 K: ~/ [+ L2 z3 b {
( [4 Q6 m: F7 a$ Q/ l% w AddChangeJob( nJob );
d ]( L" C; x% \4 ^ c' o, l }else{
/ V$ F1 _* N4 d- [; Y/ m2 U return;( r; b1 o% \& ~% \5 M
}5 \4 u3 d+ i5 m
int nPoint = 0;
, ?# c% Q" K& L+ I: m* M- o if( m_nJob == JOB_MERCENARY ) {/ }. |& M5 q! e. B
nPoint += 40;% U. Q B9 q+ v% L8 q
else if( m_nJob == JOB_ACROBAT )5 I/ B" x& j% Q0 T# t% n7 M
nPoint += 50;+ g. p4 B% R! C% P B
else if( m_nJob == JOB_ASSIST )6 L% ?4 Y2 y% O# }$ T. o! ~# Y
nPoint += 60;$ d5 _" o+ ?6 ]7 |! z
else if( m_nJob == JOB_MAGICIAN )6 |" {* F/ ]' Y3 v6 M1 W1 T; z* C
nPoint += 90;2 z" U+ x/ p7 b, k3 H( b5 ?% e% O" j
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 E- k2 \6 O' i2 u5 W/ T
nPoint += 120;" V4 R8 y6 W/ p
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& b P+ [- G" H4 Y
nPoint += 150;; j0 Y8 M- ~+ S
else if( m_nJob == JOB_RINGMASTER )
4 a, C% u: o2 c, y- A$ R O) T nPoint += 160;
) n3 Z8 {, E* ^3 j" x2 ^, y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 P5 S+ \7 I4 I3 \8 f0 A nPoint += 180;, _9 ]2 J( w& E! @
else if( m_nJob == JOB_ELEMENTOR )
" A2 |, n6 n' F nPoint += 390;
3 o1 t1 T ^: |) O X3 o else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) B: d1 _! W% ^1 ^. _. _7 z
nPoint += 120;
) U+ t; u; v- K+ E/ B }4 L9 ?6 ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 s( c5 Y, C* d: }$ m$ H# U# v
nPoint += 150;
5 Y+ ]& m& n9 b) h9 O: [4 ?+ C8 ~ else if( nJob == JOB_FLORIST_HERO )
& t! B% o8 x" z- d) P, } _ nPoint += 160;2 U L' _, Q$ k2 d& m4 K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' G( r* {# B1 H! L# {/ ]
nPoint += 180;
, |, y" j/ v; f: J else if( nJob == JOB_ELEMENTORLORD_HERO )
& X! d$ C! U. Z. s+ F# @8 c4 s: v7 n. o nPoint += 390;
- y8 D& i$ r8 M2 ?5 M/ I6 y3 B6 f& T- M- {/ m
AddSkillPoint( nPoint );
/ v8 ?4 N. U1 c4 F* q& I6 ]9 \ m_nLevel = nLevel;5 h' u% o9 F: G9 H6 K1 C2 Q! r$ b
7 q& ^! h, y3 Z- X. ?. e
SetJobLevel( nLevel, nJob );
( w# T. y$ O& c# s6 J& ^: y m_nDeathLevel = nLevel;
0 ^ y- Y3 H% ]) K4 e! F f3 `#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 s( q% ]- m" C9 S/ y0 ]- g
if(IsMaster())4 O# C" Y7 S6 P6 [4 N4 q
{
6 y" K9 _. d3 I/ T) C int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- G/ U0 ?8 K. ^# _5 v if( nLevel > 59 && nLevel < 72 ): ]3 f; Y z5 D0 S2 W( V
dwTmpSkLevel = 1;
: v' H9 T$ U* w1 {6 q8 l7 E7 ` else if( nLevel > 71 && nLevel < 84 )4 A$ f7 ]" n8 Z( d2 u
dwTmpSkLevel = 2;: Q. O) G H# A) d f) n
else if( nLevel > 83 && nLevel < 96 )
, ]- v* d- U4 Z dwTmpSkLevel = 3;
]0 M5 t# F+ ?6 p, G else if( nLevel > 95 && nLevel < 108 )
0 ]0 I _2 ~' ~) Q! S! q dwTmpSkLevel = 4;5 `7 i+ Y4 K9 T/ m- ]
else if( nLevel > 107 && nLevel < 120 )
) h0 j4 a$ i! v4 q& }/ Z0 C dwTmpSkLevel = 5;
' r9 c: ]9 O0 j& B for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 \; I9 x5 Z! ?) ~! t { $ w2 b$ S# u e6 O0 g1 H
LPSKILL lpSkill = &(m_aJobSkill);6 t: A$ x/ d# o4 [& }- d
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 Y/ y" r9 H0 x/ ?+ L& r
{; P: w) n! X! `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) p- F7 p* R3 F& d# ]3 c/ g' s6 B
if( pSkillProp == NULL ); K& a' N8 R p
continue;
& q2 i3 ?/ h4 j9 y+ e) f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 i' K; c! _4 ` w& A% _2 U4 Y, l% n
continue;
! f1 w7 W) |! E4 K! N# n lpSkill->dwLevel = dwTmpSkLevel;
6 ^3 F7 e. v& X9 Z1 d }
) R) B; `2 b# l* t& Y }
& n! @* g, [; E2 t }, Z6 I2 F3 e# y7 T6 l6 D
else if(IsHero())% J$ L$ i9 T* I5 K: A$ R# K, g
{
4 r& X# O8 n! P. z0 Y( z for( int i = 0; i < MAX_SKILL_JOB; i++ )
& Q, P& o' P1 i { / r: P0 n" s n, K( k h+ z, w
LPSKILL lpSkill = &(m_aJobSkill);6 x! A+ l' l! [9 }) o9 J0 ~$ I6 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 R# U$ j% k( R
{. u/ u3 ~9 A9 K+ o/ d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : H8 T5 d5 g5 ^: t% \, r. G# \
if( pSkillProp == NULL )2 `4 b1 E( N( V8 J- c1 c5 u5 k
continue;
K0 D+ [; [& w4 |3 U! { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: F. |; y5 [7 `/ {- t continue;
, Z. M* u! d0 K u; @$ _ lpSkill->dwLevel = 5;
) B, \2 W+ s. a2 y! r }
& Q& x3 a% g9 Q5 F( G }
+ t# {3 E2 _4 ?% D$ J4 T0 N. G }
: N" t+ o5 r8 Q$ n& L c else if(IsLegendHero())! v% ~3 c. S; q! ^3 |7 o
{3 o- }( x% ]. k, M- s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 v# `1 s/ }& F' V* D4 ?& { { 1 f) k0 [( \3 b% C. n
LPSKILL lpSkill = &(m_aJobSkill);* k, {+ Y, E1 k1 t7 L) ~* w
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 O( f, j5 b Y; N
{- G6 ]9 `- S r4 W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 N0 j' W6 L3 k4 U" I& { if( pSkillProp == NULL )
5 d8 t \7 x+ p7 Z0 n continue;
X. {8 l. e4 p( j: ]/ O3 o" t; o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
S% ^0 e+ m, ^& k& P E continue;
0 ?4 {0 p% M5 R; ^. v6 h lpSkill->dwLevel = 5;# h8 c2 y" f) t- Y) }( ^/ R# T4 C
}
) D9 P2 u7 y( |0 [ }
) ^' _7 |. u" S/ U }/ j" \" Y; \0 U% U. o7 s
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ b4 `- E0 g( Y B4 v6 t! R4 p* L if( bGamma )
. ~$ F- M/ T1 x0 {$ I* k {4 k( b# k: R/ G8 e
m_nExp1 = 0;4 q8 f- B( q2 |% R0 N0 h" l0 [* D0 }
}
% A* L) ~9 |, I& ^# D! j4 H$ b. a, V. z* H
( (CUser*)this )->AddSetChangeJob( nJob );
5 j$ ~3 M! c/ P3 ^# y) i g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 K$ a+ L) A9 Y8 |% ~% V2 t, |! u9 X* {% `9 o
3 J& l% `0 O: M0 g1 V6 T#if __VER >= 11 // __SYS_PLAYER_DATA! L. e& @6 G1 g- h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 ^4 U1 z- _4 V; O! z! Q8 d
#else // __SYS_PLAYER_DATA. ?) H1 M6 o! ~/ P% U. r4 n& Y6 q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& R5 X- J# |" J" q E, e g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 e6 y# ?' h' I5 r/ k: H' Y8 W; u
if( m_idGuild != 0 ); Q3 ~% R9 j% y3 c: T: H; _
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' O1 m, v: G1 j% z) s3 y% R. E
#endif // __SYS_PLAYER_DATA
! X0 {/ n' X3 a9 \ SetHitPoint( GetMaxHitPoint() );0 m- v9 _# _; E" E2 w
SetManaPoint( GetMaxManaPoint() );
/ b; c7 O& z4 f W" h SetFatiguePoint( GetMaxFatiguePoint() );0 Q, x* e& Q" U' @
if( nJob >= 1 && nJob <= 4 )6 _ h' O: R0 o. v* A
{7 F- {6 l4 }$ |& W* Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, [6 X$ F' N4 k4 D/ C: D: ^& u/ O m_nRemainGP = 28;. |3 \0 K; K2 Y* q9 `" R4 N& u
}7 ^' t4 T" w0 W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, G* S/ o% ^# g3 `% Q9 ^ {8 F& w1 q9 C3 f; R% l; \% Q+ D
m_nRemainGP = 118;
# }) A1 y3 M3 `5 y' w0 Z, F ] //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( h# H; p$ `5 d) u1 U4 g& b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 [ W! J6 e2 |8 E4 E }% x6 Q: ^# ~) y" I
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% V0 v6 m5 h4 G& F/ [( y {) ?$ W2 B6 g* U) o
CItemElem itemelem;
7 [( h. m) {9 m6 x3 s1 F0 B' ? itemelem.m_nItemNum = 1;$ [9 \+ t! P$ h
itemelem.m_bCharged = TRUE;
& z) Y3 G5 g7 g# G! K# Z BYTE nID;' N% g, ~2 V: F1 G0 }
, T# B' Y$ X5 u; k
if( nJob == JOB_MENTALIST_HERO )
. P1 V; Q( e6 O7 w; z! { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 {+ u6 N! ^6 N5 c8 x if( nJob == JOB_FORCEMASTER_HERO )
. p+ l" i% ^" z s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; G; _3 t0 n4 l4 l- w5 X" U9 y, F% z3 { b3 q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( v+ Z- u- X, a- h }( U# u0 L7 v" g; p! c
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 a+ _1 X" p1 q7 V: [, _ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 D/ ^/ ^, ]# h( t ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 R3 \! |$ w g& G3 o% h5 S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; k* ~" w$ ]. g ( (CUser*)this )->AddTaskBar();*/
: v6 x3 I% ?2 C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 }2 U H/ N3 m8 R' W/ w7 Z. V#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ K& Q2 l" a8 j, x- v5 ~# V ((CUser*)this)->CheckHonorStat();
: g0 H1 E* w) ~) G6 T& `) x ((CUser*)this)->AddHonorListAck();- K+ U$ r+ d6 ]
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 f# P2 P! V: c
#endif // __HONORABLE_TITLE // ′Tà?
! A! i$ T2 E0 O" o }
) H4 G0 d2 K- w" B4 I( {6 j9 n#endif // __WORLDSERVER
' u0 {* T n1 b$ `}
4 r8 \# q: \$ R$ L# k0 E7 t+ b: f* V* @8 ^4 S; F) Q
然后你进入functextcmd.cpp并添加以下4 T; Y& [8 d1 K& E( J
2 }2 U: g2 z' \$ t( F代码:
; ^$ T- H8 s, C$ E4 I$ FON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), C0 t) b$ i1 x- \- r
下面插入$ X8 C! l/ K" f6 j' _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # [; S; z6 O& f8 d# r* f7 K% S. u9 P, }4 M
* K$ \% v/ [$ X3 w, ~+ i4 N然后你去% f* }; X' z1 u$ U: x2 f( U
* B/ p: w) e& @3 n2 O, d! \代码:: l- g6 @( Z0 |% |7 N4 C$ c5 R
代码, t) o. X: G |7 U5 X0 Z3 C# J& n
BOOL TextCmd_ClearPropose( CScanner & s )0 F$ S0 s. g) }, R4 e
{
+ k4 J2 F5 P" l' k$ C" d, |#ifdef __WORLDSERVER
1 e& o) V+ c7 V* p4 F CUser* pUser = (CUser*)s.dwValue;
$ S3 f/ _+ f# u g_dpDBClient.SendClearPropose();' l& O" } |9 L
#endif // __WORLDSERVER; z0 D; }% I% x0 h
return TRUE;
( a! e" B! h8 |. b' ^- g" x; \}
8 f( U, o& N6 r) T7 A4 e4 g S下面插入) Z; f& E: O* s+ k& v+ W
BOOL TextCmd_rebirth( CScanner& scanner )
, u/ U( g% O7 O' Z{5 R' O6 i7 O! _
#ifdef __WORLDSERVER* Y$ {- c+ e1 l, a9 J' [( R
CUser *pUser;
; O: w9 I' @- j% |& r( ~8 p( epUser = (CUser*)scanner.dwValue;
* o5 I0 ?$ q/ y ^( O4 hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 o( s: M: M. a: r4 p4 {pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ X% q5 K# [" t; Q, N: V+ c7 ?/ P
else3 {( I, _5 N9 L- ~/ ^" ~& F
pUser->AddText("你还未达到重生条件!");! z3 ^+ q- F1 U
#endif
0 j4 f6 R H0 Z7 v: \return TRUE;
: D( U* K, M4 {' z0 Y# {& Z}
9 I3 W3 ?6 ?0 l5 h
$ ]' T, @: p. Q5 w$ |, e
3 K' F5 R' v$ K, |* C) x
# q! h9 f; e( {9 u9 q# v. B! F9 ^) k- p$ {4 L" d* C& p
|
|