|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; T4 c C/ m. w; h" D: F, h
' z: C# E4 {# |- Q1 `Mover.h
9 C$ X x/ _# c& N9 q3 x代码:
^4 n- G3 X3 G9 c, C# B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( c$ m4 G, A* r6 R$ L6 `" s, a, [0 I( N4 v3 E
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# v& {, g) ^6 m6 h
/ ~% M7 l& Y3 n9 T' [9 Y& r( e4 y; u然后你去mover.cpp添加) P* ]2 Q8 J9 V/ r3 l! ~3 h
, ?- g. c$ p* c代码:# k6 q& l, b5 x/ L) `8 p* {8 _5 n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 i6 a& m: C% t{9 p, m5 O, h6 K, M E# s, ^
#ifdef __WORLDSERVER
# I* e/ O- {* H! Y0 D3 \# r // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 Y- x: m! A8 C$ o# C- W
MoverProp* pProp = GetProp();
& ~) H% A4 H- H0 ]( ~/ a if( pProp )2 F. P. ^: |( Z5 ^1 P3 B1 `
{
5 `7 g8 D" g+ ?7 u$ r8 P if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 Y+ ?: S6 M2 \6 Z* F. k( e' f6 E
{; B+ ]$ w+ d7 i. [
AddChangeJob( nJob );
9 S6 {; v" \+ P2 y }else{" h) W* X' }0 P* i$ b ~# s9 \# Z+ V
return;! q2 l1 ~9 ~/ f) N
}$ W& w0 o& o' ~% S/ p
int nPoint = 0;
7 Y& _: m( d3 T if( m_nJob == JOB_MERCENARY )1 k5 X. W$ j; e# H. w5 |
nPoint += 40;
) h' v2 F1 z+ Y else if( m_nJob == JOB_ACROBAT )7 N- |' l0 K3 U1 L& y5 _5 v
nPoint += 50;
6 w; A, ?0 |1 ^0 h. M else if( m_nJob == JOB_ASSIST )
8 G) b- @. t9 i5 X, n- Z: l3 T nPoint += 60;
% ~, \$ o. \: z1 }" N7 z6 x else if( m_nJob == JOB_MAGICIAN )
3 ?7 o9 B. F. H( l1 h nPoint += 90;( a5 p( V9 ~4 Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 D+ y, P2 d$ u- u, a. G nPoint += 120;8 Q, p, t( a; H6 v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& X7 ?3 m0 D, e, y/ _. X nPoint += 150;
: ^" V. U' z( o( f9 [; b9 Q else if( m_nJob == JOB_RINGMASTER )
: L4 ~1 d, [; [; | nPoint += 160;- e- M5 m. [1 z( }7 Y! R' ]1 w
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ H% q4 y* P1 P. Y' l$ { nPoint += 180;) z) X# K1 h, {
else if( m_nJob == JOB_ELEMENTOR )
* G0 `( [' h' s8 v( b- q- `8 A; o* s nPoint += 390;
8 v' t7 @( X4 X3 k( D+ I; Y9 j else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* }9 R) l6 D# r( j7 q$ \2 I) E4 h# v nPoint += 120;
u& _9 e: M3 H# c \4 C' i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); W6 f- v# T9 _* N* C1 d$ h
nPoint += 150;
6 R* B- S+ p1 S+ ?- }8 S else if( nJob == JOB_FLORIST_HERO )
2 D/ d5 m6 Z3 S8 q' q5 O nPoint += 160;$ u) G% H1 K2 s" q; Q5 a" ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 J" @, v. x. B) w8 y
nPoint += 180;
' E3 b7 N$ y0 \9 ~ else if( nJob == JOB_ELEMENTORLORD_HERO )
( d9 h1 [6 F7 R% R( Z( M nPoint += 390;
) n; q/ W2 K; T% ?3 \4 w4 d) {+ r; V) ?5 j' T6 i8 `# e% e
AddSkillPoint( nPoint );
& t8 i" ^5 c0 G# u% @+ I m_nLevel = nLevel;: ~7 `+ t7 I$ p& y) h4 r9 Z) ?3 k6 o
+ _( G9 U( t9 V
SetJobLevel( nLevel, nJob );& X" I# F! t9 h( _, t e
m_nDeathLevel = nLevel;+ r. P% \$ {# {7 L' J- i7 r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 f. ]) {% g n8 ]5 t( h, p if(IsMaster())3 M. S" K W3 b8 c# n t
{
& v6 y% ?! O8 P2 n4 {# ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ x1 d, G9 n. {% ?8 `- ^ if( nLevel > 59 && nLevel < 72 )
) B. U" c9 j" N& \8 } dwTmpSkLevel = 1;
C) E3 l8 s ], K5 Q( d0 b else if( nLevel > 71 && nLevel < 84 )/ N* N, Y2 k2 p" g2 K" @$ p9 Z
dwTmpSkLevel = 2;
H/ `; X) x) N+ B else if( nLevel > 83 && nLevel < 96 )6 D6 o: |# i6 z$ X% K* y% Z
dwTmpSkLevel = 3;
% \+ f8 W: A% q q% c4 T else if( nLevel > 95 && nLevel < 108 )# D Q+ Y4 _4 E% ^+ j
dwTmpSkLevel = 4;
2 h1 h8 _' h& Q$ B( p else if( nLevel > 107 && nLevel < 120 ), V3 a( q& m6 r, e& ^: ~# W) z4 L
dwTmpSkLevel = 5;% d( W& K0 k9 `; e' P' |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; Z l1 l# M2 v* G% |
{ : w8 t! @4 H" ?9 U; n
LPSKILL lpSkill = &(m_aJobSkill);/ w7 Y0 `, j ?3 L! t& a7 X
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 G, z& J+ z; ~, k0 G0 _
{/ B7 p5 m, N M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- j1 q2 J' C' P2 V/ I8 h4 h ] if( pSkillProp == NULL )) O( V8 p' M% V
continue;) q0 C* T: w. j/ p0 a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% a. _* b' L% z4 s. @: r, F0 s continue;
. y5 }6 Q6 K$ j- g9 c lpSkill->dwLevel = dwTmpSkLevel;7 }' i7 z8 f# |, m9 t6 e
}& }5 j# u* q% W3 ?
}
, q( K; r- H- c4 k& M0 u- Q- E }
9 e+ l' A' f3 O5 } else if(IsHero())
T$ V* B; y8 ^, ^! g$ f" Z {
W# |4 M, Q' Z$ u4 f for( int i = 0; i < MAX_SKILL_JOB; i++ ) * n: t0 q: U, T1 Q. s! J
{
0 O# X% E1 ]; x/ `4 ^ LPSKILL lpSkill = &(m_aJobSkill);
9 f! Q2 n* u0 c( X; G% r0 A8 p0 b if( lpSkill && lpSkill->dwSkill != NULL_ID )
) R- r6 i, Q' d% q6 p/ B {
% b1 Y- r) E9 F1 p$ l' h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 E" Y3 d7 ?2 A/ q J if( pSkillProp == NULL )- I) v9 I2 ]2 ?* ]' ^" ~
continue;/ R; ~7 L; \1 l5 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ G- ]- [9 ^* [
continue;% Q1 i# ~/ P* R
lpSkill->dwLevel = 5;1 z* N% V2 ~/ w3 d6 Q" `! L9 t
}
# d9 l- Z3 O: d3 V- D" B8 w2 J }0 u3 |- H! d! Q/ e& ^8 l; k- F
}
/ b; F8 w, P% p else if(IsLegendHero()) Z& N, X! u4 |; c4 [
{3 e' L0 P% k/ Z' D0 D2 ~( T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 @( Y3 j7 h/ { {
: u! W1 ~% o/ C, ` LPSKILL lpSkill = &(m_aJobSkill);0 J% ]: l6 T- O" E
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ E& r( R4 W4 q) E8 e% e
{
. W; M8 j0 ?7 d8 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - @2 N, D* u7 T! H
if( pSkillProp == NULL ); I( [4 o) _: s) \' k# ^
continue;
" v5 m+ x O1 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! s7 V+ N1 w* z a
continue;
+ S8 W, }7 P. M& `' f$ | lpSkill->dwLevel = 5;8 x: F+ D, `+ {3 N
} L5 B2 e+ I) ?3 M* b
}
# ^. G$ }# ~5 C9 I }, p" }; N1 X' `* e' ?2 E8 a; f
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! I' a: E% }/ S) e if( bGamma )
$ I3 r; Q+ G7 s1 w% I3 K( i. E( o {3 e8 V! |$ X4 N; L9 j
m_nExp1 = 0;6 u, l6 [5 o) x- m
}* Y' o1 p3 a* E+ r! G) |
6 \& r# [- x+ m% ]
( (CUser*)this )->AddSetChangeJob( nJob );( M" V9 p1 U5 M$ n+ ^; ^9 P
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; j- Q; b+ [0 b; W
* ?, m- o& t" Q: J; A M; D; W! u) B' |( {- c$ o
#if __VER >= 11 // __SYS_PLAYER_DATA# x% C3 z8 r0 z7 _4 z' G7 B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( G w) s3 h$ L# i+ O V% s#else // __SYS_PLAYER_DATA1 @# j! C. @/ h1 p( O# U
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' K! P$ t5 k5 E, t- s& n- [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 T* T6 A2 w$ J7 G+ c
if( m_idGuild != 0 )
. l) K& v, j" o* a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); _; e; d3 L0 r7 J9 @# V
#endif // __SYS_PLAYER_DATA
' R5 J7 f) P5 Q SetHitPoint( GetMaxHitPoint() );
, e, f) H3 Z. S5 v SetManaPoint( GetMaxManaPoint() );' k0 N+ R1 r/ w
SetFatiguePoint( GetMaxFatiguePoint() );
, v5 a* w9 f% P9 J' a if( nJob >= 1 && nJob <= 4 )% S( M# ~0 X1 W- F) _) q! R
{5 J$ g. s' s) n, r3 _. O+ w) [, `1 J8 K9 p
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 D; U" E$ o$ ]) R9 ^ m_nRemainGP = 28;+ Q- C/ g: T, v9 x
}0 G$ a# T0 J5 l$ j' d r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' s; J/ i; `5 w- g {. t$ S; o+ Y* s4 U6 }' I
m_nRemainGP = 118;4 [; h1 v: [" {, p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ T8 E t& q; Y2 U8 ^+ t& q# s m_nStr = m_nSta = m_nDex = m_nInt = 15;0 B6 V2 i! s E0 {3 I
}# y8 t! F- D7 v( ] c( l; ?9 |
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ y8 J' n; q* l1 k
{* ?9 j( h0 d M1 K1 K3 E
CItemElem itemelem;
/ ~; n1 E8 b$ \8 a, |: y* D itemelem.m_nItemNum = 1;
+ X5 S( U7 d( T+ d r* w itemelem.m_bCharged = TRUE;
# _! k0 A/ `& {1 u BYTE nID;5 {3 r1 Z3 b2 ? y# l
& T, X% c' U/ ]5 E# y if( nJob == JOB_MENTALIST_HERO )6 b- G$ z/ O H2 {3 b- K
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 C8 r l8 T+ W8 S$ J if( nJob == JOB_FORCEMASTER_HERO )/ \1 r$ v/ D# U% q1 l, Y* B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( p: T$ A' D P& t. ~, d Y7 o* M( l, d
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 P9 B+ B+ F5 {# E+ g
}9 K* [& o- V4 t9 v. u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ u: a( J0 b. l# Q0 e% U$ f1 ] ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, U, N+ ]/ P# a1 ?" z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 n( G( A' x% | /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. g9 P3 c, S( [
( (CUser*)this )->AddTaskBar();*/
$ e5 [2 }5 Y7 A: Y6 w2 o ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 D" d8 A$ j3 ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- V9 E# c9 t( V4 J1 r2 K$ c4 I* [1 s6 x
((CUser*)this)->CheckHonorStat();, q' S7 @: n# i: m' B3 X0 y- x
((CUser*)this)->AddHonorListAck();
4 [1 U5 A. | F/ _# |% X g_UserMng.AddHonorTitleChange( this, m_nHonor);
" ~) z8 l6 Q& h$ b, O#endif // __HONORABLE_TITLE // ′Tà?
# c. H/ m8 \- B: v8 n) b }# j6 V' e, R6 v+ L: l
#endif // __WORLDSERVER& @: z, F+ z4 e3 e& _
}
6 c5 @, `$ I' ]) d1 T6 T* s, C: B: }4 v! n, G* Q6 C
然后你进入functextcmd.cpp并添加以下, W6 T4 k4 L1 A! k
" H9 o5 q e' a( v* Y' w7 ^
代码:9 P1 F0 Y. E: Y% o8 a N; D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 `- D# d* t: v7 i; a, e" }6 j
下面插入. B9 R0 B& g; h( Q/ X2 S+ l' R$ N
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ O( Z% @, W+ X- U
5 I7 G7 y5 Q& A0 F然后你去
6 W0 ^# k* k i4 m, p( |. ^: ]
) Q% D; f$ R$ T* M代码:
; J4 L) r9 q2 }. h4 c5 j6 X+ s代码, C& @7 ?5 y, B! E
BOOL TextCmd_ClearPropose( CScanner & s )
! G( N$ D! A/ b- d0 H9 _$ Z{4 r# U6 O$ R# m: y# `$ R
#ifdef __WORLDSERVER
5 e% ?) F0 b% Q CUser* pUser = (CUser*)s.dwValue;
* N# [* q1 s8 H5 ] g_dpDBClient.SendClearPropose();# D3 z+ A" @% `. r8 Q8 v$ j
#endif // __WORLDSERVER8 F2 C( t. s. Y. C4 \
return TRUE;
; h# Z+ ~8 i# J. x0 W7 r}
. r* g1 s- x* U5 I- P下面插入
2 Q& ]. t! h4 C6 f( eBOOL TextCmd_rebirth( CScanner& scanner )
" t$ \$ ^5 V) A: @' ]{( _3 Q9 \* j2 [
#ifdef __WORLDSERVER
/ A8 q0 l% I% M/ S' u3 CCUser *pUser;
" o+ z% V3 K% w# P% j& |. d% ppUser = (CUser*)scanner.dwValue;
5 G( N8 X9 T2 A& mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ D) X3 y: n3 C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! K$ a* ]0 q" Z( j* L2 y8 D
else
, c5 L* e0 \$ Y& Q M( `/ M: ^pUser->AddText("你还未达到重生条件!");
# d' ]6 \5 h5 R) S$ q#endif- r# U- m) A# t2 c$ K& }7 v$ H
return TRUE;
2 L. y$ p# a: ^& i8 Z7 j}
! I! H' U! o( n7 j% D) j( U) i2 h4 Z0 E7 F
7 R; U' S2 m+ K8 S& h( l, z% Z9 ?9 J$ {# ]% a; q
4 N2 z1 X0 s4 n: S# |9 @ \( R6 L& s
|
|