|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 Y$ i. y9 ~: @0 O0 }/ }# M) y
Mover.h8 I$ H& m- O# |: U
代码:! V2 [* O# E( R% H* D8 O0 C' P
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 ?, [) a9 @, F1 c1 j* V
1 ]7 @/ d# t1 H: k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& D: V! i% C- k
3 J8 ^" M; p. {3 b5 \( O7 z然后你去mover.cpp添加
8 g0 |2 B; n# U6 H* z
- A1 T, f! s2 U% e) o4 Q代码:' E( m- g: k5 ~ h# m* _ i
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). Q* X2 Q/ v. I
{
' ^, e8 \& o( W" W#ifdef __WORLDSERVER5 i- T$ E4 V% ]1 C" v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. i( {1 B3 I1 M P! I8 {, i& |
MoverProp* pProp = GetProp();
2 e. a0 ^! m( ?) Q0 v* r3 D: g9 V if( pProp )
: S3 d4 `6 F5 S {$ r$ q( H: N6 C2 Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); O% X8 q' e& [) U
{
, D, u; T8 A( W1 V; ^ AddChangeJob( nJob );" a/ r- x' i6 m2 V( r% g0 h4 y
}else{$ H( y$ W" ]+ P4 Z. A7 d; m( R
return;
0 i Y1 X3 u% i7 ^0 B }, `1 t+ @* r$ N$ _0 c
int nPoint = 0;. P- C2 w. |6 M2 M/ R
if( m_nJob == JOB_MERCENARY )( ~, w4 c7 O( Q8 w! T7 Q
nPoint += 40;
( R2 J" w1 R( a2 r3 `3 Z else if( m_nJob == JOB_ACROBAT )
, ^6 t3 x- @& M1 m, b, q8 Q$ q _ nPoint += 50;
. I& n1 x9 ~+ C# K$ T else if( m_nJob == JOB_ASSIST )7 { _! @2 R# N- t f
nPoint += 60;
& o& d z8 K: ]" M8 t, }# I else if( m_nJob == JOB_MAGICIAN )
" F6 a$ w% B% ^9 W. F! g nPoint += 90;
, Q, _; f& @' H" s9 h& @ n, L& l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% t) V/ k. j5 }5 {- O- v nPoint += 120;
" D0 a! f! C+ p3 P& _8 F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ V& s/ f5 N2 g3 j3 }. k. s0 S
nPoint += 150;. R3 I4 N9 V' M* [, }. g: s; K ~
else if( m_nJob == JOB_RINGMASTER )6 r4 ^) P m" i* W- B5 @
nPoint += 160;* ]% a2 i0 d/ l8 ~+ z3 B
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# s- k0 _0 g U A
nPoint += 180;1 C- H8 O1 X7 W7 z
else if( m_nJob == JOB_ELEMENTOR )
. H/ w6 J) \% E3 A) I6 {8 Y nPoint += 390;8 Q( q4 O/ a; Q7 b* ?+ i3 A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ w5 g/ d# [2 B( n* q nPoint += 120;' E1 J( o3 a. L# Q/ x( s
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 X4 T$ P7 V2 V8 b* R% I! T nPoint += 150;- {1 Q! q9 H( I: V5 A# F+ [! g
else if( nJob == JOB_FLORIST_HERO )
# S, ?6 h# Z( Y' D S nPoint += 160;* Y" l% c% T- E$ N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 o' U; e0 x2 J* {: M V/ L nPoint += 180;
/ [7 x* k* s, g* s3 i5 r else if( nJob == JOB_ELEMENTORLORD_HERO )
! ?! P0 N: J( @) @! j0 p8 m nPoint += 390;
2 G; Y8 B; W+ T9 g0 X) v* o$ y* V0 {
* \& {7 ~( A( @$ q! t1 j* | AddSkillPoint( nPoint );
. T" p T# B6 o3 g m_nLevel = nLevel;4 z3 f- t% k6 k3 e1 n o1 i- _
9 z0 b2 c1 M1 ^; N5 B$ s# H& Q9 k5 p) R SetJobLevel( nLevel, nJob );+ M! U1 O) W( C, [9 f& _
m_nDeathLevel = nLevel;
; m4 k9 C' @ l" D n& k7 W7 C, G2 R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 W H" z5 p, c
if(IsMaster())
2 H2 T" P: b" ~$ h/ G$ X3 t {
* S& R6 P: P) V6 v+ N; E6 h# ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; n% y" z' V& _. v( b3 w. K/ w if( nLevel > 59 && nLevel < 72 )4 m9 ]% t" Y' J' w1 @& z
dwTmpSkLevel = 1;
5 m) U1 `0 V$ g P! a else if( nLevel > 71 && nLevel < 84 )/ ?6 Z6 S9 _: l
dwTmpSkLevel = 2;* y( @% q6 J4 j
else if( nLevel > 83 && nLevel < 96 ) _) T6 }5 K9 a, q/ G
dwTmpSkLevel = 3;
0 q3 d% k2 S5 O3 s: S8 i/ ` else if( nLevel > 95 && nLevel < 108 )
0 @8 W; y3 L: [+ U dwTmpSkLevel = 4;
( p4 k5 D+ U9 U4 A+ w else if( nLevel > 107 && nLevel < 120 ); G' x9 M: J4 w5 x$ X- F
dwTmpSkLevel = 5;
" d) l: a3 V; U1 R for( int i = 0; i < MAX_SKILL_JOB; i++ )
b' o/ n! l$ w2 G- z {
! y) h8 k& C3 O2 P' w LPSKILL lpSkill = &(m_aJobSkill);- B( V1 n! g0 W0 l" M* x
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 }: k& H8 r5 h5 {! T
{
+ e/ L/ {& S: I1 m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 b: i/ ^0 f) L0 d: b) |7 |6 O$ e* ` if( pSkillProp == NULL )
& B7 ^4 q0 c+ \+ {* k3 ~+ } continue;
0 l2 Y7 T0 [; ~ I, O6 ^3 ^ \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! B0 e8 L2 |$ d% d continue;
0 M W8 Q& b: H7 o4 t8 i lpSkill->dwLevel = dwTmpSkLevel;
# c2 T5 G7 w- Q! h }
# u, {9 B# ~9 Y2 b7 W! w+ h/ } }
2 W% q, S+ l" M3 {+ _3 H }. o- h1 }9 Q( g5 H7 o
else if(IsHero())6 n8 \# L' \; a# N* X
{# K) B) ~. f$ I I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' @% v5 o. C. d, _4 d* W
{ $ h. C# ?9 g" C1 }8 ~3 s% S
LPSKILL lpSkill = &(m_aJobSkill);) U# b4 O$ v$ A) [: }1 B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 W( {* N% m' I8 } {5 }8 _2 C/ W4 w& h( H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . c! l' [- e+ B9 C# l+ q
if( pSkillProp == NULL )
6 r; w( T. K d# I, v continue;
6 s8 w8 n. y8 s7 @6 g, r) ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 Y' A; y8 ], Z, b$ e2 K
continue;1 m" e, Q Q2 J: g) a. Z+ C3 {& E
lpSkill->dwLevel = 5;( R l4 b! ^: T- M% Q& T
}8 l4 K4 P* f1 s0 C4 E7 I* G
}
* B" x% v$ K) a0 }+ P; R! T' \ }- ^. L' Q; l' m: W
else if(IsLegendHero())
% s* D& |# L8 Y. L4 \ {6 M5 }# q$ r8 p; x) A" \3 l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* H0 ~1 @$ R; m# a {
A4 b+ {: J6 j ~. e/ T LPSKILL lpSkill = &(m_aJobSkill);0 d% T2 ]. J* e) A, m& m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% P) \* t1 n7 d! F" J {
! R: D3 {6 [( ]. O7 k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); H5 j; c, B- _- D3 m+ X
if( pSkillProp == NULL )
# A1 a1 v3 |9 ^( d: E: G continue;) ]6 W8 R: Y6 J# x+ G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" D- s" ^3 u* f* u; V7 r, i continue;
/ x4 U. k- j& u7 E8 @+ Y; [; f lpSkill->dwLevel = 5; l6 Y9 {& x$ Z" l$ \: _
}* x% L- U% `# ^3 b* K \8 W
}, q E# U; _; u8 v; k& I
}
* q+ [- q3 [9 y4 d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 ~8 k5 E/ I# E5 x if( bGamma ) |4 E2 a# s2 g
{/ N) C$ U8 v: u
m_nExp1 = 0;
1 W' C7 R) @) T! n }) n% A4 y( L# w) d* a
. _/ ?5 t4 Y0 [: p" Z( I
( (CUser*)this )->AddSetChangeJob( nJob );
! U$ X) Z( I, A1 K+ ?, L g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* R5 v4 i r- n* K* M
3 b) Z( v- J0 E( Q f' @
* R$ D* G4 j8 @) p#if __VER >= 11 // __SYS_PLAYER_DATA! r% L7 Z9 W5 q! g& K0 z& L+ M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
`! |+ C) |$ f#else // __SYS_PLAYER_DATA
0 w/ \8 }" X7 n4 x8 N+ y/ v# H) J, O g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. E+ t/ @7 r* \/ \" O( R
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# S+ J* k, B% \# A2 c6 H
if( m_idGuild != 0 )
& F' ?, K( r/ o! J! e9 z6 L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; a7 T& V( o! x
#endif // __SYS_PLAYER_DATA
! {0 @: v @" j& q SetHitPoint( GetMaxHitPoint() );
2 ]2 L ]3 \7 V9 L/ k SetManaPoint( GetMaxManaPoint() );# r1 `3 |7 I4 `! {4 S. {2 m
SetFatiguePoint( GetMaxFatiguePoint() );
7 Z5 H; l/ {2 Q9 f$ p6 C if( nJob >= 1 && nJob <= 4 )
" T. u. N6 s( G/ W# W! t' ` {
8 y# C- R1 ]+ W m_nStr = m_nSta = m_nDex = m_nInt = 15;7 `& ?6 w- X& I' p4 t$ i* J
m_nRemainGP = 28;$ }: q8 ~; g, n* G
}9 l i9 _2 ?7 E8 G+ y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. s {0 A$ K: z) p: r {- l, I r8 z, [5 k( e8 d
m_nRemainGP = 118;* f$ H* Q7 O) o; L; h" p1 r! ~
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 p% L3 [7 [, b
m_nStr = m_nSta = m_nDex = m_nInt = 15;! |# d4 E7 F8 N8 f
}& h6 \* L. `/ x) h/ I
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 |0 ^; S. _4 J
{
; ~& C3 E2 y- O* O CItemElem itemelem;
) ]2 F6 a% G) S; Q+ T itemelem.m_nItemNum = 1;
2 E- D6 `* [2 Z" a* v$ W itemelem.m_bCharged = TRUE;( k* q% x2 Z! P+ @4 w3 U+ u6 ?
BYTE nID;" F! z {) O) l+ f
+ @: O( D$ L: v: I9 T4 k# U
if( nJob == JOB_MENTALIST_HERO )
0 d4 F8 Y& D9 h8 O5 h# W) u itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 `. i/ v0 R6 r9 }# E
if( nJob == JOB_FORCEMASTER_HERO )
8 ~- g: X) ]8 H' r itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 v6 a! h. b. R6 z. ^
, x, n- M$ a! T) S' c) U" o ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 t9 o) [: n: ?& M$ k, V$ f+ }& {9 y/ S }5 A. M# j6 _& r. g* b8 K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ o; j0 [# I4 R7 c! ? ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 |7 @+ f. p* }4 k4 t( M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ Z& _( @; e+ W5 [ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 g7 I: |! @$ Y& S ( (CUser*)this )->AddTaskBar();*/
- W1 M; t- s! r p ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ J! d7 j* }8 y( [) ~; K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 G$ c5 G$ q! Q' b% P ((CUser*)this)->CheckHonorStat();7 e2 |9 J7 h7 E* C
((CUser*)this)->AddHonorListAck();1 Y6 {+ S) s$ x8 D0 T1 V- a( I! b
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 {6 o: @8 b) B. Z1 K/ t
#endif // __HONORABLE_TITLE // ′Tà?1 ~/ ^ r$ Y# Z, a2 K; K2 G N" E
}" }& J6 H) f: V6 ?
#endif // __WORLDSERVER' G: K u; F& E
} . A, B2 ?: B9 q* Y) [
6 l6 J0 Z6 K: r: x然后你进入functextcmd.cpp并添加以下
7 `( `+ I U* \. F$ ^: S1 j. I
5 H- a) Y: M1 Z) p) d$ d% }代码:4 \6 m. ~' `+ Z& R
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 P' F# S( T: w" l5 f' n
下面插入( w1 w+ S) h8 s" \' m# _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 q" a1 F8 L& ~2 T* x
8 W* [# C/ `& h7 ~+ Y8 i$ O
然后你去
: w# K6 v \2 K+ ]. c, M; p/ n0 c$ P% A; H1 _+ |8 X! U' [
代码:
2 m( W5 N/ A+ \6 }代码
% M( q- j, _3 P8 kBOOL TextCmd_ClearPropose( CScanner & s )
* I8 `4 ]) Y0 Q{
$ Q, o. I5 x# J& B6 K#ifdef __WORLDSERVER6 d R6 r. Y3 } {2 D5 a& U
CUser* pUser = (CUser*)s.dwValue;
" S& a; \/ q; M5 K- v6 Q, U g_dpDBClient.SendClearPropose();
# T, i* I+ c' |) K5 A#endif // __WORLDSERVER
6 D L/ _" _( q8 ~- q P return TRUE;- L6 ^# m& W% Z- P/ k( i
}# r! F: I4 C6 f, y% c- d
下面插入! @$ v4 U; |7 q5 {- L$ E! g
BOOL TextCmd_rebirth( CScanner& scanner )
, J) c( U! ]& \( i- \{
/ R( E7 C& W a. R#ifdef __WORLDSERVER
1 F8 q J9 f7 K* Y, |CUser *pUser;5 f# o& t: i9 P* l
pUser = (CUser*)scanner.dwValue;
, G& Q0 l) x% L, z0 r. Y- G# J+ Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 s3 J- \ w% J6 V8 c3 r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ l# Z w) T# w$ Oelse
3 H- A3 q4 J% D. M1 A) Z4 ^% npUser->AddText("你还未达到重生条件!");6 Y, s' w& e" E+ R
#endif
0 L! O0 z3 E1 Y' S7 sreturn TRUE;% h+ i7 o1 i5 R x1 o' \
} . l1 \( l/ {* W6 f
( ~& a. k! z& P$ C& L8 P$ R1 q$ r) f1 H9 F! T; i" X
8 `( W$ u5 r" E" O! \
) E9 y5 j( j1 H# \0 X: [# F3 a0 _
|
|