|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" |' z W$ }: S0 h3 o# n, y* K- c. t6 v3 O1 a
Mover.h
( l# z; W6 u! ^$ i, G8 m代码:( i X7 L' U) H& X8 H( G' h! ?
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ }! t8 s& A9 E, R* G. q* A" Y" x E
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 D! T7 o4 d2 }+ _8 }% [( }9 G: C) n; F
# p9 {/ u+ C. J) Z: V/ D然后你去mover.cpp添加: x2 [ O3 j! b: N
' G0 m) w. q! [+ @; \7 N代码:8 h7 J, z# n0 ]. `) T8 u
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, ]' S+ Y, q/ [) Y2 C{0 o1 `/ g* B+ L" O+ O7 f/ D
#ifdef __WORLDSERVER
. `8 r7 h' Q) Z N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 s- G. \+ X6 W$ ]) u6 T! |: W
MoverProp* pProp = GetProp();
/ H1 O! [. g \ if( pProp )
9 b9 f* b( r6 ^0 Q ?( R6 [9 J {
' O( U6 a& ?* g& X, B# ]1 G if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 h+ C# e' x$ b I/ M1 c2 [% e, f {" s7 M0 T) I+ X# t8 T! V, z' y
AddChangeJob( nJob );3 e' j& w. Q) D% e+ |. }
}else{- b1 A* `$ t* b- E, M5 j! t
return;
$ R8 }- \ ?, z M }; ^% u9 E% ~8 @4 w% p
int nPoint = 0;
9 {6 J+ q* L2 `- v& X if( m_nJob == JOB_MERCENARY )8 n) B" K) U& p. t( G
nPoint += 40;/ u/ ]9 W/ Y5 ]8 I% p
else if( m_nJob == JOB_ACROBAT )3 |2 H( [4 X' p: |
nPoint += 50;) {3 i1 K2 L7 C8 e, U
else if( m_nJob == JOB_ASSIST )
Y+ ^" R" @5 x5 T g, {! R/ p nPoint += 60;7 |. N4 D+ r7 k( @( N
else if( m_nJob == JOB_MAGICIAN )
3 j4 W" r" g( ~+ |) f nPoint += 90;( N2 `- q0 q( |; j; F7 v; S9 n
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* I/ F& R0 k4 i7 t# H' D6 l {
nPoint += 120;
3 o8 I. k8 @& Y4 l. O5 t* D else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): ~- a% p1 Q& Q$ Z1 Q+ C
nPoint += 150;
, O# A( C6 M2 m else if( m_nJob == JOB_RINGMASTER )9 H3 \# c/ A, t( C5 c7 i
nPoint += 160;2 w( r# d! x) a- y, c
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 F5 P* A: @: K. h0 D' l! e. k nPoint += 180;" P! d! k7 Q% [/ [* T% A2 I6 z
else if( m_nJob == JOB_ELEMENTOR )( w2 I. c6 o, X$ {% {) ^, e+ V
nPoint += 390;
^8 A2 {, _/ N, J! N else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( ]: {- b# h0 n2 [( v: ~- A2 F nPoint += 120;, t2 _4 S. f: }7 S
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 j2 P8 p% Z. x W! q. ~ nPoint += 150;
8 ?" _: M6 ?4 o& p% T6 G5 a else if( nJob == JOB_FLORIST_HERO )
0 v f' e; K2 |& @ nPoint += 160;
6 z$ A: T5 u {: }$ f else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). X+ j5 g7 v% m- r4 {
nPoint += 180;, O2 I/ y' X/ K* Q" |* ^
else if( nJob == JOB_ELEMENTORLORD_HERO )) x* L6 I% z: t r' a
nPoint += 390;0 Z0 |* I+ i* \) H; K+ Y7 C4 I2 R6 ]
7 N4 ~- P/ U$ b8 B* e( f. R
AddSkillPoint( nPoint );* N7 l& t& a9 X1 q3 ]
m_nLevel = nLevel;
' \; D. T& [- F: z# m; A- o# v5 }
; n! b5 T. o! l1 f7 l6 y& @ SetJobLevel( nLevel, nJob );
" o3 M( r8 D# |" L m_nDeathLevel = nLevel;/ C4 _( H5 w. U0 f; i' ?& X! c" p" L# T
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( R$ k, i# X1 W/ T5 ?
if(IsMaster())
& {0 M* W: n/ I& k6 b* U% I6 M {2 Q9 O, j" H$ v# y& g' d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! _/ M" e. g, X$ w$ R2 E) I if( nLevel > 59 && nLevel < 72 ), w! R p. K( @
dwTmpSkLevel = 1;$ R* ]2 F# S$ L
else if( nLevel > 71 && nLevel < 84 )
1 E1 b+ o9 W$ \ dwTmpSkLevel = 2;% J+ Y9 _& P6 W+ t
else if( nLevel > 83 && nLevel < 96 ): ]2 w* i2 [8 w1 [* _& o; o6 Y
dwTmpSkLevel = 3;, Z# m) i* k/ W/ O7 k
else if( nLevel > 95 && nLevel < 108 )" Q: s# p# k7 k7 t9 L; r
dwTmpSkLevel = 4; b: O4 `' f$ {5 E, B
else if( nLevel > 107 && nLevel < 120 )/ h I7 T8 [6 R% S+ p
dwTmpSkLevel = 5;
9 t* _$ ?, z7 k1 F* G( @- } for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ u h+ h" G6 l" J
{ ! X2 L/ }0 {; a: X/ V9 ]) g' i
LPSKILL lpSkill = &(m_aJobSkill);" }0 x* ~( J& A- v- q" l: @
if( lpSkill && lpSkill->dwSkill != NULL_ID )( O5 m) P. U# i! s
{
, ~# v* v0 K/ U3 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, ~+ H0 F( h) j2 I( r: J if( pSkillProp == NULL )
; [- z2 n' d7 {8 }. d7 p5 ^ continue;, L* r4 v' N& K/ O$ v" i$ a @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" H, g4 L. _& v/ X' w continue;
9 @0 `) F% O/ p$ m' v( c3 T lpSkill->dwLevel = dwTmpSkLevel;8 U2 m" x) X8 V( C$ `
}) C, E9 \" e: m( c* w
}6 s) r `8 u" H
}
$ q+ F: i+ Y( Q0 T \ else if(IsHero())$ A' h5 y# h% `6 ]: X6 I
{
w7 C0 E9 Z& E+ [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) / q+ n( A$ x @; h1 @8 {
{
0 K# ~; z: h2 _; R/ v LPSKILL lpSkill = &(m_aJobSkill);
- ^- I( p" \6 ~8 q! k! f if( lpSkill && lpSkill->dwSkill != NULL_ID )5 K8 ?$ v: _- N+ U5 V
{; R7 @6 e2 U- l3 e [, u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 w; i& a# z+ G; f/ y9 A! D% b if( pSkillProp == NULL ): |2 X! W( ?! j
continue;
# j! w+ R, Z! z, Q( b4 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 @3 t6 j' F& r. O0 H; h continue;! o! d# ~5 h+ Z t6 o
lpSkill->dwLevel = 5;
. E- v8 I8 V5 S0 a5 Z4 r8 v }# y' n2 i9 P, x
}' \; `" i& Q+ b
}
0 F. U8 E$ @' C) G4 C else if(IsLegendHero())6 R% s! I6 x/ S7 b/ ~6 V! B5 u
{
+ b u3 c y. c, O for( int i = 0; i < MAX_SKILL_JOB; i++ ) , g+ j. x0 D8 H% }
{
" s9 I; ?+ \( y, Z3 U' ~9 H LPSKILL lpSkill = &(m_aJobSkill);
; C+ s9 s5 P' p7 r6 G' l) d6 b if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ ]! }" R6 C. R1 h, D. n {# T1 I D# y1 |3 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 z& M, N2 x- W4 N \& z if( pSkillProp == NULL )/ L& o+ ^: z' I: m6 u: _9 s( Z
continue;
+ ~ m4 y; l5 F% j5 x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
V6 b( i6 c) W) C& D& w5 J3 C continue;9 ?. Q7 J) y7 }6 J
lpSkill->dwLevel = 5;
( B% k2 y+ c$ @" {# d }
3 N+ Y5 U1 E) j7 i }
1 |3 ]; C5 x; E! @ }
" X: R& {4 @$ _5 a#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% _& ?5 V9 P1 p2 `2 p if( bGamma )
! L# f% B. [8 T4 x5 p' K( { {0 R* h* Z* B9 u6 p# _ R
m_nExp1 = 0;6 |" |8 C. m9 }. O
}2 [8 D' a2 O9 q3 d7 p6 I; w
. P: m% |- j. D4 Q' t/ b' M/ E) H ( (CUser*)this )->AddSetChangeJob( nJob );
8 E1 C- u) b& {+ [ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% _* B; d, y9 C1 I
! |4 R/ ]9 V, ]5 M: p
" J6 c" `6 |' d
#if __VER >= 11 // __SYS_PLAYER_DATA
1 M8 ~, O5 O5 P2 g- `; E" Q& j% S g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( ^5 e3 t, I2 r
#else // __SYS_PLAYER_DATA* T* Z8 ~! e. T2 T1 o4 _
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 v7 o; w% ^" I# g5 D- v! C g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ d4 t0 L! [4 ~2 i* B# Z if( m_idGuild != 0 )
: }( p! N1 q P2 l1 F: a# k, N g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" f! ^ D: b1 v/ A, y0 P& ?
#endif // __SYS_PLAYER_DATA% f; p2 p) w* y$ I
SetHitPoint( GetMaxHitPoint() );
) T# D5 s+ r i) d) ~( b SetManaPoint( GetMaxManaPoint() );' A0 v4 e& h) H4 g4 @+ @$ I
SetFatiguePoint( GetMaxFatiguePoint() );
6 d# y/ Z7 n$ j Y if( nJob >= 1 && nJob <= 4 )
- }0 E( y' X* M5 S% @/ [+ H {
& r6 [5 T3 V- ?( _0 [- I/ G6 v m_nStr = m_nSta = m_nDex = m_nInt = 15;' P$ D P- I/ z/ M
m_nRemainGP = 28;
( B, ? ~8 v# D9 Y7 `" ] }
2 y- N& a- M6 p if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# A( m8 h+ B2 _& p {* Q" ~% C& t% o
m_nRemainGP = 118;& k6 h4 I; g4 b9 O* |3 `
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 R2 Y+ J7 D9 m( v+ Y J
m_nStr = m_nSta = m_nDex = m_nInt = 15;& _5 e8 f( q2 e
}
2 Q* v/ p/ M3 K5 D. N K" S if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# ~* _5 [; ?0 |
{
* p# ^* ~" W/ D6 i( n CItemElem itemelem;9 \- h4 |2 y0 }1 |1 D6 o$ g% I
itemelem.m_nItemNum = 1;$ C4 R0 j3 ^- y" c7 a
itemelem.m_bCharged = TRUE;" |6 N. l7 B( o1 ]2 Q8 ]* z. b3 U, q
BYTE nID;
' |* Q2 [* W+ ^ } e! n' C& ^$ ?9 E! N
if( nJob == JOB_MENTALIST_HERO )0 I8 U; V" e" m2 Y# i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) @$ |# w) ^5 C6 y) D! e if( nJob == JOB_FORCEMASTER_HERO ) p- f! y$ A( I) N, L7 z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 \$ p7 \7 l1 o& X" m$ D% I) f
7 r- t/ [2 H) M# ]. s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
' y2 R1 m7 S# s2 M }+ Q* w1 n) p* @" d4 Q. d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ P: x' t# ~8 a0 \3 m6 H' J
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. K; H- h( i9 r/ W, y. D ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 `3 u/ ~6 P" _, l; J( b
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 l% Y1 W* z9 o# \
( (CUser*)this )->AddTaskBar();*/
0 T% y& y) Z0 D) T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& C2 e2 Z$ [0 o! _; B$ Q% P* \- a
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# Q+ i; Z+ J1 n8 v
((CUser*)this)->CheckHonorStat();; g1 T/ b; J' u* @
((CUser*)this)->AddHonorListAck();4 }6 T; n- m- {2 X( ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);, I0 F8 n% ?5 [9 ^5 F; z
#endif // __HONORABLE_TITLE // ′Tà?
0 \% o* _! `, u# w" w }9 G* }# d2 E, k, I& n) J
#endif // __WORLDSERVER; K3 t3 C( N1 M2 Q" K% o5 Q
} ' s ?! t( [% L* p8 L2 s3 C
8 D& U( Q8 j* g' t/ y4 V0 k然后你进入functextcmd.cpp并添加以下
+ M& X! v+ Q2 i3 W- O+ B( F) [
+ \4 d; {) P1 ? \% i. U% E% J' Q, |代码:: M0 \! \9 Y }9 p& J6 n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. L) E5 W, x7 [下面插入% k! |5 [+ ?5 N' s' n; o6 h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 {3 W8 E% ^& r0 K8 M
1 m" }7 x/ x/ b4 [9 I% V7 R$ Y
然后你去
0 M) F8 m+ M0 g5 o/ q4 M: ?: Y6 |% Z. y' l% w+ K. c, D
代码:: W1 @; o% I3 r' p! g, D* y( R$ ~; a
代码
; w* _$ x, [4 {" o% jBOOL TextCmd_ClearPropose( CScanner & s )/ Q% y" T5 F! _) j
{
9 f$ B% t0 f6 [2 v) O#ifdef __WORLDSERVER
) O; B( D$ U7 d& e. E CUser* pUser = (CUser*)s.dwValue;
6 Y* ~1 J' {1 d8 [& Z) n( b g_dpDBClient.SendClearPropose();8 L# h9 \6 @- f8 S8 W) b8 E
#endif // __WORLDSERVER
9 t3 ?# |3 {) {/ K4 C: ` return TRUE;% [; U& ~3 p4 |% u2 W2 r+ p1 v# X; f
}- \8 D7 P' b( e% d( f
下面插入
" L! X) k7 F: z4 C! P ~, VBOOL TextCmd_rebirth( CScanner& scanner )
; R6 k2 c( S- j# @$ I8 G{
$ _$ Y4 v9 y$ t+ ^' U% S#ifdef __WORLDSERVER
+ ~9 E, ~1 j% M( H8 }5 b4 hCUser *pUser;7 y$ [% s) s0 `' x
pUser = (CUser*)scanner.dwValue;6 O8 }: e; k" H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 R- p9 @% y, D# f1 YpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- ^9 R5 X2 y! x) o6 ^else* _0 m0 b4 a( b# f+ M4 l a( N7 ] S
pUser->AddText("你还未达到重生条件!");
6 ~1 {3 u$ ^3 t$ U#endif
* i8 l8 R. }: O, S" y1 Y0 s) freturn TRUE;+ B/ Y( T; | q5 Y* z- n
}
& F7 f5 F: P2 n& K$ Z( N. ]
9 z; y$ C- S4 w% u! U
: ~$ \4 u' a& Q7 g% U6 R# w5 u% {% W
4 |6 p0 _. G& ^. _2 ~
|
|