|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. J+ S! H K- x1 T
2 Z: q9 f. M+ f! ?3 CMover.h) \" c1 O2 A4 c1 p! _
代码:
2 P, X' c1 |! E& \找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ T6 C5 L( i' I0 _0 f( J' O0 q0 C g* \% v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- t7 D- _+ Q) L- [1 o- l
9 u. t6 I v) y然后你去mover.cpp添加
8 G5 ~9 i/ O/ \4 Z0 d( J$ o! a1 F5 f8 E, k
代码:2 w d- n4 w+ C9 |! o5 s9 T/ j" E. ^
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" {7 I% U. ~: L- e( X& B; P
{
$ r9 r3 \1 Q7 E) q% P. S#ifdef __WORLDSERVER. Q9 q; M2 N2 J: N! \1 F4 }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 r V" Q/ T+ M! G2 E0 m
MoverProp* pProp = GetProp();& i5 V& H8 G1 x3 P2 V6 M/ c* _
if( pProp )
; l$ R D% t9 ~& t& i' V9 k' k {* h! V9 `7 i* m; d5 t
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 f5 F# [8 v. ?6 p {( j4 J* g& w1 b
AddChangeJob( nJob );
( H1 O' v: ?5 r8 O' X }else{
$ o# o9 p3 @/ s7 g5 i return;6 [; x9 P( A( y( V9 F
}
9 D6 X, o1 i% W% B0 }! u7 V, y: ` int nPoint = 0;; n7 O9 y K" \
if( m_nJob == JOB_MERCENARY )! q u" m( }/ i/ |( {! g
nPoint += 40;
) ]. m: W' ]( @( }' N( f3 V else if( m_nJob == JOB_ACROBAT )
7 Z( K o. I6 u! q nPoint += 50; [8 S8 X, ?# @+ W3 Q
else if( m_nJob == JOB_ASSIST )
; y( {2 i0 v' _ nPoint += 60;+ _& k# X, S- T
else if( m_nJob == JOB_MAGICIAN )
3 K1 |1 i4 `. R$ n) L nPoint += 90;" V' ^8 P7 D |. L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* Y( Q7 G( w$ ]- S8 d" o# A nPoint += 120;+ ^0 N; `5 Q- {3 ^1 K1 W" q, F2 }
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( q5 |' M$ O2 O* I6 U/ n
nPoint += 150;
! T: P6 i& e/ z# i else if( m_nJob == JOB_RINGMASTER )0 X- b+ }# f4 n* u: x0 S
nPoint += 160;2 ?* j& e' u- I5 ]2 ]# c" ~
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: K: P& W, s5 ^ nPoint += 180;
* F* R$ V, B& d* o1 g: h2 O else if( m_nJob == JOB_ELEMENTOR )
9 M7 x# A4 M; n8 E$ U nPoint += 390;
9 k5 b" ~9 ^+ Q0 z0 Y; ~ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) S% x* j. Y5 T+ j3 ]/ l nPoint += 120;
( L. ]4 g& H4 _2 Z# |) J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- K: U0 e o0 u! N
nPoint += 150;4 |2 l, f- u* h- p$ |* d
else if( nJob == JOB_FLORIST_HERO )1 C" H' q% i. U3 Q; @" ]
nPoint += 160;
- h9 g! c; P$ S" O else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" e3 W# C% n- K+ [4 V
nPoint += 180;2 N/ T# _ T0 c" n$ d+ ~4 \
else if( nJob == JOB_ELEMENTORLORD_HERO )! ~! @2 g. P7 l% N2 m: p
nPoint += 390;4 v8 h" u, |7 b
$ F) ?8 o6 Z& U( _ AddSkillPoint( nPoint );
8 W4 n+ q3 |3 K, b+ t6 n& \6 U m_nLevel = nLevel;% J+ D8 J0 m' ]8 H6 r& H) t
0 E' F5 U* i9 I5 X2 N: U
SetJobLevel( nLevel, nJob );9 k0 j" p# _8 e2 m, i7 A0 n$ V
m_nDeathLevel = nLevel;4 p8 d( W) i/ \; W4 M) x7 i+ u
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% m" e1 W' x$ z+ L3 L, { if(IsMaster())* ~, y+ T! M6 L- A9 V6 ?
{$ p4 P7 a: w% M4 s; J
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 r! D+ E% s0 j* Q. _
if( nLevel > 59 && nLevel < 72 )2 v. ~, \: a& K/ K) ~
dwTmpSkLevel = 1;( n& f5 }; q6 h$ b/ ^. R
else if( nLevel > 71 && nLevel < 84 )' d( A1 C' ~% ]
dwTmpSkLevel = 2;
$ t+ `) H( d. D( f! o0 i3 `9 q0 t else if( nLevel > 83 && nLevel < 96 )
0 ~% S, C' T5 @ k( K dwTmpSkLevel = 3;
+ l5 _' w D8 w else if( nLevel > 95 && nLevel < 108 )
# B! X1 j. t2 `* u q dwTmpSkLevel = 4;
: {9 [5 Q0 ?0 F! j# }; @2 b else if( nLevel > 107 && nLevel < 120 )8 _, T0 o3 a- D; q9 \* Q
dwTmpSkLevel = 5;
+ n8 ?0 N" x! o0 W# k& N for( int i = 0; i < MAX_SKILL_JOB; i++ ) * d, ~2 z! @5 Q* P/ p" j
{ , \4 R& m0 E+ p+ V* P. j/ C
LPSKILL lpSkill = &(m_aJobSkill);9 l4 v- g* d1 `( n% b: L
if( lpSkill && lpSkill->dwSkill != NULL_ID )% X3 T8 {; B+ a7 [+ u8 E- P
{
2 z; ^/ Q* Y# D r6 C9 f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . c: r2 v8 j) K4 T
if( pSkillProp == NULL )& a0 G; h- k, f& t3 p9 p
continue;$ [" G9 o" P3 ^1 A6 W" p5 A& E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- E4 d& A& y; K8 T* u7 ]( e continue;
& I v' _1 B# p/ s lpSkill->dwLevel = dwTmpSkLevel;% ~* R4 ^: p) v4 b7 C7 O$ X3 W9 M+ s
}9 }- O0 D3 u) y+ U
}) k9 }9 y7 A# H
}
8 g6 @: G; Y# ^; y" ~& u else if(IsHero())5 T8 f# r& n! u4 J2 D- Q' \
{: q4 i1 o" p7 h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! Q6 c, j$ R9 w1 C, X& q3 x {
" b; l) L. H/ i/ v4 T! o LPSKILL lpSkill = &(m_aJobSkill);# D0 S$ q/ F9 P, \4 l) y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' t$ s5 `8 O0 D! s: n {
8 I* F3 p$ c: Q$ q$ W6 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 _) U L3 Z8 W6 H* x if( pSkillProp == NULL )
. o; |3 a: D; \3 O8 v( f Z1 J0 ~2 O' d continue;& s4 E! ]9 g7 ]0 E7 g @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ p' d+ {: f& l# C7 M
continue;4 ]* }6 x7 t2 z! o+ {
lpSkill->dwLevel = 5;
) a }; u4 l; h8 l5 p }$ ?# v0 N4 N- c* d7 E& E9 t J
}
7 `/ P5 D" t( F; i' B }( k2 {7 _* Z! V& _
else if(IsLegendHero())
6 ]% R! Q" @ }* y {
5 Y1 G! k/ `/ c: W( |0 h) T for( int i = 0; i < MAX_SKILL_JOB; i++ ) / l. L' b4 Z0 u* D$ U. c- q
{ 2 X7 M& E; H( J( P+ t5 w9 l
LPSKILL lpSkill = &(m_aJobSkill);& d q2 @" F# L8 e" g* B- Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 A+ z0 F- N: ?5 ]& C9 N. |; \8 l {# J u' \; t% U- C# s3 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; F. @! d6 {* U9 y if( pSkillProp == NULL )
# [, E4 \# V0 \: [; T4 m continue; O7 J) |6 A m, G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" x& R& f. A) M3 a0 {+ N continue;
- U7 r. f+ D0 o$ l5 t2 R* ?) o lpSkill->dwLevel = 5;* N* ]# v) |+ S- q+ L$ F
}( X2 @" W8 T6 A2 W3 J7 J% x5 X
}
: z& b; l3 W2 g9 `4 B2 p }
6 U6 i t- w5 F$ @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
E0 v7 [! ?# f$ `& a" o if( bGamma )5 Q1 O% V8 ^$ M9 H% `
{
8 X" m# q7 ^; m7 D _, ^ m_nExp1 = 0;$ i& g/ y7 c# G0 b
}
4 q0 c# l$ V+ p+ |1 @3 U# Q6 M/ j T5 [5 g7 C# i3 @" |, {
( (CUser*)this )->AddSetChangeJob( nJob );2 x+ O- ]0 s. T, o, x0 u& `* `
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: w b8 Z% x( J2 W3 i V
- L G, j7 U/ s# n
% X* u4 k) Q7 m( ?* H, N0 Z
#if __VER >= 11 // __SYS_PLAYER_DATA
( l p1 N, }; U: X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. B/ e8 g2 \0 f ]
#else // __SYS_PLAYER_DATA! P, t. ]' k/ ]/ P6 {/ G, x$ s
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 j T! S" s0 u5 c, O2 U2 A$ }
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ o) k7 T$ W, X( p4 @ if( m_idGuild != 0 )
7 G5 w8 b8 w8 ?, { g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% E v7 w: n1 j; X! R2 F4 c$ k#endif // __SYS_PLAYER_DATA4 K" \7 ?3 F$ E
SetHitPoint( GetMaxHitPoint() );
. b6 f# E. c" ?/ [ d4 { SetManaPoint( GetMaxManaPoint() );
- m2 |2 S0 D5 H2 s4 `3 A# |) e SetFatiguePoint( GetMaxFatiguePoint() );( n, j# Q- V& r$ s
if( nJob >= 1 && nJob <= 4 )
1 J. p0 p( t, k; q9 g5 w {
U7 U# ~, D7 d7 \* c" j0 E m_nStr = m_nSta = m_nDex = m_nInt = 15;. ~ H. I, l# b4 N
m_nRemainGP = 28;1 u9 l( T; Y- F& w2 ^: g
}
& N E% F. z' s4 J' ]4 E7 c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 |7 i! U x9 ?5 D& k; m1 r3 O
{: T3 m a8 ~5 n/ Y5 ^; q: ?/ P
m_nRemainGP = 118;
) C3 B* e" j2 U //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 Z6 Y/ G1 O. @$ [2 y ?* R m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ d/ e) d" k: u) u- _, h1 U: V }+ d {5 |5 g M" Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: X) F4 x3 b) z9 c/ [: { L8 i/ K2 r5 M {
& K* ~9 o! L3 P) e9 k* ` CItemElem itemelem;& |7 h' m9 ^* m
itemelem.m_nItemNum = 1;- M* z2 \% p- @+ F/ a/ z' ^: @& U
itemelem.m_bCharged = TRUE;" z( \# O" J1 n5 r X
BYTE nID;% y0 z8 N( b/ ~; j4 p2 X2 j
% B! a; j9 Y! ?" T if( nJob == JOB_MENTALIST_HERO )
3 [4 Y" q' Y. J3 x* M itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 n* B4 q1 k/ [, E [
if( nJob == JOB_FORCEMASTER_HERO )
$ ~- n2 I* r. b" u+ _. O6 n1 N itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( r9 e$ w' V0 q
# [- g7 n1 [+ f: y/ V, b
( ( CUser*)this)->CreateItem( &itemelem, &nID );: x; f* r* f. e# P
}
- L' J# Y% ]& i9 w# V0 o5 Y! s6 M q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 f0 a5 M1 t3 E0 A, Z- Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& n4 w |2 D( I! n. V6 L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 T0 w8 {- B, _' p' S$ o /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; S5 `) U- _, o2 m: f
( (CUser*)this )->AddTaskBar();*/: {- Q( {5 |$ W7 \- L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" s% z9 C$ u# J8 D5 a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 O7 i1 x7 ]1 v4 |: ` ((CUser*)this)->CheckHonorStat();
4 v `! T( _8 V* x/ ]% d ((CUser*)this)->AddHonorListAck();, C4 S' D9 N& a; |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ b) i2 E7 @, Z) R, m. P2 k#endif // __HONORABLE_TITLE // ′Tà?: k# I2 m6 B! M9 R7 F5 U. I0 l
}
6 ~- o t" k- K7 M! [#endif // __WORLDSERVER
, t: A( w5 @% Z s4 \1 S} 6 i! I+ T- h6 D4 k
% f# A5 X+ A3 X; ]% i# q
然后你进入functextcmd.cpp并添加以下8 m- k/ p% s& U7 G) n( B
2 I4 S) b- w* C2 v8 ?
代码:2 t8 D! @5 [( T$ I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) R8 g6 R7 E/ W
下面插入& p# S( T) B$ `. e$ }& f; K. G% p. J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : J K% B6 L' B, K% q$ T
* l/ T$ c0 x |9 u
然后你去8 T( U1 `+ o+ q2 y; I4 k5 M
2 f. n' ^4 }4 h' b
代码:
. g0 { t# ^% a- y3 }' P代码
4 n5 n. M1 O' r2 v$ I3 XBOOL TextCmd_ClearPropose( CScanner & s )" i' V/ X) P1 q9 \8 u# V
{9 h5 i; v/ p4 m9 @5 k) q2 Z" m
#ifdef __WORLDSERVER2 m* z: E* d5 I
CUser* pUser = (CUser*)s.dwValue;
% C2 v+ n& w9 A g_dpDBClient.SendClearPropose();
. {) m. v' @$ Y1 \ D' A. T#endif // __WORLDSERVER
. f' N& ~( W9 f/ C return TRUE;
) X( x( c2 f: d0 ]( b% [! c5 @}
" |5 r* N/ O" H; n下面插入
W8 B" l& Q$ O" k) m2 W0 L, B. s% @BOOL TextCmd_rebirth( CScanner& scanner )
8 ]0 [* `3 A2 Q$ `* w1 |/ n( o{) g, _. t' _& F2 A
#ifdef __WORLDSERVER
* b0 D1 r; u& m5 A, ?5 yCUser *pUser;9 {) }3 o. Z. q. m4 h4 `$ [
pUser = (CUser*)scanner.dwValue;
/ k3 g1 ~& U$ h( _6 W7 ~5 E: Uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 E4 y; |) S: fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 R$ R; ~7 g# {; r# c( x* |else
1 [3 j7 g0 J) _# RpUser->AddText("你还未达到重生条件!");/ \- @4 d4 @+ q: V
#endif& ~6 A# _) Y$ N* S3 V
return TRUE;
) q7 D1 U. H; H1 v z} 6 |$ U- A3 t* _$ S
7 w Y' I/ N( j* j
& N& t5 {! M) D) w4 |7 ~; k7 _1 H; f! W+ n; c$ W0 N z; ^2 W; j
7 X! H. ?& l& O" @5 u |
|