|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 n7 q6 k0 P" I) n9 Q9 `6 g
, x" q1 K( E8 [/ X
Mover.h
6 s2 `1 Z# o2 r7 K. p+ w8 S代码:
& t% b' r/ x* X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 g4 i5 L9 w& R8 K# c
) ~; ? R9 B; c3 m! K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 u; \: A% {6 [3 T
/ M2 r3 T( L1 j" c
然后你去mover.cpp添加8 Y2 c; P5 T( v( C9 y1 W2 x
: E( ~' l" z9 l代码:& G' Q9 ]% _: S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 }* M- p* G( t+ \. \1 c% ^$ l
{4 k/ ~2 Z6 |$ |+ M" R1 c
#ifdef __WORLDSERVER0 ]2 m: @9 u" W7 [6 X4 P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 ?9 G0 d' i& E+ z( }+ H
MoverProp* pProp = GetProp();9 \ n5 ]' J U- c
if( pProp )1 f. k! I3 U, N) z! |
{1 x+ B8 k) ]6 a) P: ~" t3 e
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): w$ x% o2 T& ]; h b: c1 V. k
{. Q$ n. A0 `, l' a
AddChangeJob( nJob );
, I2 z) h# [* X1 E2 j }else{
$ r! B0 z9 {& \2 E9 \/ Q return;! ~% G( f! a$ b* c
}, U7 q- q, @3 e' C2 { }2 a
int nPoint = 0;
8 v- n5 A0 J! J if( m_nJob == JOB_MERCENARY )
5 n- \6 e. d0 M nPoint += 40;! @* p" ?9 `( b. q1 D
else if( m_nJob == JOB_ACROBAT )
) e5 ?" ?$ Q; K, ^7 V1 P1 ?7 x: Y0 V nPoint += 50;
& J6 w" Y+ w( h/ m else if( m_nJob == JOB_ASSIST )7 G! k+ r; \+ p! p
nPoint += 60;
' ], P# D! q4 T# C* J else if( m_nJob == JOB_MAGICIAN )4 Y3 p/ f( O4 {
nPoint += 90;, l7 {- J) y. m9 ?" s. H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ y# l; M, y+ P& c% U
nPoint += 120;& I2 q; Q! [3 c9 g$ H( L
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& z4 [) j1 {6 H8 p ?& Y) v
nPoint += 150;3 E |% ?1 V6 z8 \
else if( m_nJob == JOB_RINGMASTER )1 _( h' v8 O7 V2 W
nPoint += 160;$ A5 p5 x& q2 b* V# q' G, {& x
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 e( Q& C" g7 z8 ^1 ^1 c% q+ Q7 x nPoint += 180;
( U1 R z* ]; p9 T. ?- R$ @ else if( m_nJob == JOB_ELEMENTOR )' l# } L/ D; y$ @4 ~9 a
nPoint += 390;. C) `+ l4 ?% L* N2 g' n
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ ?8 S& z, h, _# {6 D0 Q2 U
nPoint += 120;: b" y+ N1 X7 J. P S" b- Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ c, C( ], D6 c nPoint += 150;1 V3 j6 i$ L- b/ h( D
else if( nJob == JOB_FLORIST_HERO )$ c# v: ^: l+ H* E. @2 J7 a
nPoint += 160; G& Y) d# |; K" L6 b: [
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! ~5 m* ]% i9 B; _ nPoint += 180;
. |: g' ?, c I! h) x2 ~ else if( nJob == JOB_ELEMENTORLORD_HERO )) K4 O' b) T) d* V3 e8 b. k5 I. k( @. z
nPoint += 390;
* K6 ]7 b$ x! K- F$ _7 W: U B H: r' o$ I1 I0 C
AddSkillPoint( nPoint );
+ Q9 V( E! j! j0 r8 A m_nLevel = nLevel;: m- c* O5 s. e, O) g) a
; }5 S5 \: P- G- ?# @8 W SetJobLevel( nLevel, nJob );% K9 D k% Y H9 T
m_nDeathLevel = nLevel;* @$ z: o q+ f& O& }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 L- C; C$ }+ G! R# ~. e
if(IsMaster()), S* B$ `$ M) y# T$ _, B, w% O+ E
{6 M5 _/ n8 [, }+ _) v% I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; P: V4 K* k. B) f0 o" p
if( nLevel > 59 && nLevel < 72 )
5 u* _8 x7 B- A3 d2 } dwTmpSkLevel = 1;
* ]8 b5 @/ E2 |, n0 F: b# U- R& z else if( nLevel > 71 && nLevel < 84 )
/ y, u U2 M3 f dwTmpSkLevel = 2;
$ r% S: w: ]: ]' I, r: s else if( nLevel > 83 && nLevel < 96 )
9 N8 X" {7 J! Y' t! {1 u9 M dwTmpSkLevel = 3;5 S2 S! K! t8 {7 D* e3 n. v
else if( nLevel > 95 && nLevel < 108 )" m# D" \; h. C
dwTmpSkLevel = 4;2 }/ O( { T2 r' t7 ~0 p
else if( nLevel > 107 && nLevel < 120 )
3 j& B( I1 j# w9 ]/ i5 z1 Z/ T dwTmpSkLevel = 5;9 J, M$ P! D0 J1 h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% p) U+ M9 d2 T& w { 7 [/ t8 T# e+ P; D2 e* X7 h* h
LPSKILL lpSkill = &(m_aJobSkill);1 x. E3 A8 }* i. P0 D! `
if( lpSkill && lpSkill->dwSkill != NULL_ID ): Z2 P/ ?" |* F
{3 i4 a% _* i% G" t* d8 H. j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 \5 k) E: Q# `1 R if( pSkillProp == NULL )3 E6 z3 ~3 J# x& i
continue;* }* i& e/ L; c" M9 _* n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 G5 L' T* D& M5 V
continue;
, t4 n% Y- ]; T: x lpSkill->dwLevel = dwTmpSkLevel;
[" C' N% _) W( `* ~; n }
6 q R& Y2 l/ a1 M& l! v1 N }
2 |& h8 X+ c7 B' b% C6 @% b H9 l" F5 j }; a( F6 j9 l& e& e Y- D
else if(IsHero()). y! s8 A! b. ^* K Y: q9 X
{7 `+ j* P5 c/ C2 M4 `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( y2 ^1 w$ ]9 Q3 j) F) f; R& S+ Y4 B {
) D ~! s! ?8 M$ y/ @( S LPSKILL lpSkill = &(m_aJobSkill);! K& r1 m( ^' w) w1 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 N: o4 \6 e2 w; J {
* A6 [: L5 t4 ]* B2 l; K( t, \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " F. S8 n: k6 i# Y/ \
if( pSkillProp == NULL )
: ]% |# p" W0 P, b! K4 J: h continue;4 D A" o) J6 W: y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 ?% @/ l/ I7 V! x continue;
4 }- \/ S) {8 _1 i6 U- I lpSkill->dwLevel = 5;" \1 X# j; i6 Q0 [1 r+ O2 h8 { h
}
! p, m" S5 {/ `0 N+ ^5 {5 V }
, B- P& j9 `4 ^% ^4 y5 `* E: B. r }9 G7 @% y# r8 C8 o l# c, s o
else if(IsLegendHero())/ M$ u- n* f; t0 |
{
3 o3 a' ~ _" } for( int i = 0; i < MAX_SKILL_JOB; i++ ) - D" J1 b, r" U
{ . _0 o1 q( B+ E& P k$ g
LPSKILL lpSkill = &(m_aJobSkill);
. h. n& J* E7 z if( lpSkill && lpSkill->dwSkill != NULL_ID )* s0 c7 [, W. `- Z6 _7 {1 L
{/ V3 P' E: T: c& j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( p' Q0 @' `- t/ G) X! T' f
if( pSkillProp == NULL )
6 V3 e; e* P+ g continue;
; K7 G3 r* P, X! d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 o+ A8 t5 l G/ M( J1 \: H3 T
continue;; @3 g1 `/ c2 \
lpSkill->dwLevel = 5;+ g2 F+ W0 J8 ~! ]% |
}
3 ?2 H* @" K/ r; H1 o* M' e9 z; W* U1 h" ? }
1 K; u/ j8 {8 x+ M& C$ l4 m8 K6 c5 z, h }
6 Z# |8 G' a; c/ w! E/ j% t% H( S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' j8 t2 K+ s( Z( _+ z+ |1 u2 b
if( bGamma )4 w5 I, I3 S" z% I/ D" A( ?
{
, t7 J. d4 t8 o8 R3 d m_nExp1 = 0;9 o- m4 I) B& b- v
}
u/ M3 [: p1 ^' f6 ^, {8 g) ]- @
0 g& S b1 W* O; `! E ( (CUser*)this )->AddSetChangeJob( nJob );" v8 [: \. ^' `1 \( t. E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# X' p/ x! e8 j: y# R0 u
L7 t5 @) a0 T2 t- {; b9 K/ n4 ^/ @8 Z! I. E2 x6 @; [; h
#if __VER >= 11 // __SYS_PLAYER_DATA! a1 U3 f1 m: t! O+ u! u6 h7 K
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 {0 Z) u) J5 P% P; }. Y g) ?6 o#else // __SYS_PLAYER_DATA; t* {: K! ^; ]# G* Z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 |8 ?9 N; ?* j& Y: v
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 H0 N0 j$ b( E! z
if( m_idGuild != 0 )
5 Z1 B9 P8 H2 a. [# G* O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' A. L7 z% b" N0 }" {6 c& R' I8 T2 \
#endif // __SYS_PLAYER_DATA
( A4 y! C6 i, L5 V' P3 u0 E. @ _ SetHitPoint( GetMaxHitPoint() );1 Z" y2 _/ L8 \ R7 t- f3 E
SetManaPoint( GetMaxManaPoint() );
Y7 U/ i0 |% C: v SetFatiguePoint( GetMaxFatiguePoint() );
( o- D6 i x R. R2 q1 q% O3 d$ T2 R if( nJob >= 1 && nJob <= 4 ); l* W6 B* h/ M4 C5 I8 J/ m' I9 C
{
6 ^9 w1 p! f7 v& C$ ]- w- ` m_nStr = m_nSta = m_nDex = m_nInt = 15; b- }, `# M/ ^' i1 v2 w2 N2 q
m_nRemainGP = 28;
' e: Q* v# ?7 O& d _ }: Z% K# V& ]& s* H: _$ [' q0 _
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ i r7 z, }: j F
{
$ R3 H' Z% R+ Y+ f m_nRemainGP = 118;, y" c8 ~1 ^2 P' \+ q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* g+ C, a3 e% u0 _: D. J, A, d8 v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ W' ?6 z8 g; h2 U3 h) w }5 T) J. \! O4 I: `; h
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 q6 G1 D# x& `4 _ {
9 ?7 t: ?4 g* A4 |/ K' P' N3 X CItemElem itemelem;: F5 d0 f: |0 z0 X4 J3 {
itemelem.m_nItemNum = 1;5 z) P/ @5 ~7 p
itemelem.m_bCharged = TRUE;' |% p$ G2 `6 R9 D7 d( w1 ?
BYTE nID;
& t, A8 q# s! P5 b; B: l+ Z
1 u! X5 |4 W" ~2 T: Q if( nJob == JOB_MENTALIST_HERO )& G! J9 g/ L; s8 {7 t
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' n$ z* t+ T0 `! u _! U3 r if( nJob == JOB_FORCEMASTER_HERO )3 f6 j9 T! g3 H/ f& G7 W0 e
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; f4 M! H7 _/ c( G$ i" M- P v1 S; A# C. u- n2 K4 Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );; l; E( `; u3 V8 ?. A
}
$ Q. K; Z( Z+ Z+ M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 N3 i9 ]2 ]# O, ~ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 T; w' \& {7 m* x
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! b" ^2 ~8 J$ ^; i4 J
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ y# `5 l) m% r
( (CUser*)this )->AddTaskBar();*/
) P- ^8 q/ h8 \5 \0 j2 f: n; M ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. ^4 |/ s d3 e* E! q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) O+ X( s2 _# a' T
((CUser*)this)->CheckHonorStat();
3 ^. [( D8 j) l; l ((CUser*)this)->AddHonorListAck();
& m1 T0 Y! d+ y- S J6 ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);& Z+ H: F4 q$ \( }
#endif // __HONORABLE_TITLE // ′Tà?0 f' {- f4 c. n' x) j: \
}
8 y% F" ~/ j$ ?. D' h1 r& U5 d6 S#endif // __WORLDSERVER
9 C4 r3 g) ^) s( `} 1 V$ B6 ?& c; ^) R6 p- n1 ?# H
1 {5 w( W) D( n
然后你进入functextcmd.cpp并添加以下
' B- p% ^* n% i7 t" C, Q2 \/ m8 p3 n# [0 a& ~
代码:
2 N( o; U5 g; `/ h0 m- }* RON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ N, k, Z6 {, R) D1 P& K下面插入2 R" ^; F; k* F/ t
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" n, C1 r3 Y7 j$ q5 C' `: l: T
6 {1 F+ Q" Z3 \- v$ G2 V, [然后你去
) }0 k; k' q% ?( r% ~" y$ K
; O7 ^0 N2 L! O! |& [. V+ s代码:
4 t$ v j3 G( r5 e代码
, s3 K5 P2 ^7 HBOOL TextCmd_ClearPropose( CScanner & s )
8 g( i5 |# U( j5 F* U* d{6 ]" R+ k8 W+ h# m! I7 Z
#ifdef __WORLDSERVER
; W# x' p1 \# n% s. W8 a: b. p* `8 ] CUser* pUser = (CUser*)s.dwValue;
9 c T7 D7 b. E g_dpDBClient.SendClearPropose();' [" m" N8 |) l' _" t( F& O
#endif // __WORLDSERVER
0 |3 _8 M5 m" |# `6 c J8 |& E return TRUE;
/ p) K; L `' o+ ^" C5 x; t) q( r}
& F2 n: l/ \: U: n% b下面插入' G% M1 Z8 \6 M' U, p' }$ M$ Z0 b" w0 k
BOOL TextCmd_rebirth( CScanner& scanner )
; _* D$ M) A2 }' {+ q{
7 |4 Z, ` E/ U5 H! q* M#ifdef __WORLDSERVER% a$ l( |& O6 C1 Y( `" B
CUser *pUser;* D6 `2 ^" [9 @, U
pUser = (CUser*)scanner.dwValue;
* ?# W G9 J) K8 R4 p/ l2 M9 Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 u* ]& e" {5 V. cpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& j$ I/ F2 p3 @# s3 d# I
else
, p' z+ q3 g# S) gpUser->AddText("你还未达到重生条件!");
3 F! }& b* P5 |( I7 c/ e#endif& m4 r. F, Y& v$ i! ]8 c" w
return TRUE;
. O4 O% X( ^: S j# J2 }5 ?$ j}
/ l4 o) e5 r- w! {
' T) W, M4 f# c7 I: p( c' P9 Y" O. d0 v1 w( S
" W8 t6 A) `+ O' X) }. \# M
0 _2 P- m% |5 t) J8 _ |
|