|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. C# |. l" Q6 j* K" |
$ h( p, T2 L* i, y9 a- z7 e: C1 vMover.h
# B0 T3 D; t2 S7 f2 ^代码:2 u, j- t( p/ n! F" K0 o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# R4 b& V+ ~4 p h4 J0 V
( L5 m2 s' k: }7 k* O. L% m3 L* i( ]下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! m Z' @9 ^" B+ u" ~- a! X6 P, m
( {3 M2 C/ N+ C- A! T: J
然后你去mover.cpp添加* K3 b I! U; A
. F: L# M# |$ ?" t& h: z j4 n
代码:4 U% p4 A ?0 w
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 v$ G- J2 ]5 [0 \1 V4 ~{
) e/ n. l" P4 E! n, y1 q* @#ifdef __WORLDSERVER3 g& S4 Y7 x: c8 [( q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& @% c; X! a- ]
MoverProp* pProp = GetProp();7 @; V4 v$ x5 ?% t5 Y( L
if( pProp )0 u. u1 x# r- L% G, A) ?# e- P
{
. V; m$ l9 r; p6 @4 a if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, a! Y8 _* a- _" t) |7 J* k7 S) { {
" Z6 i( _! M3 [( \/ B( y AddChangeJob( nJob );
6 K$ |& i( l# q* Q! j) b* g _ }else{
1 b9 l. l. P0 _% K# Z8 { return;
4 V( Y7 V8 f, E# C }
$ d* v W1 B. U) t$ r: C int nPoint = 0;
! |2 b, A. g3 C if( m_nJob == JOB_MERCENARY )" R' w9 e$ ~: `* L6 x
nPoint += 40;
: t+ ?/ e& T, c% o else if( m_nJob == JOB_ACROBAT )
) p- E- K1 B$ M nPoint += 50;' l7 G: d, i5 @" ?& x
else if( m_nJob == JOB_ASSIST )
?8 s# C# u N4 ?; u nPoint += 60;- R/ E) k3 l' T
else if( m_nJob == JOB_MAGICIAN )) Z3 |+ W1 S+ v1 V" Y; G
nPoint += 90;
. {1 ^0 K' G0 m+ w% ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; o3 `; y% ?: t% ]* u nPoint += 120;
8 K! q3 w( J8 s- T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- s9 ~$ x+ o& Z) x5 C nPoint += 150;
/ `, c: l+ U* [$ q& X$ ` else if( m_nJob == JOB_RINGMASTER ); G' S: [: q! X8 S: T0 p
nPoint += 160;
$ F" O7 i; O* v" h else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( y) W; q" s" \# {- _3 v. n nPoint += 180;
3 K, @8 e6 L6 F1 q: L* v else if( m_nJob == JOB_ELEMENTOR )
1 Q- J; X' c: o nPoint += 390;
! D% G' y5 Q. I, x" \$ f) x2 Z2 | else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 v1 s( v+ `! Q* C
nPoint += 120;, A- y7 J# E" n2 s6 C
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ z$ E! }. [7 O6 \6 E7 l) Y7 v. N nPoint += 150;. M6 d' [' U: r) A4 H6 u
else if( nJob == JOB_FLORIST_HERO )
0 N \+ t3 T+ e: z; v nPoint += 160;
0 G( n; \7 s' w( t3 R4 N" W: P9 _ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" S1 T4 p2 u! q- w nPoint += 180;
9 Q n' x+ y( G0 O* p4 @8 { else if( nJob == JOB_ELEMENTORLORD_HERO )
2 ?, o: `; e2 h2 g$ A nPoint += 390;
, O o( B+ r: U5 K2 L* B, n7 J
) C$ j! o) ~# H$ S AddSkillPoint( nPoint );/ w, V3 w& v# ~. g; I0 F
m_nLevel = nLevel;+ T3 ^, C/ {( o: m4 l
$ l! g) X( c$ }8 z E
SetJobLevel( nLevel, nJob );
2 u& i" ^" P M& ~ m_nDeathLevel = nLevel;
$ `4 |) I. D' |#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
?( d0 F) w; A1 w if(IsMaster())3 r. Z) |9 ~; M8 e F
{
. s/ T/ e# }9 X* ? int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. ~: ~ ~& u0 {* t( y! X/ x ] if( nLevel > 59 && nLevel < 72 )" @1 \' U" M! ]" Z, z6 Y7 B! O
dwTmpSkLevel = 1;
0 N: U; J/ V: ^& ?3 c! T2 f: Q else if( nLevel > 71 && nLevel < 84 )9 |8 D) f& u$ C8 u; {
dwTmpSkLevel = 2;
+ p: T7 V+ ]# Y else if( nLevel > 83 && nLevel < 96 )0 b: n9 M- J; m: _2 F
dwTmpSkLevel = 3;: D# F1 Y6 D3 b. G
else if( nLevel > 95 && nLevel < 108 )# w! P$ [- O0 F9 N+ T
dwTmpSkLevel = 4;; z' M/ L' B& O6 A* L1 U- p
else if( nLevel > 107 && nLevel < 120 )# `# M8 u- M! v4 n$ F
dwTmpSkLevel = 5;8 S7 G$ L4 g# Z- i: f2 e8 B- Y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # ]! c, `3 C# B6 ], C
{ y* c$ i7 W! i
LPSKILL lpSkill = &(m_aJobSkill);9 H1 R7 e4 P* C4 \* k# b% F9 _3 V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ |0 J* x2 y$ g& Q' ~ {
1 V1 W3 c' \. ]! M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 H' ^" A0 b8 S7 J
if( pSkillProp == NULL )7 W& S. t, i# R- R0 R* K# z$ x
continue;7 A0 ~$ K1 V: @( M: P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- t1 e3 X4 t Q: n1 o+ U7 z/ B continue;
2 I- J/ F3 ~+ I2 o7 p lpSkill->dwLevel = dwTmpSkLevel; q! X& z) m, A+ j% E9 X
}7 R: r# Q) R; ?6 {: J$ t
}
_" Z4 }8 E6 I3 G0 X1 w( r }
, Q" \, |- z1 ^6 J. \1 ]- W2 G; x& p else if(IsHero())
# q2 y1 C! H' u' ?% e {
5 h5 M; t* W( {1 l, X/ w/ c for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ Y% v6 n+ o% x7 K$ V8 l* O( A { ( }7 |" u* f7 O2 `
LPSKILL lpSkill = &(m_aJobSkill);3 E% ] L2 z! `: s, U9 f$ q( o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* U; k/ f8 n- t' m( @% x {
5 s" E3 @6 ~2 U4 D, i' U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 D/ T6 Y0 H& Y8 r
if( pSkillProp == NULL )
' U% b3 Q. x+ N6 Y( s continue; ?9 X1 W* z6 |. g' S# x2 }. I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) T* ]1 T% }! a# O( y( x! e
continue;7 W/ R: u0 t5 f: B3 W$ a0 o
lpSkill->dwLevel = 5;
" J% d9 I, ?# g/ C$ @8 U }7 N+ j9 N) v1 J' G) E6 V7 w, w( I
}1 u% F) G8 d. g ]! i& n* U
}) J0 p- D% J$ r: w$ o: h' r
else if(IsLegendHero())5 d( W6 h: S) z7 E# i: b
{
! c" Q" J7 T/ r1 G. n$ i g for( int i = 0; i < MAX_SKILL_JOB; i++ )
# N) y9 s6 G3 d" ^ { 9 }. |" v: ]. K# H% |. B# ^$ Y. s
LPSKILL lpSkill = &(m_aJobSkill);2 a6 R0 f1 Q- G- Y' N) E1 @
if( lpSkill && lpSkill->dwSkill != NULL_ID ). o; r. w' o" G6 y' F
{
$ S- h5 `! A& i; l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 o5 E' A' \7 U. H9 E if( pSkillProp == NULL )3 n/ A7 c- o" B( ~3 D
continue;
: m% a% H' R" [5 b3 {# [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( b3 a+ U/ [* d1 }) `- R+ H5 n; F5 O) v
continue;4 E2 j- Z. Q, ~- ^8 I- z6 G$ a- p
lpSkill->dwLevel = 5;
. {4 P0 G# O& d* ^( K$ l* K, ~5 ? }( }9 N' ?- C4 r* y) N# o
}, h$ {. M* r! t
}
/ u" Q5 S2 ^$ @1 @3 U#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( o7 i0 |3 M e
if( bGamma )
; c4 G; \$ h: e1 s0 } I% F2 I3 E {
7 o8 t+ [" }* C m_nExp1 = 0;% H: U# W; }5 V* _# W
}% j3 ]+ }; c9 M1 \2 v& h. `
# H) m. [: Y0 i3 x9 K @! ^' N& N ( (CUser*)this )->AddSetChangeJob( nJob );
! h s& j; M6 k g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( Z$ S- c. x/ z* A
) d9 t5 [' w8 I9 P' H3 X
. s9 m$ Z4 R$ e0 ~
#if __VER >= 11 // __SYS_PLAYER_DATA
~3 O4 w6 ]9 q! ^ r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: }# X# [! K: `
#else // __SYS_PLAYER_DATA$ s; a% r- m9 X% J$ ~: N
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 N7 Q+ E- `7 ?( y4 c6 k g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* [& z8 E K1 }1 W* o: i0 T if( m_idGuild != 0 )
! G, {* M+ K$ f8 e' D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 y% D3 |# ^# M# y#endif // __SYS_PLAYER_DATA
6 m3 o: l+ L, d' m SetHitPoint( GetMaxHitPoint() );- [7 Z6 c7 d' M3 G4 U- j
SetManaPoint( GetMaxManaPoint() );
6 M9 ^4 q! P; Y9 V6 v SetFatiguePoint( GetMaxFatiguePoint() );
" w- q$ Y- @8 d' D* N$ _8 x" Q4 F if( nJob >= 1 && nJob <= 4 )
+ i# ~3 N* f: \ M* Q+ m {
! G' I5 O7 M1 m7 J3 {0 r! a6 } m_nStr = m_nSta = m_nDex = m_nInt = 15;- z. |8 ^. w' P2 w
m_nRemainGP = 28;
3 `! J; a C( H4 O; |7 e! C, H4 Y }
' A; ? N7 l8 }2 A if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). @) {& ?3 m- g, e
{
' ~" P# A7 P5 Z1 r0 D+ B) ` m_nRemainGP = 118;
0 N7 s W' W; ]" |/ @1 h/ ]/ M. ~" { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 ?( }% g# D) G- z2 y6 T. ? m_nStr = m_nSta = m_nDex = m_nInt = 15;
% @6 p* H. `. a. M5 x. c8 \ }
# Q0 G f9 o: O" w5 B- J if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 V8 o/ o+ m; K$ m# n
{3 k- e2 K. x, E: _
CItemElem itemelem;+ {& i* @' n; ]& z r0 {
itemelem.m_nItemNum = 1;' v4 v0 v C. f1 l9 L
itemelem.m_bCharged = TRUE;
+ P) V$ L7 n) A1 v BYTE nID;
& z, e# U1 W" }* A) ~# y: G/ a+ o" M& A; ~/ S" X d9 m7 |- k' u
if( nJob == JOB_MENTALIST_HERO )
" R" p2 A/ S+ P; S1 T. ] itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% r* o7 D( t! X% l6 N( n& v
if( nJob == JOB_FORCEMASTER_HERO )* }+ o; h9 v" G( p; I
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 q& @4 O2 w E( r4 ]
# t! x/ v2 I+ l1 C! x# p ( ( CUser*)this)->CreateItem( &itemelem, &nID );
& D3 h/ l: ~ f" v# h( y }
: u! R/ W/ [8 u- N( X" Y+ n, N g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. X* {; B! ], v2 d+ B/ h
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' T6 G: y4 t4 v) b
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. a! b. }$ v; q% {5 F9 E9 K3 X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );1 q& U! d9 C8 N+ F& E
( (CUser*)this )->AddTaskBar();*/7 S$ \% D- u u4 v1 L, w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 ^8 B6 H* Y0 F: S9 Z6 a2 X#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: [2 J. S6 c7 v) r$ z! Q0 o ((CUser*)this)->CheckHonorStat();
* X6 F$ X' v ^ p ((CUser*)this)->AddHonorListAck();& u7 Q* l3 w1 l+ X# Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);! y! ?- U! w7 R
#endif // __HONORABLE_TITLE // ′Tà?- f/ @7 M0 D- L( v& W
}
d0 ?) c) e: [#endif // __WORLDSERVER
r" K0 [, v( [% s8 G}
1 v8 Q4 S* @8 r' k$ [' F7 Y
- {4 x8 `6 h% v& m7 _然后你进入functextcmd.cpp并添加以下
4 u, ~1 Q' x. z u5 Q
" ]4 O# C$ M+ p代码:
) z: ^0 I; y' Z! [& k. H, ION_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* D0 }* u& [5 G! l* D
下面插入4 d1 j- r8 p' C, d l0 b% c1 d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * E3 _) l% e( e* \& E; r7 t
! ]2 g) x _5 {' l$ k然后你去; C# I$ `8 ], V% O7 K \2 u
$ T1 c% M. g# Z# O* H2 j* Z代码:
( q* f9 s9 |% B: k- c代码4 K' Z! s* c8 B' c
BOOL TextCmd_ClearPropose( CScanner & s )2 Z2 k J2 z7 ~- F
{
5 D* O5 C" F e# X#ifdef __WORLDSERVER
8 v4 d/ C7 Z: k* e- g CUser* pUser = (CUser*)s.dwValue;2 w) O: ~( E U: z" @3 j+ U
g_dpDBClient.SendClearPropose();* P2 n) p6 Y2 |; T9 `- E
#endif // __WORLDSERVER
: l% K/ G# l0 k- m5 n/ f return TRUE;* K! z0 z( ^6 y4 m/ Q: o( M
}3 C( D. y& k S6 @7 R% \2 K2 o
下面插入& f1 Z0 O( i2 V- F) }! c5 i
BOOL TextCmd_rebirth( CScanner& scanner )& @6 ~$ p4 y x! ^4 m
{
( l/ o# [% v9 `# C#ifdef __WORLDSERVER
5 N, O( t \7 i& \CUser *pUser;9 M: f5 z, v& F
pUser = (CUser*)scanner.dwValue;7 ^3 m, r/ h5 Z- l' }' \! V
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 l0 c7 D% ^7 a( d1 _pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* S. H; T5 j& C( `6 y
else
$ T& a3 x" R2 R; x) B6 W( f9 ]pUser->AddText("你还未达到重生条件!");& G( E7 ]/ M7 E% r5 ]( J
#endif
9 R0 O/ X. p$ D$ \return TRUE;
# b8 @8 i! M( A} + v6 z& F$ x2 e4 j* L- g& r v
3 L- K: n* Q; U g
6 [* s; `; _* u9 ?' P7 U
: D4 y6 l4 C9 u( `+ l
6 ~! h3 L9 B. u) d" { |
|