|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 S: L1 T8 O4 A. x1 d2 d( A
3 g8 H0 z- h# b2 SMover.h) R& t6 o/ L& B6 B
代码:
7 L, r2 J+ i2 Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- ~* Y) \5 j+ w6 Y7 s) H. r& s) Y: H* {, Z- _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 Q6 g6 {* ^' _
* b& H4 n9 }8 v' m( C
然后你去mover.cpp添加1 ~3 ^: ~6 w6 u3 ~; J: e/ |0 t
9 I( c- b; [- e' J* O
代码:- }* |; o$ ]1 l3 ~& t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 u' ]& Q" H: `- j( N( t, W{) `0 [" E, {) `5 D7 l3 ]
#ifdef __WORLDSERVER/ K+ \0 k2 G! [/ ?, H( B
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ F! i$ T& s; i MoverProp* pProp = GetProp();/ a5 N. e# L& G
if( pProp )$ S0 z; T A# C% Y8 H6 a- u
{9 M1 T' J! Q: J+ V
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): g4 R9 T. F, N+ P0 M* J+ X/ }7 O
{
1 ]; ?$ t& U3 E$ k" ~ \1 H$ D9 R AddChangeJob( nJob );
; P2 @0 `- j: _0 F/ [$ k: s% e% Q: H }else{
% i2 M$ c2 }' j( B8 }2 b return;
& `: O5 s" ?7 e# ?; y6 R9 L& o }: ?* j' f0 e$ m" A
int nPoint = 0;
) b- S: U' x4 _+ l& z, y+ f. H if( m_nJob == JOB_MERCENARY )
# _( T! h; k9 C; N) S- p% v nPoint += 40;! |$ ^9 u) y+ {5 i: I2 r
else if( m_nJob == JOB_ACROBAT )
6 N R! o8 ? s( O nPoint += 50;
9 i0 p" w% d0 b) G5 M3 ` else if( m_nJob == JOB_ASSIST ); q' ]7 M% Z2 U3 _, N9 {
nPoint += 60;
9 j( z) }8 x, I7 \% R else if( m_nJob == JOB_MAGICIAN )
, B. {5 m: Q7 c8 ~- J nPoint += 90;
- N1 q: V5 C) e9 V0 L3 L) u else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 ^/ @9 s3 C F6 { nPoint += 120;/ R5 U& D, a, \- y7 @: @& ]3 `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) _0 ^( u/ ~2 |+ X3 V3 V& i; t" R' C
nPoint += 150;$ _9 f, C9 A# o/ A; Y. Q4 Q
else if( m_nJob == JOB_RINGMASTER )
- n6 Y% c# @7 j nPoint += 160;
I) m7 d, k7 J: r+ Y) I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" E7 Y; V& Z$ Y* m# _4 P6 C
nPoint += 180;
8 f* K* a1 ~" q# S0 ^: f else if( m_nJob == JOB_ELEMENTOR ). a2 x5 m5 Y! T
nPoint += 390;
y9 C% T; N* n4 I8 v( j else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* n: W3 c7 B9 c6 b' _7 l nPoint += 120;
& Z" z% L1 I, D4 I2 u5 G else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 k- O8 \; S. y6 o* g
nPoint += 150;
9 Y$ Q$ l/ N6 X, [! ?! o% T5 `1 q! N else if( nJob == JOB_FLORIST_HERO )9 y9 a1 ?4 V2 l* b) ]& O, @3 L5 b
nPoint += 160;
+ W2 ]" D" H- R; F* s7 c9 t9 h2 h0 v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! l+ W; f7 M" z5 `% Q. u
nPoint += 180;
3 u4 U, [0 \ T! _9 ^ else if( nJob == JOB_ELEMENTORLORD_HERO )
8 ^8 e2 I7 D6 K8 t5 P3 A/ Q( o nPoint += 390;
5 }+ L/ N) W+ T! \" O% h! R& x5 r9 R7 ]4 t* ?% a3 G
AddSkillPoint( nPoint );
6 C$ A" V" v4 o l m_nLevel = nLevel;1 j/ d% I9 b( ~! V) C9 P, S: ]
+ z' A2 [3 w& M* `# S: I
SetJobLevel( nLevel, nJob );' F3 v+ Q) d% S: J; I/ T# q' J. M
m_nDeathLevel = nLevel;
: {2 c) t; s) s4 Q, {5 b#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 W" j8 y8 n& } if(IsMaster())6 T$ | M+ q8 O }% r* l) `
{
; u0 V" ~: W6 _. t int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ `/ e. j: B! `, ? if( nLevel > 59 && nLevel < 72 )
# S# a9 k v" ?8 B# c# H- Y dwTmpSkLevel = 1;+ t. E" m( A$ I" P" K, c5 R% P& Q8 u
else if( nLevel > 71 && nLevel < 84 ): L" o" D! B5 D) z: W, e/ I
dwTmpSkLevel = 2;+ J' J! E$ j7 K5 I+ D+ x- ^
else if( nLevel > 83 && nLevel < 96 )) u- d& l5 X i
dwTmpSkLevel = 3;7 ]$ Y9 t( {4 \& |5 ]
else if( nLevel > 95 && nLevel < 108 )$ n( F& c4 w Q6 a; R$ j
dwTmpSkLevel = 4;
]1 |( w# \( I$ q8 G0 h else if( nLevel > 107 && nLevel < 120 )4 J* Q) S: D; Z; B- l
dwTmpSkLevel = 5;, L9 Z" q( T' G7 V0 b! T" }' ?: G5 y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * B- V+ ?) y. I" Q
{ * ? S( u: B+ h7 D6 u. J
LPSKILL lpSkill = &(m_aJobSkill);
) C4 k! T- ^! ]3 _ if( lpSkill && lpSkill->dwSkill != NULL_ID )# z. O1 {$ {, i) W! N
{
. _8 J7 w; \& J7 s3 i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 _# f$ |5 l N: {" p! u if( pSkillProp == NULL )
/ ]. ]( H' b! {) f4 m& O' a continue;% i+ S4 A. }0 c" g1 y& U( F4 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 H, K5 h5 p; U continue;5 ~4 d9 Q, t0 B J6 j, N& ]/ c9 p
lpSkill->dwLevel = dwTmpSkLevel;
- y/ }9 v$ A4 _4 v( ]: p; ~ }
$ G. ^# F# P* q. U) s* ^! d1 q" A }
2 K0 X4 b) Z! G: ]: X3 n0 L- d }
9 H& h6 Z, r& V5 X1 ] else if(IsHero())& w6 P% H: v0 B" X6 `5 ~$ g9 _/ K
{( v# \6 b7 O- x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : |9 q' `* [# G# X; a. j1 |' L6 v
{
. Q4 e) x' U6 l; R- q i3 i4 f LPSKILL lpSkill = &(m_aJobSkill);# q2 X4 J% `4 K( H6 s# j
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 J; k8 D6 d; @ S
{! R" D: d [0 z" u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% B0 d# Z4 W+ n: h9 p if( pSkillProp == NULL ); Q( G/ T, |/ Y0 l8 A
continue;; q4 ^0 X/ p* ^! a$ A8 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' [) s+ j1 W3 L1 w
continue;. G* Z; q6 e# s% r5 a5 ~; k7 m
lpSkill->dwLevel = 5;( L, a) s8 f" T! f7 y# p
}
, d$ T/ Y' c: A0 T v4 j- ? }
n! F; Q: _8 `$ V, k }
9 }7 W; R; G3 J else if(IsLegendHero()) e$ ?3 \* Z3 Z, Q7 k, `
{
0 O% P5 C# S' K& D: W J for( int i = 0; i < MAX_SKILL_JOB; i++ )
' y; M/ S% F% _* V! U3 i: _ {
. I% O" @9 Q+ I3 k LPSKILL lpSkill = &(m_aJobSkill);$ h- H! F4 n; A! c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! n% \7 ]; q# o {7 N9 v& r+ m# v2 D; I. a* |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 A4 O& z$ F( Q' l% z if( pSkillProp == NULL )
' n! s5 m) s9 a6 s6 X# V O1 c* y4 U continue;' d7 E& _1 @$ n( d! I/ F: [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 t! y& _! l3 ]: J
continue;( [) M* U' r% e3 \9 x6 i! e
lpSkill->dwLevel = 5;
+ u" Q+ F( k5 o+ k+ { }; k- v& l, b+ f2 M$ C
}
4 h5 c& I/ d4 f3 ^" b- a }
4 s& w Y- a, r `+ `* k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( ]8 K% ~ x4 K3 t: g4 _
if( bGamma )
+ S7 q% }2 x j* x- U9 F3 Z {: b) P: F, n1 U( c. Q* b
m_nExp1 = 0;
: B+ ~. \, y0 }3 E" d" N8 k- L }' w4 j6 l( T+ S. } n7 j7 u
& w9 T" D+ e' C
( (CUser*)this )->AddSetChangeJob( nJob );
' }3 v# i+ H2 w: R g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& i n; Q$ P+ t/ o
: f2 t( C% w; A, l% Y9 N+ c! _
9 C6 S0 u, q) s$ N' g2 I" w6 S#if __VER >= 11 // __SYS_PLAYER_DATA+ T, `- U- O- y% j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 L# C* H) x0 A M#else // __SYS_PLAYER_DATA" i8 x: W! s2 |" b- D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' V: R# e, c! f Q4 Z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 z J/ z! {) w" Y5 g) h& t# {3 B6 D
if( m_idGuild != 0 )
3 t2 F# X! ]2 N S# D0 z% i g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 w5 f, X% L7 @% r' N1 P: R$ X
#endif // __SYS_PLAYER_DATA0 ] X( d: _/ \/ B- O. \' l
SetHitPoint( GetMaxHitPoint() );) R# x8 m Z9 f) Q" K
SetManaPoint( GetMaxManaPoint() );+ B: S/ K5 d8 i& P" y' k
SetFatiguePoint( GetMaxFatiguePoint() );' {6 w6 r- E, M6 N9 L
if( nJob >= 1 && nJob <= 4 )
. q$ a( @* T/ a! V8 G7 A" O {- W& L+ `7 X. Q/ ]4 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ N, Y! b1 E# u: t3 F6 h0 m' x
m_nRemainGP = 28;$ I4 j$ Z6 c* w: j6 {; g8 v4 ^2 ?" W: g
}
4 q5 m- {2 |1 j m' t8 W if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 I. T% C6 I; c4 C4 n8 H
{
$ Z# ~1 d0 P8 t% B8 M m_nRemainGP = 118;
4 P0 V1 B4 o# h1 m3 o- G //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; x: G5 V6 \4 {" M t; ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
% C5 a4 V* Z& X! D( f6 R) b$ c5 |2 ] }
3 ~5 ? Y7 X9 \9 ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; o) T$ }# U( d; Q/ X2 {" a* e0 [ {6 m# s' T9 _/ n& G# O$ y
CItemElem itemelem; O) Y1 [4 }1 B6 k% a0 f' a; u
itemelem.m_nItemNum = 1;
0 a7 o. L) F/ q+ i T itemelem.m_bCharged = TRUE;) S+ Q% ~/ `0 f' z: v
BYTE nID;
: c$ P- N+ y" W, n ]5 W' Z" S& n3 \2 u ^
if( nJob == JOB_MENTALIST_HERO )
+ L7 N. [9 [+ p6 U1 R p% w) T itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 T) d- d6 B1 O3 c# Z+ K0 ^
if( nJob == JOB_FORCEMASTER_HERO )
* S5 A7 o8 ?1 @9 H- c itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: v# v/ K' o) |1 u; O( l
8 H: b/ g! D* Q y! K2 h ( ( CUser*)this)->CreateItem( &itemelem, &nID );
. `* X6 M9 L! U9 y. w6 K, f }
- O$ V. M: D8 z% ^. C g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 x" y. s0 K: P6 b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; V& g6 y( C4 i' t ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ `' c6 {' [. E% Y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 e( p6 I" }6 D: e5 N$ h) N ( (CUser*)this )->AddTaskBar();*/
# _* t6 z4 n+ k" x; d ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* d" \: z9 Y; G, W3 @2 u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" `# D G X' l; O) J! e5 z0 L ((CUser*)this)->CheckHonorStat();, g6 G$ }" J& o
((CUser*)this)->AddHonorListAck();
* D) A; D% e6 b; f g_UserMng.AddHonorTitleChange( this, m_nHonor);, H* o: ]! _3 d: X- D" q0 c
#endif // __HONORABLE_TITLE // ′Tà?1 v7 K- x* z% p r
}
7 U+ b& S$ A- ? ]7 a9 B6 |( \# F#endif // __WORLDSERVER
7 v) C7 t# l2 c+ D2 \9 w. k& n}
, b* y Y" i w$ l, V4 f' B+ m4 _) R+ x0 @
然后你进入functextcmd.cpp并添加以下/ O! T) g. d$ _/ Z
& i3 g8 @0 y( k7 ^5 |代码:
2 V7 q ], z. p. EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- x/ V) @' V+ ?# e6 j: Q1 S3 M
下面插入/ L9 _( _, |2 r0 {3 q9 S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- p) d4 w# s- H( i9 H) @/ n
& d9 v2 b3 K. p% D! v" n然后你去) U R: k) Y/ N* p" W* M
5 l. l/ Z' C9 k! E7 Y6 m% W
代码:4 k# n) \* v0 ` _% o
代码
4 Y3 |- s$ H5 a# iBOOL TextCmd_ClearPropose( CScanner & s )+ J! p% P7 u$ V/ v/ M8 t
{
! N$ \9 R2 `$ n#ifdef __WORLDSERVER ^2 N( o/ V0 r. x# a2 Q. W! O
CUser* pUser = (CUser*)s.dwValue;" z; A; G9 A" o8 A, E
g_dpDBClient.SendClearPropose();3 s2 X, b, W3 r5 X3 Z+ U
#endif // __WORLDSERVER
) X7 l: |, j: T( C( G) W/ F5 Q return TRUE;
o. [$ U% Y! X1 i}- `/ L6 \( {, ^
下面插入. S" S; u8 ?' d- U: o) G) ?- s
BOOL TextCmd_rebirth( CScanner& scanner )
) l" V$ Q* ?, H4 h" M/ q3 L6 N{
) \8 c( M9 I! O- v/ z#ifdef __WORLDSERVER
1 }* \% Q& g u$ j. V0 C6 c! q' kCUser *pUser;/ V' D2 Y/ W7 g: e+ U. l
pUser = (CUser*)scanner.dwValue;
- Z4 s& b0 R9 d o8 @4 t" z4 Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ Q" ~5 ]# _6 X! r4 SpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ K+ z4 @2 I$ b; Selse
# H/ u+ o. y, { Y5 ~pUser->AddText("你还未达到重生条件!");
- X0 ]% J# s, n; S0 f) f% b#endif' P& f& z5 X8 S7 {+ ?) M7 ^0 g- m
return TRUE;4 u! N# w, K! `- k
}
5 R' A9 U* K3 E9 u0 {' V7 V# O. l" `- ?& j: ~7 Z/ T
: s' c/ d F" L2 I2 d
: e$ H' o P& a& u$ [; }& ~/ z! n# k+ w' f$ T8 ]
|
|