|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ J) M }6 x" O+ B
X# y( b% S$ x# x" M' [6 @
Mover.h
, S% F0 u" r _6 R/ M& E代码:
9 ?1 t. n" s+ e) ~8 l找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 ?5 B2 z3 d: f+ H
! L% S; q- q$ M- m) ^4 m下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . H+ Y1 C- P% O1 t; k
: [! D* W7 ~0 }( F+ \% i% A
然后你去mover.cpp添加6 c% O0 ~8 \. t% O% H7 M$ l `* [
9 l* R# @3 O/ M1 M3 K$ n
代码:
0 M% Z' Z3 o. E8 hvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- ?; W5 z* w$ G) F+ k5 V- p/ Q
{
! {7 p8 t" F0 F- w#ifdef __WORLDSERVER( q7 b, x% u5 D" f. V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& G( ^( n0 a' k/ l MoverProp* pProp = GetProp();
1 _4 X9 z" p3 p, @6 z if( pProp )
2 A3 d, P) G7 S5 F# m {* P' M2 }: @2 K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 J0 f' ^* ]$ l! O: b4 K {3 R/ a+ [* V. n) n' _
AddChangeJob( nJob );
. Y$ p5 u) D8 f# { }else{
& U0 k9 U% v9 z return;: Z6 |$ u1 q) U( v; D9 ^" H
}
+ z- l5 [+ }6 | int nPoint = 0;
3 D! N; o/ `* a/ J6 N) d) p if( m_nJob == JOB_MERCENARY )
, E( W! D5 u1 @3 s$ J# R nPoint += 40;
; d7 t9 B7 j3 ]; c" D& z* M7 h else if( m_nJob == JOB_ACROBAT )1 h: y9 b* j0 x& B) j4 C
nPoint += 50;- J0 d8 R' t+ Z8 x" w; a
else if( m_nJob == JOB_ASSIST )1 I3 \! O% C! k' [
nPoint += 60;
7 M; {+ f/ ?+ K4 V7 ^ else if( m_nJob == JOB_MAGICIAN )- z1 k. y# h7 ]1 U$ O7 q1 \$ m
nPoint += 90;( I! l7 k# z' H& j, t4 \! _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ r( I U( {" r' v$ O, k v- Y6 c nPoint += 120;
) f+ \1 ^$ {. m- A, Q8 X% K$ A else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 c6 J$ g; F( E, n! f% @ t* K
nPoint += 150;* ~& ?7 K" L' V3 m# a6 O5 F
else if( m_nJob == JOB_RINGMASTER )# E% L. f6 T1 u6 U \
nPoint += 160;% q3 c" |3 Y+ ~5 g; l% d2 {
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# m8 s2 T. Q6 O nPoint += 180;( G M" C' X" w% i7 D
else if( m_nJob == JOB_ELEMENTOR )
2 q! N( V% y% n# F nPoint += 390;# S! p0 N$ y- k3 P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# H/ }$ j/ \% @; A nPoint += 120;; n& M1 P! E3 ?1 W- u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 o# I) K. O4 k$ n
nPoint += 150;
! {' Z u y N \) x else if( nJob == JOB_FLORIST_HERO )' Q8 N* Z3 l1 _+ A. q; S$ k
nPoint += 160;: d; u3 W- ]! c
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! n& v! m) O) h8 E nPoint += 180;
% O) P, z& F0 G: J) u, r else if( nJob == JOB_ELEMENTORLORD_HERO )
+ y. [7 F. U$ a1 ^6 t nPoint += 390;, Z( b) O- j) y3 X
) C; C. f0 D0 }; i8 l( P
AddSkillPoint( nPoint );
8 n4 A5 Q5 m0 v m_nLevel = nLevel;" |/ G$ d- M" V) l. n) R
1 t8 k7 T$ l0 r6 H% G. y
SetJobLevel( nLevel, nJob );; G! @8 T* R- B
m_nDeathLevel = nLevel;
: e. O2 B0 r* r1 f/ \0 A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 ~2 f, C! a' T* i0 a if(IsMaster())
9 \( r5 _: h4 a) `; x+ m {
" c" |1 G. R5 @6 a! ^3 W int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ g+ b" z8 p) o+ q( M
if( nLevel > 59 && nLevel < 72 )
/ k/ j+ w! ^6 J# _. C2 V- o9 f3 _; d dwTmpSkLevel = 1;9 L" r2 K/ V& q
else if( nLevel > 71 && nLevel < 84 )" I& D& V/ ?1 [' i3 \+ B
dwTmpSkLevel = 2;
3 Y* b) R5 U' J else if( nLevel > 83 && nLevel < 96 )
V: |7 \& y) r2 G dwTmpSkLevel = 3;
$ j( f2 g1 S' v else if( nLevel > 95 && nLevel < 108 )% }+ A0 m$ ~3 t2 I+ E; O
dwTmpSkLevel = 4;2 z/ D$ O, w* W* N) ^+ o
else if( nLevel > 107 && nLevel < 120 )0 ^& r4 O+ ~0 [( W
dwTmpSkLevel = 5;0 k7 S5 o' G! A; J0 o H* q9 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 P+ M& G4 |, N1 D8 j' X3 ^" G
{ 5 v1 E; ~0 B0 b5 Q. L1 ]
LPSKILL lpSkill = &(m_aJobSkill);. C) A( y) Q0 L/ {- O, P' W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# Y6 n: V2 Y7 n. ?5 P- ? {
( S( k1 s0 s1 F( J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % h* {( \' K5 Y: \0 y5 ?" _
if( pSkillProp == NULL )
/ @1 c e9 A# P- N: A0 `7 _ continue;0 K0 W' k8 u( {* _: g' r9 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. w0 y$ E: I* y1 X4 S continue;
( n& z9 y5 Y6 z; W lpSkill->dwLevel = dwTmpSkLevel;7 e: j, Y b- A- u9 ~5 O
}
+ R% F. V4 e& s( a' c' v3 Z( y }
1 y& \ G7 z9 H }
- Y$ a$ @9 G9 o3 @ else if(IsHero())3 ?* O5 [3 S9 P5 ^" o! J2 S3 d1 R
{3 c) j" f+ a3 m2 U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% g" F8 f [4 j( I# O% J { & q1 K" Y2 r& X% J+ I5 S
LPSKILL lpSkill = &(m_aJobSkill);! `/ [- W( g4 H3 B/ g2 I, Y4 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% W0 I g! z, C' J$ J {1 U! u8 R; d0 k# q, J- b4 }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* I6 ?% q# u# Y/ F+ m& U( r& V if( pSkillProp == NULL )
, v, A% u0 ^5 o! K0 U( _& J continue;
7 |& `% |6 j0 ^+ z* ^5 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, ^8 Y* i4 ?1 J$ G continue;
0 j5 K% A) G& ]7 X! T lpSkill->dwLevel = 5;
0 @+ t: W2 v! l; a9 o }1 ?* f+ H' ]6 k! |. a
}1 v$ E0 I ?" D
}) p; E% ]* Y) b% [( ^/ S
else if(IsLegendHero())! l7 }% a% d. s F
{7 |, V: d# D, D) J0 Y/ w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / T4 B' J, T. K( G6 j& Z$ ? ?
{ $ Y% O) f# K, _6 A: a
LPSKILL lpSkill = &(m_aJobSkill);
/ Z! e3 h+ v3 [- v( x3 S if( lpSkill && lpSkill->dwSkill != NULL_ID ) N" H) d4 M: |7 l B3 ^0 E X) q
{
# b% n5 i) g) t9 {' E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 Y7 N$ e+ ]" Y) o% Z( F if( pSkillProp == NULL ); T( U$ f; j1 u; L: [. Q
continue;
9 v r" d9 y0 R) p( K* r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: D- J/ u9 f) ^9 J# t1 t; ^+ z continue;
s) h3 x( Q+ P# G- C/ J lpSkill->dwLevel = 5;
$ p( B" I3 t ^8 T" \ I" Q; c9 H }
7 j+ k9 n& M& R& M* l0 Q }& p: y7 F0 A" G9 X
}
6 ^, @, \8 Q) Y+ ]) r7 c3 I: b4 y& W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" n) l: g% S0 Y7 p( |) D' ?3 C8 R if( bGamma )
: k) x& u6 m2 ^4 ^ {
/ t; e9 L" Q/ ^" D7 j1 z m_nExp1 = 0; g% C' ^3 O4 n( ^
}
8 g6 S0 r, q3 i5 {
; s- U/ X3 F4 h5 ^9 K5 w ( (CUser*)this )->AddSetChangeJob( nJob );1 S$ F7 t9 J2 i3 ^8 V
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' _6 X9 }7 ]+ E! n1 M& t3 ~3 r5 [
8 o; M, V8 E0 {* E5 |7 a
# `4 Q* J& d" A7 K( p
#if __VER >= 11 // __SYS_PLAYER_DATA8 w/ g# N* s1 f: o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 M) H$ p0 y/ L; U9 a: n1 W7 I/ f
#else // __SYS_PLAYER_DATA2 s B+ u# j+ z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: `( ~* j1 [9 s8 \# b# L- B3 J g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 h M1 j7 {6 e% O' |$ I if( m_idGuild != 0 )
0 j! x* b, n: N' r- h4 h( N# S g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" s9 \: i! Z3 ]! p6 K* U#endif // __SYS_PLAYER_DATA2 h# o& Z/ v) E; ^! S9 @
SetHitPoint( GetMaxHitPoint() );
, }+ x$ Z! c/ O- X3 X- Q1 A SetManaPoint( GetMaxManaPoint() );
$ f$ N1 ~& | M( W0 u4 P( A, X SetFatiguePoint( GetMaxFatiguePoint() );3 Q( U6 {+ a3 w* w4 `& d9 D
if( nJob >= 1 && nJob <= 4 ). A0 F) K' q: ]3 ?: }' L: O
{+ O0 b' ]2 E9 [/ q7 R, @2 K
m_nStr = m_nSta = m_nDex = m_nInt = 15; ]8 v6 j4 t5 d9 x: D, P2 \/ U
m_nRemainGP = 28;! k \) c3 P1 y( B0 s& w
}
& I& J* d$ g/ A" `- O: m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! K$ E' M! c2 G( s8 R
{
1 X1 u; x9 c7 F% [ m_nRemainGP = 118;" f2 |6 H% S1 C t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. _& h, b1 q/ ]. z m_nStr = m_nSta = m_nDex = m_nInt = 15;2 p; `* W2 x. b) g# W% S
}, I% D/ K' T8 z! d8 z% j* L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 b; R9 ~$ n: p: l K* k {7 g: {+ J A7 o: G, x) R) O( P
CItemElem itemelem; g0 h* c/ X# D
itemelem.m_nItemNum = 1;" Y1 R# x1 f/ a
itemelem.m_bCharged = TRUE;9 n0 c: @" z2 D+ {' |
BYTE nID;6 W* V* C# v5 x
" n# b* B: @* Q5 N if( nJob == JOB_MENTALIST_HERO )& Y) T/ N2 a$ a
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- o9 r: m7 q. [# L% C2 Z' M
if( nJob == JOB_FORCEMASTER_HERO )! H, {- p9 _* C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 x9 q* G0 s* }5 e1 n
$ x( h( E: h( J {7 t9 y: F" p
( ( CUser*)this)->CreateItem( &itemelem, &nID );% F& K d$ q8 z( m5 {2 M
}
2 b6 s- t0 y+ n( X6 b# y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 W: j# J- i4 L3 r' O
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" K* J. N D" f- M. T; [. ~, |# x @ Z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ A" M Y* H1 n! e3 t/ w( X+ a( c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); g3 W5 h- x; R x% q! |, B! i% N
( (CUser*)this )->AddTaskBar();*/
4 _/ R; T+ l7 i5 K5 ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 ~. H5 }- v0 |+ X! `0 j X, M$ z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ J0 }8 T9 {+ Z6 L ((CUser*)this)->CheckHonorStat();3 ]) [, \2 C+ i. N
((CUser*)this)->AddHonorListAck();
7 |" |; p* Z- b8 I g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 G9 l6 ?% V! q$ {#endif // __HONORABLE_TITLE // ′Tà?
V# W6 q7 a) E }1 h, u- g* C8 I; s% ?5 M5 f7 f
#endif // __WORLDSERVER, Y7 p% o0 j) o
}
% ~; G4 J2 L2 B: h3 d6 Q \5 r2 F6 W0 D2 J* A* g! _. d* E& e$ r
然后你进入functextcmd.cpp并添加以下
4 D# v' D( v( }8 M9 h. d" Y& n1 i3 E( J6 i
代码:7 k5 B+ I% \$ R7 i m
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ k* }0 f$ f- ]. ]
下面插入! c) }$ R* Q) Z3 Q7 Y1 V/ n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * d; i/ R% N4 I l- X
: V2 `5 d+ \) y- q' o9 P然后你去 n" {5 G6 l+ A6 E. A
, H. R& m% g6 b" V: |代码:4 z1 w; v- D/ E
代码
* Z# y1 d9 j. ~8 S" F0 q/ gBOOL TextCmd_ClearPropose( CScanner & s )5 H% k7 ], F: v. k& F( ?7 i
{
2 o+ ]8 G; d9 s6 \7 K& H9 e#ifdef __WORLDSERVER5 V: ]3 A ^( Z, ]8 {$ f
CUser* pUser = (CUser*)s.dwValue;$ V9 x7 G( v2 W3 L; a9 G% Q
g_dpDBClient.SendClearPropose();: ^% i, d' Y/ D) T' Y* C
#endif // __WORLDSERVER
g1 a. J2 q7 r! Z M! A$ W! V return TRUE;
5 Q1 d: }2 o* Z: F5 Z}( Q* |* L4 Y( k4 k% U5 Z# f
下面插入6 Y# }2 [: w$ D" G& ~
BOOL TextCmd_rebirth( CScanner& scanner )
% r5 ~: g# Y* m4 Y# E{
( N5 u2 }+ p' z* i6 @#ifdef __WORLDSERVER. l- ~, \; V: Q: y8 @0 r: z6 R5 J
CUser *pUser;
" b! e( u9 G' S+ }0 {pUser = (CUser*)scanner.dwValue;* l, t! z( o+ N/ R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 u2 q# @7 o& Q" Q. _pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% c0 ?" j* M$ M; Z" _" g* V
else* [2 N( Z' K6 ]+ V3 ^
pUser->AddText("你还未达到重生条件!");# b, E$ Z% d/ w. K, w
#endif
' A3 w9 ?0 d( @& Freturn TRUE;
, h- W6 j$ \! @. \1 P}
- n& ]. R$ E4 o# H0 Z% N3 g4 ~' V$ Y, b( E* c' ]
0 A, k0 R/ G- ~% Q% u1 h
) g( z, k# ^: K+ f. C: h: T4 M/ i1 f5 ^9 @: w7 a) V4 _3 ^
|
|