|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! A1 I: b4 W2 e* B7 b# B* ^
* D; x/ j, F7 I% l2 t
Mover.h0 p# h! f( O, B' Q. e
代码:9 `: \7 R# k: e; ?- V' g6 R
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! \* |& i; ?+ e: S2 q! q3 m# y( X7 |: {' g5 d! F
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( m2 `- t3 n) ]+ t" b# s! i* x
然后你去mover.cpp添加
& H2 H8 u/ r) v$ k7 F5 a# v" J% ~1 s+ I6 ?
代码:; u2 ~0 d# {' k0 R) D2 j7 P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* F6 {1 @ V& j& L% y# B! t
{
# P+ \9 b4 l& |) u3 p#ifdef __WORLDSERVER* ?( }( O- T4 v4 a& p2 m! W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 u# r, G9 n3 }0 l. _* U MoverProp* pProp = GetProp();
e# f* l# a! M# K: Y if( pProp )
: B" e/ g9 u/ P: ?" a' x {
7 S( B& P$ W2 g- |. p/ K [$ S if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 c7 s) R9 `; I: [. s l8 t! R
{
- o5 O& ^2 @3 x$ p& j% e AddChangeJob( nJob );9 S0 z3 J* [/ I0 q, a! {
}else{
' t# L+ M; _- B% K3 v return;
$ y8 f: m9 M0 h3 x }
" f& ^3 ~) |$ l$ ^/ x$ T. l1 S int nPoint = 0;
/ R5 ]" e: H' ?4 y0 c C6 L if( m_nJob == JOB_MERCENARY )# Z# q2 W* q3 M6 W* Y* H
nPoint += 40;
6 t/ m b. e7 K( N1 \" U else if( m_nJob == JOB_ACROBAT )
- A4 b* H- n% P" y) p3 V nPoint += 50;( o8 z* k) d- p! f I; _- \, q
else if( m_nJob == JOB_ASSIST )8 g- Z, ^6 [4 ^5 c: ^
nPoint += 60;/ \ W; {: p8 f" ?( q$ i
else if( m_nJob == JOB_MAGICIAN ). w: n: x% Z @& D/ I
nPoint += 90;$ H; Q% M$ D' n: F: L6 ]9 }
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ k' F! R" p4 L( W! N
nPoint += 120;$ b$ ]4 b, M( p+ C3 }( O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* w0 S6 r' @3 \ }, Q0 j
nPoint += 150;
. l& h! V: U' m v else if( m_nJob == JOB_RINGMASTER )
2 ?8 e+ W$ y' s" j1 o9 A* ~# e nPoint += 160;
8 C- C4 Y: d, a2 j0 I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% f. J6 H' `& F* ~" D( f3 i( t nPoint += 180;% g" c% ^/ V. [
else if( m_nJob == JOB_ELEMENTOR )
4 ^9 A' s8 ^# P6 A nPoint += 390;
6 U2 j- z" c; u1 Z" C! _* N0 o else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# v: O) J* J# t2 z! [% E
nPoint += 120;
- h; G* V8 R5 R! l- Y; a. u5 }2 z, D else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# p- k9 m" X4 e% X9 K nPoint += 150;* E4 R1 h. l3 h; I' ]4 p- U
else if( nJob == JOB_FLORIST_HERO )
) u0 R6 T: {5 u nPoint += 160;5 h/ y) N$ d2 {9 d& E
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% q4 N3 Z2 O3 u$ a' }" s4 K0 s2 A2 M nPoint += 180;
3 h, n7 d, K, G( F else if( nJob == JOB_ELEMENTORLORD_HERO )( k# m& L7 }. i# q, {
nPoint += 390;7 u) h7 @4 P8 @
! V3 n6 v( i. w0 d1 P6 q AddSkillPoint( nPoint );* e. l+ M! K3 O0 T0 G7 y8 T
m_nLevel = nLevel;6 f U* I" ~5 ^' V" c0 a
6 ?2 t) L3 T, V SetJobLevel( nLevel, nJob );4 [0 K6 }& w; L) ~5 i: Q4 a
m_nDeathLevel = nLevel;6 B5 g& r8 Y4 `3 u ?6 ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( t/ h1 q' t( u& S+ O1 r6 Q( D
if(IsMaster()). Q: a* d6 X$ G! x
{
: P# ^! v* A1 [0 o7 _8 n int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; W8 J' p3 g# N7 j: @1 j o/ i if( nLevel > 59 && nLevel < 72 )
# X5 [, X b: B+ `% j3 e/ n: q dwTmpSkLevel = 1;0 C% P0 Q0 R3 n% G9 {( U
else if( nLevel > 71 && nLevel < 84 )
- B* s. |4 _& g% Y9 X( z: m% U1 R; D0 z dwTmpSkLevel = 2;
% k1 W6 v' E3 l1 l$ e- H' K else if( nLevel > 83 && nLevel < 96 )6 D6 `5 W* \- v" A0 T4 B
dwTmpSkLevel = 3;$ D. X7 c1 o1 s: P; u& q' @% j2 i0 P
else if( nLevel > 95 && nLevel < 108 )' h* s2 L' ?& a0 Q3 Q
dwTmpSkLevel = 4;
+ J$ [$ M# ~, R. N3 r else if( nLevel > 107 && nLevel < 120 ) h5 n' G2 f5 c, y9 E0 v( R
dwTmpSkLevel = 5;
) R- ~+ N- j5 [2 a( p for( int i = 0; i < MAX_SKILL_JOB; i++ ) & v# V' e7 G$ z, c' ~
{
$ h+ I$ H! G/ s' o" h LPSKILL lpSkill = &(m_aJobSkill);
# @, s6 v+ I6 x' b if( lpSkill && lpSkill->dwSkill != NULL_ID ) } B* e" w7 d- A! a9 M4 r8 @+ H
{' `3 b, r. ~ |% l% C! v! O" m7 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 K0 C2 M1 M2 G' `3 L if( pSkillProp == NULL )
# h1 r( f2 G) z( x5 a continue;+ q( `$ J# D; Q) }* | D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 {" n _7 e$ Q& r4 S/ r6 u! e
continue;
" U& p" H( d1 `; p% d- N7 W lpSkill->dwLevel = dwTmpSkLevel;% f; m) D' n4 O$ N$ u
}1 B6 Z/ c# k: S1 C
}
3 L* F- r$ Z# j+ U9 K0 Z( E }0 ?0 l+ B! o* f& I1 F
else if(IsHero())
* T( F+ t. p y5 j/ }6 I( b {7 h0 B3 p8 l2 N, _+ B5 u: c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 E- U+ T, P! M2 ^ {
7 z+ f) W5 E/ i LPSKILL lpSkill = &(m_aJobSkill);
; M/ R0 a( N, S$ y: i- _+ Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
, F+ c3 ~" }: L5 d3 }6 ?! j {
) a) [3 O2 k) l0 g7 S' \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 B$ t- |& R+ C2 z. ?% A% O* | if( pSkillProp == NULL ), n, H$ ?9 W+ e g$ {2 e; T
continue;
% q) j9 Q( o3 m2 x: t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; L, ^' H/ f" e) |& `, P$ n continue;# } O7 S- _" K
lpSkill->dwLevel = 5;2 K5 `+ ]7 |* h8 N
}1 U, O' H) o$ g- s2 u1 n" {
}7 Z, {+ ]1 L: X+ A& ~) m
}
# G" [0 c; W" g: a M else if(IsLegendHero()). c* D6 j- k! B8 {' B
{
' w" b# D( z' l( t for( int i = 0; i < MAX_SKILL_JOB; i++ )
: c, E; q1 e& U7 m% T$ ? { ! I( u2 J' C, l# e, C) \* W
LPSKILL lpSkill = &(m_aJobSkill);
3 M4 j: S) y% m. _' w if( lpSkill && lpSkill->dwSkill != NULL_ID )/ t# l) r1 ~2 q
{
4 H5 i3 k) F E' L7 M" @2 G5 u4 y# W4 i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 a8 [; K7 w. z2 O if( pSkillProp == NULL )0 f+ T( { ^2 u& o' ?- y! x
continue;
" g% I7 f. S7 ~" e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 |. l- u S2 C0 |# {: x
continue;( p, A8 M! r7 t& O7 q
lpSkill->dwLevel = 5;
* x% M& R: G4 w }
; v* q- b4 g0 o8 [$ w2 W5 O }
$ F( ^# A* c1 J* Q% c% j: z }
: N, `( X9 _* `( V: @, \" i#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* s9 u. t7 g) q if( bGamma )
/ v2 n. X r5 \! N% C! u$ R A {! m( z9 ` W9 H; U: I6 l
m_nExp1 = 0;& Q @: ]8 T6 b5 x
}! b' L a# j1 |6 m6 m9 N' Y
3 b b' y" k. M5 d' R& ^ ( (CUser*)this )->AddSetChangeJob( nJob );
+ Y' B$ [& A; a/ }6 Y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. y* ~% ?4 w5 `! C1 G6 ~
6 M) l5 @) T* r1 _7 i" z
) z, X" U9 ^- @! Y& e$ O#if __VER >= 11 // __SYS_PLAYER_DATA
3 C. ?5 n5 |( A2 s+ f7 z& T, G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* C6 G2 c3 o' X$ G+ J i/ S4 W" E2 q#else // __SYS_PLAYER_DATA* J ^2 n& U& S! [* v9 N3 |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 {" K$ ~& s" j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 \8 Z" j% T% ] if( m_idGuild != 0 )6 e1 c' j8 e$ O$ Y( N. U) Q' a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% V% O' S& {. D0 m
#endif // __SYS_PLAYER_DATA
0 j. ?. J5 F2 {8 ~% [! T SetHitPoint( GetMaxHitPoint() );6 r2 s! c/ T* c: l4 h0 ^% C
SetManaPoint( GetMaxManaPoint() );5 \0 s) c) b/ U1 p! F0 `7 p
SetFatiguePoint( GetMaxFatiguePoint() );/ A' z7 |: S; Q8 m0 b8 w. M1 ]
if( nJob >= 1 && nJob <= 4 )
! w1 E9 ~4 Z' s4 ~+ M. L; ~. s {0 Q% W, x, w7 k" g4 C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 B# ]- n% R$ l! H( C/ s' O' C! R m_nRemainGP = 28;
& J. j" G) X$ `) o- G- l }7 A* v" Z) B: `1 W. w, W O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
j7 b n) {% e4 `7 c6 A {% ]. ~4 p L/ X6 H
m_nRemainGP = 118;0 ^) O/ G3 G$ G& B4 n
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* F; O& o' T3 h( h9 m% B- B0 c% Z) u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 W6 h. n6 L" Y1 Q f5 ]! A }& A# l1 `: x) l; _
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 W% `5 T; I& [7 m6 j8 r {! G, I; f/ w6 i1 B# X
CItemElem itemelem;" X) ? W3 Q1 X! ]2 Y4 ~, |
itemelem.m_nItemNum = 1;7 ]2 i g+ q c8 H, K+ ]: X9 U- {
itemelem.m_bCharged = TRUE;, u! K3 L5 V# c1 v2 x
BYTE nID;0 G- C: h8 @0 f
& y- d" E* }, ~" A* } if( nJob == JOB_MENTALIST_HERO )
# X* B1 a1 Q1 \ t5 X: l/ }( g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- P; x0 W6 [- d3 v6 y9 C
if( nJob == JOB_FORCEMASTER_HERO )
& p# [ m( k; Y' @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( x3 M1 {5 _$ k- N. L
$ r) e. u* \; Z2 S9 |- U
( ( CUser*)this)->CreateItem( &itemelem, &nID );; D) a2 W. ?7 X
}5 K n) g% g' `- d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 I% W; d* `2 m: Q# q& R `5 G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 G8 |& l4 |2 B6 Z0 n) b/ t/ P% T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ r9 ]. Q) e7 U( @; Q6 f% W5 P /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* u- ^9 ?8 W ?; b% o% H y
( (CUser*)this )->AddTaskBar();*/; a9 E! N7 k6 p9 W7 ~/ [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: g- i9 b- _1 v% s0 ?
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 N+ T: r/ e) V3 P5 H5 L ((CUser*)this)->CheckHonorStat();
6 b7 A- t% h# z( W" w ((CUser*)this)->AddHonorListAck();
- [7 k" D" M/ C& t5 f& t g_UserMng.AddHonorTitleChange( this, m_nHonor);6 l8 y* D+ p/ ^* q
#endif // __HONORABLE_TITLE // ′Tà?
' m0 L3 [, H1 M# _0 n }
* }3 e- G B' ~: ?3 W#endif // __WORLDSERVER
Z7 @, I+ ^- @# t. _( H- T} ( v1 f9 h! `9 f$ h- `
4 b) s0 {& M. W' ]6 ?. |8 V
然后你进入functextcmd.cpp并添加以下- E6 ~: m% v9 D+ a) P7 C
* ?8 V$ _5 m0 V7 D9 {1 `
代码:1 u# Y7 j. n; a) d7 n, V) z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 `5 e8 ]5 B( G
下面插入0 |5 U( g( N, U# u' v3 B5 a5 i
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 Z/ q8 O8 X* Q( y. i/ J6 O, A' n! T w3 @0 ]
然后你去4 H" o' h% j- S/ ~5 ]
9 W: B l9 Q) O! T5 K+ s
代码:/ T- n7 }; ?. Q1 z/ w0 j' W, L
代码! W& z. N- Z% N8 H* r- H G
BOOL TextCmd_ClearPropose( CScanner & s )$ R7 w2 a4 n B, Q' l
{, }+ _7 D7 [3 i; v9 K
#ifdef __WORLDSERVER! W3 _$ Z- [2 v( x
CUser* pUser = (CUser*)s.dwValue;
; S R( E; X& O9 |# L; T1 e g_dpDBClient.SendClearPropose();. U9 d4 T5 H N* u8 ^: }
#endif // __WORLDSERVER1 u/ g5 P0 V5 H) e' l$ j8 T- Z
return TRUE;$ J' v7 P3 e9 J' H1 I9 W9 h
}9 q8 |( }/ Z9 F1 F$ c# \9 M
下面插入
8 F7 t! E# ~9 I! G8 H( q2 o1 gBOOL TextCmd_rebirth( CScanner& scanner )) x* t# M5 ]& Z6 O$ P K1 t
{, L/ i% Q [( ?) t2 Y8 F$ B, o
#ifdef __WORLDSERVER
9 r( W) m2 A7 n. _. b k8 j4 R( iCUser *pUser;
) M0 s+ \" ~; V) ]1 ZpUser = (CUser*)scanner.dwValue;
( }% y+ T" _2 a6 H0 J/ Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" y) T( [2 z( F- V, ~- W) LpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" O9 v7 w. q3 u! w0 U. Y! i5 celse$ m. S+ h* H3 W5 e: K
pUser->AddText("你还未达到重生条件!");- j2 e+ b) l' M" ~$ E) D
#endif% G8 ]7 a3 F5 u, v) x
return TRUE;0 q' f. W( |) M( [1 a0 D+ z+ G$ Q
} - S0 |9 R" I6 l- _3 _2 e' s7 ^; ^ U, B
/ I: `! _5 S. a& g$ {* R
4 {6 s9 X; r- R' e1 E3 d
; a' l5 g: N: D$ C1 E( N% f ]3 J9 j2 B' `! Y) \
|
|