|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 l- O) T$ }/ [* L/ t x- i; {
; Q# ?* i t! n, \% T" W u
Mover.h |, g: h, L9 ^6 b' B0 H* z/ [& b
代码:3 ^* k: b- ]- `1 Y$ w) X% V
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ u8 y8 f; f% R/ @( J4 ^. g
* \- B& r- r! r+ d9 b: e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) T) G! H6 v6 K( K6 K# c0 b' t
! g4 Z( i. d! |5 r% Y% w0 v' Q然后你去mover.cpp添加& M/ O; a; z- E9 O4 \& M
; z/ u1 X. M: M ^# n
代码:
+ \+ @( H% u' Z' x( G% X: cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 L: A9 y1 v& ]' m+ b& X8 z# S. N5 g{
2 a7 x9 T3 u: g#ifdef __WORLDSERVER& k7 ^( W# R! c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 g/ P" }6 ]- u( ]
MoverProp* pProp = GetProp();
, r5 y+ }; l- J- I7 o; o if( pProp )
/ A0 B- A% i. N$ k# ?0 l0 L3 V$ L {
9 j1 n; C9 ^$ O% r if( nJob > 0 && nJob < MAX_LEGEND_HERO )' R4 {) d6 e+ ?$ m) v% r
{; g6 n" j) y4 i0 A: p" e3 t
AddChangeJob( nJob );, x" A! T- V' i! M/ S
}else{$ O2 N5 x2 `2 h2 T4 W2 U" k
return;
1 Z' e3 P% g, U* q1 B }: w" s4 X% q4 V2 l. [
int nPoint = 0;2 \; U7 Z' d8 B) f8 q
if( m_nJob == JOB_MERCENARY )4 n$ R. T8 \( r1 E2 j. i: c
nPoint += 40;
/ S7 s: ] a+ u% y else if( m_nJob == JOB_ACROBAT )9 c. v ~7 z( b0 g& F$ B5 R
nPoint += 50;
0 X, p0 V0 D1 J else if( m_nJob == JOB_ASSIST )
) ?% z9 B3 Q* f) |+ ~& q nPoint += 60;0 Q0 L1 L1 h2 H5 d
else if( m_nJob == JOB_MAGICIAN )% [3 L8 y$ [$ z5 c& y9 K4 d' n/ C
nPoint += 90;! B+ n, p+ m) \8 `+ l; ]- U1 f( N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. E8 M {$ {$ X6 m8 k. s nPoint += 120;/ N/ f+ X+ O ~. g
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' @, Q& T% C+ t: R U, g
nPoint += 150;
8 H8 R& a- p8 G2 G' R else if( m_nJob == JOB_RINGMASTER )6 v# V! z ^9 D, ^- B
nPoint += 160;
9 [# v. R) ]% p: N V _ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" M& B t6 i8 \' a8 J, h- Q
nPoint += 180;$ l `* h8 L$ Q# @
else if( m_nJob == JOB_ELEMENTOR )
' ?1 O( \0 t( v nPoint += 390;* C. y r! m* S. N$ ~( n1 U
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 P9 S" n; S$ X) z$ S
nPoint += 120;
9 S1 t7 r+ G# M5 R else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* M! W5 q6 Y" y* {- W) x
nPoint += 150;4 _6 x D& u f) v1 G/ U6 E+ c
else if( nJob == JOB_FLORIST_HERO )
& A6 |5 @3 R( d nPoint += 160;
+ C. H' h/ }: T+ ^; x* T8 D$ J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, ?! A j3 `" } nPoint += 180; {0 f% L" _- W0 l' n
else if( nJob == JOB_ELEMENTORLORD_HERO )* q- f' ~: s; s3 ]: e2 I
nPoint += 390;
' ] K$ I9 ?6 \* d E
( j9 k, b$ _8 X AddSkillPoint( nPoint );
9 }, I; `, g% H; f% Q) g m_nLevel = nLevel;
7 H1 e, S! m, ~ j! H
* v+ _& \, H: L# K SetJobLevel( nLevel, nJob );
- K$ [8 h3 Q- D5 d m_nDeathLevel = nLevel;
! S; Y& t% O2 d8 [: I; t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. G9 }5 z- ~& f9 ^$ X: a if(IsMaster())5 H1 Q# D! f! ^3 H6 C+ ]
{& C+ V) d7 c. \! U$ h" g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ g, {; @' H! I& Z+ [* H if( nLevel > 59 && nLevel < 72 )
" h9 q, `% b5 U- N8 V9 D4 w dwTmpSkLevel = 1;/ S. [" r9 L! d: ~
else if( nLevel > 71 && nLevel < 84 )/ E4 j; F, y1 L
dwTmpSkLevel = 2;
0 y$ t, z) n2 J6 C$ ? else if( nLevel > 83 && nLevel < 96 )+ P) }: e# a% e0 {
dwTmpSkLevel = 3;
! ?' r& D! x+ B. p9 G else if( nLevel > 95 && nLevel < 108 )6 B; s, G- e) z9 f3 \. J9 V
dwTmpSkLevel = 4;3 u. B) ?; m& a6 U. h) E3 |/ g
else if( nLevel > 107 && nLevel < 120 )
5 j: ]6 z* ]7 k dwTmpSkLevel = 5;; }4 o7 }" i T( N" w# H P$ K% Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) f8 F- M. {- M' w4 P
{
" W. I* [' u( [2 J LPSKILL lpSkill = &(m_aJobSkill);
& {8 ?- ]1 x- _% @! Q" m if( lpSkill && lpSkill->dwSkill != NULL_ID )
) a) G9 m- U% g8 F" H( O {
, F& ]6 o. e( Y$ w, U0 s& \, Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; `2 a7 U: d% Z" ^) A, g+ L if( pSkillProp == NULL )
2 ~0 w! g- l, X, ^( s' o continue;% J0 c1 s+ a0 m& O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) q7 ?2 Q4 H2 B; Z
continue;) W7 F1 t* k# A! R; S( m. m
lpSkill->dwLevel = dwTmpSkLevel;
5 v6 [2 Q) u8 @; S3 s# B R4 C6 N }; ~# Z4 R5 L* m
}/ e7 X- H8 m! J+ H1 p, N+ w
}
" i! L# E& `, ?1 Q8 o9 p' }8 Y else if(IsHero())
9 k1 i" @1 Q6 ~: M2 g/ A O {, h: R8 p) a% |( I8 D# ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 @" n4 r3 j' e( [* v/ _8 N2 m1 d2 A
{ 3 C2 _+ Y+ s8 R) @/ O
LPSKILL lpSkill = &(m_aJobSkill);1 F- z0 O" L2 C- m4 Z1 Y" |
if( lpSkill && lpSkill->dwSkill != NULL_ID ). B, N7 @8 J! I+ l/ x
{( V9 k- s, r5 |8 r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( U3 @# v2 S) j if( pSkillProp == NULL )& e: v1 S! n9 G F, J6 S
continue;
4 A( @ c* K- F% u4 k( Y+ g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% ~+ ^% S( s; O) r1 _
continue;
9 p- N# r3 k! x( ~% t lpSkill->dwLevel = 5;
' r" x& b2 a2 G" D4 ~* f4 Q* {; t% e }
- e) i; q* r% Z# X% V- m }: @! L Z! v7 D! ?8 S3 ?5 }
}
3 N" ~6 [3 N6 }# p3 j! f# B7 F else if(IsLegendHero())
8 C$ J5 [* h( H* D$ {& z {
/ Z) o2 A. M6 z4 n. M for( int i = 0; i < MAX_SKILL_JOB; i++ )
( u$ F& c0 k( Y5 g { + k! c$ [4 N4 w# q2 l# E
LPSKILL lpSkill = &(m_aJobSkill);/ S! h- a/ N9 R, S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( {" O" f+ R0 N, W) v" g( L5 U {
/ W2 \) _5 i6 }7 b( S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 A7 j+ x+ y: k! ~7 B$ v" G if( pSkillProp == NULL )
/ I) a v) q# O/ D$ E continue;
, z, q3 V* V: m$ m- [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 A3 G- H; z2 t
continue;, f5 T6 d. b* Y
lpSkill->dwLevel = 5;
6 J0 H6 h' Q) } y& v Z* X- j4 \ }. H) I1 N' _2 _% L$ L7 z) g$ ^
}
+ F+ ? J% u9 a" H [ }2 ?: O: I# r- A2 b- {
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 a) i Y" k' s1 j* ~; Z1 ?, t, h
if( bGamma )$ f. f4 S6 M% d# x( L
{7 o* ]" G4 n- q9 ^ D. U
m_nExp1 = 0;: U( V- f) D1 w+ P. ~" |
}$ R7 i8 _" K' |; w& N; Y5 I. W( V9 p
0 n$ A$ ^$ Z) @ ( (CUser*)this )->AddSetChangeJob( nJob );
1 p K. { f, `, ]) w: c% } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 U$ ]2 u: o: V7 G% Z7 G/ q. @' s: A
( i# P0 l; [* s, p5 a; |( o/ A, B* o) U4 M5 ~, c
#if __VER >= 11 // __SYS_PLAYER_DATA: M# z( C0 p8 p
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% c T7 Z" J) U6 J9 R" u
#else // __SYS_PLAYER_DATA
1 M7 T; `) T5 S, s& r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, E, D. Q+ s- b# X( G& V g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 d/ m" l6 d) _. ?: t- U+ M# Y, j if( m_idGuild != 0 ), X1 l6 T* T/ J" A, P7 ]
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 W( K7 l b+ s#endif // __SYS_PLAYER_DATA
0 w, G# `) O. h. ]; ]4 O* r. P SetHitPoint( GetMaxHitPoint() );' q o G5 z2 U# q
SetManaPoint( GetMaxManaPoint() );9 p. }0 a, Q% X8 z7 z( r5 Y
SetFatiguePoint( GetMaxFatiguePoint() );. G6 E4 A* H- e
if( nJob >= 1 && nJob <= 4 )/ v* ]! p3 U, O6 `4 u8 H
{
( v J, ]/ W# }! r5 \" f. Q m_nStr = m_nSta = m_nDex = m_nInt = 15;4 E$ J2 B. `8 D4 q' c" T
m_nRemainGP = 28;' b- k+ J# F2 z! w. h S8 G
}) S2 g- ^& o6 M8 e; A8 _
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( R3 Z* G+ Q( f6 s; ^ {: g$ _1 @# O4 V& \
m_nRemainGP = 118;2 T6 c" x- |% {2 {7 s9 K+ g
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 w( p; c+ T6 y% _; F N4 Z) V
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ ] p% H, v2 b0 ]: B
}
# S. p; H9 O6 H1 ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); O2 Q5 Y! p; y# U( p, S7 M
{
k {* e; A* X- G CItemElem itemelem;
% P: i9 K/ m1 E' P itemelem.m_nItemNum = 1;
0 s5 W& c' d' l; R/ g itemelem.m_bCharged = TRUE;
3 {% i: o# I P* A# Y5 C9 g1 d BYTE nID;, @9 h! J) m. k5 A2 c
2 x6 \4 @' x( y1 h( y4 J
if( nJob == JOB_MENTALIST_HERO )
1 ~! l8 l* W" {) x* N itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 e% T$ `2 ]# k5 ~/ ^ if( nJob == JOB_FORCEMASTER_HERO )
6 {8 G. ]0 ^0 s* f itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 Z; m7 `7 h" g5 e! w
& t" n: l* ~) ]( f, m* i4 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );% h. {" n% V1 i! g5 J0 x
}
- F( i' F0 _- Y" c2 C" [ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 |8 T# L J7 b: R8 ^ X7 f1 c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 o1 j! Y' X1 ~/ H6 K5 ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
5 j" c. R K; P k7 h /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ ~+ K% ?1 A8 S3 w4 r, D
( (CUser*)this )->AddTaskBar();*/
. z9 h0 g [9 |0 L2 M; f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 X& Q4 V# k" e% Y# y5 K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 w! }! T. R8 e+ y% ^0 t n$ A ((CUser*)this)->CheckHonorStat();) r# g6 Q8 y, f, w j" Y
((CUser*)this)->AddHonorListAck();" K& c9 R' `& {/ [
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! ~8 N, c9 H, _- k0 l+ o#endif // __HONORABLE_TITLE // ′Tà? W0 [0 D4 {& g; l
}" b+ S- ?- G1 \
#endif // __WORLDSERVER$ q1 R) n0 O" D0 \! O
}
9 b) G! F* M8 \3 B7 u* u, a; W- B6 o4 e8 L# e2 W
然后你进入functextcmd.cpp并添加以下$ X0 ?. i( o/ y
* J) Q% b" @& R+ m, U9 S+ }6 K
代码:
$ v- _9 V7 C$ e6 N, _( QON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% `& m4 b7 c0 i. G2 S
下面插入' T/ \" K! A. M0 G v6 f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, C1 ^! ^9 t# c
! @7 t( E, o$ m6 f4 I# F$ [- e然后你去, D3 K1 F8 a, J3 U: D
- J* J, j# a1 ~7 B. v
代码:
5 l+ ~! a3 s8 W/ W+ p- A: l* E- X代码2 f$ P4 ^2 S x8 k- j* t
BOOL TextCmd_ClearPropose( CScanner & s )
8 E9 B {5 I/ v, z: T, Q5 k{
" }" S6 D. ?- g& J. Q1 A2 X; g#ifdef __WORLDSERVER' W" c$ ]# S% b1 m8 g) m
CUser* pUser = (CUser*)s.dwValue;* ~* i* J0 v7 V, F, @+ ], S7 m
g_dpDBClient.SendClearPropose();/ A! b. h# m. M1 V8 H8 J) r1 r
#endif // __WORLDSERVER9 \( s! C# ^# V0 J& c+ t! T v' m' K
return TRUE;- e3 f. v N4 C% B0 n9 _1 ~
}
, |' P9 w3 F0 ]! u( [. J$ f. ?下面插入/ u( i8 w' S3 V Z2 L8 r
BOOL TextCmd_rebirth( CScanner& scanner )
4 I8 B4 X8 \5 X1 ]9 ]. E{
9 r& F5 q# R2 c9 a#ifdef __WORLDSERVER
" n% D- n* o7 j/ DCUser *pUser;& A3 V2 @% N! f8 b
pUser = (CUser*)scanner.dwValue;8 o3 F/ p4 o! m) q7 A) y0 d# t
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 I6 b. L# F: d. h$ p1 XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& A3 m6 j# B6 kelse
k. K8 V p8 ~* F( LpUser->AddText("你还未达到重生条件!");
5 |7 q9 ^# k' F#endif3 j7 k' K$ k, `$ a
return TRUE;
- F: ]$ ?5 Q* H3 J$ e: O} 6 e9 ]8 j7 i1 ~& h: u4 b4 z
! \% ?+ _: i* [0 X" v* ?. i
) c i8 A0 m+ @# b
?9 y2 m3 ~/ s/ v) @7 C
/ J) l8 o/ z: K' a |2 t0 S |
|