|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' {9 b8 [+ _, y3 u. o8 q% ]) C( h" `, l: A( w. G. ?* \
Mover.h( p0 b: D( a: Z6 m: ]0 }
代码:( j( F% t# W9 N6 D+ {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) V" k6 r4 Z2 N2 R3 Z7 ^# d D. }( `- u1 ~/ h! z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" d7 `* b+ Y$ ?; l# f$ v# o8 a6 P- M( ~7 Z# C2 O
然后你去mover.cpp添加4 B6 ^( B: c8 ]6 N2 z
; S+ j V% W1 Q [
代码:" q( Z$ Q* c: C: w& u4 t& g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" K3 |/ y2 h6 a8 c# l
{
! @: r4 p; B+ Z# e& f' M#ifdef __WORLDSERVER
7 J6 v# [9 c9 w7 s4 h // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* O3 J: ?, k" W! D MoverProp* pProp = GetProp();4 e. f- }" X7 N f I% c
if( pProp )4 o X: _1 }8 O4 T: M8 U5 V
{
9 J6 }4 d( {' a6 e+ H; T if( nJob > 0 && nJob < MAX_LEGEND_HERO )) M! \" \/ j! Y) ?
{
/ r, ^" C( _) E9 t P9 Y" t AddChangeJob( nJob );1 M, `3 _6 E/ C3 R
}else{( ?$ B7 O& \1 v& l* ^2 h7 _4 ^
return;
. |& I4 c) G8 K }% W+ k) m( u N$ I4 }" V3 D
int nPoint = 0;2 x' \1 Y" Y+ y8 P
if( m_nJob == JOB_MERCENARY ) d' c) m) g7 @$ @ m! s, v
nPoint += 40;
7 ~" ~! ?! O3 p else if( m_nJob == JOB_ACROBAT ): A' |2 `( U8 G3 i$ i7 a$ b
nPoint += 50;
: D9 X3 i% ^1 C3 e else if( m_nJob == JOB_ASSIST )
3 f9 G- ~7 W0 q nPoint += 60;& q. V! Z8 v1 F [. `
else if( m_nJob == JOB_MAGICIAN )8 K( ` q: }2 [1 k: `) j7 _3 n
nPoint += 90;* z1 P% H: q1 H6 a/ R8 L0 Q- ~3 C
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): r- C6 Z" K/ s8 R8 v
nPoint += 120;
% H. J8 C6 x$ m0 J& q) ]4 [ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): {3 D( o! O1 c( F! N
nPoint += 150;; v9 W N+ V1 p8 s$ a* A# J$ T4 I" S
else if( m_nJob == JOB_RINGMASTER )$ h$ a( a) g/ r' i
nPoint += 160;
$ W" T8 Y r, b+ y2 p5 V" V else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 Y3 n, F9 X3 G" V+ O2 r7 v7 k( J nPoint += 180;. }+ X8 d# X. y
else if( m_nJob == JOB_ELEMENTOR )/ C( N+ P7 d$ g
nPoint += 390;
0 j8 u7 F% q3 t7 W else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) ]- @9 n* J3 T* P: j
nPoint += 120;# ~8 \* d" X, n4 g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( W7 W/ ~1 d6 ?0 ^- h
nPoint += 150;
! `. q. b- z. I/ H2 U; O9 H else if( nJob == JOB_FLORIST_HERO ): q; i, m8 V# B' D' |2 K3 B
nPoint += 160;
, `2 v3 K9 @9 K0 W else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( y% w# j3 W, @! K. K nPoint += 180;
$ W* V c, g8 k; e else if( nJob == JOB_ELEMENTORLORD_HERO )% m6 s# ?6 k* y& M# U) Q2 V9 u
nPoint += 390;: C0 a: `, j$ c4 w0 D2 j6 i" L
2 O" e1 e& ]3 w3 G: a
AddSkillPoint( nPoint );
7 t/ d% V, f0 c5 X' y m_nLevel = nLevel;
9 N* v$ p- p; ~8 x& M+ {& f8 Z& G+ g9 x" Q# q
SetJobLevel( nLevel, nJob );
* L0 T, H* b t9 N m_nDeathLevel = nLevel;
7 n: H |1 i9 P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 g( C3 r3 h$ j& d1 Q2 F
if(IsMaster())
b% }- ~$ V6 A- k* Z {$ B- V' Q5 i) W. B9 n+ z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; q/ f5 w' ?7 ^0 d* X& O7 K
if( nLevel > 59 && nLevel < 72 )- Q0 S* O% K3 D& ?
dwTmpSkLevel = 1;
- W: X/ s) i) }% J, g7 J! v else if( nLevel > 71 && nLevel < 84 )0 Y# L/ ~& W3 b7 H
dwTmpSkLevel = 2;
/ B0 d' K4 _9 M else if( nLevel > 83 && nLevel < 96 )' P* p& G+ _8 t
dwTmpSkLevel = 3;
+ R6 n& w4 j+ h0 | else if( nLevel > 95 && nLevel < 108 )/ B4 p' @' i, Q" r3 l4 a7 l5 l
dwTmpSkLevel = 4;
$ C+ X; W! Z. L& P1 |/ X else if( nLevel > 107 && nLevel < 120 ); A+ A! w* s. L7 B" }
dwTmpSkLevel = 5;
% O, g, }1 e1 g8 U$ w for( int i = 0; i < MAX_SKILL_JOB; i++ )
y5 v5 i6 p0 m& ~- R( k { / V f# k* F( ~! p6 G0 b
LPSKILL lpSkill = &(m_aJobSkill);
8 \2 _& M* j' V4 }" z if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 P$ F _7 H% L9 h5 \$ v2 w {
) ?1 M I# F6 f+ g3 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 F D) Y; ?! F1 h$ Q2 P if( pSkillProp == NULL )
4 L* L4 @( p. R8 @+ h. B6 H5 b continue;' k( r5 ]2 S* B3 K) a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' b8 s. ^, r5 O' ]5 D9 D2 l continue;! x; r* k9 e5 c+ X
lpSkill->dwLevel = dwTmpSkLevel;
% P/ T4 Z8 I9 a* W2 G# \& I, P9 ~ }
6 A9 R' E& w+ h }9 @: S0 e+ L2 @: s# n4 x2 g$ l1 l: W. F
}
: y- a# Y+ v2 d) L; y8 G else if(IsHero()): k5 I% ` }' t4 y; G; H
{
4 x3 U6 U S# Q7 w3 D for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 [0 X6 m) I8 q1 x% d f+ P4 } {
z! J7 z; l5 A. L# [3 t5 o3 Z LPSKILL lpSkill = &(m_aJobSkill);! f! d3 ~) m" v% y0 \# h* }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
m4 y3 s+ c7 i( u& S$ H, ? {
' I9 V3 _' C3 ?) ?. r, I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 k5 H7 w" E# r9 J
if( pSkillProp == NULL )
$ K- R8 m! K- I2 W. U4 p% p continue;6 X3 }# O; l4 @; o: L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ Q' H% R1 q' @) A. O/ U, U: y
continue;' S" a) K; Q: Z
lpSkill->dwLevel = 5;# c1 a/ c# C! Z0 R! p
}/ H3 ^1 l! q1 i7 X5 B6 {0 }( P: ]
}/ r$ c) y$ [0 b& M$ K a* m
}! B4 H4 @! q7 R/ t& x; z
else if(IsLegendHero())( }* z/ |; ]% k" g" Y+ }, p
{) b& L! H1 _" @+ t3 `1 f, B$ T9 T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 B8 D; z3 Z R/ l
{
1 h! c( F- t+ N2 T/ h2 V* F LPSKILL lpSkill = &(m_aJobSkill);
3 _, U0 ~% Y+ D% q V if( lpSkill && lpSkill->dwSkill != NULL_ID ), [0 Q Y w- T5 N
{
% b1 \. r- A1 m( k1 O/ _3 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- d2 \/ q4 V. T5 @ if( pSkillProp == NULL )
7 x: L. }$ i& `: u4 R continue;
3 Z/ A8 m$ i* E& i1 [0 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 r$ f; v' K3 d4 @. n continue;" a7 [& H. ]% ~4 y
lpSkill->dwLevel = 5;
4 H) G% {, u6 z+ [) T( T; K }
/ C& D0 ~! u# ]/ { {1 h }
. H6 X& P/ M) i) k J }
' r9 U1 ~$ M2 _6 Q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 B1 c Z5 X, T if( bGamma )
3 J. [2 q. {8 `: G' v1 Y, D- U- Q {
# b' f6 N& T& i) _* z9 q m_nExp1 = 0;
! b$ w% Y) O) j6 U }' E8 v; k( c* H4 u$ m7 ^5 F7 J
/ @# r" v5 q; z* }7 e4 A. O0 g ( (CUser*)this )->AddSetChangeJob( nJob );- [( C; }0 h: B; V0 N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 J, k) K2 T# _* m% L/ f
5 }& T& b/ h% P6 ^2 D' }& q
' C+ [8 l% v# C
#if __VER >= 11 // __SYS_PLAYER_DATA
- I1 b/ F; I. i g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 f3 G- D# g' |* v+ D! B#else // __SYS_PLAYER_DATA0 \7 d% ]* o5 |. ~, ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 _4 ^# N' C5 O* r9 o! g g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 m; {# d' x# C' [4 R
if( m_idGuild != 0 )
8 x. }5 H# g2 |+ o5 M g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) k7 o9 L( G; `* w2 I$ S. W6 Y* c/ I! r
#endif // __SYS_PLAYER_DATA" \4 t9 o- @, s$ ^
SetHitPoint( GetMaxHitPoint() );0 d+ w3 O' c6 H
SetManaPoint( GetMaxManaPoint() );
; C& s) x" ^% S C- n/ K SetFatiguePoint( GetMaxFatiguePoint() );& W/ ~# `3 l5 |2 f0 e# D& i- M
if( nJob >= 1 && nJob <= 4 )3 u3 }, z7 B' T3 L) D2 f$ U L( V
{
) t0 F5 c5 T+ K% C5 [ m_nStr = m_nSta = m_nDex = m_nInt = 15;) }* K1 L* ^/ Z* W' N2 ]+ j
m_nRemainGP = 28;
) X9 _- a+ `- Z5 i$ b }
% v) p" n) i( C. K/ R) } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- u1 I. i6 z1 [0 Y p { x' B& z j$ ^
m_nRemainGP = 118;
+ J; W- H( h, i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. q9 E3 {4 ?# x* D) {# A* [' b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( Y! t4 W8 X5 n }
4 p7 j5 F" B( b- J) g: r _ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 Y! I" S) n# M+ j) M# E {' X& ~1 C/ f; {- S* |+ v
CItemElem itemelem;- W1 v! I5 z* m8 q1 v4 M* l: p
itemelem.m_nItemNum = 1;
2 a8 L9 k$ ~5 V8 R1 n' f" Y itemelem.m_bCharged = TRUE;3 o, l( C5 f9 a0 C6 G0 W+ W' l" ^# Q
BYTE nID;. Z( n3 s. b2 d6 L. v2 K+ P. v
% b! K! R x6 q9 h7 F& ]
if( nJob == JOB_MENTALIST_HERO ); C6 C7 S: b x9 ?% z& i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- T/ K9 t6 V( ~# u! v
if( nJob == JOB_FORCEMASTER_HERO )9 v! G, A1 t* z2 B" R' ?- c$ X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 A: @$ p' K4 A
0 }# I v; E) M8 {4 {. @( s, D/ r
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 ?7 L- T0 Z, f7 w" z
}. |9 r/ z" s( @3 _% g+ Z/ h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' d& D9 R# C. Q0 X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 q- ]% H3 x" h( G- b: C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% o8 @/ T" B7 ?4 d7 Q5 S( d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& p! e( ^+ q) Y5 k. N ( (CUser*)this )->AddTaskBar();*/, a. v0 C4 L$ A, F, _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- j. Q a$ s4 j+ f* n/ s#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 U; n% C* Y0 l P: F
((CUser*)this)->CheckHonorStat();
' B `5 T; H- M5 I: T' G ((CUser*)this)->AddHonorListAck();" _. l! k% {- F3 n; B0 k
g_UserMng.AddHonorTitleChange( this, m_nHonor);: l( f) ?* |6 m# l
#endif // __HONORABLE_TITLE // ′Tà?5 X. q; M" i5 Z$ f0 B
}' ?4 Q: k4 D) b h( I5 ^( q3 m
#endif // __WORLDSERVER5 ?! Q, E+ Z- g. Y5 q' w# z
}
0 H, i- I% c7 G" l) O7 O5 I+ n$ m* j, l* d, k0 |2 i% t
然后你进入functextcmd.cpp并添加以下$ e, H9 S% X; C7 E
2 i5 {6 Y9 E A% m$ |, q
代码:3 S: D: r+ `9 u8 Q6 d/ N2 B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 j; b' q3 S E9 n9 B1 @$ z
下面插入, Q9 q! V# r3 k! o' J m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " D% j$ N+ Q9 I& k0 b: s
* r* `% X4 `3 }$ i6 M$ o% {: N& ^5 A
然后你去
9 l6 q3 E; N) y) Z
& ?: i$ }7 W! ~代码:+ t: K L1 m$ {" F$ e t A
代码
0 W- Y( ?8 Q/ a+ B" xBOOL TextCmd_ClearPropose( CScanner & s )
' H( Y1 s: v) p1 {, d' ~& H{
) F3 F% `+ p1 A#ifdef __WORLDSERVER0 i) S" N9 g6 c) G7 E0 {9 \
CUser* pUser = (CUser*)s.dwValue;
! E1 }% q) T! L- B2 k. T g_dpDBClient.SendClearPropose();; u# N6 I8 O7 ]6 L7 ^+ c
#endif // __WORLDSERVER
8 L2 g, G. c% J+ p5 r# Z3 y: b return TRUE;
/ n' `6 V6 f' d" w}8 e" B, D; z8 Y* J% i/ f
下面插入
5 n& x9 D9 I4 b) f: s5 lBOOL TextCmd_rebirth( CScanner& scanner )
: P) _0 J1 O( t; h( e{
# n. U& d" @/ [9 b) X/ m#ifdef __WORLDSERVER- f9 _4 M1 p7 A" c5 R
CUser *pUser;7 ]* [0 b& L2 O* p- R( g$ G
pUser = (CUser*)scanner.dwValue;+ e# M' {' ^' F2 N/ r
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 Y S3 G6 f9 P- C4 W. S/ g, S
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 s" v. J' F& C: A& o. ~else
& F$ V6 O6 f0 P( ~, ?pUser->AddText("你还未达到重生条件!");1 q0 ~* T" }. k# v$ \
#endif, g8 D5 ^" S% c7 A) Q/ w/ ?
return TRUE;
) T3 l3 e5 e% V$ n2 ]}
) @3 |1 H* i% x) h V. @* q" l2 M3 f/ f2 Q3 P; |
$ E2 t! b4 I3 i4 S) Y4 o
! D s2 q" v0 X: D0 \; r1 N0 ^9 d( Z& N6 E. y+ e' K
|
|