|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- w) E( t5 ~3 C$ G8 t
3 d; v! Z2 H, H) e! L. T+ @
Mover.h
& n( l8 O" s+ `代码:
! a9 I7 \3 N2 M' f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& q6 L) ?- P0 _6 X z T) H3 k8 J' i9 f! h
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( I \3 d, f2 n. c4 M; w1 _- H, U( U, T5 Q3 M4 r. Z( s1 ]
然后你去mover.cpp添加
* j2 U! ?$ Q+ c. B9 d0 @- k$ r3 M
1 L# {6 `: m, t( Q代码:
3 c2 o$ } W* o1 Z# C4 Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 ~' n. Y! \0 `: e; k
{
4 `: ^3 @: h" R, f2 v' \0 G4 T#ifdef __WORLDSERVER" z) {+ Q/ P) ~1 `0 c' Z/ H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; Y$ J, A1 P* ~$ V% }" I MoverProp* pProp = GetProp();1 b) h7 R( V+ v+ O! J$ p# S
if( pProp )% I: V* ]" I3 S$ C3 d( D8 r: t$ g5 X0 ~- M
{ F6 n/ J# C+ `
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 w2 X. P: ]6 Q; h
{
* j. A9 _. W6 v' C: a( t AddChangeJob( nJob );! v( _; J! Q5 ?+ y
}else{, C" ?' P" f; r3 V2 ]4 `* U
return;
: K% A! `1 {) S( i, O }' x& D C6 O! [& s/ N& _( I
int nPoint = 0;
( C! g+ `4 |8 X! o Q if( m_nJob == JOB_MERCENARY )
# `: r# N2 K9 }2 c nPoint += 40;. X" }: q Y" D8 N; o" z2 ?$ g5 M: ]$ x
else if( m_nJob == JOB_ACROBAT )
% m/ Q1 \3 I5 U nPoint += 50;" V/ q2 v( E; G) S
else if( m_nJob == JOB_ASSIST )! s3 E8 O, n: t' U' D
nPoint += 60;: ~# Q3 _8 S J U* D+ z! b
else if( m_nJob == JOB_MAGICIAN )
g+ D. ~, L" @4 i nPoint += 90;( y( h+ `, @# \7 T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% O* `9 W6 G, {! G& Q. i7 Y) K% d nPoint += 120;$ U! `* e. L7 ~4 L' [: T
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: @8 f5 W* ?" \8 x+ l( _+ V nPoint += 150;6 l) `6 M2 F; T( o/ z
else if( m_nJob == JOB_RINGMASTER )
# N. m2 [) v# ]: S5 P0 z nPoint += 160;7 Q* P, I- P/ Z; p' R, \' ^8 T
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). t+ h) D! z5 w) c# c8 x1 H5 L
nPoint += 180;
9 ?7 g C+ @) A* u' }9 o else if( m_nJob == JOB_ELEMENTOR )
/ }, }( f( f# Y) V J nPoint += 390;
0 q7 r( s6 z! w" h8 M7 A. x% _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 Z+ s9 E3 V; w- j& X nPoint += 120;
+ k X i5 U1 {3 e. J6 G6 c4 U else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 p# E$ H+ k% j/ p nPoint += 150;' B0 o* q& @( _% X
else if( nJob == JOB_FLORIST_HERO )
$ J7 J) H3 I8 j( P' p nPoint += 160;6 l3 L( `& |- D5 D# W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) z: q$ B- a* C6 A% f nPoint += 180;
v+ J4 ^& A% \ N' v" S else if( nJob == JOB_ELEMENTORLORD_HERO ) C O, c& l5 \" w V4 Z
nPoint += 390;# |+ \/ ^3 h8 d [
% @# A6 l2 r7 H0 d3 x( v AddSkillPoint( nPoint );
# y, r a0 Y* Q$ T3 h+ b( D m_nLevel = nLevel;9 V/ n! \6 D* H) L5 w
( b8 N0 M9 A# Q/ B' g SetJobLevel( nLevel, nJob );
& ~4 J4 R; Q* \1 n. @* `1 p% D m_nDeathLevel = nLevel;; u* I+ c: V. j- g+ r( ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ q% r, v/ h+ Q2 W if(IsMaster())/ y$ H2 u$ \, D7 V" r% \- A
{
m( x( g. D0 P6 |! s% H int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# s0 {1 j1 r0 V( a8 D/ ?' Y if( nLevel > 59 && nLevel < 72 )" }3 s2 y) M$ X- ]6 Z& }
dwTmpSkLevel = 1;
6 z% n: t% y. z* l, y else if( nLevel > 71 && nLevel < 84 )
0 C1 J ~: R0 L" k) u1 p+ m: F dwTmpSkLevel = 2;
* W& P W5 s& n6 {) X else if( nLevel > 83 && nLevel < 96 )
0 W1 ~# m3 [9 B Q! a% K" l9 x- O dwTmpSkLevel = 3;" j8 M+ T9 k1 M" K6 B9 I+ h5 F6 b
else if( nLevel > 95 && nLevel < 108 )" w# j- o: k* D0 ?/ }
dwTmpSkLevel = 4;% k* w; {9 V$ n3 n
else if( nLevel > 107 && nLevel < 120 )
: c) O6 l2 C7 N3 r2 f dwTmpSkLevel = 5;
& l4 k3 a; g3 V; f) V8 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( t* `! E8 M* Y3 L$ o5 M
{
- Y7 u' `) y( s3 u LPSKILL lpSkill = &(m_aJobSkill);! s4 J" D2 E* M! T E8 v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 I& H7 p- w% `/ @ {- {# {' k& {# U& J T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 E0 b' R6 w2 V5 g( o2 F( T/ L if( pSkillProp == NULL )
3 f Y6 Y+ ^; A9 A( D) |" a7 { continue;
: D( F# j9 S; }) J: i! i1 m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 J: e' {8 y% k# C# ^5 v, o* U continue;( b" }' H- q- l9 V$ V8 k! o& O; W1 G
lpSkill->dwLevel = dwTmpSkLevel;
% l& p# h' D" B! E+ y# ]4 n }
: L4 c0 I$ C$ s$ s( B6 N }: E) b6 \1 o, K, M9 ?8 e
}
( @+ @/ {/ f- c" ?' J) | else if(IsHero())
8 r# c- E3 F8 o, e; Y1 |! V {( F m7 d* U$ ^! L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 J R" c/ Z, ^0 T! v( w4 ^
{
8 F3 _9 d/ G/ [! ~3 P1 q LPSKILL lpSkill = &(m_aJobSkill);, F% `. b* A6 s0 a) [$ p9 E' M$ u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 D, j) O1 [4 N( M6 J" G8 C {
! \- o) v B/ B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 Q! O1 u B1 w
if( pSkillProp == NULL )
1 {! D- H4 Z: ?0 G continue;
' H# \+ e* q8 m* X if( pSkillProp->dwItemKind1 != JTYPE_MASTER) e" m5 x/ v: v% ] h* |& M0 G
continue;
% i/ a5 l3 p' x) i8 d8 m- _- K lpSkill->dwLevel = 5;
) [9 Z2 v# M" z }
. S, a7 Q" m% W( r/ A }+ v% T" {: E2 v" ]* Z' E% w* X9 ]
}8 g. i) H: Z5 ]: Z7 }
else if(IsLegendHero())
4 v8 e! o' S% u) C1 {6 C" b2 f {
; v/ G- ]/ h8 W! | for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ K. u* R5 x6 r# t6 _; @+ c
{
# E2 t* R& [5 a1 J; H LPSKILL lpSkill = &(m_aJobSkill);) E5 [% e2 `* I# X8 \ k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" ^6 Y- `) k9 m5 S3 V7 J {+ l7 f- F7 Z' I- K' B, l9 E+ p) @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! [" Z. U! f. X
if( pSkillProp == NULL )
9 `. t# R3 x& w# s, { continue;
. Y( S( j# Y+ Y* ]: {8 W9 H: _- m if( pSkillProp->dwItemKind1 != JTYPE_MASTER): Y9 q6 ]2 b( m+ R; F
continue;+ B/ z8 @% v, f5 B7 H; f5 r6 e
lpSkill->dwLevel = 5;5 o7 F6 B2 g0 S8 H3 o( ?" B
}7 p ~1 H6 j5 {! d4 t
}, ?5 E: ^2 r# w9 c. T
}& a# l( a* l% A) x n7 O3 `+ j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 J0 V' J" |8 g1 f) T/ q if( bGamma )
: z/ u: p7 g3 j8 M; k {
. }5 d G) V* w/ e0 a m_nExp1 = 0;
: N1 U* V; R+ F$ n6 _# ` }
8 k* z$ ?$ Y7 \; C
, V) C2 |- k. B7 z5 a, ?8 Q ( (CUser*)this )->AddSetChangeJob( nJob );
$ T2 i2 `: {/ e* [" U' a0 j3 a0 u g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 E* q' J' E" Z, p; D
7 j# T6 E2 W. }- W6 g6 y8 v0 S: s
+ _* x* o: y T \8 K6 l#if __VER >= 11 // __SYS_PLAYER_DATA; v" m/ y% _! K
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) {+ I, n1 _6 g ]% S; i
#else // __SYS_PLAYER_DATA4 Z+ \# J& O( c; ?- ]* }2 B, U' T
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# _7 N0 j; P& r: M
g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); |- Q4 U6 F; I, t% h ^9 w
if( m_idGuild != 0 )
& b J! Q) b w+ p' B g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" x8 l1 U1 F4 I& I#endif // __SYS_PLAYER_DATA
8 Y) z4 a% c5 k6 u SetHitPoint( GetMaxHitPoint() );
$ u2 C; ]) Z' n' P' N SetManaPoint( GetMaxManaPoint() );* m1 b( m Y- A* x) V8 N
SetFatiguePoint( GetMaxFatiguePoint() );
0 t; U4 l4 V+ } if( nJob >= 1 && nJob <= 4 )
# `4 g& M3 Y- }4 |6 s* R {
; i! {( Y9 \8 u1 a m_nStr = m_nSta = m_nDex = m_nInt = 15;
& s5 }) P8 e0 k! X$ N3 Y9 z m_nRemainGP = 28;
, [5 V* ^& c& d- Y' A4 D7 ?1 o2 c }8 r& i. u9 X' {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ [2 S2 P* O4 M- t
{" |1 R& a3 E. |, d7 G2 j
m_nRemainGP = 118;6 u7 J: N# L! W* j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
K u5 B1 W& X3 n$ E, v m_nStr = m_nSta = m_nDex = m_nInt = 15;
* j+ j( @- o1 L a, t$ [ }
# `1 f. M1 V W; z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' v |5 d9 j4 |3 Z {: P1 ]6 m) R Q& x+ X+ T
CItemElem itemelem;; a+ p) i9 ]$ f" l* Z7 p
itemelem.m_nItemNum = 1;
9 M) q& E: O' g itemelem.m_bCharged = TRUE;9 s1 e- D6 s- }( G
BYTE nID;
& S8 H* s& Z. x- B
* Q0 T, C3 O' b8 R( N5 T# b if( nJob == JOB_MENTALIST_HERO ), C1 c' I! ]& H! d; E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 y) y- x7 S2 w1 W0 \$ h9 ]5 N
if( nJob == JOB_FORCEMASTER_HERO )
& k1 z: k9 X& K4 B) t( u itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 c ]3 v7 [+ G2 |0 M5 f" }$ f4 T( O+ ], P, W! n& V
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" q0 K% { ~" ]2 ] }
5 P- k5 F. b; k g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 D' h3 ]$ \' K# w
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 D* y7 H3 a2 u! ?" X% v* z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 i* d- R+ I: Q* f+ I- z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: R! r* Y& p' O" ^* {
( (CUser*)this )->AddTaskBar();*/
3 u6 r# J/ d+ _) o ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* h# d5 M$ F, _9 @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 c' J0 S, G0 R( {2 Z0 v/ ?7 P% `1 n
((CUser*)this)->CheckHonorStat();
* f h! A! W' O! U" b) U ((CUser*)this)->AddHonorListAck();) r9 E6 }+ F, m" ~# Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);( i" h$ u5 G/ m( ~% ?- d
#endif // __HONORABLE_TITLE // ′Tà?
( [; g3 B5 `* |* v8 f3 U! T( ? }
' X6 G2 d* R% L#endif // __WORLDSERVER$ N+ b# n+ C& G- H4 X1 `
} ) W: C- [0 ]9 W( a1 P ~+ Y
# E/ i5 J5 R5 [然后你进入functextcmd.cpp并添加以下' {! _( |! a9 | y- _
$ a5 J/ x1 B, T代码:& V8 O) }: ?) R# E. p0 r
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ `- y4 L# Z; \* O3 W下面插入- |8 f _( }5 L. ]- {# M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % M3 ~; W ?5 X' T
, j4 z8 q: q6 u* o然后你去
a: i) p; u/ g2 E1 L7 s4 ~
" b7 C3 p$ ?- g. }5 L( A4 L# w代码:( t$ w9 n% i: d* e! O1 c
代码& [6 J( H6 k6 g* i+ G
BOOL TextCmd_ClearPropose( CScanner & s )
8 `- [9 b6 g/ v! h{/ V0 a: q" _' f1 V* i$ }2 C
#ifdef __WORLDSERVER
4 R# |6 U& U1 U$ v6 R1 m CUser* pUser = (CUser*)s.dwValue;( k) ~0 C+ r2 V6 z2 k* r7 | x' e
g_dpDBClient.SendClearPropose();( K) a. v; L4 p/ P6 z
#endif // __WORLDSERVER+ N; x$ `! T2 j
return TRUE;
0 ]& o7 M( K, h8 Y}
- v- W: B" R. `+ V- j9 n8 }下面插入
) c3 M+ q7 M/ o" N9 T% C3 KBOOL TextCmd_rebirth( CScanner& scanner )5 P1 m& I* i3 s+ I: n
{( m! e: l8 \- _. V: c
#ifdef __WORLDSERVER
- V- k- F' j" _( H( ECUser *pUser;
1 p* E5 F- Z$ s: g' _2 ypUser = (CUser*)scanner.dwValue;$ }, y1 o' g- S5 I1 A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 j! ]7 j" h2 x# N2 N) g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 i' M: G, }, q
else' i7 [9 o/ t. ` a# G' v% J, I
pUser->AddText("你还未达到重生条件!");9 a; i$ o) q# p7 |& Q, w" e+ L# o$ n
#endif; q1 O+ L& c0 R$ q$ m3 r$ T- V/ f
return TRUE;
( n7 `0 j) p* }$ P4 Y}
8 ?( h ^ u# O/ p6 ^. |0 {* M
+ l' E" L( v+ q, J9 U- d
8 T _* c( a0 P0 i& x4 t. ]1 `
& z$ @9 K$ M8 B7 w( ^/ a/ A0 C- c0 s Q
|
|