|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% a( f& `8 t `- S6 X2 ~
# \- U) r* h: x" `1 g- O' LMover.h
5 @+ ?6 d% @: l E4 H4 Z# C代码:/ a5 o: \* D/ u4 B3 o# g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% ~ i( r$ y- F. [4 U: N5 z5 U
5 ~* L7 f- r5 `! a! H下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ I$ @3 h1 J( R0 |' p! K+ l) O1 t
( @. `1 l; f/ ~6 a0 a然后你去mover.cpp添加0 t, C. f6 M% r. l
" f/ D. l7 a; v: G4 x代码:% K+ c) n! b# D5 o H3 ?: M) ~' V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 D5 M5 _5 {: H; j g1 T9 Z, @8 k
{
* h- s, u: ~8 i- i$ r" K#ifdef __WORLDSERVER
8 T i/ W) N; y0 n" A9 ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- ~5 \; X$ Q! e7 c* C! a
MoverProp* pProp = GetProp();
' @# s) B9 Y0 Z T! e if( pProp )
. Y# E( t) ?# W( Q {
* b$ I; r' `$ f& A G$ I if( nJob > 0 && nJob < MAX_LEGEND_HERO )! D9 k! `+ n* R6 P
{
" m& q& T: A+ h AddChangeJob( nJob );3 V; y9 U# |% I8 K' p
}else{
" s" R( N" q- d7 K3 w* _ return;
$ ^0 r/ Z- S0 m$ B6 f7 v }
$ P; M& U5 G. ^6 V: @ int nPoint = 0;3 M ^. Y+ [' [- h* }: [
if( m_nJob == JOB_MERCENARY )
2 e# s, Y( O! g8 [- {, n# d nPoint += 40;% s8 T1 g" {) F; [0 V- x- v
else if( m_nJob == JOB_ACROBAT )
" Y- b3 B7 k& k ` nPoint += 50;
2 q8 e1 l; S: a else if( m_nJob == JOB_ASSIST )5 u, |" l) z% X. Q K6 I6 X
nPoint += 60;
# w3 n, J. n7 L1 \2 s& V3 L# i2 G else if( m_nJob == JOB_MAGICIAN )
9 G" a4 y4 X4 z4 t nPoint += 90;
( \% s6 x# J, v# c else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: M" B2 m3 ?5 u1 m* u nPoint += 120;6 y# r( S0 p i9 [5 W& M9 n9 Y9 U
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 T( d7 I0 S1 P5 K$ M$ f, {: F
nPoint += 150;
/ ]1 Q8 d( ], C: G' l; ^ else if( m_nJob == JOB_RINGMASTER )1 y, V) s; c/ A+ h' |$ m
nPoint += 160;# v7 m" O: x8 F# p! _. I3 \
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; \+ q- C9 _/ H9 K8 S nPoint += 180;. t4 O8 L* d& `4 D4 F
else if( m_nJob == JOB_ELEMENTOR )
+ _" Y s+ e# {: E nPoint += 390;
* ?8 @, o# \9 G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 l o% R+ H3 A
nPoint += 120;' {8 Z' }! u, C/ N4 U5 ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) j2 u& T1 R6 H w2 P nPoint += 150;3 I$ @' y( i- x% ~ B8 o Z
else if( nJob == JOB_FLORIST_HERO )
Z) n# e% o, d nPoint += 160;7 J3 \3 h0 \% w/ H
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ }1 F3 K- f. f$ |
nPoint += 180;
+ d4 }. ~$ X5 Z8 O5 D else if( nJob == JOB_ELEMENTORLORD_HERO )
! }3 I4 j% ?; A* V nPoint += 390;
" U1 |0 y, g7 {4 k* f# [6 Y( \- {+ \) B, }
AddSkillPoint( nPoint );4 X$ T+ m: Q. i0 Q# z
m_nLevel = nLevel;' z- E E# I# { Y' ~, K) c) I3 [
4 i$ w% S: e: v% E4 e5 M" X SetJobLevel( nLevel, nJob );
# S v6 u2 x* } m_nDeathLevel = nLevel;6 |3 r9 ]$ [3 }" i* K, s% M6 e) D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ Q% r. Y, s& ^8 d0 J) I
if(IsMaster())2 M L f c* E" _# K8 c3 q
{! T2 c" X$ p5 T" ~. A; K0 N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; i% M0 P4 b& c- ~ if( nLevel > 59 && nLevel < 72 )
2 o" S9 ] ^* u1 a p dwTmpSkLevel = 1;
7 I' S8 L7 C$ P# A else if( nLevel > 71 && nLevel < 84 )
5 |& \/ H( `, L8 B/ {) A dwTmpSkLevel = 2;& r/ e# l) u$ ^% O- ~
else if( nLevel > 83 && nLevel < 96 )9 Y7 x; U: n! M5 F5 n s
dwTmpSkLevel = 3;! O. Z/ R& ~" i% H" S8 o% r
else if( nLevel > 95 && nLevel < 108 )5 m8 k$ l+ j; F$ P
dwTmpSkLevel = 4;& J9 H: F9 ^8 m/ f! W
else if( nLevel > 107 && nLevel < 120 ); h: ]2 j2 H6 f1 m N
dwTmpSkLevel = 5;
0 {( K( C- X. K. r" K for( int i = 0; i < MAX_SKILL_JOB; i++ )
; j0 O5 L+ @" L( ^ {
& {' j5 D- u& j# U LPSKILL lpSkill = &(m_aJobSkill);$ C# J) U1 ?7 _0 f; Q' V4 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: H {% p) s8 x {
1 \$ {" _& u; [7 N9 u8 F9 K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 M+ B9 Z% o8 D8 T. J$ d if( pSkillProp == NULL )9 y( M$ X) ^0 n* R9 n* n
continue;$ k6 D$ o5 Z0 F$ z& p: }+ @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 R# @7 A& I" _. P: m. g continue;
, M( ?' |% O% z9 f/ K lpSkill->dwLevel = dwTmpSkLevel;
, Y; t2 x% [3 P. B* h0 F }6 I; g1 q) {* S' F( d2 U
}6 T6 Q. I% p, n( x) p9 O
}3 R1 `$ d! J" f: s
else if(IsHero())
- E( D$ O* w |( ~ S8 { {
) ~, g5 Q+ D7 e" S/ [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 \8 r6 B5 E+ X/ t- C) `
{ % j- y; E" e# l
LPSKILL lpSkill = &(m_aJobSkill);
6 ^$ s3 O. p) p% @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 ]3 s. {* s) E. `. U {
& b* t9 Z. R2 \* f: { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 h4 y5 Q9 D: H6 c5 f9 g! e* c; @ u
if( pSkillProp == NULL )
! j2 W" w7 i; K- p3 d$ T. U continue;
/ f# u7 G+ L" n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. }0 E5 T' A& X7 L' ^ continue;
7 r' ?5 H! s) Y9 `% I D3 n% f- i lpSkill->dwLevel = 5;
% N( n* _" G; t- Y }
- y, ^( d. i f2 k: u }8 n; `7 D3 y* C1 o( c
}, M7 |; c; c4 }0 @. Z
else if(IsLegendHero())4 l3 m# d: J- W# I+ ?% j- l
{: N2 w- A) P* d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - O' H" f4 |# h
{ # W' ^7 Z6 w, _. M8 l: @6 Y" \
LPSKILL lpSkill = &(m_aJobSkill);
" U+ ~- r* a$ ], n) r2 a3 Q if( lpSkill && lpSkill->dwSkill != NULL_ID )/ o5 |- ]5 n# K& w6 Z8 P! B5 Y
{
( V# F$ D9 _% } L" J7 b. Y) [ I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
g2 H) e6 B. c3 ^+ l/ P& d if( pSkillProp == NULL ); g: }4 H" o+ g8 E, {
continue;
- k1 L5 O, R% ]% W6 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& M" ?! s# t8 x( \, M continue;
; [; w# {; F# ? lpSkill->dwLevel = 5;
; A. V4 p( ?3 r }6 p9 _. ]- I+ F- @0 G
}: {0 l" W+ R# K# V8 H0 Q% x. }
}
; N! K5 ~* o) c, m& I#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 W' q& O8 {+ w4 U3 @ if( bGamma )
! |/ x/ l3 S1 ?5 B* O5 G {; k4 [6 Y6 F+ h) Y+ h
m_nExp1 = 0;
! A: C; m& Z& ]3 H5 D }1 k! Y5 l# c# q
+ P7 J* e3 G' `* ~/ Y ( (CUser*)this )->AddSetChangeJob( nJob );7 I7 c. I4 X" v# I3 j' _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );4 ?6 O% [1 k+ }0 g) `2 A, d
) \. H4 d- @* I! K: b7 J7 A
7 Y, G$ O$ [5 L9 S# |9 k& K0 T1 O# d
#if __VER >= 11 // __SYS_PLAYER_DATA- t# R/ H4 w7 |6 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& I! f/ P. o& k( T! n* d, l: r3 V" C( f#else // __SYS_PLAYER_DATA
* T9 L1 E" f0 R) `! G9 K g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( J/ B! m, z% g' m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 S4 y. _( \: B6 I& p# _& U if( m_idGuild != 0 ), N0 N0 I' N5 U) z, h4 U
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 \9 k, r& P4 x& m#endif // __SYS_PLAYER_DATA
# {% `6 K4 c: x# N. L" x SetHitPoint( GetMaxHitPoint() );6 k3 v7 A) r1 K8 v
SetManaPoint( GetMaxManaPoint() );
# q+ T' p, O) Q SetFatiguePoint( GetMaxFatiguePoint() );
/ S1 |) d5 c# o6 ~) b if( nJob >= 1 && nJob <= 4 )3 n2 X( u- Y4 v" u
{0 y) X0 a2 C( B
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" D' v' i! n: S/ a( M* t m_nRemainGP = 28;0 c' ^/ S/ J* j* V4 o0 M2 @
}
M6 f9 x3 R9 y, @3 p% J1 d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
6 g( w9 w; Q5 l% t' f/ e1 y {- w/ X, f7 U+ W% E; ]
m_nRemainGP = 118;- g3 B+ F, Y e$ @& A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: k' |/ u5 N% Q$ w$ A- e
m_nStr = m_nSta = m_nDex = m_nInt = 15;# D9 J0 M* ^% _# B- `* N
}+ Q4 |$ }8 B4 e: x( m/ }; @) @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 W# }9 @6 Y9 Y
{: I5 f. ], l" {
CItemElem itemelem;
' I; Y; M4 a& O I itemelem.m_nItemNum = 1;
9 ^& f, Z- z% g/ a* T itemelem.m_bCharged = TRUE;
9 p {* }: W' b4 G4 W BYTE nID;$ n) U' @5 C) J2 W4 U) p
" t. h1 Q; N4 e: E' @' b
if( nJob == JOB_MENTALIST_HERO )+ ^; ~5 I' S- Q& y% m
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 f, ^" w& w- J2 {5 W7 D
if( nJob == JOB_FORCEMASTER_HERO )
" q5 P j! `$ l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! L Z& F. O9 N8 U' X* ~% C$ }* v- `, W, H) A3 Z
( ( CUser*)this)->CreateItem( &itemelem, &nID ); L O: E7 o, [* M( F) f
}
5 ~* r3 M, d5 A% O4 S; X/ C g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 t7 |4 m- j$ Z" @, U, o& p3 x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 B6 ^& C3 @: i
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 H1 V( w7 m( l+ o9 H9 W5 d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; i: A* P, f C1 {7 Y$ Q ?+ a* c( t
( (CUser*)this )->AddTaskBar();*/
& q- w* s6 S/ e% E" y0 h3 V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# A7 r. j7 N7 O1 U7 e( U: O
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 e* t, V9 Z! F2 d5 Z i& k
((CUser*)this)->CheckHonorStat();5 W' t* P' d; x& V% r0 v& }- n
((CUser*)this)->AddHonorListAck();, P" `% l% @* N3 N N/ n
g_UserMng.AddHonorTitleChange( this, m_nHonor);( r, n# C; _* |2 }! g+ f
#endif // __HONORABLE_TITLE // ′Tà?
( G3 w9 E! ]1 K) K8 a }4 s1 H& a2 y1 c* t) @+ _
#endif // __WORLDSERVER
$ Q( H' e, t' _) j! x, E} 9 E0 U8 P# X6 l# H/ F
( `7 }# u3 n0 O. g2 n# M8 C6 {: o) V6 T然后你进入functextcmd.cpp并添加以下% b0 \) p0 C+ N8 `
$ L* X8 g# k% j7 w* A, y) `( E2 J
代码:
e+ J9 J9 F, W/ y) ~6 EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( T9 I. F4 a Y9 `4 z
下面插入' Z3 ^/ c3 A/ N( [& z% c" T5 {3 R* ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ z: C0 j3 m6 g$ o# U9 [" r# i) q2 |, Z9 W8 k$ e) {2 @
然后你去4 P# G- o) ?5 E5 ?4 _7 r& z
3 L! w; O7 d& {代码:/ ?8 H! Z% G+ [
代码* ]8 ?0 s0 f" n
BOOL TextCmd_ClearPropose( CScanner & s )
& \ n" Q# b" |! \! Q{
+ z0 @1 _- ?$ V. ~+ G3 O3 t#ifdef __WORLDSERVER
c4 D2 H: D2 C CUser* pUser = (CUser*)s.dwValue;; r6 y1 E2 }7 e+ l
g_dpDBClient.SendClearPropose();
% A, t, \4 B) N#endif // __WORLDSERVER
; B! [/ f7 `- U- \ return TRUE;
) k. h a3 q/ v" H& c U* u2 u; e}
J3 H8 I }1 q" t6 E下面插入
+ Q0 h1 N/ q6 ?8 L) XBOOL TextCmd_rebirth( CScanner& scanner )% ?* \- r0 V5 u) @5 L% A o- b3 t
{
; N0 ]6 E# c, c#ifdef __WORLDSERVER
) ]; F9 T& m$ zCUser *pUser;
$ a4 N+ t9 X9 D* o0 n; U- [pUser = (CUser*)scanner.dwValue;
% Y6 x1 J8 A/ c6 B& Cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 q. L; l: S+ e7 |
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; t4 r# l( L/ ]# R+ U
else) b/ }7 A4 z1 y
pUser->AddText("你还未达到重生条件!");
2 j* j4 w7 F, _8 \) s#endif3 `5 R; X- j. [% o" J4 F4 S
return TRUE;7 R$ l8 a# Q: S$ _# N
}
/ V. K! I$ P6 s+ a$ P9 C4 i. n6 n& D! G3 I/ k3 i: A
& K, W f6 Z3 `$ c' Z/ t
- U8 ]( d2 ?& N% c6 i; A+ S& v3 \0 X0 S. k7 X7 J
|
|