|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" x* ^! k* Y( l0 p
# f1 f6 {6 ]* V5 ?; {
Mover.h
' n0 Q6 h" J9 U \. u Q2 Z代码:1 l0 [7 _' p/ S) R k1 y! L
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 C. K9 @% [) Z& p$ t- }3 @% j
) F+ ^; W$ p0 h; l' |
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: P- h0 l/ D" E$ O: O! \3 j4 s6 c4 | M1 w; _" G
然后你去mover.cpp添加
( a$ T3 r2 |- Y, g3 b D2 t* r; g5 y7 `! p& O+ [# o
代码:5 l+ a' v6 a% {, ^4 q2 N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
L F2 ]! c" f- K8 B{0 L. C( c) t! q& h% q, l
#ifdef __WORLDSERVER
- r) P8 h9 e) R' h6 p$ z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 K# H' N/ M9 C, i- W MoverProp* pProp = GetProp();
8 }: {/ Q( J6 g1 ~4 d if( pProp )
# ]* ]) Y: t* g% O% j) z {, J: \$ |( h+ T K. ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
f4 \# }" ^( G* f% \1 r {1 C9 T$ E! v# M" D( s/ O% y* f
AddChangeJob( nJob );1 ]" N; k( I4 V1 _. f o: ]. N' J# G- w
}else{0 [* i2 }: S a1 p
return;9 ?) {5 i% a) ^4 u+ @
}
! d( i, ?9 l0 \& \% |6 Z int nPoint = 0;5 Z M. h' `" }: ^+ |/ d8 d
if( m_nJob == JOB_MERCENARY ): m4 V* d; t6 H: h i0 |
nPoint += 40;' v, x9 }; C. g) O
else if( m_nJob == JOB_ACROBAT )
+ u* Q$ f" e9 Y nPoint += 50;1 y8 E% f- z/ p* M9 _
else if( m_nJob == JOB_ASSIST )
5 x& J4 O7 ~ q, ?# [4 }& p nPoint += 60;
; g& O" u0 v2 M3 t; W1 } else if( m_nJob == JOB_MAGICIAN )" m$ V$ }( k, O& `" W* Q
nPoint += 90;- ?/ Z% G5 Q7 Q6 ]! k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ j% D* w, C4 C9 j9 \ nPoint += 120;# u6 }. Y5 w% W% y* A6 |! z4 X
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 C2 V/ V2 y3 [ V
nPoint += 150;
/ Y) p+ [6 K+ Z4 j# A else if( m_nJob == JOB_RINGMASTER )
; G( D6 h" @$ e* z4 j" \ nPoint += 160;
3 ?+ ~' c' s0 i0 v9 c else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) y- D7 ~8 f2 j) B
nPoint += 180;3 _" i+ n7 W0 u0 C# O9 {. O, K
else if( m_nJob == JOB_ELEMENTOR )
' q7 V. k2 X; q8 i @8 \ nPoint += 390;
8 |) {8 v: U% H+ l7 C% E7 |4 i else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 z+ L/ l4 W$ _4 @' e. n' s nPoint += 120;/ T. q1 f" d h
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* U/ B `2 F+ J0 P" B1 q nPoint += 150;. M3 f4 _* i4 ~3 O3 d' i
else if( nJob == JOB_FLORIST_HERO ); V! ^# h0 R3 V9 M( N( s; e h. x) E* ~
nPoint += 160;1 D2 y# J# k2 Z K( Y& |. j5 Q' B
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 G, o$ S/ L" {6 f0 y
nPoint += 180;
" |/ W3 p$ v7 N& _+ B else if( nJob == JOB_ELEMENTORLORD_HERO )5 g% |. H7 X; ~4 i4 d' A
nPoint += 390;
$ C1 \$ c* G1 X8 V% V. z
; q* U8 ?& \) v% ^9 x/ P AddSkillPoint( nPoint );
/ _6 C# ~. A( W; y$ d% t m_nLevel = nLevel;6 M/ e0 t. [ @9 s+ g: Z) O
; k& _$ z3 V' Z* r3 N1 n
SetJobLevel( nLevel, nJob );: i- I1 z2 Y1 B0 K6 J
m_nDeathLevel = nLevel;
& L* i0 Z3 a" w) w5 B#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) {6 w5 c2 Z U$ g
if(IsMaster())
1 p0 d8 s( { t0 J: C2 A; w {7 i6 D* U: n) S2 s* Y# a
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 L2 c" R$ A$ k& ^ D# ~ if( nLevel > 59 && nLevel < 72 )
5 ]+ w- F- I1 f& A; a3 h dwTmpSkLevel = 1;% i U5 r/ n+ A( j( V* z" c
else if( nLevel > 71 && nLevel < 84 )0 ]3 Z( {" Q$ X1 N) {
dwTmpSkLevel = 2;. t3 `! N, R0 L2 ]" R9 l
else if( nLevel > 83 && nLevel < 96 )
* p- I$ v Z2 D6 T. H( | dwTmpSkLevel = 3;9 q9 j# ?' |* D) {" N
else if( nLevel > 95 && nLevel < 108 )
. s5 z5 N/ H8 x dwTmpSkLevel = 4;. H8 G5 q+ d8 ]" w f$ w
else if( nLevel > 107 && nLevel < 120 )
* X- O; P/ p" K. ]" ] dwTmpSkLevel = 5;! N4 X4 X. h1 O" n0 ?+ }6 T9 c3 q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 f+ \8 t$ f r. F
{ 4 l/ R4 g. \, D1 Q6 p* _+ E! r
LPSKILL lpSkill = &(m_aJobSkill);) M; ]8 k0 d3 f7 T9 \( S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 X+ ]' k$ W, S% f0 h {
4 q4 w- q; S0 F# V* p- r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * e. d# F1 V' U( X( E5 K
if( pSkillProp == NULL )
8 C/ b2 a7 Z n continue;
# C7 c/ h! D) U: [3 @, K( @6 W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) Z4 P' u6 N( a U4 _2 x continue;
) e/ B/ y: i9 i9 m) }' g lpSkill->dwLevel = dwTmpSkLevel;
! V7 h7 x% c1 W9 v }, p, }0 Q) @! e
}8 g8 U# G: \) ?! b& R, i4 i; d
}/ C9 D |. [2 E \5 |
else if(IsHero())
5 h7 j- y* l' I- e; w/ B+ K9 l {7 z2 ?3 q/ m! [/ W0 }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % r6 |; s7 V( S$ N' R5 `
{
2 w; o" l- I# E1 q9 H l9 H' _9 b LPSKILL lpSkill = &(m_aJobSkill);' R7 b% K8 u' w
if( lpSkill && lpSkill->dwSkill != NULL_ID )' U& }, f1 o3 p% ]6 I
{ Z3 Y5 F7 J5 T: J: Z$ X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 l! e8 i$ S! i: s/ r& v/ i T: G" I if( pSkillProp == NULL )
0 t3 G! V+ G1 f* M) Q4 B6 n continue;) Z3 }* @; h! H& S( B) P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. F5 E6 x1 ^" Z4 K# N# i2 r9 y continue;1 \0 x- G% X$ G8 p$ W& h* v: }
lpSkill->dwLevel = 5;0 v; W- Q+ Y" J4 Q4 z
}- \3 K+ F2 F8 w$ ~) Z
}6 t, V. J2 u& {# Y3 D
}. e$ g. f/ b' B5 p# c2 V
else if(IsLegendHero())! G# F" }& X0 S- t `0 }1 Q u2 H
{0 _* b# t" y( Y3 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 P: v' u5 j c# T
{ : O! r% |1 t7 [# O! F) j8 Q
LPSKILL lpSkill = &(m_aJobSkill);
4 o- A) z. z/ J if( lpSkill && lpSkill->dwSkill != NULL_ID )) ]4 |' }* G2 E6 R! t% s+ z
{
" z4 G9 F2 z0 E, q0 r1 q- }4 q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); y; s7 X' {) z, C* m/ I! S
if( pSkillProp == NULL )
4 N" Z: ]& ~% R( r# t6 f continue;
2 a! {$ i9 g& J% }- |6 ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. x& w- G/ M+ P4 u6 P$ { continue;
4 p: ~" `9 U* @1 W5 n7 f lpSkill->dwLevel = 5;
% Z+ W/ Z3 Y% [' ? }+ E/ O4 v' ~6 D
}
# H1 v, H4 h% c" x% ] }/ ?; S7 @" S) T5 Q- y+ p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# z8 ~! b; ~* m1 L! v if( bGamma )/ q0 O* n0 e, ~" F2 z- P9 c
{; q% I7 b, ~" J
m_nExp1 = 0;
: ?1 X/ y* X( U' n* \9 z }8 D% h* T' f$ d( H9 l5 E/ J: u8 G3 H. D
1 M( e, Q2 Y4 g. u9 t
( (CUser*)this )->AddSetChangeJob( nJob );1 F3 B, \2 N% Z0 ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 b( F. R5 h, g$ ^
& @# j1 {4 R: W. o3 v2 h' k! V
$ D& W d0 `! ^) C; ]#if __VER >= 11 // __SYS_PLAYER_DATA5 I- a" S6 S" _+ g
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! A2 v, |6 N3 i8 _; Z0 M
#else // __SYS_PLAYER_DATA
4 {7 G, ?/ f8 }$ V* W) r6 l g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& k% U( l( M w N2 r2 r$ f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ T2 B4 c: B# N; k: i% _2 ^) P
if( m_idGuild != 0 )& D/ c, |* d/ O( V K8 ^! D
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ {' d7 F, g8 R+ x) b1 w0 l#endif // __SYS_PLAYER_DATA
" O# |& C4 `* X& X SetHitPoint( GetMaxHitPoint() );+ j6 s/ \! S* y, s
SetManaPoint( GetMaxManaPoint() );
% g$ D1 e! p; @ SetFatiguePoint( GetMaxFatiguePoint() );
* t9 M# r7 H7 o3 F; J if( nJob >= 1 && nJob <= 4 )
5 k/ n/ I6 y2 I7 { {
9 q4 y- {. C1 T: A0 g m_nStr = m_nSta = m_nDex = m_nInt = 15;7 v3 r9 q( Q! B" e: p! N
m_nRemainGP = 28;
" A2 e9 R; R Q) Z7 [/ j) [" D6 U }% X: k7 F4 a1 ^- i% w
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
j7 q6 B: ~' Y. C6 d {3 `* {. V- X2 Q/ P# G
m_nRemainGP = 118;! z7 b& c! k# X) t/ K1 J% P, E
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: u8 z2 x7 T9 e8 v7 v5 k
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# }- D6 Y, |- H3 _' n }3 }* Q. V M( ^+ J. `) z' d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- T3 U6 `" y- J# l) _ {
. V+ ?+ q3 x. ?' R0 E; _$ { CItemElem itemelem;* c f8 ?, W, d; d& r' n
itemelem.m_nItemNum = 1;
# i Q& [5 d- P. D itemelem.m_bCharged = TRUE;/ ?% w3 O0 Z5 M3 t& W ]
BYTE nID;
: f6 n5 G3 e! Q9 w% X. t
* _' o3 u% ?* d/ }1 G2 q if( nJob == JOB_MENTALIST_HERO ): E1 k& N9 j, Y2 Q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 S0 K+ a |+ m& u
if( nJob == JOB_FORCEMASTER_HERO )2 u1 r/ Z3 S" ~- e( ?$ I x5 y! _
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 G& g3 F/ [# \" L9 m/ e' b3 k4 C: ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );. S! R5 y3 h7 x, M
}6 [2 w) Y( ~. ~9 Z0 \7 C% x
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: m+ }& A% P* Y3 v/ z% O* d
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, N9 E9 I' B! F- I8 ^! V3 g" x. G. j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% S' X' p+ ~7 O6 H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" @' e/ _, w* e0 Z, M6 Y: p! u! d
( (CUser*)this )->AddTaskBar();*/ S6 z9 \5 w+ H9 _% N5 {% {" X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ P2 a: `+ y7 N8 g% @7 h; O2 G9 @% U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% N. o4 Q6 @' x! X2 s+ X% p/ L
((CUser*)this)->CheckHonorStat();3 t6 E8 x I) o
((CUser*)this)->AddHonorListAck();0 V& ^/ @/ U$ \4 j! b( V t
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 _/ X# W4 ]& y5 Y1 h# q/ ^7 P/ q#endif // __HONORABLE_TITLE // ′Tà?
" d) |2 V K$ g" |' g }, x' Y1 e( n& |; S9 I6 M0 t# ~
#endif // __WORLDSERVER
7 l4 u# P. q4 V5 s* \) C} " }& h9 D( p* w
" p! g8 ?3 d9 H& e然后你进入functextcmd.cpp并添加以下8 e- \6 @' M, a
' X5 e. w% u1 k- B+ w; \代码:7 R) r/ p; X) B* ^% R
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): |5 p/ ?+ {! G) ?' u( D( t
下面插入$ F" A4 W0 T& [8 d; l1 ?0 ~: i, o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' R+ Z) S$ f3 X" T
! d) c) O1 R% m. G然后你去' h/ N# r& S/ @' k
+ S( s% k, i% H& E1 H% |' T
代码:
. Y5 d( a& ?' F E& b代码# N8 K$ c, c# {* ]/ d) e
BOOL TextCmd_ClearPropose( CScanner & s ) z* [3 z% E# E6 I; W1 G
{
4 I+ }2 j0 J% l#ifdef __WORLDSERVER
6 u0 f4 Y. n5 Y0 p/ e- p CUser* pUser = (CUser*)s.dwValue;+ m8 J/ K* P9 [4 L; R8 v
g_dpDBClient.SendClearPropose();
) r0 e) b; d# I! x; G8 I" a#endif // __WORLDSERVER+ S$ D E( I; Q$ A4 V) R
return TRUE;; {( E2 ]% k; e( r! y- `0 _$ W6 Z
}+ Y, C4 w5 U( u! V0 L5 ^
下面插入
2 }; `% x1 U/ MBOOL TextCmd_rebirth( CScanner& scanner )6 o9 I. w [* J2 e: F
{
/ Q5 ~. R" ^4 k4 O7 r#ifdef __WORLDSERVER1 U6 t$ N% _( w! E6 M7 x7 n
CUser *pUser;1 ~! n/ X% k$ s7 w1 [5 n. n
pUser = (CUser*)scanner.dwValue;4 o' B- n4 S+ a" G* b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 i% M+ ^/ e; X8 _3 s/ e. hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 O0 w. K! |( N9 S6 w' C7 r" nelse8 Z& w0 x- T8 ^1 R4 t
pUser->AddText("你还未达到重生条件!");
4 ^. i; J: o8 r' [4 _#endif- [9 u. r' Z2 d- @) q
return TRUE;5 P! \# i/ @1 Y$ {. Z+ Q0 o1 _
} 7 i) k4 i" L3 ?0 d9 I
: w! _7 _& P5 {; X
6 d* h2 p% y# q4 T2 j
' |6 C( P; ?* h, g$ C5 J
3 m# [( u. h) i& ^& E2 s# M | |
|