|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 R3 n" W# k6 h, Y, l: R) E+ y' k" O) o! P* a0 w
Mover.h
6 b! u% e9 W2 C: e7 c( k代码:
9 n' g% \ m! G& I- O; ?$ c找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: X# F; n. D2 E |6 ]! w( c+ _
: D1 [5 k4 t1 m) D" a下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) y1 I7 P9 o2 E9 M' n! G$ H% X" X
6 r: Q, V& O- K' M
然后你去mover.cpp添加( s$ S0 B' P Z, H
X& q& t5 | n* S J: B9 _1 I
代码:$ G' Z/ Z* y/ G6 D7 C7 m6 u
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 ~: u: @$ e4 J* Z7 Q
{
3 ]" F9 r; { h4 W# T#ifdef __WORLDSERVER0 {; }; ]) ?( }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ d1 l% d; ]/ X9 d4 X
MoverProp* pProp = GetProp();
$ F0 V7 @7 n* r; p$ N1 W if( pProp )
: ~ E2 t) \3 e5 l, G* O+ q0 G3 X {
9 k) L" X! U7 @! I" k! n& _2 g! s if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, A/ C8 y2 |$ i7 f7 ] {
W: z' @& t" g _ AddChangeJob( nJob );+ h/ i& i9 R3 k$ L! y$ R$ P2 p
}else{
4 G. C% p' R0 E q2 @" o1 R! z8 v return;' h* T$ h- M, k& O( t; h# ^; ~
}4 `9 F2 P0 w$ Z0 H' @. F, J( R
int nPoint = 0;
9 [, s: W/ ^# C) e if( m_nJob == JOB_MERCENARY )
: Q H2 M0 |9 c9 O3 C/ h5 I# ] nPoint += 40;3 L( ?4 J* e! v& K( q4 V
else if( m_nJob == JOB_ACROBAT )
! Z4 W- t1 i" O nPoint += 50;6 I4 J# S' l# C1 o4 K- Y1 R
else if( m_nJob == JOB_ASSIST )/ b4 O/ u. o0 Z9 A, H' c+ J8 O
nPoint += 60;
# m x9 C2 k+ y0 t/ d else if( m_nJob == JOB_MAGICIAN ). D% G9 O0 e) e- L" t$ H8 I; G
nPoint += 90;* S; \ l$ R* G* t1 b: d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): S5 d% \6 W: H0 ^+ g( H5 B
nPoint += 120;
- y4 R+ m7 B$ H. ~2 r7 T% V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( l5 F1 Y. Z; w6 [* A/ V% b7 ^
nPoint += 150;6 A( ]' x( @% I
else if( m_nJob == JOB_RINGMASTER )& r4 [4 _5 b) m; X! V* O
nPoint += 160;
, X# T. h$ p$ n- n1 p+ x else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) ?) {1 _6 Z& g( _) T- d9 n9 w
nPoint += 180;5 |4 z* ^8 l, @) W: Y
else if( m_nJob == JOB_ELEMENTOR )) i! X) V- T; h2 R7 q' w6 O8 s
nPoint += 390;4 `* K2 |$ P. V' x0 I6 j+ F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 P3 G5 K) j6 L nPoint += 120;
. _7 R- A! K y; Q' g0 P, Y5 \6 C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 J& i& O* b2 g4 ], p nPoint += 150;5 `6 ]5 [9 L) a) p3 I$ _ B
else if( nJob == JOB_FLORIST_HERO )* I3 P4 h# d5 g2 I
nPoint += 160;
+ M" |" t2 g. B3 m$ J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: E# c9 z% l+ L& |. B nPoint += 180;
8 N) m+ ?3 h8 y; Z) c. H" m else if( nJob == JOB_ELEMENTORLORD_HERO )" c# r& z- ?; x* a" m
nPoint += 390;
3 h+ Z5 p; o0 i+ ?2 E- N( e
5 t7 M+ ?# s! H& y' u3 A AddSkillPoint( nPoint );
+ T7 ?5 f) I) w, n$ _# m, x: V- E m_nLevel = nLevel;
% J# z0 y1 t9 D9 `4 @7 d
# C/ Y& Y3 l' A( u# i7 f9 x SetJobLevel( nLevel, nJob );. S% s# Y! n" O
m_nDeathLevel = nLevel;' o- t: ^# n8 \4 I" ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 U. t1 z& p* \# t1 D \4 F
if(IsMaster())
, t0 C k, {1 }) o7 _- M {5 u% ], t$ o5 i9 `! C; w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) g! H" L% T% @3 h
if( nLevel > 59 && nLevel < 72 )
f% w' J( o+ i6 _. j dwTmpSkLevel = 1;
; e% k' `. `) ^- A& Q else if( nLevel > 71 && nLevel < 84 )5 ?( v7 |! O9 a2 y( u/ ^& X" S
dwTmpSkLevel = 2;
: }- N: t% }. ? else if( nLevel > 83 && nLevel < 96 )
+ Q) f" ~' ^7 x* i- E# \! G/ B dwTmpSkLevel = 3;3 x9 f0 j1 I1 b" _
else if( nLevel > 95 && nLevel < 108 ), Y0 P$ T% _3 }# E8 _9 v, s
dwTmpSkLevel = 4;
( D* `- X8 a! I: ]& z7 R else if( nLevel > 107 && nLevel < 120 )
/ Z$ R5 |( B( @; T: a dwTmpSkLevel = 5;
9 U s' a0 X) y3 l! Z- ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
, H P( S0 c j5 | h, e% c0 U { 2 j* ]! R/ F8 M/ E( ]2 X8 t, b
LPSKILL lpSkill = &(m_aJobSkill);
& d+ {, i7 a' o |0 ]! O& }. q if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ H s( z3 ~5 ^ {: ]7 }( ^$ F) o' x) n. U5 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . E2 L/ D" d. A, Q! }; g: `
if( pSkillProp == NULL )" z6 x @: y' F- P4 f
continue;0 Q- d# K. K* z4 p# X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- R4 d# \; q$ s' p2 ]* r continue;( \# v3 i1 _& U! Q. Q8 X/ z
lpSkill->dwLevel = dwTmpSkLevel;
7 ~0 Z- Z7 t3 D$ `1 m1 k }
) O5 p8 @, m/ T/ \) x0 q9 k }
& d& m2 q( g' T1 {4 a- E; a f8 l }
/ s9 W# y! W" Q. ~# K else if(IsHero()). |3 \* i% r3 B$ C
{
2 V" p! c; D0 O f for( int i = 0; i < MAX_SKILL_JOB; i++ ) . \& O+ k0 X: Q# l* K
{ 9 m c9 m a1 I, y
LPSKILL lpSkill = &(m_aJobSkill);
4 m1 e k0 V* l* {9 t5 _- E7 E if( lpSkill && lpSkill->dwSkill != NULL_ID )1 I! F c* g- U3 X
{
' C( _" y6 [2 t* _5 C9 g5 j0 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 G* m0 O S. u/ b. q1 Z' x
if( pSkillProp == NULL )
* I+ j$ j/ h& l+ K6 p continue;
$ @1 C" Q; k1 X9 V. ]" \- v% c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" ?( |0 Z! o3 N: \# ]
continue;% G2 ^" d$ w# I: t$ ^6 _) ^/ y1 O2 q3 D
lpSkill->dwLevel = 5;
. q. n/ S% a/ C6 ^$ x }( y$ e. Z7 Z- z. u/ E7 K6 Q
}
. D$ R+ r3 D: k }% Q$ F6 Y7 C* Z, v/ @
else if(IsLegendHero())) A+ n- p) F6 s( L) C. j" `
{
2 l# Y3 |- t g/ v( r0 I: o for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 j: ~2 Y8 T! Q: N
{ 1 ] n0 l" \) b i
LPSKILL lpSkill = &(m_aJobSkill);' c# v* U' U/ r0 m0 S o+ Y1 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 U, b, ?( f3 [, X+ g! _ {
# H* N+ d( q5 u1 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 u- Y; d. H% a2 b# B if( pSkillProp == NULL )5 q ]2 u7 d5 W. i& ]
continue;, {% m4 \' W5 c) O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) j. x1 A, T" O) q
continue; F1 \3 e( l& u2 `7 ?1 m+ C6 {
lpSkill->dwLevel = 5;6 C6 ]% n. w$ I2 d* y( a4 d
}% N8 d% r7 v4 X5 i0 J
}
: ?9 C% i' D- C3 f7 d- K- B }
# ~$ q5 r/ \% X# ], H2 x5 s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 _/ U8 e) C! n: p if( bGamma )/ a9 x5 L& ]9 _! n
{
: N J5 ?* ^3 [8 P* T8 D/ T m_nExp1 = 0;
3 m: ^* w, h6 U* ^8 f$ m }9 Y+ q5 m& t9 i# d6 ^
. T2 J4 C8 I0 y! V; F$ L& r
( (CUser*)this )->AddSetChangeJob( nJob );
# O) j4 t4 r( R# z M g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) W4 K7 |' i `' P# X* |7 j m& d8 w& Z( H- A
3 T7 S1 r' g5 V1 y1 {% M
#if __VER >= 11 // __SYS_PLAYER_DATA3 k5 U3 x* H+ w- e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 Q* _! I, f: v: x- x% [7 ^! M#else // __SYS_PLAYER_DATA1 v; \- K% R. P7 Y/ T
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ \: a% U0 C1 i" h2 J4 g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) P' q7 n& f; V* j& U& u& `3 I. [ if( m_idGuild != 0 )
9 C# v5 G; @; b3 I; q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) m% z; u- C, p# k$ q$ i#endif // __SYS_PLAYER_DATA6 w0 y% c, S% }4 o- b' g. p
SetHitPoint( GetMaxHitPoint() );* Z$ R" x4 R' N! p; p# I( _$ Y( l
SetManaPoint( GetMaxManaPoint() );, J, X8 V- D) B* \
SetFatiguePoint( GetMaxFatiguePoint() );
+ E" k* z3 y1 U0 a z1 O9 K4 \# e A if( nJob >= 1 && nJob <= 4 )
4 C% c+ E9 S% I* \0 `, p {" }( \5 F2 _1 O T7 A# |+ p3 o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 b: L; T3 W$ V( u; Y m_nRemainGP = 28;
3 f9 l* c* o8 Y8 `- o6 H }- N; f) v7 l1 `* M1 P! Z8 a
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); {0 e$ s% q7 K; Z8 v. I
{# P$ i, P- W0 D
m_nRemainGP = 118;
+ f1 ]% W& x! c //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 k( b6 l* O- X* Q. `7 p) n m_nStr = m_nSta = m_nDex = m_nInt = 15;& ?' F* E, p- d4 x$ r
}9 E! M* q8 t$ K
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): x) r/ l" _' ]2 r5 G
{
+ c9 C8 f! w% [ CItemElem itemelem;
! B/ _* |+ q2 o @- D itemelem.m_nItemNum = 1;& u: n3 G5 H, x5 F
itemelem.m_bCharged = TRUE;
) S2 P$ e! b$ i$ J5 K' }% b+ X# @ BYTE nID;
# v0 ^# u/ T# i; k7 O2 Z% {( a$ u- q1 }4 I
if( nJob == JOB_MENTALIST_HERO )
7 J0 }* |# s3 O/ ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* Q$ w0 K7 i. r v; l* ^+ H' ? if( nJob == JOB_FORCEMASTER_HERO )2 q, B0 V8 K* c$ [2 {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 H7 ], J8 Q: U; L' q! ^1 x Q
+ C1 }2 ^* @( \. ]: X ( ( CUser*)this)->CreateItem( &itemelem, &nID );- _; K/ f. `" P8 f# K: k7 |. D; b
}
$ `( K2 M- `# X4 i g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 C! |# n5 P* a; S+ V! s7 {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" P- Y8 q6 Y# t5 Y: b3 q$ @
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 s! E& i! y; q2 l% r /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 @) M$ [; R8 d2 A ( (CUser*)this )->AddTaskBar();*/
( V; d+ f8 z5 F, @; Z- @: t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ J# r2 E4 z; g7 _! |& D: A, R/ v( \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 u( U$ u4 ~8 l& b ((CUser*)this)->CheckHonorStat();
2 s: t; g) C8 I: x$ q/ M$ n ((CUser*)this)->AddHonorListAck();
W+ Z% t% L& }- @, _7 p g_UserMng.AddHonorTitleChange( this, m_nHonor);' @; X# X$ ^8 ~6 }0 ]. N' E
#endif // __HONORABLE_TITLE // ′Tà?
; ]4 b; m% `. S. I1 U }9 D# I, c& u8 |4 x( o5 z6 Y
#endif // __WORLDSERVER/ U G) i8 y7 B# M8 _: y; E
}
* N8 `; |! V9 I4 C+ y
6 G9 V( W0 J6 d5 p* @然后你进入functextcmd.cpp并添加以下# @6 x) f" Q" [& q% P9 o2 s
0 Z' O; V1 ?0 d+ F" p5 D代码:
$ k3 I! d9 J7 a2 A" FON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 P8 O" A2 }" D$ r6 [0 {下面插入7 ~5 c+ W8 D, @$ s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / z1 y! h0 R: c8 b
0 }# W( M! v6 B
然后你去
3 Y+ z4 O+ b1 S- P+ k- k# B* ^. y' W
代码:
' m& ~. y1 X* o1 |1 @代码
- O/ [; ^. _* r- ]9 P$ JBOOL TextCmd_ClearPropose( CScanner & s )4 ^6 h, N W# e. Y! _
{
6 S1 G% ~ }8 {5 C1 }) O' ]#ifdef __WORLDSERVER
- W& j6 ]7 o6 [; j2 h CUser* pUser = (CUser*)s.dwValue;3 x* s" X9 n* H% e! T7 k5 d
g_dpDBClient.SendClearPropose();
! ~$ x) @6 T5 c4 q+ m g( ?8 U#endif // __WORLDSERVER: ^5 @. C s3 }8 ^# }$ k
return TRUE;
4 ]% b+ n7 {6 U* f}6 h# `5 ?. E/ Y$ M; h
下面插入8 i' b ^6 v8 G' K! ]! g# j0 \
BOOL TextCmd_rebirth( CScanner& scanner )0 c0 G9 a( j; P1 N& B& h2 h1 x2 B
{
" B+ n* N" E$ u- V+ p/ q! G2 o#ifdef __WORLDSERVER
, V- G8 j/ @) vCUser *pUser;
; U- f3 R& o$ ]. I/ i7 WpUser = (CUser*)scanner.dwValue;
- A7 s G" A2 V& Yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 B! \- i+ ^$ n- i7 X! J OpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 @* S, ~/ {% W7 E5 T( \else( p" J' R3 f$ \; m; t
pUser->AddText("你还未达到重生条件!");
% Z& o% @& v3 X, }1 Z6 q& I#endif. H" ? j$ w3 {
return TRUE;- H6 u) I2 s6 x- P% `. a3 Q* W
} ' t1 A1 b" t4 M! A8 T" p
+ j! \8 z# a* \8 z, K: m v. f1 K
+ H; f+ z' s O/ A& t6 b4 D
% V# Q) F& C8 U9 x+ ~7 H' m0 Q1 p, g) Y; B
|
|