|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 G" _" L( ~7 p7 R+ v2 X! K" }) h1 f
/ Z# R- V5 Z6 `Mover.h
; n7 k/ t" m2 V代码:
6 n" C. l2 @5 t5 L找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; a9 h7 D, D1 @9 x( u
3 U) K9 q0 u3 p: o" G' k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 k" z; b( V9 W3 b; i
: l+ ]7 c* y# Q0 e3 K2 M5 w然后你去mover.cpp添加
' _5 e J3 }: ]6 V: O# ~/ K/ D7 ^8 Q# P3 k
代码:
0 O! g4 B) f, O n, g4 S. pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* U% a6 T- C9 g
{- b! Y/ T1 X$ B r% J: j
#ifdef __WORLDSERVER& a( K m2 @0 V, a3 l$ {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 Q& p. q+ h# C/ e( s1 l
MoverProp* pProp = GetProp();
" a* g" b' p2 k! V8 b if( pProp )# J, Z+ Y3 R) E. Q
{3 _' W$ {6 p: x/ O& M Z, ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& o' b% r e$ E* w) o3 Z {5 e4 }6 Q1 a$ w4 K" Q4 j1 L
AddChangeJob( nJob );- F2 q6 \# s& b; _
}else{
" g3 r7 _" k. s5 G6 o) R return;3 \* g5 l; @1 b# ]/ U" y7 |
}
) a& d' C' b2 J9 W int nPoint = 0;
3 B- a! Y3 m1 ^+ i+ ~ if( m_nJob == JOB_MERCENARY )
, m% m( n# O, _% b) r nPoint += 40;
) D0 ]. v% F& p) B else if( m_nJob == JOB_ACROBAT ); r# t; o. J- [! X$ f3 v5 K
nPoint += 50;
" `+ \) u5 x5 O4 K else if( m_nJob == JOB_ASSIST )
7 I& x- C0 C% a8 N6 j0 q nPoint += 60;+ s+ T# z9 }6 Q3 i) h$ L
else if( m_nJob == JOB_MAGICIAN )
! i. v" f' c$ j$ ~9 l3 {3 q4 Z nPoint += 90;
& b+ Q2 A! o1 g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% H" n0 V8 t6 r- c( x) t; I
nPoint += 120;1 n( q+ V! ]9 l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" M! y" A1 b y- S0 z nPoint += 150;
, V7 x+ i; i" h, C. q else if( m_nJob == JOB_RINGMASTER ) x. H2 r0 X( G0 l! e' s% M
nPoint += 160;+ D& p8 u4 e; J. Y N% ~
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" \- H- a+ u+ j+ |
nPoint += 180;" T9 i% G) L0 f# t
else if( m_nJob == JOB_ELEMENTOR )% _4 R) U7 P; P: b% X. J/ Q
nPoint += 390;: ^ A9 O" g# I" h& Y7 R# V) t
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* H4 n* l2 D+ f% E nPoint += 120;( d2 a) a: K' V6 [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" C7 C- M3 Y9 v9 Q* v nPoint += 150;
- @! ]0 k% F4 h" x5 e8 ]& ? else if( nJob == JOB_FLORIST_HERO )
- p4 c( D# B* [- f" w' J! l: x" ] nPoint += 160;5 [ w6 h8 g4 x7 O3 K% ~6 m$ Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 |2 ]9 L3 r. U$ B% S7 F: d% z nPoint += 180;
# K( {) d# c; d7 L( j4 X* u: j else if( nJob == JOB_ELEMENTORLORD_HERO )2 [/ t- E/ N. I. ^0 q* t
nPoint += 390;4 s. T/ \; ~: _/ k2 v& Y1 H
9 k h; B$ G& `( w AddSkillPoint( nPoint );. ^1 c4 W3 F( |5 y5 \$ u0 ^" X1 T
m_nLevel = nLevel;
/ g8 y1 f6 t/ b6 h! q1 R7 B6 U, m3 `: S# L- N% B# w
SetJobLevel( nLevel, nJob );( ~, T. u# P! _# u) \' Y$ B
m_nDeathLevel = nLevel;. _1 q: E" u1 A% I' V }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 C# B: N. r) a" v( K+ t if(IsMaster())
; g7 l) K, v5 @% g {
6 X) ?7 K9 d. D2 u4 _3 |4 a int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 y) t& F( B8 [; S4 Y, @3 ^
if( nLevel > 59 && nLevel < 72 )
% n7 r9 F$ J6 o' _8 h a dwTmpSkLevel = 1;
" ^* [- p Q/ u else if( nLevel > 71 && nLevel < 84 )- ]' u8 z* l7 I7 v6 z
dwTmpSkLevel = 2;
! P& ^" _) F1 @" N s- C; q, r* X) H else if( nLevel > 83 && nLevel < 96 )
* g7 t+ x& t+ ?6 e% l' G dwTmpSkLevel = 3;3 ]4 o& V8 V5 U5 ]& R4 H
else if( nLevel > 95 && nLevel < 108 )7 \$ b! b3 }0 _2 x) e- Z6 O
dwTmpSkLevel = 4;' @& C8 ?" B; I
else if( nLevel > 107 && nLevel < 120 )( z# {$ }( V% |" \0 W. x4 C8 K
dwTmpSkLevel = 5;
) ]- r( v& @9 Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) . P9 B/ k- H; U+ Q! n2 P
{
1 x8 P0 Y1 [0 ]8 X! d/ d7 J8 J5 r/ L LPSKILL lpSkill = &(m_aJobSkill);2 \. _/ |5 p) f& s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* m# {, a8 [1 m- Z7 S7 D! R% V {5 S$ T0 S5 W' R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / V; \- d! j' D8 b1 f
if( pSkillProp == NULL )" E6 ^9 ~& O$ E; }& ]4 g9 E
continue;8 D" H* {- K" H# m3 I5 {+ {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ x, `7 b. Y0 s! }
continue;- ]" Z' T! I6 g" X
lpSkill->dwLevel = dwTmpSkLevel;( O9 t% `& U* ^, o3 C; l+ D `
}6 L' p' F! C- `
}) | S) t' A6 M
}
! b$ A+ F* E" D0 y else if(IsHero())* e. b" {; J4 S' m( u+ f
{ X- L2 v- V. C- z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ c: q e. O- `+ ` {
) B) \$ }. }2 [- k1 I$ _ LPSKILL lpSkill = &(m_aJobSkill);/ h, S3 C& a: n& T# H a
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 V) J& B8 c& {- u" l9 S& j
{& m" r! b3 W6 ~" L7 c% Q+ M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ t$ k9 A! {7 H/ J" f; j7 @ if( pSkillProp == NULL )9 a C$ T6 Q# M: k! I2 V% [/ J
continue;, _$ N' a* C5 R# Q$ l- `. o" ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& M5 g( ~/ o. a
continue;
# z6 s/ b: Y; G5 q lpSkill->dwLevel = 5;
1 B& Y4 X, p4 w, E }1 j% d9 e* v: Q& [8 Z ^ l
}
`" z1 f6 R. t7 J9 l; P/ ^ }8 L7 i( @- D) _* I
else if(IsLegendHero())
6 U/ ^1 G& d1 u( ?8 n0 K' E {- _1 F2 W+ E5 P. s; D7 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , J [& N2 i5 u& f% S, ~) ~
{ , @& @. r2 \' ~0 Y7 I/ f' C
LPSKILL lpSkill = &(m_aJobSkill);
: ?# P0 q1 n# Y. {# ] if( lpSkill && lpSkill->dwSkill != NULL_ID )% h u5 k$ M$ ^) b, Q
{1 P' @0 W- K# r1 F( C% S8 U( E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 r% r8 B$ n) u2 t9 g
if( pSkillProp == NULL )/ d+ Z8 v. @; `
continue;
; x! E v3 E* k3 A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& F- x+ r9 @8 c) i) N continue;
& ]5 W: c/ H, b) L lpSkill->dwLevel = 5;( Y4 Y; Z0 R; G1 ~9 W
}
& I3 D3 y/ c8 f* X) | }
4 @7 e6 I, i( F5 a, X }
5 [5 p2 n8 _! C% i. g$ g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 w# Y$ ^9 x6 K+ c- R+ q$ V if( bGamma )
7 P/ v* n% x1 a0 i' ^) W3 I {* u2 ^% Z7 ~% n9 S' J# ]. A: e
m_nExp1 = 0;
. M, v F5 b6 I2 p! v& M }( m4 t( A/ v" o2 V9 d9 u% `
( Q# H' ^% c7 a! k3 d6 I& i0 U, M; x, T3 F) e
( (CUser*)this )->AddSetChangeJob( nJob );
3 n. e, Z' X2 M9 ~ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 e( k$ M) F% b6 o5 n7 ^8 V$ g6 I
% T2 L+ N! @- V# _7 R4 B- y2 m z& ]. N* v. O" M& W8 b
#if __VER >= 11 // __SYS_PLAYER_DATA- R9 W* l# Q7 Y& {. o3 w2 l
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ T( k; X+ z# n; i6 y' G2 a% N
#else // __SYS_PLAYER_DATA3 F+ ^+ {$ ?0 m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 S8 h+ _2 e. K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" ^2 T d+ K( Z( g0 W" A
if( m_idGuild != 0 )
* ]" I/ u0 `" P( z" t6 k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 E2 S' ^( _* V0 _( O6 u( i
#endif // __SYS_PLAYER_DATA
/ j7 I# \) y2 C$ S! R* @* Y7 s8 J6 o) O SetHitPoint( GetMaxHitPoint() );* ~. }3 e" ]" P+ z
SetManaPoint( GetMaxManaPoint() );. a9 }5 ?0 E+ s5 g
SetFatiguePoint( GetMaxFatiguePoint() );
) R7 [+ g# k+ L! v$ g. y if( nJob >= 1 && nJob <= 4 )
& U9 ?. ~1 ^( f+ ]) @+ b/ p {
$ w* z" X9 M5 W( K! C m_nStr = m_nSta = m_nDex = m_nInt = 15;. c% j8 H* W' }; I
m_nRemainGP = 28;4 K D. X2 R. \5 K
}
7 T) u+ w& ?. r7 L( F if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); @$ Q2 o; h" {: S% V
{
: I9 @% X: E% k; u8 R) o5 Z m_nRemainGP = 118;
0 D( c$ c' y% @ X, h2 E% P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 c" q4 i- u% U x m_nStr = m_nSta = m_nDex = m_nInt = 15;& G! K8 N# r$ w0 c: m- i6 P
}
3 N$ q! w7 _( ]( N- H6 v; } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- |% v6 q) j6 t' d5 I, o1 a
{
e$ C- b. t0 }8 p8 ~( C& a CItemElem itemelem;
" O5 I$ e Y: R, u6 \. ]9 W8 E8 _ itemelem.m_nItemNum = 1;
% z. ?) X+ H( ^2 b itemelem.m_bCharged = TRUE;
8 A$ c8 y+ g* i" J BYTE nID;- N- R' Y( o; u) i
3 e; x' F4 H4 |' W$ V: J: e& B
if( nJob == JOB_MENTALIST_HERO )
- t5 ?3 T, t: G+ A8 U3 `0 u itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& a/ B# N0 n0 i `( A if( nJob == JOB_FORCEMASTER_HERO )
% N1 C& l# Q% ] itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 Q' g9 M. z9 z9 _
9 J$ Q& W |6 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- z0 A; A9 h) U# w! V# k4 P! T }% t& k' x" Z1 Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, N0 U+ A$ j' o/ p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); ]' w2 [ o' f1 T! V: f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- R) R6 H8 G& u: V8 Y! e6 }3 B0 F6 s" h2 J
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 F: w ?+ V6 \6 c. {$ ^ ( (CUser*)this )->AddTaskBar();*/* y; S& b1 ]! f: ^' ]- E2 K9 V6 g
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: k1 q- n0 ~* ?' _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* e! z9 ~: f* s: U& {) ` ((CUser*)this)->CheckHonorStat();
. V4 o& ?& f: C ((CUser*)this)->AddHonorListAck();9 {/ k5 ~! T1 v* N% r
g_UserMng.AddHonorTitleChange( this, m_nHonor);( l, ^+ Q+ S5 X5 W4 `2 I
#endif // __HONORABLE_TITLE // ′Tà?
/ ]/ Q Y$ ]. z* ?3 K }2 b6 E4 U9 t2 d! k, q
#endif // __WORLDSERVER
$ T6 s2 Z& H9 O}
I: l8 Z6 R1 @6 Z$ q) D* m5 w$ p0 |& } @6 N% d
然后你进入functextcmd.cpp并添加以下
$ h1 c/ d0 L. a \" K
M! l2 ? A r: y- d代码:/ V e9 w6 L- g, X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% u9 |7 P8 i! q, t& U, w
下面插入/ s) b* ?. k7 e# ^* s$ m! O& c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ K% ~# \9 x& L
) \/ w9 P/ I9 w1 `8 y. a然后你去: w' m+ k8 y! J$ v
6 L# X# f6 m3 R* d. n1 S代码:' S, f S5 F2 O: v3 M F. [! o
代码
# N, k) H; L$ x, S) kBOOL TextCmd_ClearPropose( CScanner & s )( ^$ V7 i* H$ x* G1 }4 o
{
' k1 J4 @6 [3 e: e# k1 h#ifdef __WORLDSERVER
- e# M# m$ \! ~( c$ A+ W$ {3 ~1 r. M CUser* pUser = (CUser*)s.dwValue;( C/ m' f$ W4 E& w
g_dpDBClient.SendClearPropose();
& x$ c) Y! Y: M; ]! D1 o1 G6 f#endif // __WORLDSERVER
0 q) U+ b$ a2 s. A8 P' R! H# H! v return TRUE;4 e7 {4 q% U: f
}! {& @% d$ {$ f! Q3 e
下面插入
1 A4 N) b+ I9 f P. M* \1 ?6 e( s ABOOL TextCmd_rebirth( CScanner& scanner )) b& R& w! s' W
{
9 u6 o8 ?5 }5 a. g. _& x#ifdef __WORLDSERVER* z( V8 K7 q1 {: {! q, ]' Q! Z
CUser *pUser;
. _) u& l0 Y4 K! s, N3 J% P, q4 gpUser = (CUser*)scanner.dwValue;
! X7 M1 W4 s8 i$ V. J$ ~if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ D, @" C) E$ f- [5 T, U# ^. WpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# {/ v; f7 A4 k5 h$ {2 J6 h
else
4 E8 ?8 {! R; Z8 O& vpUser->AddText("你还未达到重生条件!");
: s. R& X6 q7 c6 }#endif d1 ^" W# v/ N8 f
return TRUE;
( W( ~0 ~: t/ g5 j}
+ e8 Q0 H% d- o
" c' K1 |2 e/ H' v$ S9 ^% p
8 k9 `; v* A x+ P7 u8 b8 V
, n+ ~+ f5 f5 z% w O: |5 J9 M+ B) @
|
|