|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 A5 ^$ |! u; C6 J% D: A P/ l+ j0 d# R. P
2 v2 V: Q" Z, \' J* q4 k
Mover.h0 F. N5 Q$ Z8 c# y& P" \6 L5 M
代码: G* D/ w& P2 v6 r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ m+ \8 r! q* r! ]' }
0 N" h6 i6 B$ O( E7 u下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 e9 ^; N# F/ u3 N+ d- Q% K
* B! a+ |. ^% v+ v& Q3 l然后你去mover.cpp添加
; a) Q5 G9 j$ O& I; |, j9 `" m6 O& O$ E1 b1 m% f; ]
代码:
7 x: [; n5 S9 o$ L+ r% l, gvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 f! F* r8 \$ [! @* ^& D$ v/ ^7 P{
1 E% r l* Y% \7 X4 n0 m7 J1 i% E#ifdef __WORLDSERVER6 ^% }+ u1 k n4 g# {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) \8 a% M8 I# x$ c5 u/ R/ i0 G, O
MoverProp* pProp = GetProp(); M7 _. B& h$ o- E) N, |7 [
if( pProp )/ n8 @# }, h' I8 s
{
# \5 L; G" i( D1 A9 U1 @! S3 F# I# M if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 `6 z& c1 m+ X' P- g( H {9 ~" m# @, N4 A$ c
AddChangeJob( nJob );
/ x2 m8 E. E& a* o" d8 U }else{7 h7 r/ e3 K3 U) u. N- b7 p
return;
5 X9 F* E, w6 O# w; _ }7 f+ |! m. ~1 N
int nPoint = 0;& C4 G6 d7 }- x2 o1 n
if( m_nJob == JOB_MERCENARY )
& k- @0 r* Q& X3 E$ [% B4 f nPoint += 40;* z9 `7 W/ _) ]4 y: D6 h/ U
else if( m_nJob == JOB_ACROBAT )' y4 @6 ~) H. w! F" g) I# d# U3 Z2 m6 ?
nPoint += 50;
4 g) x! y W0 X% R& R8 c) y else if( m_nJob == JOB_ASSIST )0 b7 J0 x4 a2 y& s
nPoint += 60;* A. b9 P$ M9 m9 E+ \
else if( m_nJob == JOB_MAGICIAN )
7 B9 p" M% x3 l nPoint += 90;
9 B0 ~8 b7 k {2 o7 P F else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 R$ w# _$ o# g8 V
nPoint += 120;
/ z& u) J! Z; [& N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ K1 x$ k3 l. w) c- U
nPoint += 150;0 ~2 `) M4 B; z6 w% P
else if( m_nJob == JOB_RINGMASTER )0 `6 t( ^ O9 W2 X" D7 Z
nPoint += 160;
& t& r$ T! A' N3 X% Z J1 [, ?! Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& H6 @8 E' K. i' X9 w nPoint += 180;. f" t- g+ e O3 A) V
else if( m_nJob == JOB_ELEMENTOR )
& [7 s* }, y2 {2 T+ g+ r; Q nPoint += 390;
0 y: v3 W8 T1 q& w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% `! H$ a9 K0 A. |* i nPoint += 120;7 A: s0 O+ X( i4 p/ ^0 }
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! b4 N7 f, G: J/ e* e
nPoint += 150;+ V5 J: G3 j! `. S1 _: U- K
else if( nJob == JOB_FLORIST_HERO )7 {4 V% r8 J0 \2 }/ `4 d
nPoint += 160;
. Z6 s* M! b9 B$ ^ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ P$ |1 ?. l% L+ Z3 s, K8 Y0 B: C5 v
nPoint += 180;
! V! J/ v g5 r' C else if( nJob == JOB_ELEMENTORLORD_HERO )
1 P( M1 M! n; M. M# P# j" \ nPoint += 390;% w! h2 l: J8 ~9 V( q
+ \# k% Z! s. l3 M( r9 ` AddSkillPoint( nPoint );
* V y- {' x8 l- C6 l+ {' U0 {0 ^ m_nLevel = nLevel;
1 H1 d7 k; x: C# s4 |% }* Z3 g( [: T( e9 O2 ?9 y6 ~7 M
SetJobLevel( nLevel, nJob );, c! s) N8 g$ \6 Q! b+ @( o" d1 j
m_nDeathLevel = nLevel;
% k: d$ ?/ N0 B3 [! R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 N4 ^9 g4 t) V1 y) ?
if(IsMaster())
% C+ b, W' J% Q& G( a+ A {
- \% D( I6 u" m1 _. p2 W! Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. d$ ^# r+ z9 A
if( nLevel > 59 && nLevel < 72 )
9 {/ c3 I) Q* N) B' F$ R4 } dwTmpSkLevel = 1;
# n5 B8 L: \; H) I) } else if( nLevel > 71 && nLevel < 84 )& @5 l. l8 r0 L; W# Z
dwTmpSkLevel = 2;
: a5 T+ O9 V# R: C7 A6 z else if( nLevel > 83 && nLevel < 96 )8 i; l6 Q4 ~3 s. k8 j% j* Z% w
dwTmpSkLevel = 3;
/ m# p+ F5 `( o% \/ b else if( nLevel > 95 && nLevel < 108 )
7 M' R- k! h8 y5 c dwTmpSkLevel = 4;( g' ]" V9 X4 m
else if( nLevel > 107 && nLevel < 120 )+ z' ]$ B8 k3 M. @3 h- \, s: w
dwTmpSkLevel = 5;
7 q2 j% g+ g4 B2 \; f( _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 D5 q/ O7 ^0 n2 P i
{ 6 Q* S t: c! Z
LPSKILL lpSkill = &(m_aJobSkill);
7 N' T ?& F+ Z if( lpSkill && lpSkill->dwSkill != NULL_ID )9 _1 [, r8 E8 F: b. \$ w& ]: ?, o7 ?
{8 r2 n. X" Y. h/ v, v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: ]9 }) g' D" E if( pSkillProp == NULL )
! Y7 N9 s# w; k/ q$ r2 P( G) x: M continue;
: Y6 {8 A; V. U, U+ X$ v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 v+ r* N! O6 ~, ^. } continue;
- x+ _, {- V6 K2 H8 J lpSkill->dwLevel = dwTmpSkLevel;
: v% ~5 g5 [7 A+ a0 R6 G- i$ ~ }
- m, W( I! C1 ?1 B# e v p }
# \0 @5 | E/ L% ?1 t' g# E; b }8 _& k. |) K5 ?5 \% {
else if(IsHero())& [) S6 L8 q6 d5 s
{+ N4 \# }9 q/ F2 i1 F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; Y+ k N4 u7 |9 M( K3 [. |4 Z; o( v { 2 ~/ `. n5 z0 D5 U5 E
LPSKILL lpSkill = &(m_aJobSkill);8 {8 ^ y r U' f+ T1 C
if( lpSkill && lpSkill->dwSkill != NULL_ID ): `1 S; ?2 L6 u& N
{, \3 X# W+ T) ?( y+ N7 g# z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & u- @( K" X! [' V( z8 G
if( pSkillProp == NULL )
# [. t4 ]$ B `6 n* x% D: X continue;- [, P/ E Q: r. r# p6 S7 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 Z _" ?& O, H2 r% ~5 a# B
continue;$ N3 Q4 j/ Z' g( t$ |% Y
lpSkill->dwLevel = 5;0 J" M3 n5 D/ M+ s: n9 P) L
}8 M1 k; b0 \( s
}
1 R0 s% h. }% z$ r u }6 ^- ]+ Q) W( P; Q
else if(IsLegendHero())
* y0 l g$ E1 r {
& Q& g$ Z7 @" ?8 R t for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ L4 r5 r* v }" J3 K- D, k/ L {
/ x% h2 f9 Y7 \( G' r LPSKILL lpSkill = &(m_aJobSkill);# q" q* i- r( f# c+ Q# Z0 |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* L4 x& _1 _' F3 O# M2 b {
" l. C0 `! P# _5 X4 p$ [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 Z' p0 Q- v, k/ B1 J E if( pSkillProp == NULL )2 a2 Q! d6 A2 z. G5 [
continue;+ i7 d$ s1 v" K1 E1 M& g* U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 u6 e" t/ y/ a% K& w continue;. X8 `( {+ e5 @" ^8 t" f1 |( w0 y
lpSkill->dwLevel = 5;' N& F% }' z- H! x' O! k
}" w- G' w% q9 ]1 U
}- b6 V7 e) n1 s. J+ L' h0 Q- q
}/ c; C# @% T7 {7 }& j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 }4 f: f9 A; V# Q+ Q
if( bGamma ); C3 i4 I2 S. k6 F* w1 s' g' H
{/ O* _% C& E Y
m_nExp1 = 0;) c: G3 c% F, F+ p' v6 k1 F
}
" G8 x$ p) K. t; |$ S7 O8 P0 u# ~. E6 g* c" @
( (CUser*)this )->AddSetChangeJob( nJob );: G3 C; x* Z0 l( \! D6 r5 \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 }1 b8 Q" |4 |6 \; k* N" a
; j$ i- @9 |7 \9 D/ ?# `5 [) P- u! y4 R( U2 Z9 v7 `9 H r
#if __VER >= 11 // __SYS_PLAYER_DATA
8 \, f# p5 k; Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' P) n) ?" p" s# ~#else // __SYS_PLAYER_DATA9 k* o3 `9 e2 p" s1 M2 l4 w2 p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
\4 a! t3 H9 ^! E5 @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 Z% L7 k7 Y# {+ Z* ]
if( m_idGuild != 0 ): _/ c. K9 j) A7 n2 Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. |# S8 ]5 O' @$ Y1 D$ @6 b#endif // __SYS_PLAYER_DATA. X) V+ C' Y" I4 K9 W; w
SetHitPoint( GetMaxHitPoint() );
$ _" F4 l- Y2 |0 m+ k' M. A SetManaPoint( GetMaxManaPoint() );
* N' E+ C+ o5 u5 L6 a' }: J/ S# k SetFatiguePoint( GetMaxFatiguePoint() );
+ ~9 g/ w$ l/ C: E" {1 Y if( nJob >= 1 && nJob <= 4 )
4 i; [: ~/ V# U* \/ }! [! | {
`5 W* O( ^- J. B m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 s0 V7 y9 P) Y6 g' V# U2 M m_nRemainGP = 28;( |! [' {/ \8 `5 g0 F3 L% Q
}* `$ h9 f8 _( m" Z4 x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 i& T6 m) L6 g. h7 q) W, e& m5 X/ J
{; Q9 v$ s6 l3 |% W! L% y# P
m_nRemainGP = 118;, [# f! j% c9 ?) ~0 t0 d
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 K+ H3 J+ C: S% V& c" w8 }
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 q! ^* R3 |: D+ n, m
}
/ b u% v! I0 Y6 L; y/ ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) n& ]1 o- u( a1 Z( s& n {9 A5 ]) F* ]6 s3 |
CItemElem itemelem;9 M" B, @; p r0 B
itemelem.m_nItemNum = 1;; A% ]" u0 Y" k, j4 m) v0 K9 w4 @
itemelem.m_bCharged = TRUE;
9 R* |) J! Z6 ~' D6 F1 y( W5 F BYTE nID;6 W" R* z1 C# j1 b5 A5 ?
) V6 `; v9 q& x" ?8 q! L+ ~" U
if( nJob == JOB_MENTALIST_HERO )
5 U" n# `8 X; t {: u7 ^2 g/ ~" `% X% M itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 j( ]0 S9 w1 R% q1 T' e
if( nJob == JOB_FORCEMASTER_HERO )
7 l/ R! d, U: ^' O9 R! G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 {* P7 ~% `' ?; Z. r) [) C3 s) r" W/ }9 e9 c5 k
( ( CUser*)this)->CreateItem( &itemelem, &nID );* v5 k4 J8 g! R; Y. Q9 F l% F% I
}" d5 Q" x7 \1 J7 \' o- x0 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 L9 H2 m/ Y4 E7 O8 |2 I# B
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" V9 K+ {0 N' h0 |/ [) N; P$ Z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );$ k1 \( z* e1 |6 v, a8 l
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% Y' k/ t+ Z' C2 _& n4 P
( (CUser*)this )->AddTaskBar();*/
8 ]' x! N& U; s7 \ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ U5 p+ x( S- W( ^) H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, q. a1 U1 d4 `2 ^9 F
((CUser*)this)->CheckHonorStat();
9 i( A4 l: H: C4 _; a, g; e$ x ((CUser*)this)->AddHonorListAck();& C% w+ x0 Z! p* Y' e& `6 |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! R% d0 q/ T6 f4 Y$ v+ U#endif // __HONORABLE_TITLE // ′Tà?$ M, f) ~6 e" B/ {( U* O8 ^
}9 z2 M* j1 j' m
#endif // __WORLDSERVER. ]6 ^' S0 s' ~4 }& y8 o) _) v
}
/ X/ i( @/ ^' V: K! @
" m: o' y; `0 h! ]1 G$ w然后你进入functextcmd.cpp并添加以下
9 Q9 e' q. Y1 T, w. d
. ]9 Q& F* J+ w: D- O m0 ^8 v代码:; \- ^3 l& d4 w3 o) Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ c' F; G! {9 F* m下面插入0 k, E0 U& L- }- w/ F
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* w- O# E8 u5 G* y B# f( {0 [
( r, }: l- q' q% A; S8 ~( V然后你去) r! R" ~4 c4 i+ W( U/ `. |% }& [
# e1 l6 p( F. C* ~# F: w
代码:
9 R; e. k0 o- P; r代码6 h1 P& V7 ?3 X, S% c% b
BOOL TextCmd_ClearPropose( CScanner & s )
$ X2 B* H \. L' Y3 j" ~4 x{& N" l6 | {; o, e: ~
#ifdef __WORLDSERVER: z3 e6 r* h8 b5 M
CUser* pUser = (CUser*)s.dwValue; }' u, h& ^7 c1 z; l
g_dpDBClient.SendClearPropose();+ c+ H4 R8 P3 Y. a& |8 l0 a% x
#endif // __WORLDSERVER
& n) @8 A$ l& s/ x! w) n return TRUE;( Y9 s2 k( x& Q* Y+ W- A9 u0 y
}. W& v& F7 X4 T; m# B
下面插入
4 }1 Q. `5 L5 R' a3 t" M+ M) f6 JBOOL TextCmd_rebirth( CScanner& scanner )
* G9 J: Z3 v. s4 K{
: A+ v. d4 ~$ O( w, X$ O" H#ifdef __WORLDSERVER
e0 i6 j r k6 ?3 ICUser *pUser;! K' C. ~( q3 a' P) N
pUser = (CUser*)scanner.dwValue;
4 O5 W9 ~, L" Q* ` pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 {+ p# K5 n: d7 Z% x8 Y8 {: EpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 R2 J. E7 c% T" r( s! u1 W7 _' t
else# R* d q& W" L1 {
pUser->AddText("你还未达到重生条件!");
- D) ~8 s) C" }8 ^# M, @& A#endif
/ J& w; @0 x( d! K3 E& nreturn TRUE;
8 y( R. V7 a' Y) W) G( r' P2 y2 H} 1 t% [: q0 K) \! y, k3 `
$ k P8 l" O X# Z
6 L) u$ ^' v3 ^% W7 Y" f
; X5 F; ~2 [5 l7 n6 A: e$ h* l6 }1 }5 R1 ^
|
|