|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ e9 S# c! _8 J( Y% m, @# o: p' i7 A9 D3 X# Y
Mover.h
+ p* m- n* ]) J代码:
& u, j6 ^* @! X/ D- Z6 m* V, X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) D. a0 g& l* R) r" y) ~' c, H, z' j6 I$ u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! v" w7 g0 x) [) H X) k {3 Y
, `. X! v3 z, v9 _" w然后你去mover.cpp添加
# K1 L% `, N: _) ~# U5 |( r3 s
8 u& X7 B; t- y: j* W D代码:4 x+ Q8 J6 p( v% S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 m. S! H1 M4 E* {
{+ [; o6 F: U- Q9 Y$ x" g% _9 q/ Y
#ifdef __WORLDSERVER. p8 W" t( t: u1 }& J4 q I" e
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- i3 y* i, K0 Q: U" r5 `! W
MoverProp* pProp = GetProp();
: O6 ^5 y+ H N9 o9 W* H: n- x1 m if( pProp )
, I- C; ~2 @0 \4 d0 p, s* Q {
2 ]+ j2 y# |5 D+ f& Z if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* V: Q$ D2 S/ A& p+ t" T2 ?% I; \9 z {9 w& `8 v2 `, H- e
AddChangeJob( nJob );
2 v* x ~! N2 V9 g; _ }else{
% n1 ^2 u j9 x! R return;5 m* N5 h, u# o! \; I
}* ^0 D: t! I( U/ _1 |
int nPoint = 0;
- V4 I% ? U, ~6 N' i if( m_nJob == JOB_MERCENARY )9 w8 r9 }, @) s
nPoint += 40;
& u- ?" P: t$ B+ c else if( m_nJob == JOB_ACROBAT )
5 D; ?3 V2 X3 S4 t nPoint += 50;& d4 T; W+ q, o; @0 M5 Q( s3 K
else if( m_nJob == JOB_ASSIST )
* \7 T2 y" I/ ]* d* H nPoint += 60;
- y3 h- {& @8 s" q else if( m_nJob == JOB_MAGICIAN )) I: o* x( e& b0 X! e; x
nPoint += 90;0 T! [' c: m" x; r* t& H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ W& w/ @# | c! Z: H. N; [ nPoint += 120;3 L$ }4 a$ J& S9 J% W: Q& F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' @+ J# B. ]" L0 j/ Y% r( @' h7 N+ p
nPoint += 150;
5 k1 ?$ s; P$ a% Q+ v+ V- V else if( m_nJob == JOB_RINGMASTER )
- c8 U7 N: i$ b& Y nPoint += 160;: H5 M, t( q1 N1 F# s) C1 R9 k* q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 |" N: H7 V* L2 @( a/ h. [7 e nPoint += 180;. w/ ?8 E. e8 n; z
else if( m_nJob == JOB_ELEMENTOR )
8 B6 z# y& n2 d4 U( G/ n" _2 h- P; R nPoint += 390;
' z8 t! h! L/ C% R. n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" l; p6 U2 l9 H0 Z0 m( E, {
nPoint += 120;
9 H: E( U; Y Y1 O0 F' m3 }$ b else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ T! M7 D- Z+ x9 s+ b nPoint += 150;
1 Y9 q% [6 E; J; r7 ^. z5 Q4 r else if( nJob == JOB_FLORIST_HERO )
8 G, D `3 d1 e' t+ P' A! ]; r7 J nPoint += 160;
$ v) V; T" `7 u% h* G: L else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" _, i& W0 h k! M8 i( k: h
nPoint += 180;
. f' _, d2 a [1 ]* q4 L+ s7 ` else if( nJob == JOB_ELEMENTORLORD_HERO )
; Z/ U" l' g; @/ t5 M nPoint += 390;3 i9 a7 }9 C! O# Z- ^
+ g$ `3 b: i$ j# j$ q AddSkillPoint( nPoint );
f% I% _0 n. `' L m_nLevel = nLevel;
* N" \8 X6 C( Y' i* V0 h. H3 O8 `
3 m2 Z- q. z* p8 E9 i3 c SetJobLevel( nLevel, nJob );
5 U/ ~" l: l5 | m_nDeathLevel = nLevel;0 g' i) T- M3 w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; U( `. V" r4 I8 w" f
if(IsMaster()); F) F- o( l0 ?5 C4 d, F3 X# ]
{
2 p' G1 e5 V* M7 R) T int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ o! {8 E7 q1 e6 _ if( nLevel > 59 && nLevel < 72 )
$ }) i) j8 K7 a dwTmpSkLevel = 1;8 [5 R2 \: ]# V! C* h
else if( nLevel > 71 && nLevel < 84 )
% Q6 s7 {6 c3 \( k4 u Q- f dwTmpSkLevel = 2;' t* S* P' M# \5 U
else if( nLevel > 83 && nLevel < 96 )
3 W- X6 ]& O, {& g2 R, ~ dwTmpSkLevel = 3;
8 l3 K- f/ n3 s" M, `4 D else if( nLevel > 95 && nLevel < 108 ); w4 u# p8 K& p( E" V
dwTmpSkLevel = 4;
7 T; i) { f- k# y% |5 t$ Z- D else if( nLevel > 107 && nLevel < 120 )0 M. h: a' \% l h2 E
dwTmpSkLevel = 5;
' }, H1 T' b# ?6 o- ~* ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) : M+ j5 J9 @6 y* L* C0 p
{
4 g+ n; Q/ t( S: |; G" W& n, P3 h LPSKILL lpSkill = &(m_aJobSkill);
T! t. q5 }8 @7 ^& J, } if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ |8 I, C2 \5 o/ ?9 O {9 \4 G" M/ g& R& {, u! r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 Y, ]9 m* R$ b0 r# q
if( pSkillProp == NULL )
( s8 |1 t% L& p: U& f* a continue;
* x* K) i- F3 N, `. Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 V# v, V0 J2 k8 Q: X( ?/ N6 ~
continue;* x/ R6 n: }* f; a, M# C7 ^
lpSkill->dwLevel = dwTmpSkLevel;
2 p' ^5 g/ ?( L) g }
: f1 E% x: V' G% e }5 a* P7 F6 S/ l2 ~6 S
}! A! H6 g7 Y+ |- ?
else if(IsHero())1 f/ p0 J3 k! k! b
{
7 \/ B7 _* Q. R+ a for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 |0 A9 `* @( { d4 g {
3 F) w/ w. e$ m6 a0 k LPSKILL lpSkill = &(m_aJobSkill);
" Q3 e9 K1 g. x! E( f# M7 u1 ~6 w if( lpSkill && lpSkill->dwSkill != NULL_ID )
- r; Z9 {# l$ P+ Z" ]' g {
# f; I0 Z8 C6 L' k' u5 I. G" O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % P; @4 m* q u7 h
if( pSkillProp == NULL )
6 R+ {, A/ ?) ~1 A: z' s4 R continue;6 o! j0 Z% a3 W* \* {+ G& t* K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) H( s# ~2 K/ Y' `
continue;& q! s, Z# M9 @" @; j8 \
lpSkill->dwLevel = 5;
: e( v# b, u( j+ Q/ d8 N/ B" C }
& e* M- J2 H6 W' ~. l% B8 I }5 a$ p: x7 g ~/ f3 m
}
9 _+ ?- T) ?3 i! z# g3 Y else if(IsLegendHero())
+ o. e+ O8 {$ K1 q2 i7 ~ {. C# Y! \0 [! Y O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% @4 A, k0 `) O$ b, B4 q, t3 Q$ O {
, d/ M L' X w; z$ ?" @ LPSKILL lpSkill = &(m_aJobSkill);! A: Z/ d3 f: T4 M3 y
if( lpSkill && lpSkill->dwSkill != NULL_ID ): G, V- B. S; v$ }
{
4 [) Z' i/ p$ e8 Z* z2 ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 d ]% ` n h' ]" U2 O& p0 T- q/ `
if( pSkillProp == NULL )
- E3 ? l* E- g5 z, [, M continue;
+ O/ G8 Y; h, O$ \: S& d% { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( J: r ?" h! ~$ V+ n& z' N1 M/ m
continue;
9 P: a. n, C" A2 J( }0 K& Z lpSkill->dwLevel = 5;
3 [" ^' S8 B2 ~6 v) B }- O* t) X8 P5 x6 a$ f# ]9 p
}4 h. Z/ t4 y5 O0 G6 j3 r5 i
}
5 P8 E: p4 Y) D2 W. z! a5 ?#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: b: p$ i) K- K9 y: n if( bGamma )! a( f3 Q2 R( G; j& Z+ _$ Y6 x, P
{
% Y9 X; i$ I5 m5 m# J( r2 P e$ [ m_nExp1 = 0;! j& I# E: \3 U6 Q/ f7 Z% x
}9 H/ b$ G7 C* O8 N
. N2 Q+ v6 I6 h C& g; ? W ( (CUser*)this )->AddSetChangeJob( nJob );. X. \7 U |% j6 n+ B1 Z( S7 m
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' p* h+ ?6 H& t/ ^1 M8 G
( Q) T1 h7 i- E1 ^- \. C6 b
! C O$ D N$ Z) b. G#if __VER >= 11 // __SYS_PLAYER_DATA, s% y# _/ v* t5 N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& W! g8 g+ U: K7 o$ Y
#else // __SYS_PLAYER_DATA2 t# Q$ p9 K2 m, j" A% @7 {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, h+ P* ~8 v% e0 `+ F. N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 s" s. ]' `9 X3 J4 }) ]% H$ }5 J
if( m_idGuild != 0 ) b$ e, p) P s% o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ x2 A2 {8 j& Z s#endif // __SYS_PLAYER_DATA0 ^' m& a9 d5 r+ x" G
SetHitPoint( GetMaxHitPoint() );
0 n1 x& y. h/ k ^9 w. B SetManaPoint( GetMaxManaPoint() );
7 R/ K4 l; ?# r. l% M5 w! c SetFatiguePoint( GetMaxFatiguePoint() );8 m- h" k4 D1 Z6 R1 x q* O, c
if( nJob >= 1 && nJob <= 4 )* O+ x- N1 l- y8 S
{* C# V( T; f* d( k
m_nStr = m_nSta = m_nDex = m_nInt = 15;
U6 y+ [& e0 v2 w! Q m_nRemainGP = 28;/ @9 q; X& P! ]7 n- k6 ?
}( ~4 U* Q4 j. z) q& Q# y' ?9 Z- G
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 p' B2 r5 N5 c0 F5 [6 i, B5 T
{
: z4 J# \2 T0 ?- ? m_nRemainGP = 118;: Z2 _: s- }6 D3 z0 }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; O7 G$ Z) D* v1 Y4 @' t
m_nStr = m_nSta = m_nDex = m_nInt = 15;" E/ L, w, ?5 |) q0 ~ U: Q, ~1 L
}9 J' \0 v7 v2 q7 k( Q# ?8 m. o' [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 P1 p7 r7 s! q) d( a: _
{
% |1 {; g2 e0 w: _9 l$ N( ^ CItemElem itemelem;0 k. w+ C7 n b* q
itemelem.m_nItemNum = 1;: I1 w" _# P7 F: V, D( q5 ?" {
itemelem.m_bCharged = TRUE;
8 ^0 e" V3 g' {! M r BYTE nID;* @* C3 ~$ W* L3 f2 Y2 `7 @2 |. r
! i6 T" @' D: W* f* @( q if( nJob == JOB_MENTALIST_HERO )1 b3 s a- N5 Q% G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 Z4 s% @$ R) S( H z- E8 S+ o& T- k if( nJob == JOB_FORCEMASTER_HERO )5 r! Q/ C# d$ p I! c3 F* D1 g
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# r4 ^, k! d3 I
6 f- L6 \2 v5 w( ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ r9 u1 t, n! L+ G }
3 @+ y# r+ f# W( Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ D. e `1 {, I- T h, a, _9 v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ N- c7 \: k; g& z. T& X7 d ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ @% D8 v; s9 [+ c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ j, ] j! I/ j* P( X% M7 ~+ R ( (CUser*)this )->AddTaskBar();*/6 J g- H2 Z; f2 [5 x, b
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! `% D3 X9 X; v- b A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 d8 O8 ?* A2 Q w# w2 K" P i ((CUser*)this)->CheckHonorStat();) D3 {0 Z9 a% r ~$ O
((CUser*)this)->AddHonorListAck();
+ y* e4 z8 c1 ]" Y5 S8 T' A# h' d9 q5 O g_UserMng.AddHonorTitleChange( this, m_nHonor);9 g& C) D1 Y4 C' R& Z
#endif // __HONORABLE_TITLE // ′Tà?% k* N6 o3 G3 L; S; L) g p, T
}
6 U T# G2 b9 M, ]" }) p7 [$ }#endif // __WORLDSERVER( r- r) U1 j% Q l3 ^5 s9 D
}
p2 Q3 e" R" z/ C" [. O4 O/ N1 z: J9 T* ?' P; q
然后你进入functextcmd.cpp并添加以下! t# Z' t+ x" N
# ` N6 S+ N& ^5 S6 V f2 m' V
代码:$ v$ O/ Y. O- S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 U6 T8 s) W$ ]; N: Y; T# D下面插入4 J a% t4 Q& \/ F5 y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 u: J7 B. O/ v: O( N |
: B; m3 Z( }# t! i0 Y8 V1 s8 g
然后你去# D$ K" X4 y+ s: \" Y
( q) g. `" H) k7 K
代码:& g- x) u8 H6 u1 J, u
代码
3 `' T5 l) x) CBOOL TextCmd_ClearPropose( CScanner & s )
: a. z5 {* C/ `* L{. Z4 U, i+ h* v; \. m4 i: \' @
#ifdef __WORLDSERVER
! s- |8 B9 z5 x( H, L, g* C6 ]) ? CUser* pUser = (CUser*)s.dwValue;
- T s+ p' Q/ C4 O. x9 \ g_dpDBClient.SendClearPropose();0 @+ `$ ~9 `/ w: x
#endif // __WORLDSERVER
& D* n0 I7 A5 L1 F8 i0 p( m# d% l return TRUE;( E& i* m d ^/ @( H
}
8 R7 S- Y* R9 Z0 z下面插入0 Y) p6 q- p9 f! v( N+ {1 k
BOOL TextCmd_rebirth( CScanner& scanner )8 t0 v2 n, Z' c0 X" Q. M& ]
{
# h8 ^/ _, k. T#ifdef __WORLDSERVER
) y+ B9 @* Q: }) ]& R. f' ECUser *pUser;( J8 c1 h8 u% R* \6 L
pUser = (CUser*)scanner.dwValue;, k/ v9 @( h' H. O5 i& p5 o
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ Q4 \* S, {% R i }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 j0 @# k/ x; Y9 Y+ O2 [' g0 z) I
else: u0 J, }) p9 d* _- _9 I
pUser->AddText("你还未达到重生条件!");
2 i: E. B0 E1 c. V$ @#endif( f: ^: ~/ F" Q5 v" V- t
return TRUE;" \9 A' U% G3 t3 D2 m9 C; ]" D3 t" U" a
} - B0 b1 F' l8 z% f/ d
$ ^' S9 C; w; m) {/ H
7 C) m D& D! Y P, I
* A! ^) v' K8 h* T
% O2 w8 A6 E4 G, T+ j |
|