|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, b/ O& Q1 K# V2 i
2 \7 m2 }) h* g. S+ W4 eMover.h
+ n, j; v7 `3 G4 g代码:
0 \: I+ T. j. m找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 {0 V: |8 F I6 Q* B
7 P' y! ~# k+ g0 U下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
D$ @' [8 E' b8 B% b
- W# |! q5 q* Z/ o2 R& e然后你去mover.cpp添加
' r! O9 B+ o' E3 C( O3 \5 j& y9 M7 w" B
代码:
: C O/ |6 _4 m5 R6 Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ b2 ^$ N/ o1 I0 [{
- h2 P2 [, Y) n, B#ifdef __WORLDSERVER' ^! y' x& N* b6 T# W6 k( I. d
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! e& z5 A2 G, i MoverProp* pProp = GetProp();% S4 q3 Y# \, Y4 C `( h
if( pProp )
5 q, S% ?* J; H) I- G+ ^ {
, U; u X' I# l/ }6 } if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 V) i) K2 h8 d( L {, x3 G8 a" g( M9 Y$ Y; }
AddChangeJob( nJob ); R8 m8 q$ J8 ?' P+ j: A6 ?
}else{% L7 ]* n$ W$ l5 y/ H1 k& T2 g
return;
+ s6 s- L5 C: g2 J5 j% d }/ o( j7 h/ u& q" K4 {! j
int nPoint = 0;
1 B; [/ b3 K- R- h if( m_nJob == JOB_MERCENARY )9 O+ o7 D$ s! v% [ w1 H) N' w
nPoint += 40;1 D0 s! P4 R" t2 e3 P
else if( m_nJob == JOB_ACROBAT ) K( Z8 G! I: b' Y& h
nPoint += 50;9 }) x; O' ^. O. m
else if( m_nJob == JOB_ASSIST )9 a5 j5 k% \' b1 T
nPoint += 60;
/ i- p- s" @( M+ G. L" c else if( m_nJob == JOB_MAGICIAN )
4 n6 k% `. n3 w" B. R nPoint += 90;1 g. k+ O$ ~. T9 k& y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 P4 Q' p; Z9 x1 E* A nPoint += 120;
& Z* u. H6 F( c" Q/ T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' Z' \( Z6 w$ ^, Z% I. w
nPoint += 150;
& O$ f6 r% f+ K9 n' `* z else if( m_nJob == JOB_RINGMASTER )4 B* \. \; o. u2 a- ?5 l
nPoint += 160;* e9 L! w" V, R6 H& k& W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: z) Q8 T0 E. P) K" P5 Z4 ^+ v8 T nPoint += 180; ?$ A; ~0 V& q5 Q/ ?
else if( m_nJob == JOB_ELEMENTOR )' C9 X6 A, E0 m; U* J
nPoint += 390;
- z& ^4 q) i& ^ \& c else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' T' j; R9 b! i$ \% O) n6 q
nPoint += 120;
0 j$ x/ C4 A7 G9 g9 I else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- ? Z4 k% h. F7 O% s% \. n" \
nPoint += 150;
2 E, U) ~0 _! `: I/ }% @! G else if( nJob == JOB_FLORIST_HERO )
. R; s( P0 l2 Q! {9 m* s4 k8 B nPoint += 160;) H/ Z' u; c5 A& u. S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& j, M% i% W7 u7 ]: S nPoint += 180;4 }+ f6 ]+ [. N! j& k# U
else if( nJob == JOB_ELEMENTORLORD_HERO )
' J" E {: l) {2 h nPoint += 390;) F- @, f, g: d$ @# k- c
0 i ^: n7 x p AddSkillPoint( nPoint );
6 h1 Q& V3 U( k/ u m_nLevel = nLevel;0 D6 T0 a' ^% J/ C# M- p1 q6 B
! A! l, L6 y! ^& u SetJobLevel( nLevel, nJob );
+ s/ C1 Q) A; `; X }7 C m_nDeathLevel = nLevel;
! H- b: E L8 o#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* U' g/ I5 y9 D' d _ if(IsMaster())5 v& P8 H" ?, ~7 o9 e* t# Q
{
8 t# E7 O3 O* r% | int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ S" n! ^' \, U9 D5 a9 t if( nLevel > 59 && nLevel < 72 )" X, z# G$ [ T9 D$ g
dwTmpSkLevel = 1;
' `1 N2 U: s+ {: _ n else if( nLevel > 71 && nLevel < 84 )1 A& ?$ ?! C8 H& l+ L% [' i! m
dwTmpSkLevel = 2;# `/ z" u) k% R8 G: q
else if( nLevel > 83 && nLevel < 96 )
; P% b, ~3 [& H8 N' `# s dwTmpSkLevel = 3;
# P7 k7 v5 ]9 j else if( nLevel > 95 && nLevel < 108 )) w" \! D3 {. b: `
dwTmpSkLevel = 4;
7 L$ f) C2 D7 C$ T else if( nLevel > 107 && nLevel < 120 ). U$ R; Q) |" ?) A+ ]
dwTmpSkLevel = 5;7 d# i9 Z' W; B6 N( U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 D& p1 F# D: v7 L
{ ; T! V% y' C# V& W: f8 K% v) n
LPSKILL lpSkill = &(m_aJobSkill);$ u; |/ Y5 {; \! [6 X0 A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ H! M% X, `3 B0 Y {" F5 }+ O9 Q# B9 L( P0 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 Q+ u; W% v) _7 W, { if( pSkillProp == NULL )
5 p7 [! ?+ i* B% e continue;; s8 i( V$ E$ p% o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 C. G ~1 i# \ continue;
2 j' [5 t7 p! V7 t. P- Y: j lpSkill->dwLevel = dwTmpSkLevel;* X% P( D! m- K; ?! Z
}7 g ?; n0 E; |0 x
}. d6 n$ t0 `/ E& [
}" l/ j' ]- H4 Q: c% G; i
else if(IsHero())
& L( E3 D+ y8 M3 P9 ?8 y/ \ p {- w% m: C* @ ~% p# @( W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 J2 O" X$ e& [) \# k# `! c `
{ 5 Q; O9 n7 X. N2 @; H" w
LPSKILL lpSkill = &(m_aJobSkill);
8 A3 w+ ~! p- w5 ?+ H8 y+ Z if( lpSkill && lpSkill->dwSkill != NULL_ID )# Z" q* t- E Q% i2 z+ u* |
{
# d$ s! K7 W$ p0 c1 `5 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( S: g g% T: ?0 a if( pSkillProp == NULL )
7 E1 l& @3 I( U5 ]. D+ d2 j0 Z continue;& y( U5 j* K4 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 C2 S" S# f( z8 z# o
continue;
0 }$ y. |' Q; B/ L1 P3 O lpSkill->dwLevel = 5;
( I( F, W. S4 k7 g/ ? }9 n: u7 V3 v: \! E1 c; U
}
& H. E) h+ o3 O8 O* i: A }
7 Q. U2 S( W) p! i* _ else if(IsLegendHero())# s& Q* [0 |! x& H2 j4 Z. v
{( y/ C, H& f. }. a2 d$ Z. E$ B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , [$ l3 }6 ^7 \
{
/ g" A& e3 a) T& R9 W LPSKILL lpSkill = &(m_aJobSkill);8 M3 `5 i0 k4 T/ V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 R/ a/ A. @: } { M5 j! w: ?. [5 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& E5 F8 ~8 V# ~/ g' Z if( pSkillProp == NULL )" X) R( |/ C2 g. V( X0 C8 @; u- p% O
continue;4 L4 K, T8 ^! T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- C+ O1 \& g9 d4 r* w, G
continue;, p% X! e0 I% j; M& k; z
lpSkill->dwLevel = 5;
5 ~ A" v- E; Z J4 q, @ }
U- l6 n# s7 L6 H4 q }
) T' L7 b- d7 N5 Z# F }
7 |0 ?$ h! \; {2 |& i+ D2 L#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 c# d( j. Z n4 Q9 O6 C0 q if( bGamma )( j" q& w j5 ^3 g3 i1 ~
{
+ n/ k; p' O" M7 h m_nExp1 = 0;# m* f# {/ g. s8 C7 X
}' @7 B/ i+ D: Q3 C* D; j' p
8 w. t i7 ^6 ]5 I& b3 n ( (CUser*)this )->AddSetChangeJob( nJob );! @" U5 _! I# ?$ R }1 n* F. }. M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ f* W9 Y% E" F1 k4 i& S
. w: b, x. S2 g, j: f8 g+ p' O* W7 a2 \: } z' p
#if __VER >= 11 // __SYS_PLAYER_DATA9 L5 [' z/ u3 Q8 T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# w. x$ b; y8 a" J' K, T
#else // __SYS_PLAYER_DATA
$ D" d/ I; s3 s4 s6 r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" S, u( T4 p8 F* y9 Q6 k g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 H1 `0 A# S* X g5 _& K8 e+ x if( m_idGuild != 0 )
2 x* L. U1 v |! }3 S' |2 Y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; C, Y; g4 d; M0 ?, h#endif // __SYS_PLAYER_DATA4 X. g' r( ]7 X$ S3 _
SetHitPoint( GetMaxHitPoint() );( ]: C8 y: D: a; Z5 @
SetManaPoint( GetMaxManaPoint() );6 i1 [2 c' g3 s5 f- I2 ?/ w
SetFatiguePoint( GetMaxFatiguePoint() );
7 L; P1 ^8 v6 l C# Q4 S if( nJob >= 1 && nJob <= 4 )
+ W+ U) J6 @: L3 R: T {$ X1 s, d; N' J# K3 a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) n/ v1 ?1 U0 a, p: S) g m_nRemainGP = 28;
% p5 F5 E% R- d0 G& p }$ I X. @$ T6 M* w, t
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 `2 x* R7 u3 r
{, p9 h3 _8 S! g% F9 Z9 f& j8 s
m_nRemainGP = 118;" P* v# J( a: S. a, u2 H
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# c- k% ?# Y% z7 |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; y/ j7 W7 o' {6 {9 B/ P3 ?$ U }
r k: V7 W6 [* a6 C8 i" B0 e if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), D- |' I7 I4 R3 k7 c9 G, O
{# E; J3 e3 @% c
CItemElem itemelem;
3 v0 r& Q# {; j' X itemelem.m_nItemNum = 1;
5 a* Z7 n. e* q0 T0 P itemelem.m_bCharged = TRUE;$ v V3 ~: n9 M
BYTE nID;
9 ~# W6 V1 H* s6 `
( W) W9 g: C; j8 O' n& L( C if( nJob == JOB_MENTALIST_HERO )$ c# ?. V7 }/ `! ~
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 j; V8 _+ {$ x) X$ {. e6 h8 G
if( nJob == JOB_FORCEMASTER_HERO )
+ E' }, k# w) E8 @* o7 W2 v. _) W itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. V l$ R5 p# F w2 J7 {
' n* g, G* f8 i' @9 O: X ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ Y7 {1 u6 p U" q$ H- u/ @! g c }
2 H1 w M3 B6 w+ c; M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ p$ y$ a- j3 u! u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 j1 i7 k8 O6 |+ W) T, x+ U ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); I: s( F/ i/ Z' f
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' Y6 @4 s3 m! ^- `: f+ i l7 j$ R ( (CUser*)this )->AddTaskBar();*/: W6 o5 k* n8 k4 A" \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: u c5 X1 A* C#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 i) J* ?8 a8 A8 J* D5 e. V
((CUser*)this)->CheckHonorStat();
' n4 d# |4 S/ n F ((CUser*)this)->AddHonorListAck();% d! Y4 c5 ^9 ]" I& L4 x4 n
g_UserMng.AddHonorTitleChange( this, m_nHonor);) |' ~1 @( E$ A/ D. Y; ^' I
#endif // __HONORABLE_TITLE // ′Tà?
, c5 w1 N2 v( d- ?7 w& ]5 _ }( r6 ]2 d4 O$ j7 Y2 g
#endif // __WORLDSERVER
+ a9 o1 \, C% s} , \. c$ f! C7 c0 i8 B y
! Z+ a$ R- r: v+ k% |0 R
然后你进入functextcmd.cpp并添加以下' B; E" d) m" Y: P
8 S2 z Z8 E7 w! V+ r J5 J& ]
代码:1 G/ w) W3 B j, X# |. E/ i
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! U' ~# f! U. w7 j
下面插入
% Q) Z3 W u# E$ P5 rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; E4 ^1 v- w) G
# w+ s2 V9 Y* f& S
然后你去
3 }" O3 I3 B5 e( \" T; O+ S, P& k3 ?7 S! p7 P
代码:
% B% a2 S- i+ h8 p3 `9 M代码2 [ P6 A6 _( q
BOOL TextCmd_ClearPropose( CScanner & s )
" t7 Q! k2 Z: Q; n# e. b- T' ^{
- J. x4 T9 b$ a& p+ `7 ?#ifdef __WORLDSERVER
" T' E# p; L3 h" @) j! i, L CUser* pUser = (CUser*)s.dwValue;" R g4 x7 M3 \7 l
g_dpDBClient.SendClearPropose();1 g0 Z0 u/ F3 [7 M Z& H3 @
#endif // __WORLDSERVER
9 }* |, x f1 {7 P, p% Y! R return TRUE;
, }% X3 g2 b, i& Z' R) s}+ ~0 q2 O1 g1 y$ ~% Q- A- e" ?4 n
下面插入: T5 w: p; j/ c) ]+ S% q
BOOL TextCmd_rebirth( CScanner& scanner )
# M! J0 z' x; O; [, {. |% L{
3 K) B8 C5 f1 _#ifdef __WORLDSERVER( Z9 c( G. c/ }, n3 H2 M& H
CUser *pUser;
/ w- |; ^% _' r2 o; }6 u: lpUser = (CUser*)scanner.dwValue;4 M1 a0 p; R: t4 y6 e! q7 R7 A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 F3 Y; ?1 ^, b3 g5 r" c ppUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 N' R$ V# M* L8 ]
else' n( d ^, O& J( A
pUser->AddText("你还未达到重生条件!");+ g' O \( s/ _! A0 Z5 X* r
#endif$ D" u& w% c& y4 n" X5 O8 E9 p) H) \
return TRUE;4 M, d9 S3 N; Q( n
} # u: \: r8 E% P
7 \+ b. u% q/ R
# L# u4 ]5 D; v; N: b$ { w8 n2 ~
/ S: f3 Z" s, e2 z$ q0 \" ?2 W. R* K. n7 n' D- E9 t
|
|