|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 O$ q# l( m$ \/ F2 w& l+ ~9 w
" C* I4 j1 K u! S
Mover.h' L- m8 ^ g o# u4 L( [( q) I8 z
代码:
. ^) O# k( b6 N( }找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ O, _" @6 `, N" E8 R
: Y3 x2 d$ }/ ` o9 N! @4 r下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " C: f. h& N. Q4 X$ [" t+ O
& P* @! P0 u/ ^( e8 C4 x! u4 J( k
然后你去mover.cpp添加
8 R% v( A, D) Z" Q- y# S* l
) `# g3 k" r6 ~* ^6 _7 c代码:& i5 k' Q; ^) \$ T4 Y8 q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' x) T5 N1 r" s* F/ X{0 B; u2 Z6 O L) w- L
#ifdef __WORLDSERVER$ L7 ` e% @! z0 B% C/ D
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 T$ e1 g q6 B+ x
MoverProp* pProp = GetProp();
$ M5 Z; f0 ?5 y3 r! D( |3 \4 u7 h if( pProp )
% _7 S3 H; _" _/ z, k# B4 _ {+ |+ d2 w0 S+ Q: l
if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ L4 r( |' z, \; ~) V8 Z W
{
% K, c2 L; l& |4 e AddChangeJob( nJob );4 w- r' F8 j7 J% h8 P
}else{
; T2 j; U* i3 o7 s* k- f return;: [. R, _8 y- Q* ?
}' b3 ~. h: g& g( p5 y0 A& E+ X
int nPoint = 0;
" Q* c, s) m$ F! g4 t if( m_nJob == JOB_MERCENARY )( f3 y: \9 B1 Y1 w0 _' x; l1 l, z2 {$ [8 P
nPoint += 40;2 S& b) H1 ~7 N6 G5 T# `7 v8 {
else if( m_nJob == JOB_ACROBAT )
, p8 U7 [% {0 P nPoint += 50;& P0 H" ]: a1 d7 g4 m" e$ ?5 h
else if( m_nJob == JOB_ASSIST )
2 |9 k) g% P3 T! C nPoint += 60;
7 Z, g# g0 S6 C3 o+ `6 Z else if( m_nJob == JOB_MAGICIAN )5 ?2 K1 d' V: M6 Y& c- q2 D2 V0 W
nPoint += 90;
1 H% C) [7 s5 f4 e0 W% p else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) n. n8 _0 L3 V- J" v nPoint += 120;
. T2 I% V" k4 \: l1 q- x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). d& P. i# i% W. ?
nPoint += 150;' c$ C I% x; r# ~ E& B6 a
else if( m_nJob == JOB_RINGMASTER )1 z6 J8 X4 O. M$ a0 E
nPoint += 160;
4 [* Q; ?4 S1 F9 U2 `: { else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 F! {# ?4 H2 K5 `& o3 D nPoint += 180;, e/ |* Q6 ]5 S0 B, f9 U( i* K
else if( m_nJob == JOB_ELEMENTOR )' q& f. S5 c/ p: r
nPoint += 390;
+ b* A/ L: N0 R: [' ^1 V, o else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# @0 V( c3 N) g nPoint += 120;
) M/ b6 e# T; l! O3 T+ o else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ v( m- U4 [2 D nPoint += 150;
( f/ f$ X( I% p5 q3 ^4 c! k1 e; D else if( nJob == JOB_FLORIST_HERO )
& @4 |4 X, d; q+ D nPoint += 160;
( b9 _, q4 Q! I* ]6 p else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ M6 Y( H- h& K% d8 Z- d: J0 L, E& K nPoint += 180;
* B; t1 B6 [* s' m! a else if( nJob == JOB_ELEMENTORLORD_HERO )8 I7 X. H ^6 \. c/ C" U! R7 U) L* G
nPoint += 390;( u/ F- d0 i: @7 S$ d( ^8 Y
! G# }2 N5 t% G6 X# Z& z! w AddSkillPoint( nPoint );6 X2 N$ z- @+ i
m_nLevel = nLevel;
- w& p2 n, g' B: d' x* G" P1 P5 d) H5 K5 A G* Q c
SetJobLevel( nLevel, nJob );
/ a; i- G% [3 h/ h( v m_nDeathLevel = nLevel;6 {- X+ v3 y, @1 g
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 R3 Z: ^) V/ |$ b. ?. y
if(IsMaster())
5 e, F& z5 T6 w5 r" C" S. f/ d {. B& t* V; k" `4 n" U7 B6 l- b
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ m- @' n, j. E" l5 V) c if( nLevel > 59 && nLevel < 72 )
" z, u+ ]0 `0 x6 t4 b4 y, U# H dwTmpSkLevel = 1;
+ K9 S" i8 W6 @# Q else if( nLevel > 71 && nLevel < 84 )
/ E4 B& J+ h9 U( H! C! ^" y dwTmpSkLevel = 2;
. W1 x# F# B2 e1 K: N' w, Q else if( nLevel > 83 && nLevel < 96 )* P u! C, P0 a. |
dwTmpSkLevel = 3;/ I- g) w/ d4 b
else if( nLevel > 95 && nLevel < 108 )
! n( s5 N" O* C& b4 G- l dwTmpSkLevel = 4;
* i" k9 k" [4 E else if( nLevel > 107 && nLevel < 120 )
4 p: [9 G0 f% q' R4 K* p dwTmpSkLevel = 5;
' b% M0 E0 |( T" z: v; O for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ a9 [+ V4 }0 x+ d! l3 @* _& a# E' n6 O
{
6 D: k3 s( L4 f1 F0 ], D2 \3 |3 h LPSKILL lpSkill = &(m_aJobSkill);
6 q; O8 H' e- T% K0 W3 f: @: W if( lpSkill && lpSkill->dwSkill != NULL_ID )) k' N6 x1 e0 O
{/ ?7 r. d! N4 N9 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" A7 G) F' R- w if( pSkillProp == NULL )
! _0 [& G8 _( P) _0 J; f continue;' k: G6 v# E* v+ X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 y/ `/ n' ^" x- F9 p continue;
Y) F* y" F. K" v' O; g lpSkill->dwLevel = dwTmpSkLevel;
- s% }, X* ~* ]9 r }
4 U" @: }) ^! r$ e! t, [" r, _ }
8 D5 m9 q1 \1 f' A- E: P }" @ f, m* g' q: H) y
else if(IsHero())0 ^/ `/ ]6 z' B9 W5 B, W8 f0 z
{; V4 m! b: ^, M( G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( f: V: h1 `1 G6 Y4 _9 I { 9 [4 N6 ^+ U4 W4 o$ i
LPSKILL lpSkill = &(m_aJobSkill);' o1 S- [7 m) j7 B( `6 i' A% Z7 i1 @
if( lpSkill && lpSkill->dwSkill != NULL_ID )- Y. k1 v# q' F! K
{
: p1 L7 m$ c, i- B2 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " I2 R+ k9 N9 K9 A) z2 ]
if( pSkillProp == NULL )
5 {8 X, l: F& W continue;3 M m1 G3 p0 o7 I6 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 Y, _+ t6 B, G continue;
; n( }4 ~# ^8 ^' Y5 e# h, Q6 B) B/ o( G lpSkill->dwLevel = 5;
q H$ a9 }7 e }6 i O2 X6 ?, Z' `
}
( N+ h+ L* s f. z& B& a8 F. g# V }
/ p9 \& B+ B: h, K else if(IsLegendHero())' V: ~ N* L9 v5 b
{
, `3 Z# H1 r- `, U0 _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 n6 s0 k4 X! z+ ?! s
{ 5 V" T) h8 x& Q; |
LPSKILL lpSkill = &(m_aJobSkill);
* {2 V c l s$ ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )! a% {" t1 K0 j, p9 F6 D ?% a
{% i3 L7 j4 O- Q0 i; t. i# W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - j) ~& _0 j" F4 Y$ P R
if( pSkillProp == NULL )1 Z: L7 u) E! V/ b- v7 K
continue;
4 g. i3 c+ W* Z$ Z! A' \6 x { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! w/ @% U: m) h% K' C U
continue;
1 O0 P8 \3 o5 W0 l: G5 m lpSkill->dwLevel = 5;* m5 v8 k& D. W: ]7 }+ G
}
. h, `- F" f# S1 t7 ^ }
1 p9 S5 _# n4 B! |$ @+ k. q }
- B# E! r& ?2 G( t#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" {" }) e1 l- W& \. P- v0 p. z7 W if( bGamma ). k2 i: B: H8 i7 ?* m
{7 K1 N+ y8 D! D# D" c
m_nExp1 = 0;, s2 I' \- w4 d
}+ _! `- m+ h8 L; j
* ~% x. |3 c/ X# I
( (CUser*)this )->AddSetChangeJob( nJob );
5 t( `' |: O1 s8 C7 F( P7 g, S g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 {) ^' ~* X6 d$ p5 d) d: C) C t
; \8 P1 L- M4 X0 R9 U7 Z; B
/ ]# F y% C: _9 }
#if __VER >= 11 // __SYS_PLAYER_DATA4 @+ T, |$ s9 r( Z4 t7 ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# t( D0 b: j* E) P7 m0 C! l
#else // __SYS_PLAYER_DATA2 ` p c, V3 q$ C! f& Q4 ^9 N( l
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% @: V! X7 Y# x8 [0 h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ z8 Z) Z/ d0 M/ g if( m_idGuild != 0 )( l5 T7 C \5 o9 @% X# m
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; ?6 g8 S7 z5 `4 f: ]0 ]' Y/ g
#endif // __SYS_PLAYER_DATA+ ~7 m, M/ ~3 j
SetHitPoint( GetMaxHitPoint() );
# {) p7 I( \ J# H. g SetManaPoint( GetMaxManaPoint() );
4 c" o1 E& W1 G. M) k SetFatiguePoint( GetMaxFatiguePoint() );
% @" a4 _" H& l' E) } if( nJob >= 1 && nJob <= 4 )' o1 M1 ^; X/ T6 ^* ~* y8 j
{! P# l1 `% y' |5 _. b0 l
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 y+ p" R' r* l: v
m_nRemainGP = 28;
- T% ^" @$ L8 t0 A: z- a: { } t5 Z) Q) n; D$ x% P: |& m g
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" |) F; H* x* l8 M6 y8 E( p3 L2 F
{& p O" K) O7 c# I0 F7 k
m_nRemainGP = 118;
5 @3 Y3 e/ G8 H5 W( w7 C3 t1 b7 ?) p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' h Y9 ?4 I( d. u( _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
a$ T# R) a( }" k( m0 ? }
$ s! E& x9 |' J+ Y6 a if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 n0 f; D# E2 n" I, n {( J1 U6 ]" Q5 ]7 y/ Y; I
CItemElem itemelem;
( m$ `& L8 A$ u( U0 ?* V; _ itemelem.m_nItemNum = 1;* l9 x/ W6 u/ q* ?" j* f
itemelem.m_bCharged = TRUE;
1 o/ }2 i# l4 \, w' u4 p BYTE nID;
' B' l8 D, [3 K/ j' |5 H0 B- i5 W; s' B0 d% f
if( nJob == JOB_MENTALIST_HERO )
8 y9 m/ w, l0 }7 l l itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 Y2 J8 C( Y1 [+ ~
if( nJob == JOB_FORCEMASTER_HERO )5 p% a1 `6 C/ N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' _7 t, P V, o. h" p$ k0 [! _8 s( w9 L' s1 C" T4 p
( ( CUser*)this)->CreateItem( &itemelem, &nID );% J$ |! H; O3 I& U2 E. p- ^( Q
}
W5 K% ~" S c; a0 B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; Q9 m& v; T) [! b" x/ [ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' d2 U; c( r0 _5 P {+ T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! [ ^! E W* K/ m" K( q3 C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( `' x& v/ ^' a# m; A5 _4 M, L: E
( (CUser*)this )->AddTaskBar();*/
& p/ l$ |9 z- n/ | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 X* C$ p! d7 [. a2 L1 u# z$ P: l9 @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ b8 w% j" ^4 g* Q$ h; K8 t/ ^4 e1 @ ((CUser*)this)->CheckHonorStat();
/ X" Y! {$ P) |( @ ((CUser*)this)->AddHonorListAck();
! F* x8 u. f% h, A- M' k; b$ @" Y g_UserMng.AddHonorTitleChange( this, m_nHonor);" _8 s- z0 q4 i2 y, z2 l$ m/ E
#endif // __HONORABLE_TITLE // ′Tà?
+ H+ c" l3 y: }- C" a- \ }
) P0 @! x0 t- X0 J1 t" n5 d# ^) R#endif // __WORLDSERVER
/ V! T" n- ?6 l1 V& s, N} ; Z; H* I0 [" n$ I; L
( @5 p/ q; _0 G1 P; C然后你进入functextcmd.cpp并添加以下
( b) J A) p8 [: o9 [% k9 y; G% K2 y2 I. M0 D% A
代码:# h4 r5 K) n! F, R. {3 f5 Z$ [* f0 N& o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) O0 }7 h2 I# }, k7 |7 y# ^8 n下面插入# \- S7 Q k8 Z. T' C. L
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : j% [1 [' r: a3 `' R4 c
; A4 y5 T+ R4 N
然后你去
0 t) H4 A$ [- I) d
- X3 A3 Z7 M5 _. {代码:) s* N: q# E" o! q) m& m
代码
" p, O2 a+ F" p, I+ l! ]BOOL TextCmd_ClearPropose( CScanner & s )/ ]2 y2 i/ w+ U" g8 d4 w/ \& W- }# M
{
, v5 O- X) o, t/ k- [) h#ifdef __WORLDSERVER
6 }! O+ p8 q9 n, d CUser* pUser = (CUser*)s.dwValue;
2 h0 [# } @1 d) X$ L& B c g_dpDBClient.SendClearPropose();
9 H i& s; O6 b. V6 q/ W- G& o#endif // __WORLDSERVER
7 e$ ?5 _' o8 j' W return TRUE;+ J7 r5 w) L# q* S1 ^
} Y7 k9 m# h* I. |- ~' Y; _- o
下面插入2 z' U7 G) L& a0 t* X9 m
BOOL TextCmd_rebirth( CScanner& scanner )
% { r$ E: }2 n. a& R- g2 C{
M: N2 |/ ~4 Z1 p5 u! R* F! S) `#ifdef __WORLDSERVER, k1 j7 R( P2 Z" K! l4 j! R4 o- j V
CUser *pUser;
. Y# j0 B; l$ r* h' l# y$ s% d, dpUser = (CUser*)scanner.dwValue;, z9 V! {. V0 ?
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 x7 m" j) C( T- ~ @" e) W$ K. A. {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 ?6 @; J3 \: ?2 z$ y3 p
else
2 l1 ~* X5 z+ U$ o( E5 RpUser->AddText("你还未达到重生条件!");
) ], j. {" ^8 ~0 q#endif
2 q* B% i( A2 J p% G7 Y6 a' }1 Ureturn TRUE;+ H/ J6 Y$ P4 b4 ?$ v; P
}
4 O' L. l5 S9 V6 b" Q7 ]4 }; Q
) e5 n5 Y1 R; ]/ l- z5 ~" s
4 s, Z5 E' R" T! `4 Q3 \
" \7 i2 C' K( q [6 n. v' l" |2 ^7 S+ G: P6 \' W8 L
|
|