|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# B( ]3 P+ J0 K8 B. ^) Y6 |" h2 J, F
: }- Y4 r! p- \9 u/ u. U* F
Mover.h
0 d( E3 b. z" k: S( I$ E代码:
& |+ Y1 v. O$ |1 c6 U( ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: F$ ~3 ^2 ^/ L
! s% \. p/ J) X# x2 [7 m6 _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 r( k& q. e' z* |
6 \* w+ S3 l2 U) Z `) x0 I% X2 l然后你去mover.cpp添加
, ~% N4 f' o! A0 `" H8 C6 R, C$ ~6 M+ J5 k, Z' a+ q5 M
代码:
! B7 q! e5 X3 K6 |8 L+ V: ^void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- @' m/ C4 l1 _# L7 c
{
& Y( T. X5 [; p) n#ifdef __WORLDSERVER
1 [! K0 T8 w3 L // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) {( u. h. J8 N, k2 Q/ v& ^8 Q8 y' c MoverProp* pProp = GetProp();
0 [9 w" f1 C; x! u" _9 E7 ~ if( pProp )
. \5 I, W n7 I( j {
& h" c6 i2 t( U4 y+ C+ _. g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 P. p$ c7 j& ], z! \' p {
: k0 v- H V0 [' s/ \ AddChangeJob( nJob );% K2 k; m! q" D' u0 b; z9 c Q
}else{
, k8 J* P5 D. q return;5 U( o6 q, U% \ n2 M4 F
}
% l x- f' U, K( y int nPoint = 0;, K. W0 r6 t. U5 T, n
if( m_nJob == JOB_MERCENARY )+ Q+ z/ q4 m' G
nPoint += 40;# y9 U8 C& N9 g, I- L9 r6 q$ U
else if( m_nJob == JOB_ACROBAT )
9 j/ c+ H* |& u7 f nPoint += 50;9 P0 x; P, M1 b. F) W
else if( m_nJob == JOB_ASSIST )
0 T6 T+ |, z8 E& Q8 B" U7 d! e nPoint += 60;) @0 W, y8 y* v- O: T. V) w
else if( m_nJob == JOB_MAGICIAN )
8 A P# p" W3 y7 v& M% z& v/ ` nPoint += 90;! [& \1 P: \+ X. T/ ?. d/ m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 }7 x. t: {) A# u4 R9 V+ G
nPoint += 120; U, G7 i4 q" h" B; } f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- c' d2 Q* T: B; d' a3 U' N nPoint += 150;
* t9 k0 P G0 _ X( t: K9 J else if( m_nJob == JOB_RINGMASTER ). g2 K3 H% W+ p2 e$ S
nPoint += 160;
5 X. u4 K; S$ Y0 i* l else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; ]/ Z- j; L, p% A" H+ _$ h) ^ nPoint += 180;
4 t8 O, W" A @, ^! m* [ else if( m_nJob == JOB_ELEMENTOR )3 _: L8 Y* g. T4 m- R& G
nPoint += 390;
$ Y( G5 W- [$ E6 M3 y( k% G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" [$ t0 F' m J nPoint += 120;
& `+ s- F, w' t8 K$ Z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 \8 X# M |0 {- H- @- Y
nPoint += 150;1 U+ H I4 Q% B, X
else if( nJob == JOB_FLORIST_HERO )
3 w D% A$ V6 ?: W1 |6 I9 N nPoint += 160;
5 _$ f7 X6 h3 t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); p' {$ U8 ?3 g, b0 X
nPoint += 180;
, O8 n! \9 ?$ H% ^) S+ q9 Z$ | else if( nJob == JOB_ELEMENTORLORD_HERO ): ~1 @7 |6 W. Y0 t1 }3 J
nPoint += 390;& { C1 e/ S. Z+ ~! h
, Y7 m/ ?+ H; t
AddSkillPoint( nPoint );
5 S7 `; t! P( R E m_nLevel = nLevel;9 w% K& ?, _& w+ ]8 ?
: w: s) m/ A& h5 x% E5 _3 A$ n SetJobLevel( nLevel, nJob );
1 V5 [& n- L, i; O m_nDeathLevel = nLevel;
$ L5 _7 K- H% o4 k' g#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ |0 x. x+ v6 |, H% R if(IsMaster())( R& [ c4 ~+ b3 G
{+ H2 T' Z1 v; T4 I8 f: k- J
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% k! ?% a0 N" J3 Y* x
if( nLevel > 59 && nLevel < 72 )
! f0 z4 C- E" A( i dwTmpSkLevel = 1;
' A% t" v0 _; c$ e/ Q: p else if( nLevel > 71 && nLevel < 84 )) D8 E* J Y z/ [' i
dwTmpSkLevel = 2;1 W8 h U9 `: `; ~: V9 W, Q9 m9 {
else if( nLevel > 83 && nLevel < 96 )
. s( t' D, T# `5 A) @7 u. p dwTmpSkLevel = 3;1 q2 C: n ^/ \, L
else if( nLevel > 95 && nLevel < 108 )
3 m, {" ]( v5 ?! m- k0 } dwTmpSkLevel = 4;' w" s' I3 u2 ^$ r7 h! T
else if( nLevel > 107 && nLevel < 120 ): y M2 A" e$ G+ m7 f
dwTmpSkLevel = 5;
% W( J, Y2 o6 Q# g for( int i = 0; i < MAX_SKILL_JOB; i++ ) # x/ |, c+ j- g# a; l* e
{ 8 u% q, t" D& u1 |
LPSKILL lpSkill = &(m_aJobSkill);
3 v0 t$ X# v! M9 h if( lpSkill && lpSkill->dwSkill != NULL_ID )
; @4 Z$ m6 h$ [7 O5 u {7 E) G8 g+ d4 V% g. q& |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , b- b* q$ F4 W6 g h o
if( pSkillProp == NULL )
7 `( ^9 S' N& Q% c9 [1 {9 | continue;1 J! S) Z4 Y& `1 D, {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
G3 }1 D; y: y. E continue;% g, k6 P! L' ]! g
lpSkill->dwLevel = dwTmpSkLevel;
: x) Z0 l$ j2 f. e T- `9 ~, W }
, H. f5 b8 K. Y. i5 P( i }4 m4 e8 G% p/ O
}
{: m8 Z6 l& w' C' ]; C" _ else if(IsHero()); n+ t4 k$ x. U- y3 `1 g: i
{
$ k9 G D# ^- o3 S' W2 S for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 y) W" V2 C4 q2 _7 z {
& H- R5 K" T1 Z2 P3 Z LPSKILL lpSkill = &(m_aJobSkill);5 C6 e. |/ \ F1 g: U! q, H- R9 W/ J
if( lpSkill && lpSkill->dwSkill != NULL_ID )( g% `8 M' v5 J @& Q4 {2 O
{- D2 A" q# C# C% f6 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - K" N- o: [! M0 k* E; w
if( pSkillProp == NULL )
; ]6 B, K& Q8 L' I1 H. V, W" P continue;6 U5 W* O0 O2 \( H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% [9 R, q6 f/ @2 ]6 `8 m: }4 I
continue;
* [) c3 z- J/ \ y4 u1 \ lpSkill->dwLevel = 5; N# E8 n; K* x6 B
}
9 }6 q6 d: c6 S' _$ ~7 p1 ?% n }
* @; m' e% @ }- W9 D2 o. W }
3 Q) a/ ^3 s' x' B! w# L8 l" D else if(IsLegendHero())
- ~' k3 p) g) X( J& R {1 d1 P- `& V( J" J y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ V/ E1 \0 _9 X# Y3 y# {$ Y { & V ~7 s( L7 P# i7 A6 `) A% x
LPSKILL lpSkill = &(m_aJobSkill);; Q# s1 P4 z6 M: z" f8 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 C# E$ ^" E, p {9 e4 Q7 a5 J0 X: t& U @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); v& i) H/ o' b& ~( N
if( pSkillProp == NULL )
7 }, @# c5 R4 S continue;
) F- A3 I; `) n6 C7 L6 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER). ]7 v; P6 d$ ]1 `" V0 Z2 v/ @8 f8 Q
continue;
; k& C& U' |: c# E0 T0 y, ~; { lpSkill->dwLevel = 5;
& s( H* E! a/ v: t7 l7 } }' f% D9 U3 _8 @$ q) m3 B- g7 p) w3 y
}5 O7 N$ v/ p! H2 }
}# f& d v/ c4 H1 a4 ~/ `: T& t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: E' I* ]: s; U0 W if( bGamma ): N3 H9 g- [8 T- j8 k( A( L
{5 N, h( l0 u3 p/ u3 @
m_nExp1 = 0;8 ~ P7 a8 H0 d; f x0 ?+ u
}* D/ K# o- z! {- }) i
1 _( e' @9 b n
( (CUser*)this )->AddSetChangeJob( nJob );
& n8 ^ h0 d3 f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 m6 j. z( A+ U0 F7 H$ Z- T
( O3 ]! h& ?9 a5 G1 U, w8 U4 N, x: y& X. n Y4 z
#if __VER >= 11 // __SYS_PLAYER_DATA X: X3 b" P" h; u
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 u& \# j. D! U#else // __SYS_PLAYER_DATA
: B# I% G& Q L! k: o0 }5 G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% Z X7 c# D }( B; W2 Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* y: l- C% g- q) x' I9 p
if( m_idGuild != 0 )
' a% B+ w$ h$ O8 @9 H4 Y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( m0 l( x' U9 t
#endif // __SYS_PLAYER_DATA) D% I; R, U" Q' p" F$ e v
SetHitPoint( GetMaxHitPoint() );! j/ d( Y! B) c2 d: e; o: D
SetManaPoint( GetMaxManaPoint() );
+ Q$ c j3 g& n2 v& H( ~: p1 d: Q SetFatiguePoint( GetMaxFatiguePoint() );1 A4 N7 Z! `2 i8 B/ c7 n8 L" O
if( nJob >= 1 && nJob <= 4 )
0 d/ v/ m: l( x' g( p9 w4 s: [ {
/ I4 j& H% P5 Q9 n, n* E m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ v; C4 ?8 }/ t# R m_nRemainGP = 28;
8 H: n6 ?: A6 {* N' U9 j4 F }/ F, y$ L; o" n& u- d/ T
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- W- ]0 C& A* f X$ u1 @. D( y {1 P: v/ a/ o* L# t1 a J$ z
m_nRemainGP = 118;- X; G! W: s% A+ h4 Y1 M8 ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 l# V, M. s! W1 m8 [- @1 J m_nStr = m_nSta = m_nDex = m_nInt = 15;
: {/ ~9 z0 Z Z# d1 T5 T3 a }
2 w3 p7 B4 G# A$ x \% E0 q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 D# [5 g0 F3 f {
/ D3 ]/ t* ^0 w7 @ CItemElem itemelem;
- l1 T8 m( n/ P y itemelem.m_nItemNum = 1;& F1 L2 u( X. e1 `
itemelem.m_bCharged = TRUE;6 g0 ~2 S9 q7 }: w) y
BYTE nID;! A3 u- }/ G' z. ?) U
' y1 U7 H) X+ h* t* D if( nJob == JOB_MENTALIST_HERO ), h! S: {0 K1 K: z/ U/ f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ n! Y! Z' X9 Z
if( nJob == JOB_FORCEMASTER_HERO )
9 D* p2 Q; G: T7 y itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 N8 P" B% | N/ g5 G, [& G5 g& N
7 Z- ?% t) K% v4 H3 W) F/ F ( ( CUser*)this)->CreateItem( &itemelem, &nID );& f( {5 W7 t0 y- t/ U# _3 m
}; e7 F( y) ?& m9 I$ y; J+ I0 O+ d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# B/ q% g- x+ u3 Q" w7 ?( } ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! r; P: K/ X$ O: P" D ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, C6 X+ Z/ x( H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 S2 B1 }" n# E$ [9 g: E ( (CUser*)this )->AddTaskBar();*/$ ^& q: r. j6 K/ H' X6 \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 I& E+ e2 U2 p; W9 t. D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 m9 o1 S- b) Z# [ ((CUser*)this)->CheckHonorStat();/ D8 i8 q! c x; v5 f/ k3 b
((CUser*)this)->AddHonorListAck();6 m: b+ c: u$ K3 h. S
g_UserMng.AddHonorTitleChange( this, m_nHonor);& v5 \- ?7 X% Z% B
#endif // __HONORABLE_TITLE // ′Tà?7 ^" H- x! P* r+ g8 ?9 x! P% N
}0 w9 G9 o) F1 _# A
#endif // __WORLDSERVER
2 z/ M* W4 i7 E2 N* q9 A}
% |, I* W) i, [, }$ e/ W5 e7 X1 j' A3 B y
然后你进入functextcmd.cpp并添加以下
9 z" S3 F# K' B7 y
1 |; r9 _- p! m/ v8 A2 @2 P+ s- q. \5 b$ _代码:4 I J: B- z: g1 f/ y( `0 P( d7 {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 ^! ^+ z% W2 x) N/ v下面插入
1 z3 t& E. f3 {% o4 `( D% hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , Y# x2 x0 F0 }: w8 h5 P# i
- R: m {- V# G然后你去
l# }7 {# e( [+ D
]5 ]. |( a- e+ Y3 E8 S- e, ?, m' W代码:
, h3 q* @8 f) s8 _代码; Y; \2 m2 E- c( e3 P
BOOL TextCmd_ClearPropose( CScanner & s )6 T7 s$ @- _4 Z
{: y7 G7 R8 _6 T+ w- a- \. G5 ?
#ifdef __WORLDSERVER( K9 ~: e; i3 {) Y- B, l: e/ g; J
CUser* pUser = (CUser*)s.dwValue;
; B' Q, ^- B& q I g_dpDBClient.SendClearPropose();
6 u3 I) }) z& c0 j$ ?5 u3 K#endif // __WORLDSERVER* n; P! T/ `9 `" k0 O7 @
return TRUE;" M' ?4 |5 J# L: ]7 x# h
}
$ s7 v# @) ~5 c* ]9 P7 t( @ y下面插入5 S B6 y8 [& J
BOOL TextCmd_rebirth( CScanner& scanner )6 g0 ]' p& h3 q2 W8 _
{$ x3 m) N1 b9 }" V
#ifdef __WORLDSERVER+ K; i4 U& N, R6 `6 S
CUser *pUser;
9 B1 ?6 n9 g5 e7 l- t1 H* c. jpUser = (CUser*)scanner.dwValue;
4 r3 Z" h/ z3 S) I7 B2 v2 g- Y! d2 l9 Cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* i# h7 q8 Q, A0 S5 s
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, Q2 }0 g/ b# l( K w
else% ] a: c0 t# j; V
pUser->AddText("你还未达到重生条件!");
& ?% E, z6 `( x$ N0 h( V#endif: ]9 M2 c+ }% p2 C3 F1 @
return TRUE;
& h0 u7 M$ O( X7 m0 E}
6 c1 v; t( O, U/ }( P, M; q& Z
* c8 u2 e: @: m& l1 @8 p T0 f' H
$ W; e7 y9 X x' z6 o# h0 }, V' P. |
9 l& e* r/ k$ @ D9 c/ @! r( _3 ^$ n. O$ R" Z+ P, i8 p! R3 v* r
|
|