|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 n* }# I/ r+ [
2 y$ d/ W* J4 s7 q2 tMover.h, y: W0 v9 @. _- X7 i# e! _% d* k
代码:+ x( w E% {. J+ o, G" d4 b; I# Y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 F/ C" Z# C z9 o7 t5 }! E- J8 F7 X; G
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; E# l, b* O( E. D, k% r
! q2 Z" G* ^! @8 W/ b; g! W' v) M然后你去mover.cpp添加
8 l! H9 y! l- s( B1 P9 d3 H# F e* ` y$ m$ x5 l3 e
代码:' `) n, f5 \3 a5 b' O% `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 i$ x( q3 p3 b2 F% w: R{9 R% h& P: m( ~$ r( |& B2 L
#ifdef __WORLDSERVER4 }& m4 X. D# B5 Q" j
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% u9 f; v' D/ {( N MoverProp* pProp = GetProp();2 u9 e! x+ ^' m$ M2 o, ~
if( pProp )0 A* g+ h M4 c* c* C
{
0 R. D9 e7 X3 t+ }$ A if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' U: j. d& Q0 s" ]6 G {
# x# q) t7 j$ Q' U AddChangeJob( nJob );6 n( y9 R$ A/ b7 M- q
}else{
' _5 k, I# V. |7 C return;
9 A, ^) |' X+ @( ]; G: j! Y: ~ p. v9 W }
$ j+ i$ ^3 g7 _+ Z! J! W' r& _ int nPoint = 0;
& g* y0 F+ R7 U; m% l- L3 I if( m_nJob == JOB_MERCENARY )
8 V0 U) H% U' T2 ~1 E nPoint += 40;. h# y T; \) v/ d" \1 I% Q
else if( m_nJob == JOB_ACROBAT )" g2 p7 W! O% k
nPoint += 50;
1 O& D5 U( L w1 O0 c& W. T9 H3 y else if( m_nJob == JOB_ASSIST )+ L# s W% c! h4 ]( q3 ^
nPoint += 60;1 p/ n4 w* p# w' f0 }( M
else if( m_nJob == JOB_MAGICIAN ) F }0 V E+ p k/ l5 {# {$ [* b
nPoint += 90;0 _8 I/ g+ W6 \; s$ U& e; ?7 Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! O; u: X3 @! @( {" E6 H- K
nPoint += 120;+ g4 |- i3 t! v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 i+ r' E) _1 v# {* h* f. f( u nPoint += 150;5 @& ]) \' |% l
else if( m_nJob == JOB_RINGMASTER )
9 W2 u, ?3 @$ T' ^ nPoint += 160;
/ c' U) K" H' {/ B8 D8 T; _2 _. F else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 X. |9 ^( N$ e9 w _ nPoint += 180;
' n. h% I7 e; o6 j/ d* P! _ else if( m_nJob == JOB_ELEMENTOR )
+ I' R# ~3 V5 ]7 I nPoint += 390;
7 [6 l5 a' r3 ^) I T1 Z2 i else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: ]$ J) |4 o3 f4 Q" W, _& |- S nPoint += 120;3 K0 L F; S9 r( B& ^' |
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
. c2 \/ _1 m; W% A) M( _ nPoint += 150;
3 j5 L5 a: m u7 ] Q else if( nJob == JOB_FLORIST_HERO )
% o3 `9 A6 `- _7 H6 s# y nPoint += 160;
8 b; O ?8 x( G! t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 e* A3 `: L) c" `5 d! v5 [6 U% f
nPoint += 180;
* m& O- I. t( l4 l: e- ~ else if( nJob == JOB_ELEMENTORLORD_HERO )- s8 A1 i. q: j
nPoint += 390;
$ J% `# ?1 o3 t0 L, Z. A- T6 k/ U+ n" ^# f1 k& h4 d
AddSkillPoint( nPoint );
! z( u9 o9 g4 `3 ~# ] m_nLevel = nLevel;
* [2 H, X: l, w4 d! w: v& x
) r$ K& R# V+ n- U1 y8 H" }, g SetJobLevel( nLevel, nJob );, R# v# ^, x# ~$ Y( S
m_nDeathLevel = nLevel;; V4 @: T! J m! D6 g( i
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 t5 z9 G4 `! S! Q3 B, i3 g! c
if(IsMaster())2 _6 q2 A/ }1 ]% k! G
{7 T$ r1 r, c# {" e& X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* j1 ~0 |0 T0 q1 Q' q if( nLevel > 59 && nLevel < 72 )
# Z: [3 A; h, A; D* @) W: [8 v" d dwTmpSkLevel = 1;) R7 z$ W- V: K7 t' ?2 H/ J( r- E; U
else if( nLevel > 71 && nLevel < 84 )
5 c: q/ J1 I; X8 d: | dwTmpSkLevel = 2;
, D- s) @% [$ T: A( k& a7 C. @ else if( nLevel > 83 && nLevel < 96 ); C- s* `# E2 X
dwTmpSkLevel = 3;
: i$ @, G: g) N3 r- U else if( nLevel > 95 && nLevel < 108 )
7 e7 @! T2 W& N# ]3 r dwTmpSkLevel = 4;
: F# p9 J9 q, ? else if( nLevel > 107 && nLevel < 120 )
# t& Z S+ U1 C7 v7 I- F/ I x dwTmpSkLevel = 5;! B; o- M! E% Y _1 @# |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ y. P1 E7 n3 S% v5 R. t, x { ! A$ k" w3 p5 e6 t
LPSKILL lpSkill = &(m_aJobSkill);
! Y8 D. w& @8 S/ t- p5 U, { if( lpSkill && lpSkill->dwSkill != NULL_ID )/ Z9 Q: U2 L. N# P9 z* z# X9 h( x
{/ t, Q9 r' S* t+ _- \( T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 b, f5 p- j$ n& I if( pSkillProp == NULL )
! R2 J6 m, E9 I K K) a$ h continue; p% p2 k9 R* B8 q* b# j/ l3 X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' L' i4 k# S! [5 |
continue;4 E* X% R1 _7 N7 G- X
lpSkill->dwLevel = dwTmpSkLevel;
1 U8 Q8 q/ L9 S. T) _ }
3 p. w2 w& z) l/ r6 l+ y }4 S3 t& J7 d7 [$ ^) \
}- n" u' V. F5 [' X: }6 x/ n
else if(IsHero())
! k% R4 t! _3 A- V {7 h0 T- u) C7 P3 I5 B! g/ c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) v1 S; Z/ b/ @) a4 D {
0 i5 F; Z4 l/ f% c9 L LPSKILL lpSkill = &(m_aJobSkill);
! y% ]! J# u6 `& P9 K if( lpSkill && lpSkill->dwSkill != NULL_ID )) @; o: A/ v( f, s! f
{& _1 S l$ a2 f* C9 f( F. b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 d _# L& ^- i( y5 m# X
if( pSkillProp == NULL )( V7 [) Z2 f9 p9 [7 M8 t" s
continue;
. a1 ~$ w1 L2 r4 d, R, g) b/ k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* L# u( E: _9 P) x continue;" Q- P1 M$ a, E8 o% x
lpSkill->dwLevel = 5;9 x |" Z9 }2 Q
}
O4 e( \) s3 b8 | }. _& \4 x, J! [. ]: ^, X
}
' y9 w! P* u! M" i else if(IsLegendHero())
4 O/ i' g# K$ y4 T {: k0 v% z1 z3 ?7 u3 t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 J* E4 j! y1 E8 ]' S5 G9 F { % v3 \5 ~& h4 i
LPSKILL lpSkill = &(m_aJobSkill);% v) _5 D( b# f) t8 T) B+ c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ F% P& b8 n/ _ {
- Q- d" t: R- s8 d/ d, P) | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 w! T: d. ^# r+ n( Y- E( h4 j5 R `# d
if( pSkillProp == NULL )
" g! l+ }" N0 b- V/ O' _. J continue;
! s x% ]) d; ?. u: M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! E: E$ f9 V2 q" g! `1 d, ] continue;
0 R) H5 b5 b& W lpSkill->dwLevel = 5;
/ M$ x/ I, M6 q }' ?' s7 N q( m2 \9 _+ R
}5 {3 j. ^9 I2 W
}5 H/ C' Q0 H; `( r; C5 ]
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 @4 O: m8 n+ m4 i" w% A$ u
if( bGamma )
0 h5 b6 \2 Y% |) x- g {; e# r7 R" W% e3 B) i. C
m_nExp1 = 0;
2 S5 }) T9 e `4 j5 K2 o } A0 `$ h( s. k5 S! _6 m0 l
! ~# _, w0 X+ k! J( C% y ( (CUser*)this )->AddSetChangeJob( nJob );" s! I. j! F" W) _' I, D1 O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% x, h2 U: V" L. G0 H. c
% ]: M% x* `/ ]2 Q- E9 G1 P) ]5 J+ Y4 E
0 z* W( ?6 \6 U2 @; e4 j* ]
#if __VER >= 11 // __SYS_PLAYER_DATA
& [) r% X$ o8 b+ o1 d: x g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 \1 o) J7 K9 r6 P#else // __SYS_PLAYER_DATA
! m5 G8 H5 w2 \: X$ L6 j* N g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 b8 h3 Q1 q% {7 x8 Q- e$ A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 V( |, \6 J) C! I2 r% y d. E
if( m_idGuild != 0 )
2 B. d. g% R/ N7 L0 K8 j g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 |& \4 k) ~+ a#endif // __SYS_PLAYER_DATA
4 D9 K3 q+ \& C4 Y( L$ n/ e SetHitPoint( GetMaxHitPoint() );% c( \# U9 `, ?
SetManaPoint( GetMaxManaPoint() );
( \4 a. B8 r1 |* i% ?$ N SetFatiguePoint( GetMaxFatiguePoint() );
* E' @. {+ Y! F if( nJob >= 1 && nJob <= 4 )
& p. s+ ]1 w5 o% G8 p) p {& _, k6 g- C" X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ h' B2 z \2 M1 @% a4 c m_nRemainGP = 28;
. p2 m7 H: U X$ n. H$ W2 ]$ r8 ] }
+ G2 a: c/ U8 p* p if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 O! g7 {* G3 u {
5 _# j; y: R/ u1 { m_nRemainGP = 118;- E! n9 {& z$ y, `1 x% [7 q O0 N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! `- b$ U9 K" }* n# K# J
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 X' P& x; \" u4 \# v
}* r9 }8 \9 _9 J) x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 H; c0 G: r8 I! R% @! A( o9 F {
8 u$ w' ]: j2 ~0 U! D5 J6 y/ | CItemElem itemelem;
* [3 |( P5 J# l+ I9 i* i3 P- {1 R itemelem.m_nItemNum = 1;5 M) ^1 P+ c( t- x3 ^8 p
itemelem.m_bCharged = TRUE;1 ~5 Y# g% G: ]# p0 L1 O/ w
BYTE nID;5 P" ]: w2 |9 A; f( ^* @/ _
- ?- X: y! @5 h8 m4 V7 S if( nJob == JOB_MENTALIST_HERO )- r+ d* `: o( A4 X1 O6 [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 f. X$ P8 n1 \7 d
if( nJob == JOB_FORCEMASTER_HERO )
& z) u3 k) i+ [ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% N3 k& t1 U3 F+ n6 a' Z
" ~$ W+ \/ b7 P6 C. t# {. y/ U ( ( CUser*)this)->CreateItem( &itemelem, &nID );3 u# O: D! M3 g
}% \, w3 c% b+ f0 ?
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 X( S2 l. v7 R: N8 m% D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 h. k8 \$ c5 }+ \/ ~3 K
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ \( I( H4 j* k0 Z" g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! z( ?; _9 Z- v ( (CUser*)this )->AddTaskBar();*/+ G/ G& Q) j& ]- v! _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ e2 c5 N. }) ?, {7 A2 ~5 z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 R: [/ H _, r) D ((CUser*)this)->CheckHonorStat();
8 R- e& G3 F* m- z, G9 P+ o# z ((CUser*)this)->AddHonorListAck();
( H3 G/ t7 o3 F# w g_UserMng.AddHonorTitleChange( this, m_nHonor);7 K# a+ g& ]. W
#endif // __HONORABLE_TITLE // ′Tà?
3 {' C6 p* [% G. U }& F5 g$ K" b" ^( R
#endif // __WORLDSERVER% X$ y5 x" Q5 m3 J
} 1 q. j! @: l& m! ~) d* j
9 N: U5 p2 l; E4 f- c; i8 `3 \9 T
然后你进入functextcmd.cpp并添加以下
9 G5 j% ^6 E* W5 {
: y: P+ g t# S7 ?3 q2 E代码:
& V: G/ c" _) R) hON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ o+ S o' ?' Q, N( ^5 f下面插入) ?, m* b% R: M3 L# Y# I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : D Y" K) S' u0 A& x0 Z* M
' t* G8 O7 Z3 r! Y& a4 A
然后你去! H- p6 V7 J5 n
6 Q' I3 c% O+ N/ M4 S9 }6 v
代码:
' v" k) b( p9 H代码
, e e# `( l( L- ABOOL TextCmd_ClearPropose( CScanner & s )$ W' O% R {9 ?
{
5 s) D y: w/ f5 w#ifdef __WORLDSERVER
1 M( x( d9 V0 S+ L* e CUser* pUser = (CUser*)s.dwValue;
. T& F( [. d; K% N g_dpDBClient.SendClearPropose();- T( O8 c" r/ L* k# V/ a" ~
#endif // __WORLDSERVER
* l) X+ @7 Y' g) W/ E return TRUE;
6 g/ @6 L8 Y' U5 t}4 q" V" {6 `+ S# |/ g a
下面插入9 {( R: H H8 r
BOOL TextCmd_rebirth( CScanner& scanner )
' y1 F/ M+ Z0 t* a6 |% E# {+ r{! v% M) w9 G' l$ Y" \
#ifdef __WORLDSERVER+ R$ t& E3 a7 J. L
CUser *pUser;
0 G8 N- V1 x. v- h- vpUser = (CUser*)scanner.dwValue;6 Z. \! \+ M+ Q' A+ n9 g8 B& c
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! D, B8 w* |' b1 j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) f1 ]1 W0 Y2 o" N/ x1 m4 [: ?else% c9 H0 f( \- t% w: R; F, W z
pUser->AddText("你还未达到重生条件!");6 U/ g/ _! U( i# t4 ? k0 [. N
#endif
9 F6 x8 D+ n# n/ L1 ]7 y) greturn TRUE;; z3 j, i& B/ N, H1 ^
}
$ N/ z/ @; M! h) C# J M/ S# l2 p& ~( p) c1 {! v7 p
7 _3 E$ X3 v B! m: b
; n8 ~( R' m- [! D
' B& V! k; {; A+ j
|
|