|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% P1 A/ a6 I8 b$ K) e5 J) l" `
) _# D! S1 f9 g- `4 k" Q$ f v+ k7 vMover.h* q0 `4 q- P4 X7 [! x
代码:
5 I/ S: _( ^) K找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. X; i+ D2 L: `% ~: r: Z
; d* ^" H) \9 f; u: |9 x* }
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 ^$ }) v! J# \, ]7 H" D0 K% ]1 A0 J
* ]! p0 j6 y9 V/ q: j C. H
然后你去mover.cpp添加
1 g' k0 Z8 F u4 Y+ U% s! p$ w. w0 A9 L0 M: `( C7 u) ^2 s
代码:
6 M2 Q8 ?& R. B" M, y- U( V! q& Zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
X; }& Y( _% ^5 q9 v, S: D{. M4 W4 ]' E( ]' {( z
#ifdef __WORLDSERVER
~6 W8 P, ~' d( Q, X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' ]+ i; l( j% E( Z: V
MoverProp* pProp = GetProp();
9 ^! k2 U- f( p9 e$ x* s- I if( pProp )
$ l @9 b( P" ~. `9 T {
$ z1 T# g; |+ p if( nJob > 0 && nJob < MAX_LEGEND_HERO )! w( a5 q! e R! p
{) J8 U) g, r3 {& G
AddChangeJob( nJob );
, j/ K$ n/ @2 Z4 E2 E }else{( c+ Q2 z9 o. _/ V9 j/ y
return;( C0 S, q m6 ]+ C
}
L% M. T3 r1 C# ~9 ^' K& u: z int nPoint = 0;3 I- u/ h e6 x8 O7 M
if( m_nJob == JOB_MERCENARY )$ S/ @" R: ^8 u" d
nPoint += 40;
9 R; k8 l! m! A) X else if( m_nJob == JOB_ACROBAT )4 ?- f* L6 U$ ^; X* D
nPoint += 50;1 s1 q7 G1 @+ |; e: L
else if( m_nJob == JOB_ASSIST )( @# x' g4 ^' ?) o1 w O% T% {+ P, V
nPoint += 60;+ \1 _" x [! H+ k: W
else if( m_nJob == JOB_MAGICIAN )6 ~' A' i* |' n# U! g' C d5 p
nPoint += 90;
( e6 }' X: ~3 _3 J4 {- B else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): Q$ @4 T+ o: E% \3 _" p* I
nPoint += 120;
0 B, [& H7 [* q. K+ I else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! ]& p4 Z* o; t; t7 O
nPoint += 150;. E. M6 r7 d+ y8 t9 M
else if( m_nJob == JOB_RINGMASTER ); a3 c6 x" {! X/ d/ `9 B4 U
nPoint += 160;
) R: o$ y2 Y1 H; C7 I; x else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 T4 \* H& }$ {; y nPoint += 180;
^. f1 ~' L7 l else if( m_nJob == JOB_ELEMENTOR )6 l# z; Q$ C6 u/ m: I" h) v8 D
nPoint += 390;% B& `4 p0 f* z( Z9 |7 ?" Z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 K& y( A4 Q& H- b- ]. ?( e
nPoint += 120;
5 c" ~9 `1 b) M8 L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ a1 D$ N% R1 x- p) v) W4 u: C
nPoint += 150;
/ I9 z, a* ~* ?% i% A5 H else if( nJob == JOB_FLORIST_HERO )$ ^- c9 r" p- J; [; |0 s; @
nPoint += 160;0 }- V) P2 |. Z* B5 m
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% n- o/ I/ M/ t$ N% [ nPoint += 180;8 }' |0 ^( G' _8 R3 n% I3 L* a
else if( nJob == JOB_ELEMENTORLORD_HERO )
: f" N5 `+ ^! p! D7 F$ N; r1 z6 E nPoint += 390;' O& d( C' R7 R1 @& R
4 v; H$ \( z. M+ r AddSkillPoint( nPoint );
9 C, j9 m4 h/ L% J2 q! } m_nLevel = nLevel;
7 a$ ]/ ? w% l: l& b5 l0 e6 D. e* b3 r4 ^4 z
SetJobLevel( nLevel, nJob );
' Y* r1 [$ Y4 Y' ]) o7 e6 ?+ k* } m_nDeathLevel = nLevel;: W! l. i0 t8 V! Y" s
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" H! v8 L3 M! H: m8 L+ Q
if(IsMaster()), b+ m7 [0 V! r2 s1 ?
{7 p. |+ R. q* d0 R; d2 C8 {
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- w1 M; M0 q6 s- k3 s- d if( nLevel > 59 && nLevel < 72 )
- O E T. m% T8 u2 u" I dwTmpSkLevel = 1;
5 ` l; G4 d9 i, u' E w else if( nLevel > 71 && nLevel < 84 )
: B- i6 Q7 p* Q dwTmpSkLevel = 2;
0 O \, X/ X$ E+ e. ?9 A else if( nLevel > 83 && nLevel < 96 )6 u$ H5 `( a$ N; A& r* q2 q
dwTmpSkLevel = 3;0 p# n2 w" L! l7 N# V) G
else if( nLevel > 95 && nLevel < 108 )
4 f8 p; [1 z' H9 ]# i- _. M% Q dwTmpSkLevel = 4;
$ m! i9 [" Z& V. j& _2 h else if( nLevel > 107 && nLevel < 120 )
6 i( M* o9 ~6 v* z. C) `, |6 T2 _ dwTmpSkLevel = 5;0 O0 W; @/ _5 w% C6 ?5 [8 T9 N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
`: Q* \7 b( R" h3 ] { 2 K; |. s* f& g s2 U- i
LPSKILL lpSkill = &(m_aJobSkill);$ Q% m; o" X* w) D6 P0 J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ D ?) A. i a N% F+ j6 t* T' p {" R3 h6 k" z& ~0 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ p) y- x2 B7 F& x6 ` w if( pSkillProp == NULL ), ]# i- y& x4 O; @5 E7 \
continue;: j0 _6 M, h1 J+ |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& s# B+ N' d. P% [+ ?4 S. F continue;
$ p1 w1 r: k2 R0 z z5 b lpSkill->dwLevel = dwTmpSkLevel;
' J6 V7 x) H J2 f }
; S' F/ b1 |! Z& ~, p1 P: A }
6 n; ?8 V: Z" V8 z9 f, b& d }( y* q, q- {6 C
else if(IsHero())! I( t w! S' {8 a
{
0 o5 L7 G/ f$ q9 f7 v7 \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 }+ I; Z+ ^6 Y, d" F' j
{
8 Z" ]+ |+ y) `8 u# Z* O LPSKILL lpSkill = &(m_aJobSkill);- f( }; V, u1 `% c6 {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* t1 i: h: _, c* W. |) v9 f) D {1 v6 a' \* A T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
O+ a! z1 y- v if( pSkillProp == NULL )4 a2 Y* _. n- |% w
continue;7 f6 y4 u- x* z( `: ]6 E$ q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% P5 l g& L, k: U continue;- s* k! j& O/ [, e1 {3 d3 F2 l
lpSkill->dwLevel = 5;) C4 ?2 H: Z6 K4 A9 v- O0 g
}+ z- F/ ?. K, D ~6 }2 \
}
. a: ^$ c( R6 V) n& V0 L" @6 H( L }8 p/ |# J! ] _/ c0 A5 X
else if(IsLegendHero())
; A9 T+ Y) m1 }7 U: F$ b( ? {5 N# H& S- V' G( ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 Z, Y9 k' R2 [4 e: s; }( Z
{ 2 N6 g! e' K+ S5 I, j
LPSKILL lpSkill = &(m_aJobSkill);# B( y/ N. [* m, l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 D7 n6 b! a/ P# W- |- r) c3 M: B3 g {/ M2 {9 l# G9 s& X* L' ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); J! ~0 u. ]2 J
if( pSkillProp == NULL ) Y9 o9 f9 _* B
continue;* ~) ?1 f* F. n7 x/ g3 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) U0 O6 [. V: x; j- a
continue;1 E' H) c' g7 Q7 }5 }4 |
lpSkill->dwLevel = 5;
\% p. ?) v, d7 r) S } ^7 U% v) ?7 _6 j
}; x9 {, ~; Z" ] @3 u6 C
}5 C# t7 e7 `9 H, F+ I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" B9 x, K0 Z8 r. n( d1 j$ E if( bGamma ) v# t+ I/ O U# Z1 G" Z$ [. O
{
; G* d/ N5 p# K+ U& |7 ?/ M1 @) [ m_nExp1 = 0;, r5 d) R9 ]0 M% Z
}( T6 D' Z! b; i
/ X2 L1 F& K' }' r r7 u: D ( (CUser*)this )->AddSetChangeJob( nJob );
4 q1 j5 x+ p0 c; X2 V, J( v+ R6 b g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 l% ]$ m( F0 F1 {
' g) K$ I% A0 {8 _, r
8 `+ g3 d2 q0 X% |
#if __VER >= 11 // __SYS_PLAYER_DATA
1 \7 Q a4 a" u, P# f g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' O1 `8 P( A' r: \$ ]+ `( K#else // __SYS_PLAYER_DATA- d, I0 A; }8 o# _$ L+ I
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" D: h4 d" p( y: J9 @+ X7 H5 L, } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% \& B; T% Z* Q: j
if( m_idGuild != 0 )
" X0 r$ ^6 Q; ^. k& J! ?- y" \ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) I1 F/ E; O3 r9 N6 o+ ]#endif // __SYS_PLAYER_DATA" K2 {( [1 w( I( ]7 a% @
SetHitPoint( GetMaxHitPoint() );, A7 p+ \" A3 L
SetManaPoint( GetMaxManaPoint() );
' b+ E: A# r3 @# \) w4 i, g SetFatiguePoint( GetMaxFatiguePoint() );
3 O! X, ?) e }% J% @; ` if( nJob >= 1 && nJob <= 4 )
4 K& X. _4 k) s" P0 h {+ I! Q: q* q; [- O" G) B
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! P0 y* ]# z& I5 q m_nRemainGP = 28; M# G9 M2 J, L
}
4 D. ~2 I7 |1 v0 h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 D9 x5 K5 n% I+ ^2 R0 ]6 S
{
0 ^' |+ R2 I- \ D7 P; D& \ m_nRemainGP = 118;" w' p& ~' m6 \* p" H
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ k2 ^8 R, `* @. T6 j) ] m_nStr = m_nSta = m_nDex = m_nInt = 15;% R% k" R/ V4 @5 T7 O! @$ g& d
}0 K: y1 W/ u+ y9 L; l( q6 J" }- A
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ R/ V, u& ^8 H6 z {
6 t1 |; e% \3 H! V- Q CItemElem itemelem;0 |' G: h. g0 E& B
itemelem.m_nItemNum = 1;
! k! F1 r# q8 P( M% j/ s itemelem.m_bCharged = TRUE;
S& C: k v' e8 x3 v6 m; F) l BYTE nID; ?% t7 N' c2 r* o( k1 k
+ _" Y5 c/ V! g0 F5 @4 w
if( nJob == JOB_MENTALIST_HERO )
; z) U& G& K% U# n1 H3 G itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; H" U, G f2 P; k8 F4 y
if( nJob == JOB_FORCEMASTER_HERO )
+ K. p- C) w2 d* U- H( H itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 }! G& p, O, f3 h& M9 V5 e6 k2 ?
, m$ _7 o0 m6 S ( ( CUser*)this)->CreateItem( &itemelem, &nID );* ^' B# q; w" p$ u0 c
}3 ^' t! E# d8 w" y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 u/ {" Y" k ^3 a
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ ^3 T6 q2 K" t2 A6 J4 l' \( e ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( b- @2 O5 q0 P3 q/ G9 n4 q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* X4 I- A, e1 }' S( k: k, s ( (CUser*)this )->AddTaskBar();*/
, N3 P8 b2 S0 [. Z5 | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 n, L4 M7 c" g0 D! z- g7 _% b#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? Y! V" ]4 ^( D4 L3 q3 \
((CUser*)this)->CheckHonorStat();
6 j" q$ D/ x; d8 [ ((CUser*)this)->AddHonorListAck();
4 z! K* ], M9 L3 C g_UserMng.AddHonorTitleChange( this, m_nHonor);( s2 |0 N' U- b% c$ C6 D& L/ D7 Y
#endif // __HONORABLE_TITLE // ′Tà?9 Z, v7 A: f$ z9 {+ e9 U5 Y4 a
}
0 K5 V3 x. L8 K6 f#endif // __WORLDSERVER9 g# {( r% u3 m! R
} 7 c/ H8 a& c' }! ]* q! \4 [, g
# c7 q2 H1 ?* l9 x3 a% g8 r然后你进入functextcmd.cpp并添加以下! Q- G& |; v' y
' w5 z3 T1 G9 ]+ M; q4 w& q" F
代码:# _# V5 h/ b4 R0 @: I
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' `3 I7 A* k, [) b6 @2 A9 I) ]下面插入+ S' c7 F: X1 I! x O
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% V9 [) b/ ?4 z# Q7 @
5 O4 r: G Q4 p$ F8 ?! }然后你去
% ~( t7 k8 j- b F4 ^. q7 B# m/ [/ r" d) L
代码:& R4 s' l' P U3 @& K7 [# e0 G4 c% N
代码( Z7 S* J* l: B; O% J; I
BOOL TextCmd_ClearPropose( CScanner & s )+ m7 `( }: Q0 u
{
" Q4 u1 G" H0 c8 q5 Z, H3 O#ifdef __WORLDSERVER" a4 |. c; S# r7 W, E! J8 H# M
CUser* pUser = (CUser*)s.dwValue;9 T/ |7 v) Y/ V9 ?
g_dpDBClient.SendClearPropose();" N& y8 v1 ?$ A
#endif // __WORLDSERVER
1 U P3 M# O1 G+ _/ d ^4 M7 s return TRUE;
2 S3 X8 U* X9 F8 i5 ]}' \, w* N+ M/ h- X, |$ H3 Y; f
下面插入 K* T5 O: T1 `: s# X
BOOL TextCmd_rebirth( CScanner& scanner )
2 \2 X0 a% Z: g! z{. A1 F' d) U; X1 q
#ifdef __WORLDSERVER
& q1 z9 {9 n: L8 ^' [1 uCUser *pUser;
) V' b; S6 b; M" d+ OpUser = (CUser*)scanner.dwValue;5 A" X4 O- K* U: B& _# Y9 Z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" G! B/ i! ^, `; rpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ R J; [& z% G
else
+ E$ G( j7 @4 q, \8 m! w IpUser->AddText("你还未达到重生条件!");
9 {3 g, N4 ^7 |8 w3 X, ~#endif
# \4 a8 R1 Z0 M7 {4 Y9 ?- y; Qreturn TRUE;' |; |) n2 Q0 o
}
9 A' o9 P/ N0 t
, E0 `% ~. p" N/ m+ ?
; ~7 F' D; K' i/ O+ n1 J3 s4 t: a! t: _6 {+ x9 M2 P
5 v! U5 N8 L/ n, F) ]+ B0 D t( e; z- R |
|