|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 S x; H, ~$ M' c F2 W
4 W; j" g7 W6 X2 g. R
Mover.h
" K+ u8 {% ]+ q# w' b代码:
: [5 q% o$ \1 e9 M; U6 D( Q E" ?找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ y1 ^- R4 U; g R/ p, ^; h" f4 r j& g! R, \8 i5 j
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) F. V/ ^ W7 w: O
. L) p/ q) v! ?5 E2 w0 T然后你去mover.cpp添加 H( g. E6 O H1 F9 U3 I
1 Y# p) P" S5 n& p; X代码:+ M5 U- [+ y, d/ C
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ y# _4 w3 I+ S6 y: C/ e8 M- H{" _/ @: a' w/ k, S& E
#ifdef __WORLDSERVER- ?) S4 [# i4 J% r7 c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% Q1 J( e& ]) I4 x; q MoverProp* pProp = GetProp();8 m& n7 p2 U5 D7 v8 T+ a
if( pProp )
6 z1 X, p2 N* N& L- D. U {5 m) o b# W" {$ K- u: d; U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 G! C6 S2 ?6 s% r
{+ ^1 E8 \4 e s. m- f* S2 G D
AddChangeJob( nJob );2 F/ B) b. {2 s' g
}else{
Q) P2 e! R5 o return;1 w7 \( {: m* j! i. b
}
7 g" Q) F1 i ~, F+ Y int nPoint = 0;
& ?4 D2 R' i; ^1 R if( m_nJob == JOB_MERCENARY )
& E% R& P' t V5 b$ R3 ^ nPoint += 40;
3 P f! M7 M' o1 N+ O else if( m_nJob == JOB_ACROBAT )
) A# Z1 `0 R( B, S) Q5 G nPoint += 50;4 j6 s; }& |( e) X% k; M
else if( m_nJob == JOB_ASSIST )* |' f! F1 c& T7 m6 b% H
nPoint += 60;
: M: V0 O1 T5 [1 a2 Z else if( m_nJob == JOB_MAGICIAN )( |/ q1 j1 {9 t- }/ r& X3 l, a8 j+ c
nPoint += 90;
0 z' ^' O* A% h# n ~, F* W else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 {3 _5 H6 H. v6 M, L% X nPoint += 120;
4 Y0 ~, |9 `% Q7 c9 ?8 T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( e, L& h1 z! j8 y' |
nPoint += 150;
: ~9 \/ q* E7 m& j& _( o else if( m_nJob == JOB_RINGMASTER )! I. S0 s* }$ z* @
nPoint += 160;
: ?3 v5 v% L" D$ v else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 f/ R, m/ Y w' f, S nPoint += 180;
* u- N* b' _! N. q3 N7 u else if( m_nJob == JOB_ELEMENTOR )
" ~& E! W2 N+ f% h, y/ i nPoint += 390;
- r. s* p" {) W else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 A- I# J3 q9 `5 v$ z2 x9 k
nPoint += 120;
( N( M. a" u% J( H4 J5 U! g else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 Z9 ^0 y$ b0 T1 T6 |0 q8 v5 y
nPoint += 150;
; Q/ \. R# s/ u8 D, W9 \) y8 R else if( nJob == JOB_FLORIST_HERO )$ j0 M( N- d3 {9 i
nPoint += 160;
$ L) s% s) w2 K3 f else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( _" P5 s# g6 L! j3 I+ R! D X# i Y
nPoint += 180;( e; f" f4 \ g v" O* I2 C# P( B
else if( nJob == JOB_ELEMENTORLORD_HERO )
! ]' N# P! h6 A nPoint += 390;" D4 f: v, A; x6 p4 Q
) X4 ?' [2 t4 _0 _5 c
AddSkillPoint( nPoint );7 W1 h, H: k% @# H8 Y. m4 d; h/ V
m_nLevel = nLevel;
6 x+ Q4 ]) B; f" ~5 m( [) B
; C3 q6 O( B1 [: L' G SetJobLevel( nLevel, nJob );7 ]7 H: C! S( }+ H
m_nDeathLevel = nLevel;
( n+ t; k4 y ~1 b2 o& c/ h9 o' ?#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 y& P5 z* |9 q% M
if(IsMaster())
" C+ n( y1 Z' N5 R( ? {. S9 c+ |& j% ~+ ?
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 |1 I4 Q3 p7 i1 D( }+ F
if( nLevel > 59 && nLevel < 72 )2 B) `! p0 r a+ _! x8 r, u
dwTmpSkLevel = 1;- H# R9 X* W- x' N
else if( nLevel > 71 && nLevel < 84 )
( }1 e0 [, \6 ^7 p3 r dwTmpSkLevel = 2;
5 R ?0 g5 K# ~ else if( nLevel > 83 && nLevel < 96 )
! M8 M4 }1 _" x) N/ q dwTmpSkLevel = 3;
/ @+ {! x8 n$ ?3 O, D8 L else if( nLevel > 95 && nLevel < 108 )
3 l2 p5 J! z* b7 H5 x" _8 ` dwTmpSkLevel = 4;
4 Q l4 V/ q; G; \, u; k else if( nLevel > 107 && nLevel < 120 )
5 y+ a- S/ F9 Q6 [ }$ \% @ dwTmpSkLevel = 5;# ~* U$ D4 J0 K( `1 X! f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * I' m$ _' p- G( s1 V) V# p) c
{ & K3 r, @+ W$ x ^! v9 o( G
LPSKILL lpSkill = &(m_aJobSkill);/ N, V7 E1 Z9 s* V3 Y1 C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 V b1 i& R& K! q9 ?" k6 U7 @ {" t& F1 S, i5 ~" a A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- J0 ?, Y/ p! c | if( pSkillProp == NULL )* O ^, y( f$ W; g% }9 D3 y
continue;- k' t: s9 V4 r3 d S2 G# t3 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 y. z4 U- x! |4 s
continue;' F: q6 s F6 ^: ~/ C p
lpSkill->dwLevel = dwTmpSkLevel;/ E* v6 v6 _" a1 Q. h
}
8 \7 }3 i9 J1 B" A2 i }+ [: C" L6 e* O7 r# |
}- v: x# ~7 e8 e. y0 W' G
else if(IsHero()); o0 ]# O. q( W8 E
{! O M }0 F9 ^, o, m: H4 `9 o" t' }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) d" c$ x8 ], K0 O$ O/ O { 6 x) E" @5 N7 q- x# Y
LPSKILL lpSkill = &(m_aJobSkill);' h5 i% ?1 |& T; z1 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 n, n! `, I: X {; ?0 ^4 t& B: `1 U8 t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' }7 P# \3 w/ F3 j" L$ Z; W
if( pSkillProp == NULL )
# Z& e- h% o; d) N0 J$ c3 K, ] continue;! |3 A6 u5 ~" x6 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# D" P- i& p! X/ j7 ]1 j9 k continue;0 e7 E3 P9 c7 j' A
lpSkill->dwLevel = 5;4 d* ^) K+ S( j# K2 a* B
}% @. a; E; U) f# A" s# R& ]. O: K
}
, Z" l' u/ z9 x7 i }: \- x& `8 N9 e
else if(IsLegendHero())
6 [- b+ ^3 F; h {1 s; K: H2 S- S; S, D# x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; w" F/ a* |2 b1 m I { " a9 o: e' T" b
LPSKILL lpSkill = &(m_aJobSkill);
: m, T0 U! Q& x# s) b- m" Q9 c% N3 D if( lpSkill && lpSkill->dwSkill != NULL_ID )% q) k' z2 M* [
{! `- \. H$ U! F+ o% x h9 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " a" d( m7 c5 L( N
if( pSkillProp == NULL )% s3 ^: F* ]6 C8 b
continue;
3 q/ j$ S5 @2 l0 c) F( a if( pSkillProp->dwItemKind1 != JTYPE_MASTER): e7 {+ g* r% G- i; j0 x' n
continue;3 {7 s) {# @$ ^; a' B. y7 O
lpSkill->dwLevel = 5;1 L, H/ \0 K! w
} w' b, u" A2 o. X, r
}
0 Z+ i, ]% e/ h4 F" [) ~! V }* |; T i ~& ~
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# D6 q; K6 f1 l" S if( bGamma )
9 U `; a! T$ D2 k {
9 Y8 j! G7 E6 e m_nExp1 = 0;$ r+ A5 |& x( Y/ {
}, w( j" m+ e4 V' H7 C: U
5 ^0 Q8 T4 o- h2 K4 {- ^
( (CUser*)this )->AddSetChangeJob( nJob );
$ I5 ~" r4 q; [$ H6 u/ ^2 G g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# S) V- y/ d* P7 R2 d
- u' M* |! I, Q: P5 h% w" _
" \+ o5 S- l* o+ h#if __VER >= 11 // __SYS_PLAYER_DATA$ o1 [4 i7 J) R* m! @# Q& T$ Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 C4 p: I0 r- ^; J2 }! ?#else // __SYS_PLAYER_DATA1 s& K, V- A( [/ E! J* ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* p9 z! j" q% A9 t' ]0 e2 i+ w
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 o# F, Y1 Y* G3 U( t
if( m_idGuild != 0 )
5 P5 C! G7 B& n. X: Q" k: A5 j g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* p) b8 s/ ]2 Z1 w5 ` B#endif // __SYS_PLAYER_DATA& g7 @/ B2 j, b' w
SetHitPoint( GetMaxHitPoint() );
% _5 I/ W- l8 W8 W6 l4 g c6 R8 t% O SetManaPoint( GetMaxManaPoint() );
! Y) S' h: v$ l8 f SetFatiguePoint( GetMaxFatiguePoint() );
2 Z R: {: @- W* d f+ z if( nJob >= 1 && nJob <= 4 ): b: p9 D! M- _7 y2 N& A4 \
{; t2 G# t' \' D/ Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 B9 {0 T2 ~3 U0 g6 u
m_nRemainGP = 28;
8 g- @' C: } ?3 [" ~! C0 q }
( T/ ^6 T8 o- `: w) P8 J+ q ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! i2 F" \+ \7 \3 t {2 K" ]/ t3 B2 W; O1 _
m_nRemainGP = 118;
: j( L' D( F. s# G9 o9 k! O //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 _9 C: e, ^5 q" V: { m_nStr = m_nSta = m_nDex = m_nInt = 15;
* q, i: w) H$ B. r9 \ }
5 P# T- r* U* q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ v. e$ t9 N& O+ J8 S6 S1 ?4 M {
9 m! G, b+ f% M3 Y6 | CItemElem itemelem;
7 r' G" t' A/ F) { itemelem.m_nItemNum = 1;
, t; p' o9 l9 o# X) z0 h7 p itemelem.m_bCharged = TRUE;( \/ p% U; {# L9 c2 r$ k2 y; m
BYTE nID;$ b! @+ j& M) E
$ C7 c! a2 d& c# ]* x& Z if( nJob == JOB_MENTALIST_HERO )
6 `) v5 }+ c& W! M! ]+ b itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) j1 q5 _. N, Z- W7 v u* o if( nJob == JOB_FORCEMASTER_HERO )3 V4 m, o" O3 y$ H
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ ?/ |6 X3 j5 y
- Q! [0 u/ D0 }- i s, j
( ( CUser*)this)->CreateItem( &itemelem, &nID );- P/ i- M" ~1 r% Y: [* \0 t
}
9 S/ g" G# s8 n D: i% ^' ?3 {/ G g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 h( _9 X5 S, t( } _' _& J
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
p p. m2 g, g7 s! [/ [ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 I1 i% d* b3 V
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% s3 [" ], \. B( n" d {( A/ f1 I& t ( (CUser*)this )->AddTaskBar();*/
! d0 y: x0 `; }$ S. _( [, q: H ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( ~! k) X' h. n' V" o7 q ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 v% V1 g J$ w! ]4 X' l- t( V1 k ((CUser*)this)->CheckHonorStat();5 {' e6 j9 r' N2 z% L2 x
((CUser*)this)->AddHonorListAck();
' m5 `1 f' m% p, z% L- R g_UserMng.AddHonorTitleChange( this, m_nHonor);$ u; |) ]8 D; O5 N, c
#endif // __HONORABLE_TITLE // ′Tà?
5 h, A* i5 }: K7 P2 O5 X& k4 ^0 u) y }
, w9 G' Y8 e! i. ^( \3 F#endif // __WORLDSERVER5 L: y% g2 @- Q9 F8 K2 H+ ^/ x/ F+ A
}
& h u' c: K* u& ~% O3 q8 o9 z: V9 X% z! i5 I7 ]) A: S
然后你进入functextcmd.cpp并添加以下
7 j" [9 x8 A! P, A" g5 ^ ]; n1 x/ D7 c
代码:7 f6 Z' y. W& h9 b
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" e2 [& Z( d" D1 @6 X4 [$ Q下面插入3 [9 S( _/ v) t. R# r# a/ \
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , p- O# D/ T4 n5 {
/ _. u1 i$ A @2 \
然后你去' g/ G. D! J$ ?
, F' e# B4 z$ ^. ^1 M# h: @代码:8 _% Z) i% d' U% P3 _
代码
* A8 V* J; m [: g0 eBOOL TextCmd_ClearPropose( CScanner & s )
) S9 `' y4 a# |7 C{
9 f. Y1 q* g8 r6 F4 r7 N* u Q#ifdef __WORLDSERVER
: X( Z2 p$ E/ }& E/ t CUser* pUser = (CUser*)s.dwValue;
* B9 ^- ?5 D- }' k2 T, X8 V9 { g_dpDBClient.SendClearPropose();
* l6 R' K- I, Y( j, [#endif // __WORLDSERVER
6 A% K# L! \# O! L' K7 a2 M return TRUE;/ t9 r$ D$ A% E. f$ Q
}
% r3 [5 m+ A' ?, D1 C& Z; B+ }. Q下面插入
3 A$ o6 c# A/ t/ _# t* u# \BOOL TextCmd_rebirth( CScanner& scanner ): z6 j+ d% n2 `6 x: L. F
{
! ], U- C2 u" h8 }#ifdef __WORLDSERVER g7 |5 t& Q! Q- N* f2 _4 ]
CUser *pUser;
9 j* q8 z, i' T( K z; q( [pUser = (CUser*)scanner.dwValue;
5 g; w' b. K! Wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ x' L+ a/ V. \, h( n
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) ~6 @8 i# q) U9 eelse
- N; g$ Y! R) [+ z1 bpUser->AddText("你还未达到重生条件!");
- Y" q) K+ D1 N4 b#endif
4 I* u' [$ P. C! Kreturn TRUE; S7 O( P5 n# m5 `
}
' J4 W W9 k0 Q
$ p! h O! q4 t5 _" U# I- j0 C u' ~) H& E @2 x
0 B/ f/ F' c) i7 Q
" J% p' x8 L* I ] V6 w3 v |
|