|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 l5 U2 i* v8 r, f& N t \0 d, O/ n5 a" l$ A$ l+ D
Mover.h1 I" H5 U- J" F
代码:
0 P% f+ W" j; k找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü5 H, `3 k0 y: G ~/ d
7 T8 \+ C! R8 T: G2 `1 V% p1 ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 C( g( e& [. }3 Q. ?1 ^! [0 s" u
* S$ K) A, ~: r8 {" A" k M$ }然后你去mover.cpp添加/ c( x: _4 _/ }/ k0 }0 |
0 `; C& }3 J" {5 L$ S
代码:
6 q. K3 d) S) o" S7 U6 P" ?void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; b3 y7 K$ e$ [& e/ I{
J" D7 G2 l- S1 s# { J#ifdef __WORLDSERVER
) |) Z9 Q9 U8 g( f // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: W4 @& p3 {9 w* a$ q; k MoverProp* pProp = GetProp();
P+ F5 N X4 r. A! A6 C if( pProp )# i0 Z1 U) o, h: }" B" Q( c7 C
{9 {9 F0 g% `; i+ \- d1 B. [( Y1 u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* d# Q4 A) r* y* n/ l* ?
{4 H4 @+ k7 F+ x* z, @8 b* e. h7 c: S
AddChangeJob( nJob );
" q1 k- R/ c) O& _5 s) |9 v. k. O. X }else{; U, c6 r/ o0 p3 d/ N
return;
/ ]! e7 h3 R1 p2 o8 c# s1 i }
& x& H4 y, W2 _5 }$ F' `; |6 o3 _* C int nPoint = 0;# U* ^. @- X$ b9 U9 P
if( m_nJob == JOB_MERCENARY )
5 `4 M) C3 a0 l& T6 _5 x g nPoint += 40;
# d" A. k7 P4 u/ X5 g8 f else if( m_nJob == JOB_ACROBAT )
) S8 m; I8 s& @4 Q1 y& y0 | nPoint += 50;* N9 U8 j# w* _( k& V
else if( m_nJob == JOB_ASSIST )
7 ^' N5 G2 l; X* d! y" [% G' S nPoint += 60;
# U: @) t. P, y% V& A# a else if( m_nJob == JOB_MAGICIAN )
7 [" _3 J7 W& t4 t nPoint += 90;% j" D: D/ e% G. m3 t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- c! n* H# n- I Y' u8 N1 E
nPoint += 120;& v j( @. C/ a' O, ]
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( e! e. o8 K! ~' L* Q1 K
nPoint += 150;0 C d. ]: ~- q: u+ S# e& ^3 j- W
else if( m_nJob == JOB_RINGMASTER )* E$ W+ R. ^: c
nPoint += 160;; i& h) J4 W1 w/ l
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- L4 e; h2 i! ~( `! g& D' _
nPoint += 180;( v9 i+ {$ z( e Y2 m; P
else if( m_nJob == JOB_ELEMENTOR )
* ^# ]# Z3 \0 z: a$ C nPoint += 390;/ D! A0 A' R$ z2 c
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 L7 U1 }3 k2 E( L nPoint += 120;& T/ d1 ?2 S6 n3 o
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" X* P3 C4 E2 s$ B. e$ O- q3 `" A nPoint += 150;# J* s, L: f7 m0 }, n# B5 n6 R
else if( nJob == JOB_FLORIST_HERO )
% i4 o& u9 Y' R( a! X% M) O nPoint += 160;
/ ^ J+ }+ u* s$ Q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% U8 x8 S! _$ ]: [
nPoint += 180;0 E8 `4 t5 q& U3 h+ Y2 l
else if( nJob == JOB_ELEMENTORLORD_HERO )* }6 t/ E* y% {: ?% v
nPoint += 390;
" o' t+ K6 U! n9 i; M7 k& S
2 p' l- c1 U4 ]- @* T( i2 m AddSkillPoint( nPoint );
. b7 @9 k8 z3 c2 g; q7 j m_nLevel = nLevel;1 z5 K% \6 D5 x4 N8 w
+ C- V+ m# T2 L# K7 E SetJobLevel( nLevel, nJob );4 Q$ `. | i' p, p( B! g7 G
m_nDeathLevel = nLevel;
, ?; Q9 K( a6 @; I) ?6 ?#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ Z4 n% A0 F: q if(IsMaster())
6 L" w5 l* r8 c5 n# z2 `/ t5 i {% t- Z5 Z( J- _4 F2 e% J
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, s8 ^& L: K9 D' } if( nLevel > 59 && nLevel < 72 )
7 [3 z0 t9 W7 E/ _9 g5 K: |* k dwTmpSkLevel = 1;
# C& Q, h7 b! ~; x& a else if( nLevel > 71 && nLevel < 84 )
- I6 i5 w: k) R9 G dwTmpSkLevel = 2;/ Q9 a7 _" c1 _* x4 W8 M
else if( nLevel > 83 && nLevel < 96 )* U' I; g- ]* Z; G+ h
dwTmpSkLevel = 3;+ Q0 a4 {" y- |! t$ g
else if( nLevel > 95 && nLevel < 108 )( S C% v3 G& q9 D6 ]# M1 l
dwTmpSkLevel = 4;" r- n' T7 }5 C. }. Z
else if( nLevel > 107 && nLevel < 120 )
# a' ^3 {" G$ U; d- Z( u dwTmpSkLevel = 5;
& ?5 e) U9 m- y- H \) u/ B% k4 Q0 k0 w for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 {3 u" i2 i) v3 r; p { % Q' w" e$ o$ ` ]0 r
LPSKILL lpSkill = &(m_aJobSkill);7 O3 M$ R6 L# x! M3 L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* Q5 ?" _# N! V( Y9 \ U* |: H2 I {
& r' N3 K, S5 D0 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( C1 S; `" j& e% X4 G8 F8 k if( pSkillProp == NULL )2 |( |/ w/ d; e; C" A
continue;
9 S; v9 f; T4 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" u+ y& q8 L. E continue;
. R! s- Q5 j* O: e lpSkill->dwLevel = dwTmpSkLevel;6 l+ `( t- g0 |! X7 ]
}
% P4 k: R+ Q1 T) D' v6 n* ?3 } }
7 Z( J( l3 \# q8 i8 A }. j8 a- h/ N% \2 i1 z0 y
else if(IsHero())2 n* v( K1 t. J6 p/ X6 i: n* c
{
5 i, c v( E8 _2 _& r for( int i = 0; i < MAX_SKILL_JOB; i++ )
% P( b+ w* s4 i+ V: M) ? {
# x# w: i+ u7 ] }) c LPSKILL lpSkill = &(m_aJobSkill);! Y& x+ i$ M6 X% N4 x# Q
if( lpSkill && lpSkill->dwSkill != NULL_ID ), |* k; y2 D! ~! M* y
{& |0 t4 a8 W$ Z+ b) Y8 c- I. Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- } d2 u* G5 S# H A3 n# r _ if( pSkillProp == NULL )
+ e% u. n# d0 b. R0 p4 h3 i$ }3 B continue;
, @- S$ l) I: I3 H2 `# j if( pSkillProp->dwItemKind1 != JTYPE_MASTER): Q4 u2 i" S& N7 q
continue;
4 ]; p W( O' z+ V% y; K4 N lpSkill->dwLevel = 5;
% G w$ U0 Z0 R5 v3 E9 Z: j }+ ^- q( z+ y0 I6 `2 A
}! F7 ?9 P' g' g4 V6 E/ i6 V* j: m. f
}
( X$ [) }; r8 O$ p f1 _- m else if(IsLegendHero())# P6 }# G! A) ` L: H
{
' q4 C! D9 P+ W) }; U5 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ q9 o# n/ X* [/ e2 M9 K
{
$ f8 d3 d4 Z$ H6 c; a& S) i LPSKILL lpSkill = &(m_aJobSkill);
$ \) }- R. G, [$ p) h3 g/ X6 t if( lpSkill && lpSkill->dwSkill != NULL_ID )9 `5 w( {: Q0 J; e7 I
{* X. @2 L: A9 T/ L% h B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ q D- O3 y6 j if( pSkillProp == NULL )0 a# P# F" F) }/ a
continue;" u2 K% q3 ?0 \! j. P6 s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) F9 P1 k. H- [1 D
continue;
4 |; v- K) s. t4 k9 u/ X, N lpSkill->dwLevel = 5;
6 V( R. Y5 B0 k1 [ }
7 z' {2 Q s6 q& e4 g, T( k) `9 X }/ c$ W5 K/ d2 U
}9 M/ G2 N ]; T" r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& R. D! s3 e* R# f1 w
if( bGamma )( D7 P) \: w% [. ^
{ O$ x9 P6 U1 R; a+ d3 r
m_nExp1 = 0;
; C0 f2 e! ]: G" H( r i }8 m3 \4 q- a, s1 ?$ J/ W2 \2 T
4 j0 L0 }% Z8 |" ], u; K! h: c8 g
( (CUser*)this )->AddSetChangeJob( nJob );- F, [" r- ^6 v" e7 b1 o
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& A {1 L3 h% ^; c U7 r
6 D2 s `( Q7 L& U
! ]% f+ z2 {' _/ t' a. A#if __VER >= 11 // __SYS_PLAYER_DATA6 N" G N, o5 _' x# _
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- y: U) P: n6 u/ {$ T#else // __SYS_PLAYER_DATA% a Q- D9 T3 m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: a; n0 S' O8 | g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' Y. U6 p7 K! Z# b$ M6 o if( m_idGuild != 0 )
' }; q0 F+ ^* R* p+ O0 d* d g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ Z% D: c; Q, P( G#endif // __SYS_PLAYER_DATA5 m/ h) B% h8 H. Y6 g" i* j
SetHitPoint( GetMaxHitPoint() ); p) Q" ~8 H$ I2 b( S
SetManaPoint( GetMaxManaPoint() );
2 \( W% R; N7 \ SetFatiguePoint( GetMaxFatiguePoint() );$ u9 a/ g2 B n8 V4 {+ E' a
if( nJob >= 1 && nJob <= 4 )7 e; ~$ u) s, w8 b g
{
8 Q+ K( r. F3 r m_nStr = m_nSta = m_nDex = m_nInt = 15;
' Z5 z8 E( b2 |9 a m_nRemainGP = 28;
) P+ x0 z# s( P8 }% ^- N; w* U7 O }
9 x" E) H8 ~( f, r" p4 H; x if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 b% z( N1 U7 G
{
5 z/ A2 A% o2 h4 K0 q+ e1 D m_nRemainGP = 118;
7 p! H/ B! w( B, A1 Q' Q- `" ` //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 {- I# I/ U: ]; H* F m_nStr = m_nSta = m_nDex = m_nInt = 15;$ z9 z! m0 @/ J( L) N
}- o$ [* v3 N$ t7 s2 e; K* ^4 L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* [$ r/ e; h# p- } {6 u3 n4 `7 S! { r2 C
CItemElem itemelem;9 C7 W% E( R$ b: q: `) K
itemelem.m_nItemNum = 1;: r+ _6 ^$ j' u6 ^
itemelem.m_bCharged = TRUE;
+ b! m1 z' a4 B5 D. |: j1 F1 |. d BYTE nID;0 m9 d' ?2 y5 k8 E* k7 o
8 S7 h7 |# C2 D& Q4 ^
if( nJob == JOB_MENTALIST_HERO ). r& w h# x7 U2 K: X4 L
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ e' H! L3 S7 f6 ?/ H: o3 s if( nJob == JOB_FORCEMASTER_HERO )$ s5 Z, k- H3 |2 Z! E5 W
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 n3 Y$ G, L }4 A! r
; Q; Q1 b6 N! a% r5 J ( ( CUser*)this)->CreateItem( &itemelem, &nID );0 J7 y1 {# ~) m. ]) h" K! |3 E
}& J$ |0 i/ O9 h( w: M' O
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ ?+ I8 m% E! r) _3 {9 v6 _ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 Y" [* y o" q! S; G' b2 q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, v8 `! m! ~! G4 d: k$ N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% c# j0 o5 y% m* W/ N8 ^ ( (CUser*)this )->AddTaskBar();*/
1 e3 x6 ?) z- L& X: |1 ^ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% k+ U+ b d1 ?1 r" n( |#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" X7 o* v9 ?* S, b ((CUser*)this)->CheckHonorStat();6 `8 u+ O) W! R5 a5 [5 T
((CUser*)this)->AddHonorListAck();) F2 p$ S+ a+ N6 Y1 V6 N- l/ X' a
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# ]2 [2 n: J: P3 J- ^0 L* z#endif // __HONORABLE_TITLE // ′Tà?
2 |( P3 [+ I3 ~; i9 r }
! w$ ^& c8 w' Y) P#endif // __WORLDSERVER
5 ~5 |/ E/ [0 W} 4 M2 F' ?6 H" z; p
& B, A( G" j; w' g, K3 K然后你进入functextcmd.cpp并添加以下
$ `% C, y' l- W/ x# r, J% j+ e) f6 O0 _6 B+ |
代码:/ r1 U4 k0 L& d+ f }' H E! u# O
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* o$ n1 e# w4 v# X# j7 `下面插入5 g3 ~9 I7 W' y3 U
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 k; i0 [. B) s3 C5 I3 c5 T% s3 ^: A; P" {
然后你去9 e I9 P+ f& Z# i) D- ]
. V* k, r% s* z. O代码:
V! e4 d: n6 Z6 S7 y9 M代码
' k" [$ R) `6 E/ Z' ?8 PBOOL TextCmd_ClearPropose( CScanner & s )
) l, W. |7 D& k+ o0 \) N8 {" {+ _{
r8 Q, v; B. P, D6 ?#ifdef __WORLDSERVER6 l) T, f( x; L; f5 E
CUser* pUser = (CUser*)s.dwValue;
E, M5 s: `" B6 f# n& ]' B g_dpDBClient.SendClearPropose();- Z. k s7 s$ M
#endif // __WORLDSERVER
4 {3 F1 ~4 E! a( k6 C3 i; B( T return TRUE;
6 u2 u3 b7 R/ o0 D' H1 K$ b}8 a& o/ s3 D; u. t {
下面插入5 X, ?6 @' o4 u4 Q+ [5 P1 Q
BOOL TextCmd_rebirth( CScanner& scanner )$ y& B: p% Y- p: M8 j
{0 `) a% Z7 @+ X$ U+ J; V2 M& s6 u
#ifdef __WORLDSERVER
( m) M% J' T4 `# t: MCUser *pUser;
0 u* L( [4 i, T6 q* B# {pUser = (CUser*)scanner.dwValue;6 c) o7 Q2 m+ P+ @9 v6 `
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* f0 C2 S1 [8 T& }- G$ KpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) Y$ ~( O& b. V7 v- n1 c
else
6 c }+ y: i( r3 `pUser->AddText("你还未达到重生条件!");! }4 Q9 p3 U' R/ p
#endif
' d$ {3 k9 R9 b) U treturn TRUE;
" G/ p/ q, N$ P3 A5 F}
8 ?9 b) N: \$ x6 b' \7 Z
/ D1 T2 v$ a8 z1 F2 ^7 v. p0 x$ I: g# b1 y
$ @; ]" Q, D) y1 [! y+ I. m9 F7 e4 E7 _, T
|
|