|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( T1 y6 B9 C% y4 A. v7 |
; `& Y5 h9 x2 YMover.h
. k. {1 T+ D1 T, J9 d2 n代码:
3 k: I4 O7 b! Z! d) M' @找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# }6 B# e2 W. v6 J) h. J( L
0 j& O% o$ H G7 ]0 f下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& M! J2 x. @7 q2 |4 i% T& j6 i3 D* n/ ?/ E& y5 ]9 `9 q- Z S
然后你去mover.cpp添加
+ e6 m$ V8 W5 _, N$ `; k! M
% c- V2 `1 X: Z5 u$ E0 A代码:
+ m9 r6 s9 ?4 y; J, J! T( Kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% \+ L5 k( q) O" b9 T# y' Y* K
{. U: R' ~0 {( Y* W
#ifdef __WORLDSERVER( F: P& W H7 y
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ N" ]$ p" |2 O. L MoverProp* pProp = GetProp();4 s# `" ]* W5 ~1 s2 I- x" Z. V
if( pProp )
4 F& A) L2 u' r# f. ?5 | I, O {" c% g% c7 s4 Y0 `9 e, G. O
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) S, X0 h5 c9 D( W* b
{+ A4 h+ L- \& l- G/ r# }
AddChangeJob( nJob );% G& J2 [$ g- ^8 N9 |3 X/ F, Y! y
}else{" e. v) \4 D( L% O' B6 h2 I
return;) @6 |+ T# I2 i; \. M
}
+ h9 u/ i8 N5 E( d( F int nPoint = 0;
( o) i; o5 H* n; W, H if( m_nJob == JOB_MERCENARY )
6 C/ Y( e4 z! N+ N) e nPoint += 40;
$ [1 v$ _0 k! S1 ]$ @$ ^. f2 ? else if( m_nJob == JOB_ACROBAT )+ S& o( s8 x" n% A* d9 H* _" e* _
nPoint += 50;3 ?" C/ x+ ^9 G1 Q+ L$ i
else if( m_nJob == JOB_ASSIST )
' @* ~- o- G8 ^( X, I nPoint += 60;4 O3 W6 M1 r+ G
else if( m_nJob == JOB_MAGICIAN )
: ~6 E5 V# d( } nPoint += 90;$ s" X& ~! X7 @, D. x6 r) `
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 T$ m D1 T8 e, m. c nPoint += 120;
; T" D2 T2 h) X2 \' p else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 i9 I6 u) f% C
nPoint += 150;# ] x( x; }3 |
else if( m_nJob == JOB_RINGMASTER )
+ U+ e& x: u+ a" n nPoint += 160;
7 w. m8 }% Y4 m6 m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 e3 d5 O w. g) O4 o+ e nPoint += 180;, V) U4 o1 p& A# u/ x
else if( m_nJob == JOB_ELEMENTOR )8 c9 W, B1 |; D. Z r
nPoint += 390;
- J) ]# e9 Q/ p0 H! }0 F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 [+ d, y! q: |, c% [ nPoint += 120;
5 t! N/ O6 \: Z7 h+ Z1 X/ b6 \ [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 E2 {4 Z( v! l5 Y; s
nPoint += 150;3 \" e9 _; R: {- f/ W9 x" N
else if( nJob == JOB_FLORIST_HERO )0 [5 G# N2 Q' f! L, Y* A" g
nPoint += 160;3 v. j, w8 s8 r6 @$ `1 [/ D. W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 R% J( P; E9 Y9 g6 N! ?+ C
nPoint += 180;
& a/ P9 g( Z7 h @ else if( nJob == JOB_ELEMENTORLORD_HERO )+ L+ J! p0 Y) ^6 g
nPoint += 390;
9 I6 Q* T( y7 S) k1 M4 n$ N; q- S/ V
AddSkillPoint( nPoint );
" y: n: _5 ?/ H C+ C* z m_nLevel = nLevel;
3 Q& o/ q, v$ ?" A9 i3 q4 d" s+ R1 H- N# x: \* J x
SetJobLevel( nLevel, nJob );8 h, m& [- I. P, K+ ]+ I4 u
m_nDeathLevel = nLevel;& w2 o2 _2 {/ B& w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" ?( P: r. ~1 N: U5 E if(IsMaster())
. V& b+ x% N- [) f6 O {
' Z2 c, w& u6 G/ f6 U int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' C/ \9 f0 N8 J
if( nLevel > 59 && nLevel < 72 )
! K3 p) N+ x ^$ r7 p dwTmpSkLevel = 1;' ?$ M+ ]5 j1 x% z( r
else if( nLevel > 71 && nLevel < 84 )# A' G6 C3 D7 z: y- B- d6 v
dwTmpSkLevel = 2;
% N, h; A2 f: G7 ` else if( nLevel > 83 && nLevel < 96 )" R- B7 Q- o5 v. `( @
dwTmpSkLevel = 3;
# i; G& X9 M$ ^* i Y" V$ _ else if( nLevel > 95 && nLevel < 108 )8 E$ q- r: O2 L1 l' F. t W# w
dwTmpSkLevel = 4;
2 Q) k( \- x* j5 D3 y else if( nLevel > 107 && nLevel < 120 )
+ i: ~7 N# P8 R, O- g" m dwTmpSkLevel = 5;9 u I( M! K. r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, o1 {( R7 c, e; @9 g { - u0 [; R. k! G+ H
LPSKILL lpSkill = &(m_aJobSkill);$ R% ~ u% ^1 Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 _9 V) Z& ]" ]! F6 V4 b c) D {) M, Z" x& F7 z9 y# F) v0 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 w+ `. p7 x( R5 r+ l
if( pSkillProp == NULL )
: \' {% [6 m( O+ F' a# \8 _ continue;
% x% \: s) H: }* E: k0 e# D1 A$ t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' \( A9 C& @3 a continue;8 ]* X7 T! o0 k. d
lpSkill->dwLevel = dwTmpSkLevel;& w" p* A$ u3 N3 Q. E
}
: z+ F. X% `! W2 I }
9 J" A% b! K% H: X }
9 U# w3 r; D' G+ ], M5 j else if(IsHero())+ ~6 L& Q# g* [) d8 W$ q& C' u
{/ g. q' V4 J8 g2 g. }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # t. I3 p0 ^; f" O% l8 x+ _. Y$ {6 j7 `. U5 e
{ ( w6 B0 t3 a' W' o8 Y- Z* r
LPSKILL lpSkill = &(m_aJobSkill);
8 s5 E" b$ k' Q/ G% O if( lpSkill && lpSkill->dwSkill != NULL_ID )( y+ W5 F! A. {
{
$ y; H( O, f p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 k6 I: ~2 A* {% g7 I6 r if( pSkillProp == NULL )& n. M: X& ] G6 ]# ^
continue;6 M& J2 k, k- w* A$ U7 v6 n9 Y% \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) ^( o# _; C t: M$ ~
continue;' g( v& \8 J6 C0 z% o
lpSkill->dwLevel = 5;7 r3 i# B& d: {- f8 W4 [6 |
}* x1 {; |, q. X% O; o% _6 Q
}' F& i" d% f) E3 ^/ s7 {" r9 s
}) U; @ \7 F/ s
else if(IsLegendHero())
5 l! c; ~ D' ~3 f, l8 X- `1 l {
4 h# u4 e! O6 l for( int i = 0; i < MAX_SKILL_JOB; i++ ) " p7 q/ H$ d9 d7 m& S- ~& |7 S: }
{ 2 x* j9 Q5 s3 R3 z/ V' g2 i
LPSKILL lpSkill = &(m_aJobSkill);$ Z2 J# _( R& Y$ u8 b- d
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ I, D/ O" ]& N, c$ Z7 ]! I
{# w, n) x4 N" c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 M5 `0 Q; q z- Z1 b2 q- I% ?: r; w if( pSkillProp == NULL )
( E! B. l3 q- @3 S3 K continue;
; m% [. p% K# i. G7 } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
m _4 a+ Y" ?$ f; Z continue;0 x& i2 ?7 F8 x8 g9 v8 a
lpSkill->dwLevel = 5;
. k* A- j; g, b4 p9 t5 t }
( L8 J4 F: [3 }5 v# \' H }: Z+ k* h4 c5 A: v1 S6 p( B* J
}
; a8 }& c! _) e' T' X, K$ h#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 }8 U9 N+ G. N' Z1 D0 W; G
if( bGamma )- y! b% `4 F \& y
{
! T. I1 B7 H9 n m_nExp1 = 0;. l8 ~9 c5 ?7 r* e, P5 G; J* H
}$ E5 B" O/ t; w9 [: `! p
5 b2 _% E; ^: y$ |0 d2 a ( (CUser*)this )->AddSetChangeJob( nJob );
3 }+ ^$ u+ H- I- o4 _( d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; P4 C, _3 j* M" b3 N
% x' v+ N8 p4 e3 A9 B
' @4 [8 h+ s% S4 Q- t6 O
#if __VER >= 11 // __SYS_PLAYER_DATA$ w6 L( g/ r9 M: m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* C c/ ]2 h4 l8 k5 u
#else // __SYS_PLAYER_DATA3 }4 H: T* s% _% Q- g) l8 n
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ Z5 r; ?$ M+ E/ f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. l# b; X+ i: b$ S2 ?4 l
if( m_idGuild != 0 )
3 ?/ X" i: u8 W, {- L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( e& O1 J, b! \5 f#endif // __SYS_PLAYER_DATA% {& o! i8 p/ R, v' P
SetHitPoint( GetMaxHitPoint() );% C: Y+ E2 R6 T8 ]6 z6 x4 g* d
SetManaPoint( GetMaxManaPoint() );0 _* E2 f! f3 N3 O
SetFatiguePoint( GetMaxFatiguePoint() );4 _9 B; C0 I" Z1 n0 v+ @# X$ H
if( nJob >= 1 && nJob <= 4 ) {* Y1 z+ E, y8 T) f$ `
{
; `5 P c, k: ]( U: {. W m_nStr = m_nSta = m_nDex = m_nInt = 15;+ L/ e% a# R/ F0 \& q% b5 x% [
m_nRemainGP = 28;5 p6 ^6 x! ?, n) m' W. f5 q
}
a$ l8 F1 W" }0 e* m" a& q7 t if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 a o7 F' j F8 q7 T
{
' ~+ S( v8 P& \ m_nRemainGP = 118;4 f, l7 C0 [* X b
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ F9 ^- R7 C% B$ m
m_nStr = m_nSta = m_nDex = m_nInt = 15;* f- x! \: l& [8 C7 J# A6 \' Y
}
4 R7 p C) J, J$ M if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) b* q# Y3 s# B" \: R3 M3 {
{- J0 g( W& F: B7 f
CItemElem itemelem;
6 l4 s* C, A7 D9 A4 B% Y3 M itemelem.m_nItemNum = 1;
5 ?$ v3 }- x7 m3 } ~" ~5 l2 T9 Z itemelem.m_bCharged = TRUE;
8 s- i" y- P+ |4 D8 y$ [3 u BYTE nID;
2 z0 Z0 w; b, z6 M. |
( W" C. e# D% [) V2 u) q. d if( nJob == JOB_MENTALIST_HERO )* l9 q, _) ?/ ~! S, `& n
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
S% y8 H- p& c3 P8 @ if( nJob == JOB_FORCEMASTER_HERO )
5 Z! L; f" E# V' n itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! {4 |- |' E8 T- m8 v. n5 ?7 ?8 x% D9 V. J% H; d
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- J5 W/ b! R& a4 Q. ~ }
8 K, g* K- Q0 ]3 } g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
L# W+ f/ F7 s6 J+ L2 v& L; ^# p' D ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: ]7 W" X: b; c1 c- w& d ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 ^2 Z) |' W2 ?; p9 W+ {' e; B /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; m) B* L; e! I) Q1 h" J ( (CUser*)this )->AddTaskBar();*// g1 v$ N( k; l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 Y0 `5 o% j0 o+ a0 t8 m. K: u4 L#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) ^. b( d, _: F" y3 j" Y; Z
((CUser*)this)->CheckHonorStat();1 H! O/ |5 f8 n9 X9 T6 E
((CUser*)this)->AddHonorListAck();. |, ~, B: E4 G! n2 k/ y
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 v, T# _5 U: V
#endif // __HONORABLE_TITLE // ′Tà?# I# `& I6 s* k0 Y+ ]
} G. R$ L2 V7 g( I7 w8 B
#endif // __WORLDSERVER
/ X" u6 q) t+ R' y; l}
$ c$ f* v5 g# R0 E9 E
* Y% H3 {/ d( d; ]$ W然后你进入functextcmd.cpp并添加以下- c6 q/ g' ]) w) P& l
% j v* ] O; X/ |
代码:$ s. p2 O0 B3 v5 h8 j+ w
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; t1 [0 e2 A4 v* Z8 g4 W5 M下面插入
) W+ W9 ^6 l# Q0 AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ]+ [/ i9 E# H$ w- |
; ^% `" v* E! C然后你去
1 r2 ~& h; K1 p, }; r4 K& f1 I. w" F1 |+ ?4 R
代码:6 N* r7 F' }5 Y$ U! G+ b" J, x
代码6 c% r+ S4 }7 h
BOOL TextCmd_ClearPropose( CScanner & s )
3 ]/ e5 I* r( w7 o{8 m, e& N- U! f! C& H5 t R+ \1 v
#ifdef __WORLDSERVER) F2 B9 L3 s+ D' Z' C
CUser* pUser = (CUser*)s.dwValue;; }* O7 V- O2 G+ l5 W- L# K u5 t
g_dpDBClient.SendClearPropose();3 z/ V- z% e) x2 O* I ~
#endif // __WORLDSERVER
, d. W% D6 x( f3 \! W2 V return TRUE;
/ A7 |4 E7 a n% ^3 B- G* M}: Z& O$ K3 P' Y
下面插入
2 H+ x5 D0 a" ~6 } ?" U- GBOOL TextCmd_rebirth( CScanner& scanner )
0 I% T5 w- R0 o, o{
5 z* r) e) J% A9 `: X7 V2 ?#ifdef __WORLDSERVER& g( }1 _ l! j6 C. L) V
CUser *pUser;
1 N* ~: A! z1 {( ]5 [" ^. EpUser = (CUser*)scanner.dwValue;+ C9 I( ^) O9 ?6 i; I
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) N0 Y& o1 G) J) s6 a* ^' L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ c' U) x7 y4 b% H$ u! u
else
6 [& a" Y) i. o3 L: ]pUser->AddText("你还未达到重生条件!");
: l; K7 r, E# k! C6 G( I% q3 W* r3 X#endif+ ]7 {. m) S: {7 O: f8 e
return TRUE;
4 S v+ n- N( V! X7 b# S+ G& v5 Y} & {- G! n1 f$ K+ u4 m
- n! ^1 t0 }; {5 v. z
4 g! r9 l6 Y4 w3 G" j
4 z4 I" m3 J4 o/ i4 J8 k; G+ z% E; |3 g5 B! c
|
|