|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 c6 S3 G+ B1 m# {4 e$ r8 J. \ d7 @5 R, q1 R; N" y" ~
Mover.h
( J$ K8 J: ]5 z5 l% Y代码:
: |) h, U, r9 h1 v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' o) @& @$ D* O$ P8 ]; ]
! j7 {7 [4 `: J- ~3 {, A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( S/ w: A5 c" T0 q: \
& b% ^' J: r8 X. s9 y* r! f
然后你去mover.cpp添加
0 }, x+ A6 X6 `5 M9 K. J
$ N4 G( {! v2 o; N& {- Q% i代码:: z7 s" f. E3 J- ~
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 Q" k2 j0 _1 q: E6 ^
{* C) g- \1 x0 |4 u/ [5 r; Q4 O; _& q
#ifdef __WORLDSERVER
/ Y9 C# E" y, @ n3 Y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ b0 O3 n7 o4 u* o& ] MoverProp* pProp = GetProp();
4 L. I8 {) O; S3 n1 N if( pProp )9 G, N6 k8 p: i# y5 h% D# s# o
{
! g( P0 d) }& z2 O if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 `' q$ }8 O) r% K, l6 y6 @
{
1 z% |( X+ S' `- h* m1 p AddChangeJob( nJob );
/ c; d& j+ Q9 x9 M+ U }else{
- q6 ?$ J2 f7 B! W8 k return;7 U' q5 h& N. g3 L5 V2 }+ x
}: b# B( I. ]. r/ m: w" h" n
int nPoint = 0;
- K9 ] j0 @/ P% R8 o# \6 m if( m_nJob == JOB_MERCENARY )7 P9 W: o% y q) E3 ]4 c
nPoint += 40;
3 r% b" H* l4 Z, @; y, l7 } else if( m_nJob == JOB_ACROBAT )% O2 J) q' m; H* y
nPoint += 50;
3 a6 i7 I- d% ^. \- ? else if( m_nJob == JOB_ASSIST ); j4 A$ I9 }4 r2 O$ \' W( N6 C
nPoint += 60;
. Y' E! G9 o4 y8 J2 @ else if( m_nJob == JOB_MAGICIAN )1 L% j4 \# c& q" g6 b5 l
nPoint += 90;
* j7 w( W. _/ u5 q# R0 R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 _2 H" W) F- V( j* G& J* V" s( T2 M! s nPoint += 120;5 I3 U+ O4 |2 y2 `) E
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 |6 U" v7 w* r! K
nPoint += 150;
3 ? P( n1 U* p- t! b+ d else if( m_nJob == JOB_RINGMASTER )
; z) l0 g8 y K9 e nPoint += 160;
% B& V$ B. [% Q+ { else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( L9 {/ P+ Z, k7 S* ?& i" w3 l% q nPoint += 180;
# ?% F, ]: K3 o else if( m_nJob == JOB_ELEMENTOR ). h. p5 @! _& ^- y$ ?% G6 `3 q
nPoint += 390;1 [8 z4 T1 l! g, }
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 c: t* @ s2 B0 |4 e& p: e
nPoint += 120;+ s( r" e6 F {' h3 p" ~! b$ L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 \$ y+ i& s" r, R& \: t. V l nPoint += 150;7 ^" r5 H3 {- k0 A c2 Y5 P' y
else if( nJob == JOB_FLORIST_HERO )* @. }0 }" z& w! e- I. X7 c
nPoint += 160;9 W7 q7 I0 G+ }0 k* k, g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& v3 }% h2 a+ U. x9 ~
nPoint += 180;
7 D0 K# r3 m% {2 ] else if( nJob == JOB_ELEMENTORLORD_HERO ), s& U0 m# D; ]
nPoint += 390;
8 R, |( A! E4 A [# g3 N! A. \8 m! J0 W, ?+ O' ~( f* T+ X
AddSkillPoint( nPoint );$ V! |0 u; ^9 t- v$ R
m_nLevel = nLevel;
+ g. D" q1 V3 q) x; _. c& Y3 T1 e) ]7 P
SetJobLevel( nLevel, nJob );9 b& |8 b- U5 b- z N
m_nDeathLevel = nLevel;
8 t; T& n: D# k0 |& f& W$ u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# h2 r% Q+ Z* ~5 t+ Z if(IsMaster())2 {3 \9 }) L) \9 m& @8 Q h6 m9 ^
{$ O+ a/ K3 Z0 d n# b4 r) I* H
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* r! s1 M/ k" ^+ P* N$ H. L5 r9 ~/ X if( nLevel > 59 && nLevel < 72 ) L5 h6 m( d- h# U k( Q5 ]1 |4 j
dwTmpSkLevel = 1;! `+ \+ ?/ w) o; d/ `
else if( nLevel > 71 && nLevel < 84 )
$ z7 y: J5 e- N5 ` dwTmpSkLevel = 2;" D# m0 g& Q! t3 ^; I: e
else if( nLevel > 83 && nLevel < 96 )# o9 b: y6 B2 x7 _* G+ ~
dwTmpSkLevel = 3;
% l" |' w& V- A; c" M9 ~ else if( nLevel > 95 && nLevel < 108 )7 X' I1 Y6 d! y) Y6 `4 B5 ]0 w
dwTmpSkLevel = 4;
, U4 \9 y% U- ?3 w8 w, O else if( nLevel > 107 && nLevel < 120 )) e, n; ?5 M% S4 R5 ]
dwTmpSkLevel = 5;
1 \; s; X8 _6 D1 _& { C for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( i7 ^* `+ b) ]$ ~# z
{ 8 I* w. `1 K2 O
LPSKILL lpSkill = &(m_aJobSkill);
: c: r8 \* [; o1 t: Y if( lpSkill && lpSkill->dwSkill != NULL_ID )
! S5 S5 ~! T0 Z6 C; j# \, | {8 P _! ]( F, }- p$ T- U, }* O N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 I% Z2 r/ M d if( pSkillProp == NULL )0 I5 [1 m8 S2 R! S% s& C& V
continue;( H2 N( g" O1 A% a3 X2 H5 u7 M& Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; s! H* g: C0 s; T( x. R continue;' \8 I2 A- o& j( s9 K
lpSkill->dwLevel = dwTmpSkLevel;
) m# _4 u& W; \ }
" X; a7 n' q2 Q( P1 E& N9 j* q }
. G) G+ T) O" m: X% J5 k }0 K# f1 ?% H9 C0 m$ G: A
else if(IsHero())) m+ h3 @9 u3 N$ u6 o$ f
{) ?- i \1 J" o+ m( [ j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. ?; C: l1 o6 l: K {
% c; F$ }. W* e* ~5 I LPSKILL lpSkill = &(m_aJobSkill); R' @/ k/ n9 c& y S5 n; B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& I/ ?, U/ M( A' Y' {! R0 W {- `0 y) H+ a% Q9 }3 O8 f' M" H% c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ N+ r+ c& j: J D7 w if( pSkillProp == NULL )4 h. M3 J1 s' i6 ~: @
continue;
7 u) r& ^* ]/ q9 F6 G; X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! M" C4 h! p( i' T continue;% o" G. `5 g" U# D% p
lpSkill->dwLevel = 5;
" T( J$ S6 f! _4 }5 K" J6 }1 p( g }
% C. I; e% P, y8 M' ~) U4 D5 }9 F }" F2 c4 J: ]# Y2 c, Y5 l
}$ F- t2 i( k4 P
else if(IsLegendHero()). x% d! H, i+ r v2 @1 c
{
+ B# b3 g; _% O for( int i = 0; i < MAX_SKILL_JOB; i++ ) . a/ ^$ p, j4 C6 M: T7 _
{
1 H+ D- H: ?4 p" j9 ^/ J LPSKILL lpSkill = &(m_aJobSkill);
1 R! B9 r3 M, p8 A3 [5 L8 ~1 v if( lpSkill && lpSkill->dwSkill != NULL_ID )
# |1 ^' J1 ~) k. v! o: g {
. g1 ?8 r- N" g% v8 t0 e$ Q% X# j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 c3 {# f% Y* o# {- `' b
if( pSkillProp == NULL )
8 b$ B) @+ Q) Q3 {( h& z7 S$ l continue;
3 i6 \0 s* W" A8 |& b" z3 E0 j9 V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 e+ f2 N6 c$ q" c5 e
continue;- l: k5 T% Q' {2 q E
lpSkill->dwLevel = 5;! [" s+ N, @+ S6 g( @* [7 C
}
* D; T- U6 G- }9 T7 b }$ B1 s8 e$ p$ b' B4 U
}
6 S% z" R9 r+ |#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! x, v$ [" \9 `* V4 |) ] if( bGamma )9 F* |) m3 [( E! ^& M& z
{
2 x/ W& \; H4 R6 | m_nExp1 = 0;
8 _ r. I" C4 b% ?- e6 s( O. D6 {) N }
2 I8 n" M5 ~1 t4 ]) ?1 j
7 h$ y* [' Y$ H& ]& | ( (CUser*)this )->AddSetChangeJob( nJob );
: p8 M; x* d3 d ]& L3 I1 l' ? g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. k9 d( Z$ V; Z) S- J3 y
4 @8 O4 \' U2 U- r: [+ ^0 v
4 P0 c+ d2 I2 O% \8 g3 |' ]#if __VER >= 11 // __SYS_PLAYER_DATA( O# w! k/ B7 V' [" E t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- f- M' K7 Z4 _ [* E' c3 d#else // __SYS_PLAYER_DATA
; [) E3 W' d5 M* B, A. H g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 E, z% z+ c8 n! _
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 Y& G, u; j! y j7 o
if( m_idGuild != 0 )) \& V+ ]1 p! n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 X" W* ~8 }0 ^9 K0 R/ |) L% ^6 R
#endif // __SYS_PLAYER_DATA
8 r4 ~, j4 W3 _- B1 n SetHitPoint( GetMaxHitPoint() );6 ^) `; ?" {; a9 E* P
SetManaPoint( GetMaxManaPoint() );
. _3 {, `( E3 w* V* T SetFatiguePoint( GetMaxFatiguePoint() );
! T. `( R( r$ ]0 @" M$ B if( nJob >= 1 && nJob <= 4 )
T2 O2 b' s7 N- J3 p8 u {/ F' [4 @, G. _8 N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- W- G% l" r7 v- w. [ m_nRemainGP = 28;6 F2 D z2 C8 z4 b6 U4 {) j/ M
}8 X d5 N6 R! J. k9 q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. U7 m; Z# V( k- u! K {
5 s7 w0 s' Q% d; J+ j8 F m_nRemainGP = 118;% `2 \% s! Z0 {( t+ q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 V# S4 y2 x) \8 D! t* P2 a m_nStr = m_nSta = m_nDex = m_nInt = 15;
& }8 L ?, C3 {$ e. Z }) B& j6 M8 m, t5 m
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
P# P' J7 U$ d% y {
6 u; V; w; X X7 p5 p9 W CItemElem itemelem;- I- K% M. u; J R' l8 \
itemelem.m_nItemNum = 1;
" u) ]) h4 a0 B, C itemelem.m_bCharged = TRUE;; M+ k" S4 {* I- `+ e& S f: ^
BYTE nID;3 c# o$ F) Z2 X; T, J6 T* w% q; [
# ~2 c4 `( A6 O" {1 @# v, G if( nJob == JOB_MENTALIST_HERO )# E! f2 s% l# Z* ?1 q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( O0 R4 }9 Y( X if( nJob == JOB_FORCEMASTER_HERO )! l0 j0 |; Z, @. f7 ~, j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- J0 i) \$ Q: T0 A5 h8 _* M+ }
: n5 `. U) f* U4 m) f3 j ( ( CUser*)this)->CreateItem( &itemelem, &nID ); ~) @6 _8 |! {; Q" U4 ~" X0 J
}( m1 }7 V3 v% O4 O4 g7 g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 }% K. e! U2 K! @/ R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 [. F% Z% f+ G m% x% f; F% U: O
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 B# o5 X( |# m7 f5 ?" p5 U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( D+ ^! l" `7 d! o7 I# b
( (CUser*)this )->AddTaskBar();*/
2 L1 O+ a1 I( H) k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 u0 x$ B% f/ }5 J
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) L7 c' M. G. ~/ e8 ]$ a: W
((CUser*)this)->CheckHonorStat();) t6 U9 K/ K) C
((CUser*)this)->AddHonorListAck();6 T0 y+ y' f* v" C# N7 Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);- g& g& ]9 G4 y: ^8 u+ m- ^
#endif // __HONORABLE_TITLE // ′Tà?
5 q$ c, Y. \8 J8 Y" `( m }& a2 Y, a2 G4 R* z6 C" i
#endif // __WORLDSERVER
. e3 f7 q5 u- h, t- N+ F}
: E8 Y/ Z1 }2 _0 V# c8 t/ @' P: L( w, C4 V' q( m
然后你进入functextcmd.cpp并添加以下7 A/ s+ Z8 U( q# T' l; j
8 i# x [, F6 b1 I# e代码:! ]4 M5 X0 B7 |# {) h* u' s
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 y. B/ b1 F+ I) `7 ~; J+ a. ^下面插入
) h7 P2 E( T J& ~+ W7 CON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 v2 h) ~) Q4 V* x
1 k) G* _' C$ `; b$ }; k4 o& J' ^然后你去
3 I/ ?5 @- N- _; m6 S* P1 K; {1 M# g% z/ D Q' Y) p
代码:
$ [( Z5 W! V8 X9 P( Q7 L& F代码3 `- x5 E& N( f( u) E
BOOL TextCmd_ClearPropose( CScanner & s )
. V4 R* e4 R" T{
1 B% b6 x: m1 [5 w* _! H% A#ifdef __WORLDSERVER7 a# Z) Q. f) V- x
CUser* pUser = (CUser*)s.dwValue;
6 m8 t( }) O+ f& S$ Y! m4 z* `+ N g_dpDBClient.SendClearPropose();' z- p# I) T3 z9 j# G' g7 i5 ? H
#endif // __WORLDSERVER! c& A1 e8 d$ ?$ L; r2 b, _
return TRUE;5 Y; P. }! E# {2 o# `, e, ]
}
! \- p( j" C) X3 c7 o下面插入
, f+ B& i- e# c; ~) m7 y5 j; i5 fBOOL TextCmd_rebirth( CScanner& scanner ). z% n" ]4 ~4 m4 X
{; |; {: u- m4 h( N. n
#ifdef __WORLDSERVER& p# E7 X' F$ `! ?* S8 W. ?- d
CUser *pUser;
+ k0 t4 Y! u4 TpUser = (CUser*)scanner.dwValue;; B4 s# X$ F% i' i4 R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 _$ [" J4 }2 t' [3 g& M; npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 O' F0 H0 S/ ~
else+ \5 Z# t1 r4 |3 b% q' V0 }" U
pUser->AddText("你还未达到重生条件!");
* V7 z% g( [' L' B#endif5 e# N- n$ E/ @$ c6 o( X7 v
return TRUE;
- B8 O8 U z- L/ z}
. V$ b" T* X: R# u* D; B2 M* ^6 s$ Q: F: j, Y7 O- D
/ L6 u1 F+ J$ y& u. C5 k$ x5 t
$ k& |7 z( ]( h. a
) S" ^. `! M. z6 d |
|