|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 w" p! N% z' g+ L+ \; d
, h, j5 T6 O: [* @Mover.h
i0 z0 O! z* y" X- Z代码:' J6 q9 }/ p# c+ @0 _+ {( a
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' R0 ^) {: k( g0 W, M4 k' X9 u! G; }6 G. V/ L7 J" y1 l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 L# I1 U2 g6 e# _2 u8 r1 z' q; ~/ n5 B5 |2 j
然后你去mover.cpp添加1 n$ b. c& Q9 w+ y9 M, q$ @6 c% ]
% S9 X, v0 j" M' g! g7 J代码:% i! W' Z6 U2 ~+ U! [* S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 P, B. @# h; ^' E9 R8 X2 L{* |' T, ?6 W. n* t" \/ I
#ifdef __WORLDSERVER/ m1 |0 Q+ L6 e" D
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 T+ }$ h5 L% t3 g* U5 i. ?5 \
MoverProp* pProp = GetProp();& p/ f. {* i* ]( n* O* S6 h
if( pProp )" U1 s$ n! K% x" T0 n; ^; `
{
+ l1 C2 m A" F3 T6 y+ y+ N( p if( nJob > 0 && nJob < MAX_LEGEND_HERO )( j2 l3 B7 E4 N7 j/ G2 c0 r
{
6 k" g& Q5 r7 b& R( h+ I3 W& _ AddChangeJob( nJob );
2 q' _3 v- l+ Y }else{- P5 o: [4 _+ W6 u, S3 ~' m0 s
return;
9 b1 b! ]/ k% u1 C }
) d# y: n# t; q4 E9 [ int nPoint = 0;
9 ^/ J+ q" b7 Z# F' ? if( m_nJob == JOB_MERCENARY )
# }3 t; E, V) R. x) Z9 t K- q. b nPoint += 40;/ |; ?0 o: O1 i1 ^9 w
else if( m_nJob == JOB_ACROBAT )
% \* E+ q- J X0 K. X4 s$ u8 N nPoint += 50;/ ^6 S+ ~5 ?2 D: l+ ]- W1 k$ Y
else if( m_nJob == JOB_ASSIST )
0 C) o" B; b5 A, f; N! M3 L8 S" R nPoint += 60;
/ C+ E+ [" G: U% C: s! L6 i else if( m_nJob == JOB_MAGICIAN )7 E$ a; p' y8 `! P
nPoint += 90;
) w4 v7 v! C3 s' r# W& Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ c6 {3 {! m7 C7 ?/ l) }# k nPoint += 120;! F! x% O& C8 ~$ d1 ]) x& u' m4 a
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. e1 i( m, T0 ^! r( Y/ l nPoint += 150;5 J8 c8 z% I" @ A
else if( m_nJob == JOB_RINGMASTER )4 m/ q& q8 L- p& b9 _# |8 d! I& }/ x) w& ]
nPoint += 160;5 {/ m4 a) c) ^' ?: {: ]- c
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: e0 s: K' E3 z$ F# G) a7 E5 x nPoint += 180; Z4 ^& e: c3 ?& Z: |7 X# R
else if( m_nJob == JOB_ELEMENTOR )8 T' K$ i! T! R( C. y& B
nPoint += 390;; i0 B, f& [; F* R3 \4 L
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& I% E: h" A _! L" q G
nPoint += 120;
$ M" e! }9 i0 @- I else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 c: Y( }- F# Q1 G' | x
nPoint += 150;# m% v2 H) r+ a9 G$ s! {- _' M
else if( nJob == JOB_FLORIST_HERO )
0 w) y+ A1 J/ _- j nPoint += 160;; r3 t7 Q8 I4 J' |9 p! I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ h' T& h& u1 H, X0 Y) k7 h
nPoint += 180;
; E5 G* @$ p. D6 J0 e0 |2 Y else if( nJob == JOB_ELEMENTORLORD_HERO )
+ s% K" p5 r& o' E- M) [ nPoint += 390;
3 _: P0 t% J1 {/ @) ~4 w+ Y Z
AddSkillPoint( nPoint );4 ]( e; {( v0 y+ p9 S j) l6 Y$ T# I
m_nLevel = nLevel;
+ [3 g" S7 s' t9 I7 A
. K; L9 `& `" x0 y$ [ SetJobLevel( nLevel, nJob );# ]. A& ^1 a7 a; r# b. A
m_nDeathLevel = nLevel;
+ s5 j/ ^. j2 `, v6 m/ t G#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 b- N( Y9 }/ S3 u6 i$ O
if(IsMaster())
, @% l) j. F! X9 P6 S9 V9 f& k {0 j. N# T1 |+ D2 D6 e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" ]" C+ p# G( q. k9 X1 L4 D' n if( nLevel > 59 && nLevel < 72 )1 ^, z! a* H3 \* j1 H8 v% ]% |
dwTmpSkLevel = 1;
0 {2 @( S% G N! Z% z0 m else if( nLevel > 71 && nLevel < 84 )
$ \9 W. H7 y8 @. v dwTmpSkLevel = 2;; t* K3 n2 ?7 {8 y: Z- s' K1 h
else if( nLevel > 83 && nLevel < 96 )# |7 h7 [' ]. x" x" k
dwTmpSkLevel = 3;8 I* f; }; x0 T4 c1 |( a) U
else if( nLevel > 95 && nLevel < 108 )# x* c& i- r4 J* u0 h& n* U A4 q q
dwTmpSkLevel = 4;, B/ J) y. e |% N9 ~) b- @
else if( nLevel > 107 && nLevel < 120 )
J4 N: Z0 }3 E9 O4 \, r2 o) X dwTmpSkLevel = 5;+ y6 z# L7 y7 }9 X$ N2 I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 c* W* c0 `; n1 e9 v
{
9 B, s0 `' ^6 f LPSKILL lpSkill = &(m_aJobSkill);6 f m' v* F: G/ E1 F1 @3 A! B% w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, M- N7 E( w L- X$ r4 h {3 F6 X, b7 t0 W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * C3 F- o U- C
if( pSkillProp == NULL )% s+ \, Q6 w$ ]$ W- E: s/ u1 ]
continue;
4 `- Q0 M+ `- c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' k2 r; Z% _ b% ~7 L- h) ]) c. l continue;0 m+ @& b4 t( h0 h
lpSkill->dwLevel = dwTmpSkLevel;
& l1 L* g4 p. f8 f }* P5 ]1 q( X- {* W
}
3 Z# c5 s! u& M. x& D* e( ]. V R }
6 T3 [( F* ^1 ^5 d; Q$ a else if(IsHero())
$ |$ _( S8 L4 O& T( x g5 J {
0 A z( Y: m. Q; Z% I* h) } for( int i = 0; i < MAX_SKILL_JOB; i++ ) / w% j! x- ]2 `/ p5 Q2 b5 T' n8 W5 ?
{ 5 Q& s6 B$ K" y" R; r
LPSKILL lpSkill = &(m_aJobSkill); i7 J6 ^/ I3 `6 _) a7 @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ b \$ ?, T: v5 g9 k8 k) c) V {
$ [7 {2 V8 ~2 l* ~7 u7 V2 P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % W4 y! n" S1 U# i2 c }- B. T
if( pSkillProp == NULL )
/ \. C/ {. B! s+ h! H; s7 F continue;
0 e5 o' {# N4 Y; U2 s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- k3 q0 i. R; i$ s$ v; e
continue;
- L |5 ~9 [. h3 F! b lpSkill->dwLevel = 5;" A! ^% y4 c/ R4 P* S& Z1 q5 e
}! f0 _2 P, o2 {' r" C2 p$ i5 @ _
}) a- x, \ f. E, s, D+ V8 ]
}
: t; _0 Z) x, d1 h. U* ^6 I; q else if(IsLegendHero())1 {: t2 q) m* \! H7 c
{4 q% n5 J9 L8 F) z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( L3 R1 [) e6 _" c8 t { ! n/ n2 j1 Y+ k, U- ?' D
LPSKILL lpSkill = &(m_aJobSkill);3 t# O4 @0 u5 G6 L
if( lpSkill && lpSkill->dwSkill != NULL_ID ); U( C' Y& h3 w9 `
{8 D( l3 D0 J/ k' X. |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 w0 |3 M g1 |4 `- J
if( pSkillProp == NULL )2 y# B- y8 ~7 U( ~/ O1 X
continue;6 r, W* Y" ~: {) r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 Q- ^& E! T5 D continue;6 L/ I( q% N; n I; T2 r
lpSkill->dwLevel = 5;6 g1 ^/ I, H( d. o `4 K: B: _
}1 x1 Y- P& C: d4 N
}
9 p& E) k b4 V8 ? Y4 X }) x+ t9 A$ V# q6 |4 ~& d5 O" y$ P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ t7 s3 L T1 b+ d7 J2 h if( bGamma )
$ E9 \5 S B! B5 s {$ m) Z) y9 z4 z+ W
m_nExp1 = 0;8 O6 \. W% @ w/ L( p
}
- t! o" P' Y- {, B; W1 s: Z* m( H8 q/ `, H Q a9 b
( (CUser*)this )->AddSetChangeJob( nJob );
& R+ H- M7 _, P5 e0 I. o0 V g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- \6 D, @. J+ R$ N3 L* @% } \* w
( a* x/ e1 l! V* f
7 O2 b6 E( R- u& T#if __VER >= 11 // __SYS_PLAYER_DATA! o, G+ b+ C" \* C1 P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 t* A4 F6 i+ h4 W# T: _* h( S
#else // __SYS_PLAYER_DATA W7 ]9 _& Q- `& c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. ~8 s! H6 _- v' F5 ~6 E% B: R- d- d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ K; F2 b( c, R% r7 e if( m_idGuild != 0 )
% o" X+ u1 c+ K3 c g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ ~2 g1 V; [6 B8 q3 B- t4 s: b#endif // __SYS_PLAYER_DATA8 T0 ^+ |2 P5 z& Q s
SetHitPoint( GetMaxHitPoint() );) G6 l& H& ]7 Q" @
SetManaPoint( GetMaxManaPoint() );& T; V! W% w" w7 E% V4 w/ [
SetFatiguePoint( GetMaxFatiguePoint() );5 K$ \+ i4 W5 ]% [! _9 {
if( nJob >= 1 && nJob <= 4 )
# ~0 n/ v2 b( u {
2 K) F% I0 _1 B" S/ I8 \$ w m_nStr = m_nSta = m_nDex = m_nInt = 15;
& B' l7 d% w2 H# x- C' M m_nRemainGP = 28;1 Q6 k5 W5 I, r* x7 ]# X
}
! }, E5 j$ h n( |" K, Y: m: j if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 m: K1 ~( F) w& H8 m4 {
{; i4 Q+ A) X. I- b3 x" P; {
m_nRemainGP = 118;& q+ b5 _& q: e+ D0 C( U
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ M8 L; I+ J; n* }; r5 s0 v m_nStr = m_nSta = m_nDex = m_nInt = 15;% \+ S& y* K- D: e; b- r7 l3 G
}+ C( |0 O4 \! Z) c1 d" t2 l {5 X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 N# i/ t4 m$ p {
" X2 `8 ?9 p" Z% h# [ CItemElem itemelem;/ x9 H1 Y. u) T% J1 ~9 l' e; I
itemelem.m_nItemNum = 1;. b9 R2 I. n+ j4 [: ~
itemelem.m_bCharged = TRUE;- O* P9 ^6 i( F0 j
BYTE nID;
. ]2 z- e: H& D+ B0 [" y. J$ \1 K! n" A5 b
if( nJob == JOB_MENTALIST_HERO )4 {3 K+ V) }9 P- g% r" l N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ l, z0 H5 |) V if( nJob == JOB_FORCEMASTER_HERO )+ b9 C/ O! R& ^9 m9 o: r( {) ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 ?- k6 l9 }9 \$ C. ~9 Z+ v
x# ?' k; _& z* n/ f j ( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 e2 F5 C# J* |1 [2 ~4 s }- i. q7 {" r; i6 o5 Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. M. l: d5 K; H! J
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; R6 E6 y3 a9 \! C* G5 f ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 n5 {, Y5 s( y: O' s3 ? /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! V% b+ {7 D8 G5 k$ B ( (CUser*)this )->AddTaskBar();*/
) O; J8 y/ ? o7 H8 f$ I6 v ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! @) ~6 X! i) S/ g; A2 b/ w#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- o; ~! W& m( d5 p* Q( ?9 Q- q0 Z
((CUser*)this)->CheckHonorStat();6 x0 k3 _: ^# q* _
((CUser*)this)->AddHonorListAck();
! _* X/ g/ r! S7 `1 Y9 y g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 A" Q# M( r; P2 y- a5 Q#endif // __HONORABLE_TITLE // ′Tà?
6 t! H9 j8 D7 o" T3 B* p }
/ ^! e% f( V; f/ F) j#endif // __WORLDSERVER4 \- Q- V, v+ ^) B3 J
}
1 C8 i/ Z9 T- _
9 c0 C4 j1 P. e然后你进入functextcmd.cpp并添加以下" \- f9 u" Z, z3 m) H
4 e: } L3 M f* a( F代码:
, V2 g0 U8 I0 YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 u/ ]7 W d5 \+ K/ N+ k8 g4 ?5 Z4 k
下面插入
2 \+ k. u0 u3 l3 hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ j& @8 |" p! ]. g0 b$ g) v. [
9 s M! p' {- w5 l& Q4 u然后你去
* c. x) h( i- M) a1 t* E2 p8 P) e" f/ ~" r* ~5 [$ w+ A
代码:( D- I: m) R: Q1 Q
代码) M7 r* L1 j, u* m
BOOL TextCmd_ClearPropose( CScanner & s ). P+ K' Z2 a( v# v* w; R9 j# X8 I& `; p
{
- V1 W4 g- T s: M k: J$ Z. @#ifdef __WORLDSERVER# I$ h* C" I; K8 p z& t& M
CUser* pUser = (CUser*)s.dwValue;
0 G0 R d3 ]7 @* @8 G5 u2 a# n- e g_dpDBClient.SendClearPropose();3 r6 `9 s$ L( W
#endif // __WORLDSERVER
r9 {# C2 u; \, B9 p return TRUE;
# ^; J1 q. |( Z* l8 n2 m. V8 F}0 x' ?) C9 s' O& ]1 e6 K* Z- O) O0 E
下面插入
8 ` {0 `) V: _0 P" L: ^' mBOOL TextCmd_rebirth( CScanner& scanner )' |% Y+ C! z/ y; x7 _8 r" b
{4 W' p2 \7 x6 p7 f0 l( Y6 p
#ifdef __WORLDSERVER
& U+ E* L) `, r' ~( ?9 }' wCUser *pUser;9 n3 P! Y$ R9 X% a R* E2 a
pUser = (CUser*)scanner.dwValue;5 V$ x6 c0 j7 T; S" r) L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# y0 n- {8 u% p( {; J6 S" R* B3 @pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. s& a( ~) Y2 d' P& c1 K
else3 x' S# I' z, R" j% U& E
pUser->AddText("你还未达到重生条件!");8 a4 l, r; y$ D; V7 X! i
#endif) _7 P0 \, p6 c" n* ~9 V
return TRUE;
: J. T3 {* R; x2 X1 C}
5 n( D: S9 g% h2 Y! [5 n4 L5 f$ `0 t, h( Y
' w! K2 T" |2 ?8 w+ v8 z8 V! m% \, r3 }. E; D1 o
. R9 n9 L! M" B4 y7 W |
|