|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
v; K* {' `/ j, r5 |5 Z- s- y1 M+ O' g# {3 g- I
Mover.h, M7 _! J' \5 @& z) N4 G3 e$ `
代码:
8 d \8 R, Y# u- _# p6 q$ W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" s4 K& U# F1 R7 b
H J; a2 f- \8 j" b0 U( B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 K+ T$ y) Z7 q( z6 e4 x" p1 ?2 R. M: @8 P
然后你去mover.cpp添加
* k% t! Q8 `7 e$ |; a; `+ G( _" R5 T7 ?, v4 g: H) V) _. I! d1 T
代码:8 I) S9 Q0 _7 C! i3 R+ o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ g9 P+ t4 x+ f: `
{
/ e. z b2 b1 r#ifdef __WORLDSERVER
+ k! a; m# f$ W) b // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: l# ?' R8 r: Q. B
MoverProp* pProp = GetProp();
) a% x3 ] I+ I9 Z7 ?3 c! J+ X if( pProp )4 b9 r8 h; a' ^+ W! N! t- @
{% \* t c/ ]8 `+ J5 g
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' ]# z6 {3 O2 o2 I; e6 x4 D% z {
+ K# Q; L7 L9 V1 \9 S; q5 q AddChangeJob( nJob );
& x% T) c- _0 t5 Q }else{- ]0 m6 o0 {' W) G) V
return;1 H" v% T' P. V
}
1 `0 ? _ m9 K2 ?! i: [ int nPoint = 0;
+ ?& O. d" v6 e [ if( m_nJob == JOB_MERCENARY )
% d& e& s; ~" f" K5 p# T nPoint += 40;
Q8 q( j# K# c0 t+ f; u else if( m_nJob == JOB_ACROBAT )
5 A% J% N) z* D( s+ L9 P nPoint += 50;
7 h# U, Z6 y5 M6 k else if( m_nJob == JOB_ASSIST )8 W+ {: a# b5 P A b
nPoint += 60;
0 i2 Q4 p+ f) v6 c8 W( R else if( m_nJob == JOB_MAGICIAN )/ a3 s6 D: w9 d" @ }# j
nPoint += 90;
0 D* w5 H4 K$ k% W else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) Y0 K, Z- k6 i( p; ~ nPoint += 120;
+ ]/ h8 }9 }: l& i$ R* S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- B! J8 Z8 w( N Q* z2 E5 N) {
nPoint += 150;, \, r# V/ G7 ?+ k/ ]
else if( m_nJob == JOB_RINGMASTER )/ J5 n$ x8 v1 g
nPoint += 160;& m( F* W+ V: E0 P( {
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 o0 `" O( H2 o, Z9 ?2 b/ B nPoint += 180;
# A) `7 x+ l. @2 M1 H' ? else if( m_nJob == JOB_ELEMENTOR )
: l/ S: i5 Q& s6 o8 Z8 e% O nPoint += 390;# U# U7 ^- `- m9 w# D4 c
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): G0 L# U- t0 E+ P) X% y
nPoint += 120;
) m; G v S. P0 p else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 _/ C/ g+ y$ p! l' T4 @
nPoint += 150;$ X& H: [: M M4 N8 |0 G
else if( nJob == JOB_FLORIST_HERO )
" m: H- K" Z% |6 h nPoint += 160;0 u% m: v2 c$ r. D0 t f
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& L6 }9 a5 d, e8 }; ?/ L( y3 n5 L nPoint += 180;8 `0 L, \' I; r1 N0 m1 C# _
else if( nJob == JOB_ELEMENTORLORD_HERO )2 |3 n# K! |; p
nPoint += 390;' d- {8 f! Z% h( m% M
; E0 g- |3 J6 x" m* i8 a AddSkillPoint( nPoint );
4 V" L3 C3 q8 i2 [* i m_nLevel = nLevel;" S8 c: K1 O& e- F
) W$ U# G5 g3 ?2 Z: v& z8 [& J( A SetJobLevel( nLevel, nJob );% m$ J; l: `7 y* W; T1 C# V/ U, L0 s
m_nDeathLevel = nLevel;
4 o5 M O" K; [: g9 N' _8 y' |8 C#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: h" Y/ P. N! P8 e3 d
if(IsMaster())
) C, K+ g, l9 I5 x& O1 U$ ~ {2 _5 B. W) j$ x& D! P; F
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 _/ S2 N& e( ^; o" N+ U
if( nLevel > 59 && nLevel < 72 )
) f9 r) B$ E$ v2 G E! z; @ dwTmpSkLevel = 1; B% ]/ ^ @. |; d2 ]
else if( nLevel > 71 && nLevel < 84 )) V V0 {$ D2 L0 T/ r0 X5 K4 ^! u) Z
dwTmpSkLevel = 2;
2 _) B0 r2 v* S$ \! e% S/ D else if( nLevel > 83 && nLevel < 96 )
4 x! W) a8 _) g dwTmpSkLevel = 3;* W6 y- E+ I2 |4 s0 J0 r( i7 O
else if( nLevel > 95 && nLevel < 108 )& n& ~3 w% B5 R* E5 N" {
dwTmpSkLevel = 4;3 q0 W% y, a* C1 Y. K& F
else if( nLevel > 107 && nLevel < 120 )6 @( |: g0 I! V6 H( N; i
dwTmpSkLevel = 5;) x# ~; O' W. K9 c- e1 w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, _1 a: E, ]1 `5 m* P$ O% \2 b {
1 M7 H& x# H7 d; X LPSKILL lpSkill = &(m_aJobSkill);) m- `9 P$ v- [& r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 i: l4 h2 J; D {$ Q; v7 @: i- Q- o( c- K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); O' c) X V6 a1 X
if( pSkillProp == NULL )8 X* n+ o% e6 H5 D* m$ y' M& H
continue;! K2 A: U" |' ]8 _" V% @) {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( J- R% ~; Y3 k: |3 S7 C" Y- } continue;
% f' {2 G! c7 w1 u: X; a# T h lpSkill->dwLevel = dwTmpSkLevel;
7 p# V, E+ w; @" \( X! V# m& { }
. e8 A0 x) K! G Q1 A; m. P) b( D }% C6 ~" [' j0 T5 c G# O
}/ x4 B: Z' K5 m9 X1 D
else if(IsHero()); D8 y$ @1 w6 V5 C
{
* @7 E a" d3 ^$ t for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! w! Y& C" w, l# f
{
. c/ s; k1 b w2 g/ |# Z LPSKILL lpSkill = &(m_aJobSkill);# ~. d- o- `/ r+ {% ?9 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )- V+ p2 l5 w2 [2 Q% E
{7 S2 x8 k; k+ a d% ~" o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 q& L' O+ S4 v9 R) R7 P0 m
if( pSkillProp == NULL )
% D+ y9 t' {. V continue;
1 Q' B5 C: P* c3 U ^3 M# ^8 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ `" \7 M! O& D% j6 y
continue;
/ F4 ?- U' A+ Z lpSkill->dwLevel = 5;
: D P3 N" f5 `! V' v5 D# ^. }4 h }1 B; Y! N+ `3 q4 x2 j$ Z
}4 f- N- n3 m p+ |1 z1 C
}3 l0 [9 M$ l0 t5 x! v Z5 f
else if(IsLegendHero())( x$ z0 p2 J: H9 |* J% ?
{' Y ?4 R0 B2 Z' y1 j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 V6 R2 o2 i6 y# r$ D$ Y7 {+ e
{
- I3 g' v1 [6 u& n, Q# \& Q LPSKILL lpSkill = &(m_aJobSkill);3 _) h2 E% j/ i' W
if( lpSkill && lpSkill->dwSkill != NULL_ID )& v& |/ T$ f! N0 F" H# Q
{. F% U, E! [' w2 Y0 [4 Q: G. G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); F5 j+ r) a4 C. K3 |! I4 |
if( pSkillProp == NULL )
" o/ R5 S% s- A- G5 R5 z" n continue;
o" h6 _. I* Z( L: h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ F& c3 p8 Q. Y, }6 J) p4 n* I continue;' X1 C0 V7 J5 f( c
lpSkill->dwLevel = 5;% ^& s4 J' [1 U1 d( @
}/ J+ p% B2 E2 y5 t" }. f& ?! _9 l
}6 ?( `7 f: E# ]9 K/ h" ~8 U
}& B4 y" f% X5 F8 t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ ]7 u/ b' f$ H5 r" ~' {) Y0 f/ e! ]
if( bGamma )
) s- ?0 ^% k0 Q5 l) g8 J {
7 b! N& [* M0 g1 G" z m_nExp1 = 0;
3 u+ {1 f4 c+ p& Y' X& d }
& ]1 ^4 o* G6 Z8 E( b- i3 c) D2 w, Y4 {/ ]& t$ V
( (CUser*)this )->AddSetChangeJob( nJob );
, h- Z6 I( E! e- r g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- ^5 B; t2 r9 K1 x- C! O1 Y
7 @% E$ r& x! J m. Y: H8 U% ^% Y4 M9 ^
#if __VER >= 11 // __SYS_PLAYER_DATA
& \' T2 I1 P5 S# k5 b g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; m/ s5 y1 b+ p9 t6 o3 _#else // __SYS_PLAYER_DATA
1 q2 h: I* g! J& B) n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 J4 t, d5 ]7 c+ K/ K2 z2 L5 w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, h# l7 q& L L if( m_idGuild != 0 )# h @; M) L+ F8 o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' r, @1 C% h- @* M5 [* ~8 J
#endif // __SYS_PLAYER_DATA' q* Q* e2 Q- R3 w3 X
SetHitPoint( GetMaxHitPoint() );! m1 F) D, L6 b; |$ b1 h
SetManaPoint( GetMaxManaPoint() );
% J l+ c$ x$ \+ B% t( z4 W6 z& g SetFatiguePoint( GetMaxFatiguePoint() );
" z# I( w1 h; ~$ G) h* k$ s; k if( nJob >= 1 && nJob <= 4 )* I2 }; u5 T4 @
{
1 A. {2 t" X5 ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;& n. d7 S3 [3 J1 h- q }7 R2 [
m_nRemainGP = 28;
5 A5 f1 g- u; \0 W) @2 O5 p( y' `% V }
" M6 C! O3 \+ m3 F+ a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! \3 f3 Y) R* H- _3 N+ U8 ?
{
" E% w$ K' Z! g m_nRemainGP = 118;: O% x* B3 s1 ^" I# {. F
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! n5 a4 F5 x/ E3 S# O+ q m_nStr = m_nSta = m_nDex = m_nInt = 15;
' R) o+ o I) r+ S+ J }
' ?& D3 u5 ]1 { if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* T: d3 b: `5 G1 g' _- C {
& |* M1 \' e8 M! } CItemElem itemelem;4 q; J* }' A( ?; {) ]! W
itemelem.m_nItemNum = 1;9 ?- V. Q; T+ f' C- K
itemelem.m_bCharged = TRUE;
4 ^" I9 J1 c# v. V BYTE nID;
! w) a7 M& R& w2 G' `3 ?
0 H0 |: u x/ O% @5 F$ u3 L) m8 E if( nJob == JOB_MENTALIST_HERO )
8 y' f q2 P9 P* v7 S6 b& U itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ t1 v) @5 t7 J# o( V; B9 r if( nJob == JOB_FORCEMASTER_HERO )2 N! i5 u+ e+ c' X( F9 c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% Q5 k, k7 G) N
) v' }$ ]+ K1 y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
]' Y2 V5 ~7 e2 Z: i, H }# U: Z# K6 i# p) {" n6 z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- N8 n2 Y1 Y, G) h* R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( @( M( G% D( A
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" S* T( M+ }* L; r: @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* [( J, y1 u& b2 a1 L0 E ( (CUser*)this )->AddTaskBar();*/
9 v: l" v% M- H' A$ F0 C) ]5 [ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 v6 K7 o# s. d" }. V* d1 l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. q& \. D* H% d! d ^1 ] ((CUser*)this)->CheckHonorStat();8 E7 `5 w8 T6 F" T" W
((CUser*)this)->AddHonorListAck();$ h3 x" R3 w3 J0 I+ y2 ]1 g! X+ r7 N
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. c) v3 F, V) B1 l- k3 Q0 `7 O K* p#endif // __HONORABLE_TITLE // ′Tà?2 w* Y( ^4 S& X B( Z+ A2 a, \5 N
}4 x1 f. l" H z7 N& D6 r
#endif // __WORLDSERVER
9 X% }' V4 x* I' P# l6 p3 P3 s}
/ o& v4 R. F3 L( s; l: G0 W) s8 k. P1 F5 c; ^! P
然后你进入functextcmd.cpp并添加以下
( @# u4 t: M8 N, D
0 r# m* e/ I( ~9 K代码:
) C% W5 i( S% X p' w7 h7 u g% GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ T0 s! P1 r- H
下面插入, E* G4 k3 c o0 d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 X' `( P/ J6 ~; H& t; W3 @
' b* Q' C0 s" ]6 l6 F然后你去: Y3 c3 U. s: n$ e8 F
2 Q5 y* y0 o* D8 a
代码:& f3 T. o5 d( N. F& a
代码8 ^$ @/ m3 x; k, j( W4 W
BOOL TextCmd_ClearPropose( CScanner & s )
5 I( Z$ K! Z/ x{
- Z' R. E7 g, \- f#ifdef __WORLDSERVER; W: ~7 N w: r/ |3 v! }
CUser* pUser = (CUser*)s.dwValue;: L, y0 P& Z9 z" i; |
g_dpDBClient.SendClearPropose();
% E% Z# K0 Y! ~. ?( I0 x5 |0 D#endif // __WORLDSERVER3 [0 C; ^! n7 ^1 o$ V+ R$ ?
return TRUE;
8 ^" \2 @( S& c; c}
6 e2 }& j- q* i下面插入7 h* n6 H4 ?$ N& q$ Z3 q% X
BOOL TextCmd_rebirth( CScanner& scanner )0 B- ? r; B( y# f; Q7 O, a
{
. x! |$ R& \7 d1 x1 j, y7 Z#ifdef __WORLDSERVER
?. a' U8 H, a! S: ZCUser *pUser;
9 c/ s/ A2 [. LpUser = (CUser*)scanner.dwValue;
5 c0 @- U" y' I1 a6 b# j4 G) `if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' _. Z, ^- h* A; u7 n$ o5 o1 \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); @! R! R4 D# ^$ P2 q9 d
else
4 u& f! l; e; `3 _pUser->AddText("你还未达到重生条件!");
5 i6 p8 H% d* h3 J! k+ ]#endif, A4 Z R, m5 a+ d8 l% W6 S
return TRUE;( z1 N3 C2 Z @
}
6 }, T; b9 R0 m9 I% q, o
7 @( O, J7 u. i& \0 C* x% n+ R/ q6 j) J# v, }, x9 e
3 L* D6 Z5 Z0 \+ r
% B$ [+ ^; N2 H4 F, P8 q) ?
|
|