|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 i7 N$ q& q6 v, ]+ C( g
0 i$ S X4 m' X# w$ ]+ }- U6 D Q& TMover.h0 ?9 r |* P7 Q5 h# p& [
代码:
2 E* D6 {1 m/ Z) ~" w& K4 A9 Q% z) d找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, J( P- w: ^4 S, c. u6 V# \, _' f2 u+ M. [4 I% Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & A9 Q' n0 _0 \, ^$ D
% _: K; D3 b. C+ `# L+ {然后你去mover.cpp添加
7 `5 P4 e8 @2 D% K. Q$ d
! W& s, c+ {/ X& N代码:: T% u }' O" o5 u: V" w! a$ z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# l A+ U/ m, @{
* a1 Q2 ^6 G+ [; l6 e, Q$ @#ifdef __WORLDSERVER& ^! H/ T+ n: a, l8 I3 y
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 i' z5 o( z. F; _7 w) M MoverProp* pProp = GetProp();
+ w& b; M, g5 V0 W0 J if( pProp )
- [4 ?0 z7 ]% @0 r5 | {
% r* z# A! f4 U* J* t4 u if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! E( s2 V, h& E- j% W' [ {" K# G {' D, P6 P# X
AddChangeJob( nJob );5 s; P) c+ z# z: u6 T6 i2 m( l
}else{2 y: Z( v* f% Z
return;
# ~8 v- X8 Z( k }6 T' d6 b8 K* U c/ e$ q# I+ |! a
int nPoint = 0;4 q6 h( B% T1 E3 E
if( m_nJob == JOB_MERCENARY ): q2 ^4 ^! }+ S) p' W
nPoint += 40;* A9 ~) K: c: v q
else if( m_nJob == JOB_ACROBAT )
" g+ T& B" J7 R! a+ v' C/ F/ A nPoint += 50;+ d# X& B6 {& ]
else if( m_nJob == JOB_ASSIST )
3 {2 u7 H; n# r/ z( B" N nPoint += 60;# }/ @. p- m$ z5 J. [
else if( m_nJob == JOB_MAGICIAN )# A. Y8 ^' ], v( O
nPoint += 90;+ k! C9 P, a1 k7 }) e& q8 Z, h
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 ?7 o8 x- O5 v
nPoint += 120; R7 i" n% t5 z+ E a5 ]8 Y- G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 {2 L* M0 _/ D, c ^( x nPoint += 150;
5 v+ e* l8 P" O# o7 m else if( m_nJob == JOB_RINGMASTER )/ m5 R* m% l/ Z) M8 r# i
nPoint += 160;9 _' ]( \/ B9 H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* q/ ^ y, J2 D3 q, z1 P/ F
nPoint += 180;
5 l0 j4 ^) J, J- ~3 L2 a else if( m_nJob == JOB_ELEMENTOR )- |6 a9 d. V- `# t
nPoint += 390;
/ X4 m/ r( J8 c2 ^1 L( i/ d else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! L# Y$ W) e7 J5 h nPoint += 120;
8 k) Z6 F5 e, J( O4 H) D else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): C( A+ _7 d6 k" e
nPoint += 150;
; b: I, @) y& ]8 |+ i" l else if( nJob == JOB_FLORIST_HERO )7 l% u) d# B, |1 ~
nPoint += 160;
9 r8 ~' \7 C1 t1 H) e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( }$ d$ p0 S3 S$ R( i# d: |; }
nPoint += 180;
0 k+ ^& L- Q- g4 i! T$ N! D- g else if( nJob == JOB_ELEMENTORLORD_HERO )
* j7 F8 s1 t0 k" {( `# K# G nPoint += 390;. V( j' V9 a8 M$ q' c1 ~
4 R; p0 Z8 h( h7 i AddSkillPoint( nPoint );
: L7 k5 l6 q U" O; o m_nLevel = nLevel;
# {2 ?# _" T, ]# ?3 N b+ h* r. c) ~) s$ ~4 _
SetJobLevel( nLevel, nJob );1 q2 Y6 y* C" v* C+ E3 R
m_nDeathLevel = nLevel;# M; Z- z9 W* _4 e9 e
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ _* W/ \* ^$ J- }! c/ _1 W if(IsMaster())
3 y5 J/ @3 L; _' C {
& {1 h! v5 O8 S' w int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 r6 s9 s0 h- c1 r3 b
if( nLevel > 59 && nLevel < 72 )6 }; X; i9 b+ p6 f
dwTmpSkLevel = 1;9 ~& B! ?2 O$ b* [( ^
else if( nLevel > 71 && nLevel < 84 )
/ X* T8 W- h* U H" j dwTmpSkLevel = 2;; i3 M$ M( f) H
else if( nLevel > 83 && nLevel < 96 ), \( z( a$ C" M; g- p* J! _
dwTmpSkLevel = 3;' U# ~* K- Y1 |+ Y1 v7 f7 t% ?
else if( nLevel > 95 && nLevel < 108 )$ ~ a( q* M5 L' C; ` k* i
dwTmpSkLevel = 4;
$ M4 f& `/ t7 P9 o# y$ N else if( nLevel > 107 && nLevel < 120 )
+ [, b+ H& O/ R$ _0 M dwTmpSkLevel = 5;1 n' I3 o/ X9 P4 D3 y" k6 a" J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
_8 y/ H: t# T; N { 1 z! w6 Q. }; {! w
LPSKILL lpSkill = &(m_aJobSkill);9 ~2 @- y1 U0 V- e$ x) F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' A/ f5 R# k6 G# a) f/ q5 }5 P {# V2 A0 C. G+ a) h% c" b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
u, N$ J' T9 {- C; b2 c if( pSkillProp == NULL )' t! a. ?, w( p2 j$ s' @
continue;& z" ^4 R) M9 ~9 D& I0 ^( o. o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), F3 y7 b6 ]; r& X
continue;' Z x9 l4 a$ X
lpSkill->dwLevel = dwTmpSkLevel;0 e8 P; W; J( w" Q" X
}8 V* B V" p2 K- j9 I8 S
}+ G1 _& E. y% E4 ` K) a
}
' l7 r- ~) k s; `3 v else if(IsHero())7 t5 j' Y( C c+ L( f+ e
{7 Y4 s/ S I3 Y' {) `) j# ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ X9 G# P- O4 {5 _) m8 G( m
{
5 _. k+ \: d/ a# p: u$ l LPSKILL lpSkill = &(m_aJobSkill);; @9 M9 f1 ?: k o0 M% k! M) h$ f3 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )% M) m. I' G! v( k* y# f6 m
{" S+ ^1 e: q+ C, o4 u: v2 A9 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - Q! i# p$ e6 y1 a% |
if( pSkillProp == NULL )
' y4 p& \( f# M9 |# @ continue;, I2 L" @2 H }5 C3 O$ Y9 G$ S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). m2 B8 D5 b4 L9 k7 }
continue;
- `$ |2 P. ^3 @ lpSkill->dwLevel = 5;" J5 [* }7 }3 ]0 A' C/ D. x+ y
}
b4 r2 g" _6 a+ |: o4 q) A# o! D }- a- L- L& l8 J3 n5 R
}
- x7 U0 o1 B: q7 n# C9 k' @ else if(IsLegendHero())9 b0 O: ^# ]% _
{- A: {" A8 Y4 `) K6 w$ P1 }5 z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 @- u1 V+ y7 x" V+ g: @
{
' H* f" J; m8 i* ~% z LPSKILL lpSkill = &(m_aJobSkill);
8 |( _) X' M* `- y T! t, @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
: D5 S% K9 T/ n2 u {# ]/ X' |* t# Y7 V) Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 K! t% | X+ N- W if( pSkillProp == NULL )
- H" p4 d% ~% w7 K* k0 G! h continue;
* u7 r9 x/ ^0 { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) r0 z; T" p/ A& W+ T% M7 q continue;* J0 a2 x/ ~) n6 F4 r) ?* {
lpSkill->dwLevel = 5;; `7 ]% n( H$ e0 p" \, t# O
}: v& m7 O+ ?/ c* @8 L
}
! t; S7 O4 Z2 U7 ~3 R9 j }
6 j) r4 K g* Q8 Z3 U#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 F5 u" g$ i! y; z+ H C7 M if( bGamma )
* h q2 S4 @7 [$ e: a {! o2 f9 [7 M6 @: Z) E
m_nExp1 = 0;
. f% [: E( d# Z }
- M4 W: R& w4 ~" B6 n, J! a7 l' ` Y1 x0 I9 t" _, F. ~3 b
( (CUser*)this )->AddSetChangeJob( nJob );
8 Y5 O! z4 x2 W! j# g; w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ i8 {' L$ d0 F- L
0 U( v' s- q3 j w3 E( H' ?$ L) P9 {$ v, S
#if __VER >= 11 // __SYS_PLAYER_DATA
- \ d, D, E5 `& C g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, F3 \! C- ?0 P#else // __SYS_PLAYER_DATA
# y) H* D7 ?8 Z$ e E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# F( B- u$ U/ ]9 p2 i! ^( i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ e* r D% }+ C* F% Y, K if( m_idGuild != 0 )
/ d- e% I8 V: w7 {+ [7 u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );6 N2 E5 @/ A9 s
#endif // __SYS_PLAYER_DATA, ?% M( q# k; @) `* {
SetHitPoint( GetMaxHitPoint() );9 f. \% j1 a0 s$ ]1 f
SetManaPoint( GetMaxManaPoint() );
' j& {$ G$ t5 ]+ C* N7 p SetFatiguePoint( GetMaxFatiguePoint() );
5 J+ p' B5 D; Z% \ if( nJob >= 1 && nJob <= 4 )
4 _4 W, u& x% v ^/ ~( l4 P3 h: b {3 E1 j8 R- i: |) e, E$ Z7 u+ Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' Z! V X$ e% |4 |% R. [ m_nRemainGP = 28;
! d( G7 g3 u7 a7 C. ]) ~ }
' g2 n$ o7 j* Q; p" ?! K if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# k: {; c/ P Y4 e. I- B {
" e. b* d* W0 {0 _9 ^; p8 X/ P, m m_nRemainGP = 118;/ p3 Q3 j8 q2 k+ v5 I" Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& i- l Q' q8 g7 j3 J m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 |1 V! ]5 R; M1 G" s7 X }4 f/ [4 T. N1 a z! k/ g; P! o; R: }
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; e; {9 w" o: T+ M {9 p; [7 n7 N5 w. s( R' C) X
CItemElem itemelem;
9 b/ K9 w$ U/ L8 Q: Z* l itemelem.m_nItemNum = 1;( n& ]6 Z$ o5 d7 k2 C
itemelem.m_bCharged = TRUE;( h9 D3 y9 d# H% s- ?- ]5 @
BYTE nID;
* g2 _" T9 Z+ z1 i; g' h+ [# C
9 Q) \- O3 @7 S7 Q if( nJob == JOB_MENTALIST_HERO )
+ j# V. k3 g& n5 z I' ]) c o0 x ? itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- \# a+ Z; V* ?7 u6 m6 q9 ~ if( nJob == JOB_FORCEMASTER_HERO )$ Q8 T: K9 Q6 K1 W1 W. e" M( U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% o5 o1 ]2 ]4 e& e; w) A
0 F/ A& i0 X2 T$ e$ `: W1 Y' Y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 b3 p5 T. i' M/ d# Z- f" w }
9 I/ w2 w% ]& t. b7 B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. H c4 }6 i# a* C2 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 A+ |) ]5 Q6 O* r: h3 ?) f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 O/ K+ ^! S5 b+ K! K5 P
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ p* a8 ^3 P' e" s' a4 @& ] ( (CUser*)this )->AddTaskBar();*/
! Y+ @5 w, x9 o; | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) `4 ]& F( o! \6 x% H0 m9 v6 d
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! H6 y: u- t% {8 I4 d; X6 b8 {) C' e. T0 _
((CUser*)this)->CheckHonorStat();
* |& n4 u4 {2 \/ |% k ((CUser*)this)->AddHonorListAck();/ q3 {8 P7 {& h# \ h/ z/ A. x
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 _/ X; L* X" G% ?! D ~#endif // __HONORABLE_TITLE // ′Tà?
+ |* L7 e& C6 J }
) u4 a6 L7 C+ u3 K#endif // __WORLDSERVER
! K6 S) P" B; f, A$ u" s1 i}
# t( @& e9 [: W% J/ D3 |, ^" J$ F
然后你进入functextcmd.cpp并添加以下
4 Z! c# Z$ t2 a& S, Z* V! v" s6 i; y. [$ [/ V4 O0 v- ]( E. S7 h0 a# w
代码:
' s" K& p: e5 e5 E7 nON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) d( Z8 E8 K- ~. F" P下面插入- ^! E9 q; D' V7 _/ x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . o/ J( U( E ~
/ [" ?* }- K0 F2 B {8 s. i+ }9 n$ |然后你去
+ ~/ k6 [3 l. q% l* W3 \& Z& F
1 a: T* A2 z4 j# c代码:
0 O, x, A& z: ? T) u代码
' D$ m% `2 r! H( eBOOL TextCmd_ClearPropose( CScanner & s )& X) l" |; X& P/ s6 P
{
4 p" z, {9 i. A3 b#ifdef __WORLDSERVER
9 s% A! x A1 C6 m: P CUser* pUser = (CUser*)s.dwValue;- c* l5 @: C3 g3 |
g_dpDBClient.SendClearPropose();
8 g q# z) _1 v#endif // __WORLDSERVER3 { Y4 d; f% ^
return TRUE;2 w, ^* J/ r4 k C; h4 p3 i
}
: G, d0 S3 A2 \下面插入
0 _' d. g) M* A, |BOOL TextCmd_rebirth( CScanner& scanner )4 c- ` G9 \8 W
{6 h8 ^5 s4 q6 B N+ V7 M" T
#ifdef __WORLDSERVER% ^) {" L. q7 u1 q: x: c- d
CUser *pUser;* P4 ]% C+ }" f0 V {( T
pUser = (CUser*)scanner.dwValue;( ~( x9 R5 q: ~# E) |; S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) D- \) r( e8 x$ ipUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 s# B/ {5 V8 z2 o& P$ k# nelse
6 V) v- m8 `% ]5 x8 z) kpUser->AddText("你还未达到重生条件!");
) Z: O7 w/ p5 g5 F4 k8 j K0 R#endif
, w' V/ a5 u5 m) N7 M! ?return TRUE;
6 M6 Q$ u( S7 e1 q6 k4 i0 F+ N; i9 O} ' F g9 f% U" c; b. O- y- U
1 T$ L/ P( B1 b; a. q# k* k: H& b0 h7 @( C( p
9 N8 \8 ?" J1 Y3 X
6 Z0 J1 f- ^, u3 g2 `7 s. \
|
|