|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- a3 O7 w) K: n# c- z/ h8 \' V
0 F8 d4 I" A3 e8 A7 t
Mover.h* K$ q: b9 ^: {! {. C- X. O
代码:
; }" h9 _* P7 ?+ S找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 c) c$ P* ]1 M1 z7 a
1 x. N6 n, U0 N( P' o9 w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
% G1 \4 _4 ?% `; ]+ m
& D6 o+ q4 v$ F4 a) P. h7 r( e然后你去mover.cpp添加; }" U# Y. T2 I* o" X/ b" Z; w
* K! }8 }0 B& P/ z, A* n8 ]
代码:
6 y7 j& t) Y# K9 X5 `* J! W( e) k- Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: h. T5 v: y) \{$ z9 h& F. X4 d
#ifdef __WORLDSERVER2 W- C- m, G: h. |4 S! i! v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 V% a3 V4 j# \% Y3 s
MoverProp* pProp = GetProp();/ }7 I+ e& A( E+ f8 O
if( pProp )
/ _6 ]3 ^/ U- m/ x' e, L) j; I4 ~ {
) M3 d2 O! S( C if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 B8 U; j+ B4 t- m( e {
; ~. L: h* B. f& @ AddChangeJob( nJob );( Z3 s5 u- A5 k, E/ A
}else{! x- Y9 |; t. y; o
return;
! O C* _$ f0 O# I$ m8 R }
6 N( s- K8 y0 j; l' ` int nPoint = 0;2 [7 O' A: E/ O0 }' a0 g
if( m_nJob == JOB_MERCENARY )0 X* b1 [( }" ^9 E% x9 i
nPoint += 40;# {8 B( |7 P* Q }6 q0 `3 ^
else if( m_nJob == JOB_ACROBAT )+ q" l U g! K' S- n/ O# `
nPoint += 50;4 ]! L+ D) @: D* h
else if( m_nJob == JOB_ASSIST )5 x" E0 g* S2 ?
nPoint += 60;
0 z: [2 r6 P* r5 z4 F: ~ else if( m_nJob == JOB_MAGICIAN )
" I! Z2 o0 H1 l! {, v3 y nPoint += 90;
7 W1 |2 r3 ^1 M1 Y. Y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) @7 v1 K/ N# @! R$ w% E
nPoint += 120;
4 Z: @) I$ N! E else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), S9 F* X' Q9 r, S$ x6 G4 I7 y! e
nPoint += 150;
}5 W) v0 Z0 q) G% ?0 A8 q else if( m_nJob == JOB_RINGMASTER )
% ~ I7 I( L2 K: Y7 G nPoint += 160;
3 L a4 a" X3 o0 ^/ u8 @1 V4 ~+ T! \ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: [9 ~" i/ y P/ x& D& H7 J nPoint += 180;
6 o1 y4 M; W, f! \( | else if( m_nJob == JOB_ELEMENTOR )
2 D$ ~ J% n8 ^9 N" C nPoint += 390;
$ p6 d+ J- B9 q; i else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: S, L4 d/ z y8 { nPoint += 120;
, }( ~! H. S/ I. a0 t3 _ F4 n else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! w6 @: f' K* O3 C& j& Q* y. E nPoint += 150;' c3 t! l5 D+ W8 K" J( j1 l: S
else if( nJob == JOB_FLORIST_HERO )
# \2 J. Y8 t0 E/ l+ f: f1 `5 s nPoint += 160;
% M, Q- K: |4 k else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% G Z: R6 d7 q2 G. c$ X
nPoint += 180;
5 P/ b' ^4 P/ b, S3 _3 V else if( nJob == JOB_ELEMENTORLORD_HERO )' K- O! Q, \5 P' ~: c4 P
nPoint += 390;
* [9 i7 l. ^/ c" b* z- M8 |2 f5 ~% T5 l! q7 i
AddSkillPoint( nPoint );, |, J) n* n( m7 Z" d
m_nLevel = nLevel;) A7 o3 S+ V# A4 e
, b( R5 k1 N, N/ _ SetJobLevel( nLevel, nJob );
# V0 {9 H+ y, X ^7 g0 U m_nDeathLevel = nLevel;1 ^( Q) ?: `: T. D+ u; O( g4 s( ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) U$ a4 L/ C/ a+ @ [+ q: W3 D
if(IsMaster())% P1 L* }3 h, ]0 Y. R
{
2 Z" a, V" j' i& C& u int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 p! i: j: w; [# m5 i if( nLevel > 59 && nLevel < 72 )
% D6 ]7 ]8 y0 o( p" s z7 ~ dwTmpSkLevel = 1;
. O0 R6 w# }" E) y% `7 A else if( nLevel > 71 && nLevel < 84 )
! m3 s1 S" ^( N3 C$ p dwTmpSkLevel = 2;9 j- d1 w0 U e) }; e
else if( nLevel > 83 && nLevel < 96 )
4 g5 T$ y* q3 G3 K7 D# H3 P dwTmpSkLevel = 3;
$ m9 I' g1 y; v1 z0 s8 P. u else if( nLevel > 95 && nLevel < 108 )
! x, q. ~8 Q9 f- c" e1 a4 U) o dwTmpSkLevel = 4;
" H! ~' u. u! w1 v7 F7 E5 P0 I else if( nLevel > 107 && nLevel < 120 )& P% B7 u- |$ s: F ]( g o! z. g
dwTmpSkLevel = 5;
; k4 x3 ~" {8 y3 i, ^' Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
% c8 p" P1 Y5 {) C2 U {
1 T9 ]' t2 x8 |4 ]' q& D LPSKILL lpSkill = &(m_aJobSkill);
: o' m4 t! i+ a3 l" o if( lpSkill && lpSkill->dwSkill != NULL_ID )! P6 C& `; \$ J
{
2 E+ O- A4 G+ y5 C# L0 ]8 Z' G9 A* D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + e7 H. p+ X4 K
if( pSkillProp == NULL )7 ?" a2 `+ `) n2 E; ~, ^
continue;
9 C6 w5 u% x$ q( Y+ n; C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 `0 d0 B# `/ j continue;5 x! a6 b, B5 |" w" d5 z$ I' T/ _
lpSkill->dwLevel = dwTmpSkLevel;
( m# P4 F, Z- b7 c. f0 P2 ? }9 e0 C0 ?" ^( v% q: e
}+ G4 b- k8 @. i
}% F) d( s1 c# a! C0 B6 o- N% W$ }
else if(IsHero()). j+ ^3 i( X/ w
{
; N: p+ o$ o, }1 w k2 K for( int i = 0; i < MAX_SKILL_JOB; i++ ) & }- \! r- E, F) d
{ 1 b) z+ G& Y0 {3 Z- R3 @3 H
LPSKILL lpSkill = &(m_aJobSkill);8 J1 L1 b* ^/ G. [& y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 [! ]4 \: M$ l& G {
( w$ d/ y8 m/ ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" c5 ]) @+ B5 }1 ~/ h if( pSkillProp == NULL )( T* o! V( g5 G5 ^
continue;
) _( A( o: l( |" ?6 t; K+ Q* @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 b! X) Q. M' ^
continue;3 A4 b4 s! w: C d/ ?" K- j; \. ~
lpSkill->dwLevel = 5;
7 _9 T8 k% _% |; T4 \( A4 w }
* Z& k/ P3 @; V/ h$ `$ m2 b }
( c# C9 B. V9 H4 U }1 q3 P$ j: B+ n& C9 h* X5 P2 E0 o
else if(IsLegendHero())8 _- W3 e$ T! o( b1 m
{
5 b8 I8 a3 S; C: f: x# B+ w for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; D3 X* O! I+ ^) ?) ^
{
! L! O4 k$ ]8 V8 J' f# q LPSKILL lpSkill = &(m_aJobSkill);
7 `* S$ w; R% K5 r9 r if( lpSkill && lpSkill->dwSkill != NULL_ID )! N, W, D( E0 ~' {
{7 M+ v! G0 L' o- K; s0 R: T) r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ P4 t: q" j4 w if( pSkillProp == NULL )
9 W9 c$ d8 |' ~+ U2 Z9 H8 ^) [7 ]# A continue;
. u" b* z( W8 _3 I) T2 ~0 D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 E9 |7 }3 V. V* p) [2 {% i1 x
continue;
- O, l6 _" g2 O lpSkill->dwLevel = 5;9 y. |0 L! B A' F# p0 c' w6 W
}, W; V1 `! j o! D0 X! ]5 D# |, `
}0 s. v8 S# l* s& b# A& l
}# D( I! T$ \0 I! P7 o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. N& a8 o9 r% {$ H if( bGamma )
& g9 R% F0 c4 x* R- D2 f; Z {+ X. a3 M8 B- C4 k+ a
m_nExp1 = 0;$ d$ M N8 q3 n% L
}
$ a% e8 s. `5 A/ h; \6 u6 @+ ~" w, M. V1 [! j( x7 v+ V# m- L
( (CUser*)this )->AddSetChangeJob( nJob );3 T/ D7 h3 @: E- y. R0 L
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- U; ^" }* I" Y/ u" N1 b$ o) Q
0 ~8 j. T, x7 I) N# f
& s9 I) L$ d: A& D( B& h5 x#if __VER >= 11 // __SYS_PLAYER_DATA7 S; u6 u( g6 A2 @
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' t5 H* Q2 e& V8 }4 q: v
#else // __SYS_PLAYER_DATA
* m! y! b) n% S1 C7 v g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ m6 n; Q. h+ Q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, q$ y$ s# Z& R) e
if( m_idGuild != 0 )
, _7 I& |+ r% t g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 y1 Z! [! Z7 h6 e0 A
#endif // __SYS_PLAYER_DATA
! H: X$ ~: M+ e0 O SetHitPoint( GetMaxHitPoint() );8 i% o, I3 L+ x5 v$ ?+ X2 o
SetManaPoint( GetMaxManaPoint() );
4 n$ U2 g, Q* G SetFatiguePoint( GetMaxFatiguePoint() );2 T' T! F% X$ r
if( nJob >= 1 && nJob <= 4 )& i( N$ ]6 K4 q4 p3 E; j1 f
{
" I6 Z6 ~1 X R) g2 E, z m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ u8 X% j9 {% ~5 `8 R- | m_nRemainGP = 28;. { R/ u4 j0 c5 m5 P
}
3 R2 J1 W* }3 { U- D if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 A" z* b' z, r7 S0 V, w$ [7 y {, l: O, b! P" h0 _" @8 a8 @" a
m_nRemainGP = 118;
4 g$ B' f5 N0 }9 C //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. w) P. w3 r S
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 R/ B u S- Z7 y2 N7 ?$ @
}
6 Y3 I& Z* n$ \ C' M4 f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 Y9 i* j- U. I d0 t {$ s0 K/ P& a' m* c% X% l
CItemElem itemelem;
# {. H) h. P8 ?/ V( J itemelem.m_nItemNum = 1;
& Y- R: J7 _( g: s; w0 O! b7 T itemelem.m_bCharged = TRUE;
+ s' i( D* `5 y+ c% ^- i' p" d9 M BYTE nID;3 r! [& w9 V3 L& q* R
. j8 q V$ _' c8 a
if( nJob == JOB_MENTALIST_HERO )% p3 {1 e+ d+ x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- U/ a( E: P2 Y if( nJob == JOB_FORCEMASTER_HERO )
4 j2 s. m$ F" b) L: V) O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 t& s; m9 _# G6 P% W9 n4 y$ G
- K. n! m: i* M( W+ E( {( l* o
( ( CUser*)this)->CreateItem( &itemelem, &nID );3 Z8 Y0 Y! ^6 J, ?9 K* x
}/ j0 m) n1 w9 }3 | b
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% f8 ~9 I; g) F* o X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" K1 ~ Q0 e. l$ K. R5 D ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) ]9 g6 t5 D) U2 }* ?$ y. b
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( [6 r9 n# {; N- Y2 ^. P
( (CUser*)this )->AddTaskBar();*/
: v9 Q1 Z8 j4 c5 u* C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 c" q% _! e# s! ^% y2 Y5 G8 d#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) e0 b" R, L5 u1 g1 j" Y
((CUser*)this)->CheckHonorStat();) r8 H6 J& F( [
((CUser*)this)->AddHonorListAck();
( I7 @4 q2 n% o# s3 E* u' E$ F g_UserMng.AddHonorTitleChange( this, m_nHonor);2 P. a9 c$ {, I4 _
#endif // __HONORABLE_TITLE // ′Tà?. {$ q, h" V; |" g( g0 q
}$ u2 u0 n) x$ e6 F3 [
#endif // __WORLDSERVER6 V( s$ a1 ~8 y) C, K
}
1 b& c9 Q: h& G8 u& i
9 c; t' [1 ^) m3 m然后你进入functextcmd.cpp并添加以下: }+ C2 L' O$ b7 b+ z7 }9 s: c
( o5 g4 ^% |) e7 Z4 h代码:
9 g0 p; q4 u( N$ r% j6 k9 W/ qON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), \- A; c; j" m' o
下面插入
8 X8 P+ ] O" R: s2 F2 |' o% cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 u/ l2 ]; {; u: a& g3 K- I+ F' T1 A
然后你去
( [" B8 A. |; p3 o. b* ~
9 z5 _" A4 m5 I. u' t代码:
- S6 Y% ?+ @0 ~0 L& Q5 y$ J代码- O, E1 O' l4 D, F1 v
BOOL TextCmd_ClearPropose( CScanner & s )
3 o( ]1 v5 W3 ?. m+ m" a3 f{
3 e1 B1 r5 u: @#ifdef __WORLDSERVER$ c4 m2 x+ h1 h
CUser* pUser = (CUser*)s.dwValue;/ v- G2 D5 s6 L9 h: }. \
g_dpDBClient.SendClearPropose();
6 E' L7 Z0 x1 Z# p1 B3 _( F4 H#endif // __WORLDSERVER0 k! Z" j# j/ ^2 Y4 v2 X
return TRUE;5 x" \, S* p/ B1 @% ^3 x
}
8 h) b) R' ?. N- J: c- X下面插入
% j3 D( V2 D9 A' ]+ Q4 LBOOL TextCmd_rebirth( CScanner& scanner )
; E0 H& z: p0 S6 D5 h{) g. a( Q4 q7 O5 h
#ifdef __WORLDSERVER: _2 k5 [! d$ k. ?! o
CUser *pUser;
9 |: S8 p+ o4 D6 VpUser = (CUser*)scanner.dwValue;7 Q4 v% V2 _7 m: {: v6 r
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# |! y) ?+ Y1 cpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, H/ K0 p) p' P' B
else
" m- w L& b9 P, e! upUser->AddText("你还未达到重生条件!");4 e. Q' `/ p# ^% U
#endif! |1 T6 q6 L3 j- c) t1 y
return TRUE;
- o9 q4 |6 l; j& H2 h, C8 m5 v} + A3 Q+ F. f. m! e, d2 Z
, Q5 I9 U3 Y' W- N' `/ c
# v' v! w b) m4 [+ I- T H; S
9 i) C. S( w L1 M0 ]' P; ~4 X# K/ m' r5 @9 {" A! s D
|
|