|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- [ q6 B1 Y' T6 n) }" M$ z" e1 o
, a# `7 c k' T# GMover.h3 U0 [, g. B8 h5 l! b% h4 ?
代码:
. Y+ J/ ^' s, _9 X$ c* K! @# K! j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ d6 O6 ^3 K6 d8 ^$ p' `) \% k; u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
Z# ]* k( u6 @. C p! Y1 E; b8 R* F* r: {8 U& [. a- D
然后你去mover.cpp添加
( Q$ n% ?1 |2 y/ O& S# p1 m. E) f& _* ~" Q/ A- p4 h- U/ ]" K: X
代码:3 f, X& [% x% ?9 X) S9 J
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 W8 R( w+ c' s) @! c& h( {0 T8 }" t
{: z5 F6 i( y3 F! S
#ifdef __WORLDSERVER
% E/ m! |. J5 O' ]) q. T // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- ]( t9 T* N! N2 p/ e MoverProp* pProp = GetProp();
3 G/ u6 A% d* q7 Z( k if( pProp )
6 D* l2 J. `$ f8 a {
/ U; V/ |+ Q J) s9 L if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% j2 [" ?! g# a9 d3 M+ V# h {! R% X% Y/ M! J7 _! G% k. R1 Z% h$ W
AddChangeJob( nJob );
2 f+ x {( i5 A3 ? }else{( H* V% F. e! R, O9 F0 _. k
return;: J2 F. ]2 V: m% ?1 Z
} R+ h* V# O2 v3 {+ V
int nPoint = 0;
8 |/ u! H1 D( I& [/ E if( m_nJob == JOB_MERCENARY )/ w: a, U: c, J; j
nPoint += 40;, {4 R9 B5 @. R1 z. L
else if( m_nJob == JOB_ACROBAT )/ d$ d& p: `7 _2 g% k
nPoint += 50;" F' B# A' q! M7 ]3 w
else if( m_nJob == JOB_ASSIST )
/ X2 S. y, \( p) o nPoint += 60;
. H2 U/ c }: j& x& l( x else if( m_nJob == JOB_MAGICIAN )
! a, F9 ~. F& n5 h nPoint += 90;
/ `9 D3 I5 l+ L1 m8 { else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ Q6 Q! F6 y& Q3 U
nPoint += 120;
# d' [, f5 B' j1 ^8 J/ Y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 W- ]% g2 t: ]
nPoint += 150;
f4 ?. A' u( |& Y0 a2 G else if( m_nJob == JOB_RINGMASTER )
4 o; ~, _$ c; C+ W2 N nPoint += 160;
; ~* m9 @; W, l! e4 l3 Q \ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 Y0 O% ?- ^" U nPoint += 180;
! I# F. K9 {! x- b" J% V5 D1 j; k* a else if( m_nJob == JOB_ELEMENTOR )
2 H) R! G9 B; C nPoint += 390;: L" h' G$ z2 C9 w9 K2 M2 s& h
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 i2 G1 D" R) j
nPoint += 120;
& o6 p6 o% `4 ?7 k% Z P0 H2 Z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- O- W/ \, A$ T2 m% h' `. N nPoint += 150;* c) d* g {/ u0 j& K' _
else if( nJob == JOB_FLORIST_HERO )
# k3 B, H0 Z/ D3 g+ I nPoint += 160;
/ }# ]0 d& s, m$ v) F3 O else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! |# V; ?5 w6 V8 c
nPoint += 180;
6 B% b' ~) X& Y6 N) r7 V8 F else if( nJob == JOB_ELEMENTORLORD_HERO )
9 y. L0 ?" t, S1 J. k& f8 v nPoint += 390;) u. b2 H( U @& I5 F( s
1 f8 E/ Z ~: V1 Q/ i AddSkillPoint( nPoint );
; Z5 n' U/ c( U# f W% L" H/ U. ~2 w m_nLevel = nLevel;
" o, e# [( b' E+ ~' ^
! E4 N' U6 t5 s0 J& n SetJobLevel( nLevel, nJob );, U' f$ j& }! m7 U% K
m_nDeathLevel = nLevel;
% f" W4 |# f: {- d1 A( f#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 d3 _, e7 `, B if(IsMaster())
7 Z. x! |# _7 f$ ^$ m {
: W4 s# v4 u ^* A int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 I) t9 e# t) A8 P
if( nLevel > 59 && nLevel < 72 )) r! D$ R c7 }
dwTmpSkLevel = 1;
2 i/ I* Y" N% W% m$ ~ else if( nLevel > 71 && nLevel < 84 )
" o, E! {4 H) J1 Y dwTmpSkLevel = 2;7 n9 S2 E/ t" C# j# |2 }
else if( nLevel > 83 && nLevel < 96 ), w1 }: t5 U1 b6 n1 Z) @0 T; ?" u
dwTmpSkLevel = 3;
4 b# V0 q4 ^$ R% Z. J5 o else if( nLevel > 95 && nLevel < 108 )( t; o1 f) _ ?. ^) o) s) d
dwTmpSkLevel = 4;9 L' C4 y) B, K8 G9 }
else if( nLevel > 107 && nLevel < 120 )2 m" j2 F( [/ r; D* N7 L# c
dwTmpSkLevel = 5;
# ? w7 X7 h: m# H: ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 h4 M* m+ b; E
{ 6 X2 j/ E7 R* B7 P( u0 y5 p
LPSKILL lpSkill = &(m_aJobSkill);
! N$ l, e; M9 F1 Z+ w1 S p if( lpSkill && lpSkill->dwSkill != NULL_ID )
* P \9 A7 C& k" U0 A- c {
% V- s6 P0 m+ q, [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; Z7 Z# e* c9 z7 o' S if( pSkillProp == NULL )2 t7 X7 ~' c; u
continue;1 ]$ }: [ U) F# E" F0 z1 L3 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 O8 [9 s5 Y% I' D; q continue;( r' [4 Y7 V1 ]7 q) O# K
lpSkill->dwLevel = dwTmpSkLevel;: M7 p8 E) ~$ t
}- v" c: `1 t" H6 K
}; O/ J* v8 T: p# |
}
, U4 k/ q. H! O2 `, ^ else if(IsHero())
( N$ D+ N# Y: e' N {) _4 ~* R0 A1 m5 J3 j7 p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 E5 U0 A3 A& C' N8 s. c3 j2 _ { ( q" p( a- h7 |2 b/ x4 g$ G) ?
LPSKILL lpSkill = &(m_aJobSkill);7 G$ H7 W0 u, f: k* V
if( lpSkill && lpSkill->dwSkill != NULL_ID )% [. S5 W3 D0 y4 l6 n3 d0 R6 P, J$ ]
{ ^, o" z% y' X6 L! B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# e: K9 u: u; i, d! c* G if( pSkillProp == NULL )6 i# u5 F9 o9 `( R9 Z
continue;
' \# ^. z- Y! k% M1 [0 z* `) g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ u1 {, \4 z. a6 J0 C
continue;
0 k) q7 n4 ^' M9 [4 T lpSkill->dwLevel = 5;
" r! Q# I& z! l, s }
! V; T" q6 v/ `2 D# X }9 k( {3 F% M7 v1 t! }. E$ N+ y6 Q! k2 o
}( g' _( \: O# C& r
else if(IsLegendHero()). ~4 s" ?( D, Z) Q& P
{
1 z% R- E/ M) e& M4 X for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 j) c* F: O: e# Z* a; E* A
{
/ M3 N* \" k" H LPSKILL lpSkill = &(m_aJobSkill);
j! c/ h$ N; O0 k* O if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 ]1 c! b) B5 y0 Q- [; U- O1 ] {& x1 U$ F% S1 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 j: F/ p& K# J5 u
if( pSkillProp == NULL )* D; O* u8 O( [5 s
continue;. |6 p6 {6 z' a0 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
p- `4 ~3 c0 s3 A continue;
4 o4 Q* k# q' d0 C lpSkill->dwLevel = 5;
# z& [7 V" d( i, w( u }
j/ [* U# R" z2 d3 ? }' D5 y4 ^$ H! _
}9 K& { n9 H8 u p1 r! e6 K! w
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! F- k! o# Y" Q: G) ]5 R( y
if( bGamma )' ^0 @! h: s' O5 Y: p+ ~
{
1 ~/ }4 y, X& n2 C/ G4 O' D h m_nExp1 = 0;
( b6 m! y- l) C! c j T& P }5 f; }( F+ G6 K& u7 `
v0 ?0 a0 R% G ( (CUser*)this )->AddSetChangeJob( nJob );
0 }2 o/ c* M3 g& }* f2 U4 V* v+ K. Q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ [; o" A9 Y+ y
+ W1 w4 ]$ r" S0 i! {. v2 g/ r3 w+ v
#if __VER >= 11 // __SYS_PLAYER_DATA
7 L# a5 q7 w" {& ^- g g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. E5 y2 Q' C% @( f#else // __SYS_PLAYER_DATA. Z0 C& k- Z) E0 r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# u1 |4 S4 M5 q3 g- ?. L0 q- k g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ z( L- V) w( i: N* e6 f$ [ I Q if( m_idGuild != 0 )
0 ]7 F( ]) X9 G; z6 ^& |: R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 M1 g2 k" d8 H+ q* N, P#endif // __SYS_PLAYER_DATA
; H! `1 M3 n+ w9 v. [/ G- a& g SetHitPoint( GetMaxHitPoint() );
3 L0 @0 G+ E6 ]$ u2 `! @0 z SetManaPoint( GetMaxManaPoint() );
/ s; @( `% `" i. W# ~+ J2 D5 g SetFatiguePoint( GetMaxFatiguePoint() );& l0 D) \# O9 {5 ~: a7 N! ?8 m& W
if( nJob >= 1 && nJob <= 4 )
! f8 J3 D8 F! Z {+ R! U3 ^, j( P4 ?" a3 s. O
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 k: A! h' R1 p% ?! o
m_nRemainGP = 28;
2 S/ v6 X# E; M0 u: D }
: d" ^. \4 S- }3 Z; Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
B) }$ C2 C% m$ L0 Z7 `1 o% F {& }1 Z( h* U2 G+ D ^9 x7 ^
m_nRemainGP = 118;0 M! U6 W. Q/ ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 L/ M# y5 x6 J* H m_nStr = m_nSta = m_nDex = m_nInt = 15;
' {: c1 a6 S; E }
- r/ E" ]/ I2 c% } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )/ _1 ^' `% C A+ X. |( @' v
{7 N) l9 Q# s7 m& g1 r
CItemElem itemelem;
@; H- L) X7 X itemelem.m_nItemNum = 1;8 S3 R4 q" l8 f
itemelem.m_bCharged = TRUE;0 z; V( F. u9 n/ y
BYTE nID;
4 W* F' i/ {" k( |0 Z# I. _6 B: B! X1 a
if( nJob == JOB_MENTALIST_HERO )
7 D+ } ~, v2 m; c& h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 z* |* j# ^, r if( nJob == JOB_FORCEMASTER_HERO )9 r1 `8 o1 j6 I) G3 D6 ~
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: X$ H7 l- E5 H6 X) ^
4 U0 f) o# [, ]" I) m0 G ( ( CUser*)this)->CreateItem( &itemelem, &nID );+ n" V3 v- z8 i: y' s
}
8 J# z! _; ~' e g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. M8 P+ e- |. Z5 |2 Z) D8 C3 V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# c& x% Y" O! ~3 |% _, \8 r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 {+ O% g6 G! B3 d4 ~
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! w( o: }2 X7 C8 I3 x3 L- J0 A ( (CUser*)this )->AddTaskBar();*/
9 ` u& G- [6 T7 T; ~ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 _* B$ c5 g# p' }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& a9 v$ I8 V f/ d0 | ((CUser*)this)->CheckHonorStat();5 p b" G8 N% ]* T
((CUser*)this)->AddHonorListAck();
% i5 q5 A7 A$ W; w g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 O! q% }5 [8 L( K; L9 b#endif // __HONORABLE_TITLE // ′Tà?0 Z; k4 w; ^% S F
}: f9 U' V, R- j/ ~) ^
#endif // __WORLDSERVER D7 ?5 x! n# b0 S5 l0 c b
}
' q! V7 V2 k/ c2 E( \: v+ ~: |5 H; _! D* m
然后你进入functextcmd.cpp并添加以下
8 z: T C6 T$ `3 ?4 b" j( h0 t Z+ d% E& m) c
代码:, O1 `7 y: T2 X$ K- w5 B! p q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): l; X" V+ T0 ?6 ^& w1 u7 V
下面插入5 Z% V2 N# A |" l J5 F
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 o; M) G' r& ?0 f' m! \
/ Y# O& ?# _; a( ~# p然后你去, i( {9 p* |& R/ @/ A
?3 [3 u# p4 r9 T8 l4 F+ B1 |代码:
- z9 Z& b9 V% N5 m4 x代码/ Q6 e( f8 G: k+ W5 }8 v$ d+ j
BOOL TextCmd_ClearPropose( CScanner & s )! O, d0 R Q! b
{3 g% |# o C4 I& h1 `
#ifdef __WORLDSERVER% d9 q# S2 r. h9 C$ k9 ~$ {
CUser* pUser = (CUser*)s.dwValue;
' }+ J+ ]" o* Y/ i* I6 f0 ?+ B% O g_dpDBClient.SendClearPropose();( v6 r) x' H) W6 ]
#endif // __WORLDSERVER
- p* F. P R9 w/ y2 ~8 } return TRUE;4 K ?! W* {# j1 d1 ?6 f& t
}0 r( p0 K, D$ d* m* M
下面插入
' r: f ~# |. }BOOL TextCmd_rebirth( CScanner& scanner )& n1 w# B/ T5 c. j+ X w7 L
{ n w# ` D1 ?# @
#ifdef __WORLDSERVER
; e6 y- m: h. E: n$ {CUser *pUser;
" c4 ?1 T0 ~7 UpUser = (CUser*)scanner.dwValue;
( w4 k+ }: o: u; @if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 h! V+ S: l/ B ^
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) V# E+ x2 n+ W" k) U+ Z2 z
else
3 I! {6 [! B5 S& [pUser->AddText("你还未达到重生条件!");
) M, Z5 {; u/ t; k" }8 A3 F4 p$ g#endif4 ]0 P4 D: I6 V8 q) p6 l. Y3 b+ ~$ k
return TRUE;
5 r* ]2 `% ?$ g4 m- X} " `) G! O2 K9 @# o3 q0 V. x+ s
) m7 n) |% B( V: Y
9 m$ O/ n) s+ B% J
5 Z" K1 ~$ S9 G; A" X2 C3 L
. `* `: q; x7 W; b( Q- \
|
|