|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# a7 f4 D9 q6 x9 l8 U- a- U4 d0 I; O; t
; h+ `9 Z+ B9 ]6 z/ OMover.h
/ i0 a+ U- ^$ _& V2 a代码:
7 s9 {' M7 y% Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü r9 |" z1 \/ i8 S2 {
% P5 F, _8 R, y6 v& R* ~2 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 R" `2 I* V/ u6 `/ J9 { c& Z# |/ V: M! b2 x
然后你去mover.cpp添加
8 p& A2 S. A4 _ C9 C
. y, G, R" `2 S代码:
& j2 _+ o1 w: v* P. {. Z" C- Ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 F8 x# b. a: O$ h& K/ U7 o
{
5 U9 T9 }0 ]/ P' a8 T#ifdef __WORLDSERVER; d& O: j$ a5 W% Y
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: Z; T8 U" b* B' ~( F MoverProp* pProp = GetProp();' m9 ~3 h. R% k; G" \3 _7 S
if( pProp )7 H! q, L6 K& Z; g* B& y$ f& I
{
7 P Y9 f' u, U; m* ?3 W if( nJob > 0 && nJob < MAX_LEGEND_HERO ) G1 A" g+ d- F6 A4 v/ ~
{) a$ i1 m/ z1 H- k& Z, j* P
AddChangeJob( nJob );" ?& p- ]% A7 c8 t: r) a
}else{
0 U% \! E& Y+ l+ k$ ]2 ^ v return;
6 a" r, F2 b0 W* k" o }
$ }7 U7 y' u5 o int nPoint = 0;, ?7 R" O; E1 e1 d. \- |' ^% c
if( m_nJob == JOB_MERCENARY ) l% T, w/ O# v0 l' d+ S7 I& b! }
nPoint += 40;
! _) b; K+ a8 G+ ?; e- |8 {# H( B else if( m_nJob == JOB_ACROBAT )7 i9 K) M. U/ f+ `1 D# H/ r
nPoint += 50;
1 t, O6 d+ c- k! U; K3 E6 Q9 u else if( m_nJob == JOB_ASSIST )0 @' z, [) i+ O8 {& Q
nPoint += 60;
7 l+ a; R( E) F h/ @ else if( m_nJob == JOB_MAGICIAN )
" N3 b5 H! T2 p2 J9 F1 G* Q# d; D nPoint += 90;
; X9 P7 w! H0 P4 H1 I else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 e. U3 e+ f! _- U. y ^9 C/ ? nPoint += 120;8 O4 ^, f. S& s
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ O4 V8 F" Q$ I4 a0 R1 w* J
nPoint += 150;
& h0 `: Q# j! e) A" `+ ?% F1 Q else if( m_nJob == JOB_RINGMASTER )9 Q0 ^# g' i* b: N0 j
nPoint += 160;
! a I, S4 x7 t& t, j u# K& H else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& q, S, e! Y- T2 O' W4 N( f) L nPoint += 180;
/ W$ R) Q: l" r else if( m_nJob == JOB_ELEMENTOR )
) R. W N* e+ y7 E nPoint += 390;
6 X9 g; H- |) _+ h2 k' V9 Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* v* v: a9 K9 J, [
nPoint += 120;
8 B$ Z5 e, B+ }4 Y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! s+ |3 z- j4 M/ L0 Y4 G nPoint += 150;
( y& ~# K! d$ f else if( nJob == JOB_FLORIST_HERO )
4 R# a% n ~# ?' g; Z* b7 n5 ? nPoint += 160;
% R* x: E# V* S7 X# ?$ ?5 V else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* u3 F7 D- \) P. ~ H' \
nPoint += 180;& l2 n* E& D [0 _8 ]9 s
else if( nJob == JOB_ELEMENTORLORD_HERO )- X4 b$ Z3 o; t* j) ~
nPoint += 390;
) m- S }* t& |0 M$ u& U1 Z$ x0 J$ H6 g- P. z' b1 ^3 m# Y
AddSkillPoint( nPoint );; m1 W- X$ t% E g; S/ O4 E
m_nLevel = nLevel;5 n7 B5 O5 |0 C5 m$ M* c& B; W8 k9 s
( q5 A `1 I+ K1 b6 J SetJobLevel( nLevel, nJob );0 X' ?: V5 i4 Y
m_nDeathLevel = nLevel;
) x/ w6 H A, u A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( I% N. H. W! X6 B% L" P if(IsMaster())
5 M, c4 N0 T1 @ {
n6 p- Z R' j/ D3 r: I/ y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ \' N5 j" Y& r, d. Y( A if( nLevel > 59 && nLevel < 72 )+ W. t) Z; j* G3 O( k
dwTmpSkLevel = 1;
0 Q1 V& N+ }/ N5 U else if( nLevel > 71 && nLevel < 84 )7 X& f4 E4 q9 |4 f4 p2 a
dwTmpSkLevel = 2;0 r* i( Y% Z5 h8 A+ t7 ~* S
else if( nLevel > 83 && nLevel < 96 )
1 I4 h V# I2 {8 j/ ]9 P dwTmpSkLevel = 3;
2 j2 f. H9 n2 P6 x; F$ v else if( nLevel > 95 && nLevel < 108 )
+ _1 V2 D" ?% A2 J dwTmpSkLevel = 4;& ? K/ p& f; j+ w
else if( nLevel > 107 && nLevel < 120 )
+ I. S9 U! c4 }2 l9 r% v2 G" r dwTmpSkLevel = 5;- Q" c) d. d! R, K" g6 z5 c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# V. ? k) ?4 | {
* F4 z6 O0 k5 K) ?( G: k3 _ LPSKILL lpSkill = &(m_aJobSkill);1 x' m, q- A6 o' o7 Q% @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 g7 n/ h% ~2 C# Q% f- J3 }) x$ f: g {
& Q- `7 q% y$ x* A; D! c" b; e' B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 Z" l! S' H1 {8 O) i if( pSkillProp == NULL ) b0 Y/ K: g) v# A# a* L2 P V
continue;
6 x2 W6 H. w7 B1 h; u* E3 X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* X3 H" B, w+ ~. S6 v& V, j$ j continue;
; X( M( r4 E$ {' J4 S& x lpSkill->dwLevel = dwTmpSkLevel;
* ^6 e, v4 ^ _" U$ T) p9 l7 T& N }/ [( Z- m5 R' }) S' |( S+ l
}
: q* X3 c) D* ]' I% h }& l- c5 z2 e4 T9 A" q- L
else if(IsHero())
2 N+ R: j% n0 i; l" V% ?& s {
: ]! b, @( z2 G' y for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 C/ k6 n/ [4 M0 d$ e/ _; q { $ M+ ?2 Q8 C. P1 e7 l# o$ n
LPSKILL lpSkill = &(m_aJobSkill);9 Z+ r# e. y& N/ G( I( Q- H$ r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* y# _! L$ T- q+ R& S {6 E" A$ z+ `0 Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 w0 h+ b) d9 n8 W0 I
if( pSkillProp == NULL )5 @* ~+ h7 \/ n ^) F
continue;
" O+ s6 ^7 c# M9 T! m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 O3 e2 c. G: q7 M3 U+ w' d) I
continue; }/ Q% S1 K4 h" b9 H. a5 R/ S
lpSkill->dwLevel = 5;# R" p, m, A% `
}9 d; z) T6 |' y7 d5 H0 r& B
}
3 }/ q9 E$ p$ ~# Y# {5 d; b. f D }- j1 k, V0 A# `6 {% ]
else if(IsLegendHero())$ E8 j% \3 E: V( `# o3 ]
{4 d1 e7 e0 l/ h! V- G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' F- ]& M, {( j# K' U% u
{ 4 G2 ]4 A' w% M! u( j5 h5 Q8 L8 C
LPSKILL lpSkill = &(m_aJobSkill);6 C! Y7 O3 w. U/ m8 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )! b4 Q5 |: B0 i4 X: `& T6 [+ H" `2 E9 m
{
. A3 Y7 Q+ t) Z) I: b0 J, v% F3 e9 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " P! g' b' e$ X
if( pSkillProp == NULL )
7 y [# I. c2 K' a& T3 I continue;
( b$ x* z1 e- C( n1 s4 q5 G/ s% V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 L, w0 h! d5 @1 c- i4 q continue;
: x9 ^. _0 }$ T r' X lpSkill->dwLevel = 5;0 A) [' v/ W1 J4 L
}
; g& A: v Q% C* S( K8 }; j }
- s# E! |- o% y/ k }' B' Q7 l, t$ u- D# E
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 C u e% y1 h9 U* g% A# ^1 Q if( bGamma )
7 C4 D* V, |8 q H% @$ T G' Q {
" s i) A w; L/ w$ |. E% V& [/ s m_nExp1 = 0;
8 Q: {6 J' i# z }1 u' M. z$ O: X) o8 s& y
2 L5 @- X" T. ^& e+ F$ Z ( (CUser*)this )->AddSetChangeJob( nJob );
7 E+ `3 d7 r- o, b. G, S g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" G; K( s. E8 [( k4 w, \8 O
+ s8 L+ `2 z6 Y/ C+ ^4 [' N
" f% J0 U- r% I# }#if __VER >= 11 // __SYS_PLAYER_DATA( F. f3 A8 O2 T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, V9 K! D' T2 q9 C# W- A" k#else // __SYS_PLAYER_DATA
^- f4 U- {, i0 R- {( x' ?+ J* ? g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) q* x0 E5 U/ Z& ? g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 k7 O( t6 B* D! p if( m_idGuild != 0 ), ?, q' M3 j2 H$ s: @; I' @1 z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& i9 ~$ U8 i& U#endif // __SYS_PLAYER_DATA5 [7 v. |4 L" n& y; B/ ?9 H& y! H
SetHitPoint( GetMaxHitPoint() );! D: I& J/ n* Q+ f! @7 }0 A* d
SetManaPoint( GetMaxManaPoint() );
' Q j5 D, e+ U: R SetFatiguePoint( GetMaxFatiguePoint() );
8 M- h8 Z' S9 r: [5 _0 v if( nJob >= 1 && nJob <= 4 )
8 p% \" G: O) o0 m" S: s {
& _$ k1 i' ?2 J. j" W) V m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 U1 _' h6 n4 G# j6 v d3 U m_nRemainGP = 28;$ |) j1 D1 Z8 T5 k
}2 p2 {1 ~- U& H% q; n3 T/ D) \
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ f# L% y/ \8 D9 a {
" A R, C M% w) _% B K; m m_nRemainGP = 118;, x! n8 f) y5 p+ n9 j7 m" j) P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 X- r7 d' }" \# D& M
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ C0 ` y" u% y$ M7 c1 [ }
- a [; z- b9 a9 }( T if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 U+ w9 G3 o( D/ ]) z% D {
+ K9 a8 m7 p9 w) g! B! h CItemElem itemelem;' Q4 n' [8 T" r+ @8 t
itemelem.m_nItemNum = 1;$ a: O: n2 U! o: k7 `6 s
itemelem.m_bCharged = TRUE; y, J& u- G2 Q6 l
BYTE nID;
+ _ i6 z4 Y( `! d8 |0 t
' |8 S7 _/ {0 c- e* b( r% a2 x( U if( nJob == JOB_MENTALIST_HERO )
0 s: ~" w3 c" `+ o1 N4 {- s, G itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 l3 ^- ~6 H) O
if( nJob == JOB_FORCEMASTER_HERO )
/ n2 b7 l& v! I: r; A0 J' Z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' q, Z/ s9 ~; j; H* W8 T5 s
8 N" @9 _6 O. @2 C7 ~/ r ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 h* U3 `( ]2 h y }
& }6 k" N4 O" j* c8 b2 Q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! c' \8 [ F2 b ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 Y1 x$ r; C$ G6 f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. g n! C; W; \" i /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# _& j9 P$ Z# j' _! a$ N$ _
( (CUser*)this )->AddTaskBar();*/, G; t% F" U1 z6 K1 W: ^+ k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: s' B1 \, R7 p: _#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) ?! ?0 h. h( {% z7 a3 M( q
((CUser*)this)->CheckHonorStat();; p" x1 w( p3 C/ V1 l) [% i
((CUser*)this)->AddHonorListAck(); K0 z5 h) _4 h% |; P
g_UserMng.AddHonorTitleChange( this, m_nHonor);) G' Y8 b! F1 _: R6 R
#endif // __HONORABLE_TITLE // ′Tà?3 J0 v% U1 h1 F
}* Z" z; l+ E- Q* O1 E6 c
#endif // __WORLDSERVER3 G; l- p. w) g- p v! X& M
} + [" q l6 X( I% W$ c5 i" Z0 H
5 M/ I4 G' k; p% A
然后你进入functextcmd.cpp并添加以下
5 {' ^# P! C) i
# j- V# P8 P& ~$ i$ C代码:
. h [- l6 w: gON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( ?- @" m# D- K* [, ^& [下面插入
7 ~- {& o: D& z) ~. ?* eON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 k3 J/ G% I% Z: ?( Y+ H ]8 f+ P
然后你去. X) S+ b$ y9 p' @* q( r0 V6 z
' Z) O7 {2 L5 O1 O
代码:! @+ @7 p; H) Z( S2 i0 b( L- G! s
代码
. r9 w) @ Q( J' yBOOL TextCmd_ClearPropose( CScanner & s )' I& G9 x: a+ Y* u0 g% {0 c
{8 W, s% C7 `" I I. k/ H( d
#ifdef __WORLDSERVER
: | ?. Q& i# t3 C/ f CUser* pUser = (CUser*)s.dwValue;" m- }, H& |% ]( I" B
g_dpDBClient.SendClearPropose();
: `- o6 S" s' q$ g& F+ K#endif // __WORLDSERVER$ x K* J; M; _5 q) }/ T) ]: ]1 y
return TRUE;/ O% M9 `! i7 t* R
}% a9 i* d$ _4 B! a! k
下面插入1 ^3 z5 Y8 i9 |8 s5 r
BOOL TextCmd_rebirth( CScanner& scanner )
5 T3 h( o3 E; i{- Z/ g" L j. F1 f8 F% N
#ifdef __WORLDSERVER- E9 @; ~6 t# A* q* S0 V% i) G! B( f
CUser *pUser;
- ]7 n, }* p1 |8 Q- i& ipUser = (CUser*)scanner.dwValue;
0 Y+ V6 E2 J# B& gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 @( m X$ A# p5 z3 s& y* R# N, P/ I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 I' A7 O2 R7 U+ W: I4 K: V. ?else& f6 W; I7 B4 q5 `6 G0 n! _
pUser->AddText("你还未达到重生条件!");
; m+ `1 v/ k' o% L b. x. S#endif" \1 r2 C5 Q/ ]* U( d% l
return TRUE;9 r3 j) q ~' G- X ^
}
1 M3 E! W0 U! d5 m/ P, }5 h( L+ Z3 y& U0 z' {- \
- K8 l- j7 D7 }1 H* ^- J1 K/ [
. q9 \, w7 C! z# ^- G
* i# u) O P% V+ e6 A! G |
|