|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# ?+ ^( r# g0 T& [& D, P
% M7 \; P8 W6 M: m0 X zMover.h. h) K8 e( g6 U1 ?' v. }) N. J
代码:
$ i7 ~: L8 Y* t; I' f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 h& h5 v4 p$ w' \& b: p
. d/ }6 ]/ ?: ?$ o7 H1 z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: g" V2 `( v T* F: ]' c, C
' M1 y0 Y: f: N# q# z9 |7 ?+ `然后你去mover.cpp添加
) |9 k! r' A; @1 g4 K# T
7 i2 J! D# O5 z5 v+ u1 o代码:9 M! M5 s5 h: I! N# m( `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; G& R1 C" x* l! c- g$ y{
0 i2 @( z; F) ^0 d#ifdef __WORLDSERVER
1 m2 T+ d( i7 F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' K' L$ n* r* D0 W4 ~
MoverProp* pProp = GetProp();& P; `" ? D) g& x
if( pProp ) k# @" p7 A R! V/ A' z2 B% s
{
5 k" B7 u& L3 A4 U if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 Q; Z1 [# v8 r) M2 T {
' R$ C, {# I& V# q3 n AddChangeJob( nJob );5 N+ b2 u$ x0 y+ p7 b9 }3 \
}else{: Y. J9 v u" u! b$ M. w
return;
5 P, v7 P2 u* [$ T" z }+ P3 u. k+ @3 e `7 I
int nPoint = 0;0 ~) H. B- } p; A- ?& J; Q
if( m_nJob == JOB_MERCENARY )& m0 [0 s J! S- Q4 `7 y
nPoint += 40;
* `/ t" x' }: k& l9 i' o$ u else if( m_nJob == JOB_ACROBAT )
9 @; a# j( |, V$ E" n nPoint += 50;2 u5 b9 H7 w9 B5 _
else if( m_nJob == JOB_ASSIST )& \ O) c H8 P4 S9 F
nPoint += 60;4 R0 J. I" X0 m7 E# W3 x! L% v, V
else if( m_nJob == JOB_MAGICIAN )
1 Y. C/ l7 C0 {8 k3 u! }8 q* A nPoint += 90;
1 f+ |* K. V2 P6 Q& y$ r" g6 x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ Q" ?7 x' w$ z( e }' g3 W8 d* z T5 P nPoint += 120;
+ I" \1 Y0 ]& u. g9 I# v W6 B9 G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) J" g- P2 |5 J& d; g% \
nPoint += 150;( S$ }1 |1 h6 r
else if( m_nJob == JOB_RINGMASTER ); R) r% w& t% ~
nPoint += 160;+ V# P' z5 V% [* m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) u, u U: f* m5 P
nPoint += 180;/ J# {* n% w9 W8 i$ G1 Z
else if( m_nJob == JOB_ELEMENTOR )
1 l6 |: i; C9 l" Y& `7 B; z- J, r2 | nPoint += 390;
: K8 A% x$ w4 N* Z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( g6 }2 ]5 A* r. T
nPoint += 120;- I2 r5 t$ J3 M# ^' g- D: w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* K, V! U6 \; [' V. d7 s% o
nPoint += 150;# g3 x; @3 W8 [$ U
else if( nJob == JOB_FLORIST_HERO )2 k. U8 {2 G$ K! W
nPoint += 160;. c; t9 z1 u# v
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- x7 n3 A' E& S0 L1 @: Z9 A o nPoint += 180;
7 [4 {* R3 G9 F3 `1 _" G1 ? X else if( nJob == JOB_ELEMENTORLORD_HERO )7 V. u2 c1 n$ u1 g
nPoint += 390;
- }* H' y; u6 `
; Z5 r+ g8 Z* ]. \% m AddSkillPoint( nPoint );6 N( U2 \5 c" s, O
m_nLevel = nLevel;" N* |1 E; @3 c4 x7 d
! C: v/ S# \( a1 P2 g5 X4 {. @+ a) @ SetJobLevel( nLevel, nJob );
t( z! z$ q$ F" c* v m_nDeathLevel = nLevel;
& {6 D8 N# E R" T#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, S0 ^' _5 T0 h- o, `" B' C# V8 X
if(IsMaster())" F: }5 i3 a) E- v' m: X0 ?
{
* R8 y" j- F9 }5 d int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 @3 N7 b9 A: `7 @5 o3 A- w- B6 i if( nLevel > 59 && nLevel < 72 )
2 R$ i! r3 }+ n2 j dwTmpSkLevel = 1;
5 B j+ k9 w) Z$ z. {9 f else if( nLevel > 71 && nLevel < 84 )
- L; u- |2 X# S y; H' S) j dwTmpSkLevel = 2;
9 q# |7 ?6 O* N5 f7 y& A$ k else if( nLevel > 83 && nLevel < 96 )
8 |3 G% H* ]0 P- H2 ~ dwTmpSkLevel = 3;1 g# T0 J; J _) Y2 c! W/ {; x7 j" ?0 N
else if( nLevel > 95 && nLevel < 108 )1 a2 _# {. Z! V5 d8 W, r) n
dwTmpSkLevel = 4;
+ n1 z6 \# p* u else if( nLevel > 107 && nLevel < 120 ), L6 r. p F, G: j* f P# K
dwTmpSkLevel = 5;
2 A' V1 B, I5 p2 S; B for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 G+ q2 N. u- n. {7 A7 Q ? {
3 j4 y W# a! D: j' G LPSKILL lpSkill = &(m_aJobSkill);
2 d. W9 A) |# c1 {! R. w i! l if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 G6 |) \' w4 f+ ^2 ? {
! i9 y' D( V" f! r$ U. p, p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 |, W: \$ r, k% B. b
if( pSkillProp == NULL )
" M n/ `) ?+ H1 ~$ c# q continue;
$ v2 \# `+ u4 R9 u. V- }6 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 d7 n2 k5 I- N5 b5 k3 v0 r% i continue;* _5 Q/ x# Q" z: k5 B, Y8 p/ G3 R
lpSkill->dwLevel = dwTmpSkLevel;
/ F* ]# G8 F2 Y( Z }
# {: {( A5 S4 d: z% r }, B# R1 a9 X8 p, ^9 {# B
}
9 |$ u7 a! k1 g4 v4 _ else if(IsHero())
+ v5 M4 u7 ]$ h( [% b {! U7 y( @( Z. K/ ~3 |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . N+ {; y P: q0 g
{ , [, s$ q9 H: L' i8 p, w
LPSKILL lpSkill = &(m_aJobSkill);1 G. y1 O0 M2 H$ x) z
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 {) K7 G; W# S# U
{
! y' o2 x. {2 P1 G. j( p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . W6 p* `% R2 I% I$ l' e2 G/ R& b
if( pSkillProp == NULL )
7 |1 ^, j( g* C continue;
. l. j1 ~% z4 n$ ?' _4 [" t0 {7 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 l! k0 g5 g1 M) l( b
continue;
8 }; w! g. Y( {* |4 K3 L, W lpSkill->dwLevel = 5;7 Z& H( z3 A( p' t
}; O1 I6 t& K$ G" a6 R5 r% D: U& m9 |
}
. }8 f6 {0 C/ c7 q( ] }# l# }* t% w1 d0 d" c1 C2 m
else if(IsLegendHero())1 F% V2 m7 J( I8 v6 D
{
* Y; t; R6 v: j& ]2 u/ D, p+ d for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 P, L! O9 f. ~& n6 c: N. v, f. | { 1 {% N! \ j0 ?
LPSKILL lpSkill = &(m_aJobSkill);
_; B ]0 _3 c4 F" r+ y' I7 A+ o if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 d2 V" R% k* V8 }# F% [ {" v( [. I5 Q( F% D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " @- U, z7 p, b. [/ S7 f2 j/ w
if( pSkillProp == NULL )
* y8 |0 } S) F1 N. ~ continue;
( ~3 y' t* Q4 m" S/ @# H# h& ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER); R \2 `* `4 G# e$ _3 ?" l
continue;0 a* _, U4 ~2 Y2 v
lpSkill->dwLevel = 5;
+ f: U @6 K. z" Y4 S! L/ @- f } t% H/ a# A- S3 v1 V7 {
}' ^0 K" i0 o/ \; {. Y
}
$ n) k4 c' r- b, `$ Z& A#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% v8 e' c( t. C, s( `9 |$ y' r if( bGamma )
% {0 P! Z/ d d7 u {
' @& J8 _! {, c9 c g& @0 s! k m_nExp1 = 0;
( ?4 o9 z+ L+ s4 M# [4 m2 u4 E }* F7 }0 f- w: @8 f% I
9 _0 \7 P/ z( R! { ( (CUser*)this )->AddSetChangeJob( nJob );
: ~+ R, O* j0 s& {* l: V. k g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; L' y; v% J+ ~- R" f: P, R. }& s/ Z2 g8 h/ q( Z8 \2 X
+ P; y$ N" ~1 L. K! K#if __VER >= 11 // __SYS_PLAYER_DATA
v- U0 K: q- Y0 n g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 r& h& W2 @9 E' ]: ?0 N* }#else // __SYS_PLAYER_DATA- \' U) b6 ^2 y; ~. o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! Z* N u" ]* R3 f- d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. Q1 Q+ r6 B3 J- n. O
if( m_idGuild != 0 ): s& y/ b7 X- E! T7 Y3 R! g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. I0 r8 G2 l* a& i* I- t
#endif // __SYS_PLAYER_DATA4 f, e% I6 U9 Z8 h
SetHitPoint( GetMaxHitPoint() );
9 x8 |/ [8 A: E' V5 J! d: X' J SetManaPoint( GetMaxManaPoint() );5 e+ q$ |7 F$ t7 b
SetFatiguePoint( GetMaxFatiguePoint() );
. F6 a7 R' L. D/ x if( nJob >= 1 && nJob <= 4 )6 E$ [+ H1 t. n0 m; p
{/ b3 f5 r# D! P6 }0 u5 z2 X0 Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 }, N8 F L6 M8 j6 L0 _1 W m_nRemainGP = 28;
2 S/ l' x# n8 ] }- D O4 e0 h, G/ Z$ ~, @2 ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ R3 S: h$ p4 o3 ]) k( j4 k {" P0 S* e z0 }# e7 N, O/ c0 }
m_nRemainGP = 118;+ x" B' Q* N# ]2 w9 ?8 M. W: v, y6 d
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 P( H. b! V0 I3 P! P8 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 e8 x& J1 Z. W3 {% X% P& C
}3 Z: @2 w# J" Y" n, J+ P, w
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* [8 y/ H/ J0 d" o1 Z% c4 y {
: I* R4 B6 x& z( N" G: I" G CItemElem itemelem;
% u6 a! E+ N. K( g, X! C itemelem.m_nItemNum = 1;
& }4 w4 A; }- ?8 ~0 }$ L/ d* ~ itemelem.m_bCharged = TRUE;3 b) }- R4 ^+ s, H. ~' y6 e
BYTE nID;
N% _* t8 f; v+ G9 Z9 ?7 _# y0 O- w) k# F. H$ q1 {
if( nJob == JOB_MENTALIST_HERO )
/ P" F7 b# ?8 {% \7 g. h/ _& _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; t+ L+ ]- z1 Q6 N" N) o
if( nJob == JOB_FORCEMASTER_HERO )- d5 q% x+ J2 d x$ {9 | `9 g
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- `, |0 e5 a8 _! Q( M! [4 m& B5 `8 b1 \2 f1 D/ E/ Z
( ( CUser*)this)->CreateItem( &itemelem, &nID );; n" E% q; T2 ?4 L: ?" A7 m
}
9 b; a& d9 R3 i8 h G/ y9 {: i. Y+ V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 ?' `1 Q) U! _6 p* H2 Q4 T! W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); g8 ^- v( G1 F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, F+ J4 k5 ~0 Z' T1 r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, ?; l @% i& e( f
( (CUser*)this )->AddTaskBar();*/& j8 A" U$ s d1 V
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' F. c1 F' R1 i7 f4 F0 @7 H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 |" P6 Z# Q1 K3 y ((CUser*)this)->CheckHonorStat();
' a E- a1 {# V W ((CUser*)this)->AddHonorListAck();
) ^; C, V& |* n) x6 N g_UserMng.AddHonorTitleChange( this, m_nHonor);' g2 J5 p; P$ ~% l) u- |& I
#endif // __HONORABLE_TITLE // ′Tà?
& T @- H9 J8 P" E. M! K. T }$ i: ?0 n$ y, M. ]# V
#endif // __WORLDSERVER& Z1 J5 R2 e- T
}
! c" E, ?% ?, ?" k& J! \" E2 W) L9 h
然后你进入functextcmd.cpp并添加以下
7 x) b' {8 p" I; [: L, t: V
$ e' |1 Z, m# ?% R- d/ y代码:0 D7 [" l/ X Q- F; @+ s: ~& w
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ r1 x: n7 {( V* ^* P) M+ a& b
下面插入/ D# ?4 p3 U. q! c7 W0 a4 D
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) i& p. z2 ]) a9 j& u8 j5 @: T
- d0 n j( R/ x
然后你去5 r$ f* F( \( J8 P
+ c7 }3 u# J. W; y代码:
/ [6 j D7 z1 b' F; i* W6 ]" N代码4 S/ f5 W% | {: h
BOOL TextCmd_ClearPropose( CScanner & s ): u5 s2 Q; ^' J5 Y
{: }! ?: \4 X7 D) n3 y( C9 j- z
#ifdef __WORLDSERVER
+ m8 s D: s9 F( f" [! |2 f, B CUser* pUser = (CUser*)s.dwValue;. F) k; o, C( Z
g_dpDBClient.SendClearPropose();
3 R2 O$ }* s0 H; ~: c#endif // __WORLDSERVER
4 t9 R& m" V: K8 [% e J5 A( a return TRUE;
# T5 Z+ C. T1 R2 y: \}
( Q& V) w" i. p" M下面插入
L3 o5 I7 g% t4 C9 [BOOL TextCmd_rebirth( CScanner& scanner )
! X+ j) {$ t: ?{7 b2 V! y" W6 ^$ I1 b
#ifdef __WORLDSERVER
( }9 y4 S8 q, |& P* HCUser *pUser;
9 n+ Y, M) F" M/ LpUser = (CUser*)scanner.dwValue;
% t7 _2 E/ K% a0 w) x9 }if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& U" T# ^3 w, X* Q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ i* P- w7 K7 e6 A/ d
else6 e# B/ P" l7 B
pUser->AddText("你还未达到重生条件!");2 o/ v, s2 T* |& U: Q
#endif
4 t: _( [& }0 z. n1 [9 K' dreturn TRUE;
& \" a) `; S4 W7 v- n1 L( f( A$ v& @}
+ B+ m# T- z; [ N; N: d G5 Y, ?/ W. E' e1 k& l
# R+ F. J& y) m" C+ @; k. A
; P( b8 r/ }% q/ A: _1 w+ w/ b- v' z2 ? M, C
|
|