|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 n3 T7 K: J0 H2 b7 z8 `6 x% ~3 a. d0 j
Mover.h
! W1 W n) U) R1 W代码:( e, ]4 d% d; _- ^2 \8 S
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' _+ Q+ s" T& G v' Z4 {2 r- x! d. |6 {, u& u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ j$ u5 I1 k4 d) E
7 X% u) O- R, B* [然后你去mover.cpp添加* Y& J# V& p; m5 E. A# ?
& G9 m$ k! b3 s
代码:
" c/ O# H: C; \; g4 z h" Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) F' E4 ]! C6 H2 i$ }& \, W
{
4 Q! A2 Z# D T- s#ifdef __WORLDSERVER U) q4 n' V9 z5 Y# r
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! P6 j+ S1 m/ q- d% f# g5 D$ Z MoverProp* pProp = GetProp();
( V4 T# U. o5 c0 k7 N if( pProp )( o. P }0 {6 a3 u% p
{) O- p: G' h! }1 J* H9 w; f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 p) `' o6 l9 x# H8 F
{5 S& n& n: \. r [' h
AddChangeJob( nJob );
3 |7 `& j$ d- l$ K- j: a8 k0 X2 n }else{( O, p; w/ G+ a, [0 s
return;
( c7 P/ S( n/ }; d- ?3 I }
+ G# F4 i1 g e8 G- ]( w int nPoint = 0;
$ F) `' O' ^( O* ^% U& } if( m_nJob == JOB_MERCENARY )3 `) v$ g3 p5 x9 X# B
nPoint += 40;
?; e. S2 r: R/ {: Z0 s else if( m_nJob == JOB_ACROBAT )2 P( p4 r; |7 r0 i7 \& K7 K
nPoint += 50;! y) k. i3 q# K$ D# {
else if( m_nJob == JOB_ASSIST )2 V0 Q+ f6 V3 h0 |7 T( w
nPoint += 60;
2 ^1 c% K$ N) m# z* k t# g3 b else if( m_nJob == JOB_MAGICIAN )
9 R D- u$ G7 d' f5 E nPoint += 90;
+ S" L. r+ s7 q, t else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- F+ ~ @, o1 D) w
nPoint += 120;2 X7 y7 N4 K2 G8 B3 Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 u9 @# P U7 y; Z0 E nPoint += 150;5 h$ d4 ]7 \# u& |
else if( m_nJob == JOB_RINGMASTER )
: r, V8 i( l7 Q3 W/ ]1 M+ S- A1 L nPoint += 160;
% N, h7 X$ H1 b: { else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: X) a" }) e2 \0 \ nPoint += 180;& P' a$ ]% F* c, r; l
else if( m_nJob == JOB_ELEMENTOR )
+ i0 t6 R5 W8 m nPoint += 390;5 {/ [1 g1 | N2 F1 S
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ l/ B2 H. a. D0 k) c5 H nPoint += 120;' {2 j& ]0 F6 @3 P- v1 {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% f% m* s3 I- |8 _4 s nPoint += 150;9 M, F8 X; u$ J3 k9 R" k, w. N
else if( nJob == JOB_FLORIST_HERO )1 {' m# v: G P I( x8 ?" W& c
nPoint += 160;% z! o* {1 G$ E& E
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), L$ k; {- B# ` [$ G
nPoint += 180;- s; c' A: p4 t% O5 G x* Q
else if( nJob == JOB_ELEMENTORLORD_HERO )0 I6 D& d: Y; K
nPoint += 390;
4 U Y2 T: j; y ^0 ^- ?+ p/ f! j/ h$ y' O* B& r2 \( Y
AddSkillPoint( nPoint );& Y2 w) k3 b/ K6 Z% u8 F
m_nLevel = nLevel;
0 m. t$ {" s( [- B+ Y% G ?9 N( k& m5 ? i% [0 ~. B
SetJobLevel( nLevel, nJob );3 v8 ~, d1 ^; Q) H2 ?
m_nDeathLevel = nLevel;
8 q/ \, [. b2 I, |#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* I7 y/ G3 S4 A$ A2 q if(IsMaster())# Z' f( M% ~ ^' t8 A
{/ T- o' }# i n( y$ \
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 m7 A, w+ p$ ~+ J8 r4 B
if( nLevel > 59 && nLevel < 72 )
! l4 `$ h7 |# r P) X4 r* d dwTmpSkLevel = 1;' c/ ^( Y& |; C5 Z ~ `5 x9 |
else if( nLevel > 71 && nLevel < 84 )' n- Z( _$ \* [+ N; E0 O+ e
dwTmpSkLevel = 2;5 _8 G; i# e. d
else if( nLevel > 83 && nLevel < 96 )# G3 g4 n8 D% ~( J
dwTmpSkLevel = 3;6 d- c8 b& I7 s$ `
else if( nLevel > 95 && nLevel < 108 )) y3 R( z# r/ n
dwTmpSkLevel = 4;
7 F, O9 g7 Y/ @* G+ @2 n else if( nLevel > 107 && nLevel < 120 )
" U- {3 A. r5 h& I dwTmpSkLevel = 5;) N% S; p. z1 O" B" t. I! p; |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( X" u9 H. S6 P3 o/ n {
5 d' @! i3 I/ c% u T LPSKILL lpSkill = &(m_aJobSkill);. }4 y5 `2 a9 N$ I+ V: b( i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" @" {( N3 }; ^1 Y {$ K$ ]7 n" X. Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ }" E7 X) S8 }# r
if( pSkillProp == NULL )
* Q! B9 u8 z* I6 `; k d j( ~ continue;! r" A" i7 x2 {+ r5 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 P/ A( D/ j& r+ ]# C* ^ continue;
' [! j. ]* P3 O$ u! d8 [ lpSkill->dwLevel = dwTmpSkLevel;
# j9 t0 y1 E+ L0 a }
4 J1 W# o7 f$ x* T }" g. j5 s' n1 i" B/ F1 Z
}" S* t8 g0 Z% d [+ R9 G! V, v6 V1 X
else if(IsHero())
* h4 x/ Z, o. L) k5 S0 J( u {
; x s: l0 Z5 R, e) Z4 t$ i for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 H; A7 Y- Z4 b! Y' R$ b
{
6 g7 l3 w7 l9 z' r2 A# L! o; J8 z LPSKILL lpSkill = &(m_aJobSkill);" s; O: j8 f4 h+ R/ y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 J# o2 n/ u3 B* t$ |" Z3 v# g {
' i8 l. d0 H& h4 n" q8 b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / L) m3 l7 _5 R- H# O* L7 j
if( pSkillProp == NULL )
L, U6 p4 n6 l; c2 U3 J. ] continue;
) f- D Q- ]" `9 G- J U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 K( _7 q: v9 l0 U8 @# x continue;" M8 |2 W$ F- E
lpSkill->dwLevel = 5;; w Q3 @( V' L1 P: N
}1 Q9 B3 B- Q0 t ]- e. e( q' u' M: E
}) c6 O: l t( Y' n4 l! y/ `; Y
}
8 H8 }9 e9 u0 O4 \5 r4 ] else if(IsLegendHero())$ M: k3 f2 T2 M% h! r# ]# b
{! y3 i: V# l9 L! t5 X- ]. X6 [: f% A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" R; [" h6 D' X% \; |0 B) ? { ; K, O" @( K3 U; K6 e+ p
LPSKILL lpSkill = &(m_aJobSkill);
0 D2 e. ~: }, T8 I. f if( lpSkill && lpSkill->dwSkill != NULL_ID )
% d3 G7 [. Z4 h) V: x9 C {4 e+ h) ?) X$ r7 n" _3 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + t6 r) i& H. P- c: p
if( pSkillProp == NULL )
; R& Q4 A w! F% X" l continue;4 Z$ c8 ~# u6 t9 R: J- t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 Y# C# N! n2 a$ ]% q7 g
continue;
! c$ g( J+ u2 C2 v- t* R6 z% ~ lpSkill->dwLevel = 5;8 q# Y2 Y" p# v T
}1 t5 [3 F4 n7 p2 v$ X E
}0 |( J) U) U! u9 G) F& b' j$ d$ I& P
}( ]# n! L/ k- {' b0 r6 K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 X. F" \3 X( ?7 w6 ~0 Q
if( bGamma )$ K9 A! L, Q1 ]# C
{. @( r$ Y; j8 L! F3 v5 x
m_nExp1 = 0;, i8 @) p, w2 N1 i- O
}
5 Z2 p, D7 ]+ C0 }' e
/ i8 I+ \2 K9 g ( (CUser*)this )->AddSetChangeJob( nJob );5 M9 @, f6 M. P f8 c" _1 G' i
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, M' j1 w) a( _; a1 F9 T8 C3 e
* _$ |0 x3 [: _9 ~! L
( Z& t, ~" _, k$ t+ l2 B#if __VER >= 11 // __SYS_PLAYER_DATA
; h2 t! P8 Q1 z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& b6 F& w2 F7 }( T0 S#else // __SYS_PLAYER_DATA
: \+ w# l3 M! P0 E) U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, j( H: `" A) p1 w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 g* T' i9 a( z. | if( m_idGuild != 0 )9 f" R- P4 n8 x+ y: \1 y. a. ?/ I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ c: @: u- u# z2 c( N3 l
#endif // __SYS_PLAYER_DATA
) |5 r( O! a. `: T% U+ b G" @ SetHitPoint( GetMaxHitPoint() );
( m) X; h0 H5 K* D2 F SetManaPoint( GetMaxManaPoint() );
, ?( K4 i. s% m1 A# _' x* @ SetFatiguePoint( GetMaxFatiguePoint() );& J- ^. |. i4 }7 _$ }) x! }0 Z7 G
if( nJob >= 1 && nJob <= 4 )
! @4 ]; \& N- m6 g3 l& V7 \ {5 s8 t% d2 m. R5 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 ]7 z( ^ R7 ^# Y ^ m_nRemainGP = 28;# ]; v( P5 v$ k" ^& W3 \8 A
}3 ?9 g1 ?+ d$ X
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. e' A7 ]) q0 H% A {4 v. T( U; V& Z5 M8 [0 ]; N7 N0 i
m_nRemainGP = 118;9 ^8 w3 K6 a$ R, m
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ i/ d& d. h* h6 q) _- [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 ]" z5 u# v6 r% K( q }
, Y1 N% y7 N! |3 C$ N' E7 E, [ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 I% ]4 `# g+ @& g4 e6 h/ {
{
3 D$ A' H3 E3 `" H" e& e CItemElem itemelem;
# j, S6 [2 ~; f* b/ L s3 s itemelem.m_nItemNum = 1;, s8 S& k. b# T* e. B
itemelem.m_bCharged = TRUE;
* H u& D! {9 o5 Q. V. I) u6 @ BYTE nID;7 }% o6 J& C) T) l" P1 S
! ^& d( h5 I0 Z; R if( nJob == JOB_MENTALIST_HERO )
' b% K0 g" t, y# Z% c, j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 H( S* q: h, E/ J" V. w if( nJob == JOB_FORCEMASTER_HERO )- l( F: Z3 z' n/ y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ R4 D1 D, t* Y9 V7 l2 ^+ | j3 ^6 q! V" e4 j' T
( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 n+ n) ^0 J) n) J5 x" x }' d# Q( y# W9 p
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 C9 ?$ n+ y+ d( p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& z1 N; m+ F) o1 n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
B( B6 p0 t9 L2 [. k+ x. g1 v: r /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. T3 G: d- [* W$ q' X8 P6 I& A0 a ( (CUser*)this )->AddTaskBar();*/$ Q6 _# n: | _0 q5 V, W
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) a2 Q1 t9 L- A! I+ a4 N#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ F/ h& ^. a# s0 \/ r0 E
((CUser*)this)->CheckHonorStat(); O& |0 u9 e n) H7 }7 J
((CUser*)this)->AddHonorListAck();. {2 m& P' }( z) y7 L, R/ v5 c. i
g_UserMng.AddHonorTitleChange( this, m_nHonor);
; B3 |* u/ U$ s. x. X& Q#endif // __HONORABLE_TITLE // ′Tà?/ A7 q0 t! h0 x/ i/ L% h0 Z
}9 A7 I9 t( c6 s- T3 @# D
#endif // __WORLDSERVER+ f) w' _, K! S- s* Q$ q, W
}
8 C: N$ L1 G3 f# m8 v" {
) y5 y5 I. T/ t9 {2 r( O) |+ {& `然后你进入functextcmd.cpp并添加以下# R5 o. z& _; k4 i% g+ |
; n/ g6 T) F# ^) X4 ?% E代码:" v! o: ?. a! G# M! U% o- y+ w A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ w F! L) [7 g8 u- Q下面插入
e f5 P6 r# A% l+ ?" sON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
F* y% t7 f ~/ e: F4 N2 H* W9 C; h* u( w0 S# R. P0 r8 s8 _* o1 C
然后你去- o) W; K) V8 w/ Y1 Z" i) i& k
5 M5 l5 D! t# d" e. M3 k2 l, W代码:
# Q u: T& V* m) t; V代码
2 I) x1 H" V3 J. M/ e. d2 RBOOL TextCmd_ClearPropose( CScanner & s )
+ c/ n! ^" F; ]4 |- ^4 \{$ k* `( ?. p8 {- s
#ifdef __WORLDSERVER0 p& E6 S* q. w9 n1 p
CUser* pUser = (CUser*)s.dwValue;; U0 [0 a B. z1 J9 r
g_dpDBClient.SendClearPropose();
8 [! A1 ]' L' `% r#endif // __WORLDSERVER
0 X1 E _7 [9 |" d0 I! I return TRUE;% w0 z& `. F/ j6 @- M& d
}
2 \6 W8 }7 Z- y" e b9 N; L下面插入) z6 g* e& L0 u3 ~8 ?# m+ R) ~
BOOL TextCmd_rebirth( CScanner& scanner )
# s' L2 t [; S* p7 @; a{
. M3 T7 Z7 ?$ E4 D; u$ r) W#ifdef __WORLDSERVER& `3 J2 }! z# B {4 t
CUser *pUser;
5 |# \, }# u0 b l( U4 SpUser = (CUser*)scanner.dwValue;0 s. g! V' j) L: _" F# E& t2 x3 v' O, H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 e$ \) R/ j2 ~( N6 u9 xpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 Y+ L/ x6 W! k4 ielse: v5 h) a( q# c7 v% E0 | ^
pUser->AddText("你还未达到重生条件!");
3 T# V; b) @3 i. f#endif! k9 `/ X# m3 B0 U% [
return TRUE;1 |, W# i/ Y! J2 c% U
}
' ~7 W' r% N/ r# U- v
: k7 d& n9 v1 G# ^+ v1 s$ ^9 T2 u. L/ t, L- |
; R* {6 b$ E5 X1 a% L2 I* [9 q
1 a+ S5 `7 ]! u& Q" f- b/ \9 K |
|