|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; _, L' ~+ m- v5 e
& o2 r2 m5 r5 z& F s
Mover.h; Q y% U, I' {1 r+ [# ?3 m
代码:5 n! e. d9 m- V
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- D* ?5 b% k# e& [1 X8 i7 I! z
; O7 b% k5 r/ A$ T# e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : J+ n/ r/ C4 t- U* d/ {
1 V$ ]5 i2 p# h5 G" v& ?/ `
然后你去mover.cpp添加7 q) y+ x3 V4 ?# E
! u+ a; k2 P) w: Q2 c! I4 @代码:
8 h% M$ ^% B8 b2 \! s' wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ z ^$ ]3 h$ n3 _8 E* k% _6 B{
- U" e4 a# I b7 S2 I4 U#ifdef __WORLDSERVER3 i5 |$ Q% E. \$ S6 C$ B
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 I6 i! p* O* a$ |
MoverProp* pProp = GetProp();% O: P/ d3 t4 j
if( pProp ), H0 T! R9 O, x1 ^
{7 y- L! a8 z& v. i2 S- o/ j5 \
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 Y8 |2 _( s0 P( E
{
" y% a, O$ w. Z AddChangeJob( nJob );
' \+ ^# U; i. X4 R }else{3 f! L& _8 S: p5 O
return;
+ h/ \+ k' ^# _$ t, e }* j* f5 F: B% ~
int nPoint = 0;; }! i, x/ u5 \- @( m
if( m_nJob == JOB_MERCENARY ) E: s/ J$ q+ m4 l. t
nPoint += 40;
& e8 l- o% W: A+ |: M, X/ U5 ? else if( m_nJob == JOB_ACROBAT )' N0 }: Y; {* v7 z6 c
nPoint += 50;9 I8 i- `( q* Z" q4 a0 p" ]/ w Y* c8 b
else if( m_nJob == JOB_ASSIST )
6 t" {6 |) d! k. m- g# r: G nPoint += 60;
4 `( u1 ]3 V8 p, z else if( m_nJob == JOB_MAGICIAN )" T& l' Z7 ^ K8 w/ Q5 c3 t
nPoint += 90;0 g+ d. @4 n4 ~' h+ h! N8 ]
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* e# N* A2 L: N/ s7 X6 ? nPoint += 120;
( |/ r% b- [! M2 X" c2 B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 O: w; ?7 s5 o# H/ R- D1 N nPoint += 150;
- L- f) a4 W( z7 E, K) Z5 P+ W else if( m_nJob == JOB_RINGMASTER )( U5 e& W$ q( s. h5 F, j6 ?
nPoint += 160;( C( i+ F- ^1 [/ P) X1 F* ~9 ?/ n
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" O/ X% ^. C/ q1 W nPoint += 180;# ^% Y2 B }- v; J( \5 V
else if( m_nJob == JOB_ELEMENTOR )
/ _- P6 P( W% ^+ b m( i0 } nPoint += 390;
' h' c# Z M. [$ j0 { else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) b7 l% ]8 \0 Y, x0 N/ B+ t
nPoint += 120;1 ^5 S- O, F) `% E* ^2 e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- l [/ M( ^7 [ nPoint += 150;
0 I7 \/ H: s" F$ n else if( nJob == JOB_FLORIST_HERO )3 U" O6 s$ l% W; V
nPoint += 160;
' O& e: I1 D9 r else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ c9 n6 Y, M. N' E& N# _ nPoint += 180;
( M% s1 ?) N' z2 r8 |; g+ l1 I2 P else if( nJob == JOB_ELEMENTORLORD_HERO )! I6 ]( Q6 x1 \4 L! ]- G) E% g
nPoint += 390;3 ]& @7 D3 R( f4 [7 ~6 e; Q! {
4 X/ M) F8 t' |7 e
AddSkillPoint( nPoint );
$ E, P4 Q5 V" |( Y# J m_nLevel = nLevel;$ @% t- m6 q7 f, u
) g3 {- Z) \3 n$ F
SetJobLevel( nLevel, nJob );) @; {7 |: V9 R
m_nDeathLevel = nLevel;7 A$ ^( J' Q/ K4 H: v+ e0 \5 ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( q- _! A+ i* i& X$ \ if(IsMaster())( j$ A( `* I# l9 A7 S; _
{) {, b: F, y6 j% f; f8 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- r6 e7 }* t/ f
if( nLevel > 59 && nLevel < 72 )
g2 V& y0 N6 R" \1 [/ d6 m l" I dwTmpSkLevel = 1;
5 R/ P5 r. Q M- i- z else if( nLevel > 71 && nLevel < 84 )* d& I& g) C# Q: j9 ~! u7 o: K
dwTmpSkLevel = 2;
9 f9 u$ M$ J( ~& w- g) Q2 i! C else if( nLevel > 83 && nLevel < 96 )
9 H( ^6 R0 x6 u% J+ _- S dwTmpSkLevel = 3; n" c. |; r; |; Y: D1 @ x
else if( nLevel > 95 && nLevel < 108 )# f g7 ?; @; ~7 _1 S& T0 a6 N' S" ]
dwTmpSkLevel = 4;! b5 i) j# N: [- r- C/ X& k6 p
else if( nLevel > 107 && nLevel < 120 )
, D. l1 k6 ^9 j# M dwTmpSkLevel = 5;
3 U" t4 r+ p1 z) J4 T0 W for( int i = 0; i < MAX_SKILL_JOB; i++ )
* u: `7 y3 c: Q J+ { { ) O+ u F0 h3 c$ T
LPSKILL lpSkill = &(m_aJobSkill);7 u* y, ^% T ]& q, r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 x2 x- w/ j8 z {4 U2 z- T8 n' I3 D. D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" w2 }0 S h: F* ^ if( pSkillProp == NULL )
4 }5 R% Q& f1 e9 t% k7 | h/ I continue;! b0 y9 [% b3 g& {* E6 @& R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& E) E3 m* M. W continue;% o( {! P U6 ]% G
lpSkill->dwLevel = dwTmpSkLevel;& g T e7 H( z& A9 y
}
( K/ U, o8 D- e5 u8 e7 b% z* u }
5 _3 |. N( f, J2 w! p7 K }
' b8 E+ A( V/ j else if(IsHero())! {0 a4 ]% ]) _8 D% c. R
{
0 y$ @4 f7 {2 h$ t* p- U4 n5 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 {- f7 l8 i: X! @: }
{
+ M! A6 q6 L1 u* r1 U# L/ _; L LPSKILL lpSkill = &(m_aJobSkill);
4 I- j% A: ]: _$ K if( lpSkill && lpSkill->dwSkill != NULL_ID )- n; y, N; z) n" l+ y' v/ `. Z
{
* v- i" b- W* q5 T' z) X* i; h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " d' r- e2 b- m* l( t- H& h& j- y
if( pSkillProp == NULL )
, i3 ]8 O2 M6 x4 Y$ n5 d continue;9 _+ v7 f/ U! j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). i0 n [0 g! T3 Q2 v% B8 s
continue;* R4 v% c W, m0 H
lpSkill->dwLevel = 5;* a% F% {' O9 Z, h' [
}" L* E) X; `% K0 j# A; P
}
6 w' J( @$ a+ C: J3 n! N; Y& r }) Z: G: n% u' x6 _8 v* \3 L! ?1 k& g4 Q8 k
else if(IsLegendHero())- v$ a/ D! T) t) t" g
{5 [* F; B- B: A' T1 S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 E0 e; x' E) Y+ _% | {
- v! N" B( q( W5 X( t LPSKILL lpSkill = &(m_aJobSkill);
% d" ^; Q% } z- P4 F* D if( lpSkill && lpSkill->dwSkill != NULL_ID )0 e: ]% Y8 c/ {5 o
{
# Y6 b' U& M) A5 K# F& E, V8 F! t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 x# ]) Z9 ?5 K9 W1 U6 h
if( pSkillProp == NULL )
+ i6 L' w) P. D- N3 f( \ continue;9 G, b" G) \9 L) }, C$ H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ J7 [$ l9 `- k9 | [" j( u
continue;
' c5 j1 j2 u8 C3 H, ]& h4 n3 B lpSkill->dwLevel = 5;' O* _. a) b( p. P+ c7 ^
}* o: [ g$ e1 Q+ a
}! h3 I6 s$ C. v& \# \1 \! [/ n
}
! H. |) m- Z5 I9 }3 K#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" i0 X- V( U" w0 E: i if( bGamma )# L$ M8 u; }0 Q A1 }
{9 {: ~3 E8 h/ a% N
m_nExp1 = 0;( _! F) r7 X8 {" M/ \/ {. |
}2 n) @. o! F* \$ q
: b# u" H, y+ @, _1 l! n
( (CUser*)this )->AddSetChangeJob( nJob );3 `% B6 w J4 ^6 v1 o! a9 O2 e
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! U& d" C& Z- r% ^( T/ K0 t, B0 V5 i+ M% g- E) G4 o ]" d
# D7 s" T4 l( s#if __VER >= 11 // __SYS_PLAYER_DATA' [3 ~' j1 _/ Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& a# D) M& I* }0 {4 U7 u#else // __SYS_PLAYER_DATA
/ o3 t; j1 H& e. ` g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" `: ?( f4 n) u. [( m g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' `/ B$ \2 U" U, N4 y/ o
if( m_idGuild != 0 )
6 e: I: Z1 G, R# b0 s; l g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 l Z7 @- V8 w" D+ t#endif // __SYS_PLAYER_DATA1 G9 V1 |$ Y1 V9 ^0 g
SetHitPoint( GetMaxHitPoint() );/ w9 n9 r# t- b" U. O) a
SetManaPoint( GetMaxManaPoint() );+ D; E4 S! s7 R7 D' a6 |; l O
SetFatiguePoint( GetMaxFatiguePoint() );! X* ?& U2 T3 }5 Z, w" Q
if( nJob >= 1 && nJob <= 4 ). }8 B8 N" C2 g+ @5 x) Z
{7 g( c9 m6 p9 B$ U0 j _
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 w6 n9 [8 I/ P
m_nRemainGP = 28;6 U0 c5 j$ S; b$ H+ Q6 ]9 U2 W
}7 \3 ~7 I! M- s& |4 a+ O) _ o, Y3 M0 @
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 u' @$ ]* `# v O8 M6 q
{. |& W% w. |4 S) _ @$ S) g
m_nRemainGP = 118;# W& e/ |, n9 o5 l" H
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% m5 E: @5 n6 t7 [8 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" }* d# C4 E- _) N4 S7 r/ e }
8 p. r; U9 |5 Q; \7 I6 x if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( G" g& B1 |7 B4 v. z
{
; w8 ]+ g5 }) r CItemElem itemelem;
; E) D8 J8 x# ^ itemelem.m_nItemNum = 1;
9 J, }$ l0 D+ z( z/ r: ~ itemelem.m_bCharged = TRUE;
3 N- k# y) B' S3 M0 _ BYTE nID;
, l. ]2 q( X [- [
j) C4 y* y4 x% b) ~% Z7 U8 v7 J if( nJob == JOB_MENTALIST_HERO )
, X7 l4 m V, F! K" v$ x& O% { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ [$ ~" {- v* s6 r if( nJob == JOB_FORCEMASTER_HERO )8 \8 S/ A7 n; M# Z# G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
{2 s/ ? }, F/ |7 n6 ^# k; b) ^ y+ C S# ^) D0 w) ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );* {+ u; m3 K; V6 p- f6 s" t
}4 `/ v5 `& F1 ~- ?1 p8 O2 s
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) a0 O- H, ?/ z8 O ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 C# k: O+ A/ j ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# p+ q+ v; I) [3 o1 y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 j, f5 c W6 d4 K
( (CUser*)this )->AddTaskBar();*/
& H# w( Q6 u3 U R V2 O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# Z5 h, M o& ?' Q ?4 j#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" y1 y5 W' A# c( ]/ \, f7 ?- n
((CUser*)this)->CheckHonorStat();$ T0 U. e5 q0 {' h/ n" p
((CUser*)this)->AddHonorListAck();) h0 G8 V* R, B. q" Z6 ?. Q) K
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 F2 A8 C# i" P1 N1 l
#endif // __HONORABLE_TITLE // ′Tà?) Y. u9 ~" q! G& s0 Q
}( ~- i1 m- f4 h# Q
#endif // __WORLDSERVER+ g, Z. B$ @6 p. V# s5 F& ]
}
" f( W3 t: Y; k+ p- u+ K; m. J- [
+ ~6 t: h; B- @* I3 G然后你进入functextcmd.cpp并添加以下, I0 i: @- ^7 f. j& N8 E
/ ~& ?6 p' o5 \, }代码:
6 ^" T. Q& S ?, x, L4 i" VON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! ] }& w1 n4 I# v, f' N0 m( {
下面插入5 @6 p2 _2 Z0 e7 J6 c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 h# I0 U+ M, n* v, P
4 O& K4 s1 Q1 N8 _" H
然后你去
4 O3 g$ y9 Q1 o, a% h; N# i, k5 l0 M# g+ E" B8 W. q6 ^' v4 e7 [
代码:0 ?! i+ F6 @: \" P/ \
代码3 `% Q9 H1 Q. d9 P0 R, ?
BOOL TextCmd_ClearPropose( CScanner & s )$ A& x; J( @. \$ |: X8 [
{1 d& C [) q2 E
#ifdef __WORLDSERVER+ M) h7 u0 G T0 [. o
CUser* pUser = (CUser*)s.dwValue;
) l6 E9 O+ Y+ y* O Z g_dpDBClient.SendClearPropose();
: f; b w5 F3 P& \6 U/ A#endif // __WORLDSERVER
5 m) [7 w6 F7 t return TRUE;
& c9 `9 {) p" \: l& t' l G+ ^}
- l3 U& z& v) ^# b下面插入1 e) g [. i& r2 e! T; B8 t; Q) r
BOOL TextCmd_rebirth( CScanner& scanner )
$ i) c- ~2 k- F/ W9 ]{
2 v" x: H- a" c2 K/ G#ifdef __WORLDSERVER; f) _8 |* ]* f
CUser *pUser;" P" l) F# O3 ?$ o7 o2 l
pUser = (CUser*)scanner.dwValue;' d& H$ j" l+ y( f$ b) r
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( i/ W4 Y' {5 A, C* v+ I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) e' ~- g1 L6 @7 F; x% K4 d
else0 V: }) P7 z! K, T; m5 C
pUser->AddText("你还未达到重生条件!");& k; ]5 a' C" w5 u0 f; p
#endif
/ u6 ^ o L0 J4 ~return TRUE;
( [! Z! N8 R4 m# H* T} + ?0 n! W' y, f4 y: e
8 l0 e# B3 n3 q H3 {
" w3 O) H$ \- L# {; u H0 l
: F! \ D2 f9 Y% N0 [* U3 J* Z; E9 n3 ?, O9 }1 {) E. m7 J$ x
|
|