|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ x: y1 d+ K+ J0 ~: A( c/ _* c$ w, f& T( ~
Mover.h8 t1 K" C0 Z4 z
代码:6 l4 K) T9 o# t1 Z& U, {8 q* x5 g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 V2 [! j0 {# o7 I
' h2 X! y! G8 M. ~* l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- K; |8 B; O; m% i
' C3 T: h/ K; X/ R' Y$ B然后你去mover.cpp添加
" r- z2 c$ z2 M0 i- k: F8 E2 g/ j9 P1 U. r
代码:
( H4 g* l2 Z7 T6 y* l9 u& L# @void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% a* d7 X7 u) n; ]{2 V" U0 B2 i9 w" g2 }! ?; [5 F# G! G
#ifdef __WORLDSERVER
6 z* b3 m: q; D6 x' m9 w& A# s; s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 F8 K2 a1 ~1 T) n1 ~* F MoverProp* pProp = GetProp();* }$ F ^6 C4 Q8 x0 @
if( pProp )
; m' \8 M5 }) L% i$ p$ D# o {0 s5 p2 o3 K+ N. B
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 _% G! T8 K) e. l, \3 R8 A4 s {
( }: ]1 Q7 T/ l- f AddChangeJob( nJob );3 y4 y" w: x4 I0 G, t+ t0 T
}else{, f1 {( e9 g; f& G1 Y& P, b
return;
! g( W' A" q% ~' _9 N }& N. v4 R0 x) n# G
int nPoint = 0;
' X# b$ R6 {8 h# }+ X, C if( m_nJob == JOB_MERCENARY ). @0 [) Y9 C% V) T$ M, q
nPoint += 40;1 r0 i( v* @2 T$ c' Y; j
else if( m_nJob == JOB_ACROBAT )# @, C" K# T# V6 K4 \5 ^
nPoint += 50;& K3 b, P7 ~; b! X5 n! {. @" b
else if( m_nJob == JOB_ASSIST )2 e; O# K1 [& n* G
nPoint += 60;
/ C6 y# J% {. D7 P/ ] else if( m_nJob == JOB_MAGICIAN )
+ [5 t0 ?9 O& u; A* b* W2 ` nPoint += 90;
, o5 r/ E/ Z$ c else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 B: r! D8 i6 K5 k: p( q
nPoint += 120;& d$ C- E8 R+ O% ~! i; k7 Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) W, p: A3 h. B& z
nPoint += 150;$ R1 R3 u" U$ u6 I
else if( m_nJob == JOB_RINGMASTER )
4 G$ k- B5 |! P0 A' G5 f nPoint += 160;( G2 C$ U, M, c1 P
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( E. `1 |5 C$ A) q0 i nPoint += 180;' _5 a& N( G% U/ {7 I0 J7 Q
else if( m_nJob == JOB_ELEMENTOR ), f0 L" \/ z/ f9 L
nPoint += 390;" T# `. K9 V9 R" @5 u3 B
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ X4 I3 k# j( a* M2 q
nPoint += 120;
+ @% G0 h- e8 W: f; G Q3 L3 Y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )( p1 \8 s# Q6 N
nPoint += 150;
1 s% z- d5 y9 g: F! o else if( nJob == JOB_FLORIST_HERO )' `. |' d9 o" Q, C6 I: B" u
nPoint += 160;! g# C$ o r [+ a& k
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! _! Q# A( t& r7 p# j7 z nPoint += 180;
8 |% }& O4 J2 j K" L3 a- p0 H else if( nJob == JOB_ELEMENTORLORD_HERO )
, r/ m v% Q! H4 x& f" t nPoint += 390;# q {! Y5 @1 F' e7 j; i- y
2 \% g4 h- W- U, z- K/ [* u! Q AddSkillPoint( nPoint );
- ` I% }3 W' t0 @ m_nLevel = nLevel;' |& E0 @# Y' J5 ?3 m
. [% Z7 ^5 n! y. g# C# d" o# ?
SetJobLevel( nLevel, nJob );
2 i8 @$ {$ Q, w1 |1 w3 s" W m_nDeathLevel = nLevel;
5 y1 X+ q9 u: F' E! C' W#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! w6 g" m5 O: u; R# L/ z
if(IsMaster())1 f. t1 j& @3 g# I3 H
{+ H: F+ X% k: N7 f$ N: p( I8 e: d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. b* Y' K2 L* d if( nLevel > 59 && nLevel < 72 )4 N& y# U( E" I3 q
dwTmpSkLevel = 1;
0 L4 O8 N. q: D/ O- I7 U* i8 o else if( nLevel > 71 && nLevel < 84 ): @! { i) \" s8 l8 c# A
dwTmpSkLevel = 2;2 ~6 [. ~. F$ U. N6 w6 y$ y
else if( nLevel > 83 && nLevel < 96 )5 {+ W& V6 {6 `7 m0 ?& S% A
dwTmpSkLevel = 3;% A8 W, F# f! \' j( n% D
else if( nLevel > 95 && nLevel < 108 )5 A) ^& Y- D/ e0 l3 Y
dwTmpSkLevel = 4;- M( y7 m. t4 I6 ^8 f- _# `
else if( nLevel > 107 && nLevel < 120 )2 h& i- h% c3 |7 g# i2 o, B
dwTmpSkLevel = 5;
' d7 F/ G# s8 d* ~) }; l, `' \* j for( int i = 0; i < MAX_SKILL_JOB; i++ ) . G- I1 b' q' r% A/ {
{
2 D' J/ g) b4 U: L4 Y LPSKILL lpSkill = &(m_aJobSkill);( x$ g8 `+ U% ~, p
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 j, ^: u- c K J9 J- e0 _/ ~ {
$ V! ^) i; r+ i0 q1 z3 a% L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 r2 b" V) A6 t& r8 p/ {0 u
if( pSkillProp == NULL )
2 ?9 | N- g/ m. w2 ]* |, r6 b. L continue;6 `3 d! C4 G. G* [9 w9 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* R5 n: i0 _4 Y6 I9 v' |3 e( [ ^7 H
continue;
$ o( b4 Q& V3 q( {2 f4 O/ e lpSkill->dwLevel = dwTmpSkLevel;) I% Z# H" l8 `7 i' H8 z$ d( N, [
}5 ?( d' j3 T0 c Z- u( o
}
8 |9 _/ e& N) B }
+ A- j% o2 F& _4 L' x else if(IsHero())
5 E3 ~ b- Z$ b6 s" r1 a- W {
& v7 K6 X) j6 o) W for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 U# B( X$ \% Q" B6 u( i" P
{
- h6 \1 y1 {/ F! ^) r: `, ~$ L LPSKILL lpSkill = &(m_aJobSkill);# @! J) {0 O/ ]% T3 u5 F1 `' c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 u7 V% b1 E5 Q; n& R& ?' ~ {/ [3 l* R' T/ j& X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . {; U ~; T1 {, s
if( pSkillProp == NULL )
. ^2 ]3 L" h- r u X continue;
: t1 y* [1 e* c b% H+ ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 U; |4 s, }! t6 A( V
continue;( \" p, `" P" v
lpSkill->dwLevel = 5;, n) n% H" `7 f& L9 W
}
# ~; c6 Y; [ |- E! k3 q }- E7 M6 p& e* L0 J
}
: p% Q! S$ g z, [" H& ] else if(IsLegendHero())
9 V% |; k9 Q, w5 W {
7 X4 I- p- `, g( j! \' J! R6 o4 k for( int i = 0; i < MAX_SKILL_JOB; i++ ) / G0 `' \8 d2 S8 A8 I7 N7 T- H8 S
{ 2 |9 m r) |- x" C6 ?, m$ o
LPSKILL lpSkill = &(m_aJobSkill);
! ?! T. G) X* |" f: g if( lpSkill && lpSkill->dwSkill != NULL_ID ), ~7 ?: w) O7 h5 q
{8 H3 j: S. i7 d' |' J6 X1 V* {( [; ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 q5 l# p' f: _ T) d( r6 ~$ ] if( pSkillProp == NULL )/ }* c8 s) u/ s
continue;
+ ?9 i6 o) d" }3 j# |( E5 P5 s/ S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* M! b$ H) F5 u1 f# x, O. s9 Z, M' ?0 z continue;
$ \5 ]; y [, r, P( K lpSkill->dwLevel = 5;
2 y7 j9 m5 @7 G }2 H5 g# F" [& ?3 {5 C! y% |$ M' j% x; n
}
$ l1 e) h( K G7 x' d) l: W }
5 z+ o; E' W/ K; j#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! U( i" b4 j! Z( d3 w if( bGamma )
4 L4 @9 @, [$ `: Z {
( h6 `5 J# M: N m_nExp1 = 0;* i- j1 c! j" \+ K: [2 G! B# N
}) `8 |3 E4 m$ L% o) l/ M
. G! e) A( z" b: N: @
( (CUser*)this )->AddSetChangeJob( nJob );; _. V2 x; r" r
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 {; ]& Y' H* c- ]6 j$ v
6 x" v+ \' s" o3 i) t" k
* j+ y. v& p! j( `#if __VER >= 11 // __SYS_PLAYER_DATA: g# P( w9 R" S% D: S; M; t- a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; N8 {2 c8 G" d
#else // __SYS_PLAYER_DATA
, V9 G9 ] ~8 v" W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( N# i, G% O, a) H; e) v
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 b: b# \* E1 Z' Q( T) @& z
if( m_idGuild != 0 )+ o. i& t; A" J" [9 Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );3 G/ n2 }9 a5 c' ~* `
#endif // __SYS_PLAYER_DATA
( U1 |7 S7 y. c! V SetHitPoint( GetMaxHitPoint() );+ r1 X- V' I, l( E) I$ O
SetManaPoint( GetMaxManaPoint() );
3 a% C. L! d9 N& U2 s# h SetFatiguePoint( GetMaxFatiguePoint() );0 ]+ m2 a4 o. Z# B# M
if( nJob >= 1 && nJob <= 4 )" x- R( A' F' }+ Q3 L: G ^8 V
{1 B9 s% P+ k' i2 e7 J8 i
m_nStr = m_nSta = m_nDex = m_nInt = 15;" U+ [% w$ W( R$ |6 I2 d- e, e
m_nRemainGP = 28;
5 i) k1 b& s( N2 u1 b9 _1 C; U3 t4 o }
# S3 R. F) o- q& ^- C if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). A; t% `- `' c A L% M; g; ^
{& N- @) m* Z" p
m_nRemainGP = 118;' @7 W* `0 n" ?0 {/ _& g. e' R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 F6 f8 G6 m3 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 i3 B N. O- m2 m, j6 g
}
3 s0 e% G2 q6 d- U7 m+ f- P if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% r( C, H- e2 D8 ^3 S7 d1 O! n {8 ]# O: H, Z& c+ X6 `+ e
CItemElem itemelem;
- X# S2 g" B; x$ ], J6 U0 L itemelem.m_nItemNum = 1;! V& b; c. `; e6 X7 r9 E
itemelem.m_bCharged = TRUE;" v* e: Y ~; a# ?
BYTE nID;
, _& S4 i* \! `
( L: b5 y* j, P if( nJob == JOB_MENTALIST_HERO )
; {% p7 F5 w2 ]3 Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: t, }. ^; p Z if( nJob == JOB_FORCEMASTER_HERO ); J" n, b: ~2 U* H1 `# u- Q& _! W. |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) E: }& H: J/ h0 C: D* y
" q! e/ @5 U; C8 H5 I& w
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 i- f) R- i a1 K }, R$ Y' d6 M+ C/ P( g, L3 O8 g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
p i) Y+ z& o+ h* a) ?; w ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' |+ r8 L: U; M$ Z" r8 D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
? s: {* W1 F; {$ ]- { /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! M0 N& Y, N6 }9 v$ P
( (CUser*)this )->AddTaskBar();*/
% a* r4 K0 l. a f* r p, l ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 s8 M/ K* m, H' O# a
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 Y- {0 u0 Q ~+ c ((CUser*)this)->CheckHonorStat();5 h4 U; K! |6 p& W- S$ Z0 s
((CUser*)this)->AddHonorListAck();
0 D4 e7 ~/ @; F+ S. r( A L7 | g_UserMng.AddHonorTitleChange( this, m_nHonor);& P) ~3 `+ H, f, }3 r) @6 u
#endif // __HONORABLE_TITLE // ′Tà?
9 P/ d5 r1 O+ I, Z1 V }; B' I- e! d) v. {0 p7 d
#endif // __WORLDSERVER
- ^6 F. u: ^2 U7 i! b} + d. Z4 X$ u) i- s$ P
+ x1 `; y. |" J* U0 n9 Q. I+ s然后你进入functextcmd.cpp并添加以下4 T4 f- @: T- k L( p/ g8 T
. H" F$ m3 B6 U代码:
: K K Q H; a, x$ E% KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* ]6 C2 ]$ w* i2 v下面插入
0 }) \1 n& j# w) UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- p4 E$ }( w; U6 {: } n# M
, P/ e6 @7 b( O: `4 a然后你去6 G/ M4 T# k3 K: L; p
3 B1 a* U4 V: N N o代码:9 d% j3 m0 j6 Q' Z$ w7 ]
代码( @6 K8 z% l, R' P( ?. U I
BOOL TextCmd_ClearPropose( CScanner & s )
& O: L$ A$ J4 _# i{4 R% G, O7 G7 k: v
#ifdef __WORLDSERVER
3 l: B k* x, e- u% B CUser* pUser = (CUser*)s.dwValue;
# N+ p; O" j6 g: @/ G! l g_dpDBClient.SendClearPropose();
6 f: W) ^, [6 P9 E8 X+ f/ `; N- m) |#endif // __WORLDSERVER9 z) Y) O! }$ }, `4 t
return TRUE;/ ?" ^! P& q/ ]2 s1 T
}
$ ~3 h8 C; ?4 n! v下面插入
- t( ^ C8 I, ^; }4 Q1 ABOOL TextCmd_rebirth( CScanner& scanner ): A0 E1 [0 B( B E, n* X* o. Z
{
; C8 Q! d; k- a3 T3 b#ifdef __WORLDSERVER, U2 X9 P4 R4 v$ K
CUser *pUser;
' P1 o; m& J% R7 m# z- ^( J' ZpUser = (CUser*)scanner.dwValue;5 L' H/ A" D: t j3 T; H5 ?
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( A, `+ n" C8 r/ |/ _ I1 i
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ x _. B" D$ o" Xelse! J/ v8 O3 ]3 p$ l1 W
pUser->AddText("你还未达到重生条件!");. ^6 L) s- n, I) t3 A/ m, d
#endif
: ~4 y3 D& `2 G8 @ xreturn TRUE;& }# t3 ? t. {0 S
}
- v# V# k; o: F- j" Z2 d5 B$ R) q2 K1 ]8 C/ f/ Y+ I
4 l I5 a* j) x2 a
- U3 o( L3 e/ a: b0 h( j+ {- P( x$ w, d& U* j( O" N5 G
|
|