|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 s4 K* ]& k+ ~; U, ~! M, y
! K! m a3 b Z7 N8 J3 cMover.h
. e7 ]% y% e- K% F5 r, N; T代码:% H% a+ t4 T" c3 s
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! ` E* w/ _+ A& W1 t
q8 C2 m! X6 |2 n9 R下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 @0 N0 B& }' s/ O' B# ?
& x$ b, H1 I) V3 u4 @) F
然后你去mover.cpp添加. g' Q7 [! g( i/ [5 ^( x
; k. ~4 y4 r: D# w; O代码:/ g/ _1 \; B' }* M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 `# q4 o$ a5 A0 \& Q0 f
{: f" h. |2 I% ?
#ifdef __WORLDSERVER
& Y- |9 d+ ?+ p& h- m4 |% ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& k: V+ B5 h9 _ MoverProp* pProp = GetProp();5 V$ J* L3 I' Q) w0 S" z
if( pProp )& @: @( y+ z% G2 V& B7 H$ h( f
{
1 G7 |, P1 l% X Z if( nJob > 0 && nJob < MAX_LEGEND_HERO ); X* h& V0 H! l c3 g/ ~ w
{
: b8 Y$ i: u g0 {( P) c' { AddChangeJob( nJob );
( W6 z" V, T3 a. n }else{
, X" W5 V& ^4 C5 i return;
& k" ?+ Q7 j$ ? }
( a y$ y, {. k int nPoint = 0;
* k3 }9 n6 ^7 U* Y0 c: P' Q" s if( m_nJob == JOB_MERCENARY )
0 {9 H* v* Y2 ], t% @1 N( T, b nPoint += 40;; v" R8 ^$ x+ V/ w) x
else if( m_nJob == JOB_ACROBAT )
% o- j" _8 P& Q& i* \ nPoint += 50;
7 g+ t& A. P* B else if( m_nJob == JOB_ASSIST ). E4 s3 _9 \0 z3 V. c; C8 V; ?9 K
nPoint += 60;' Y4 Z7 v, k. }0 G5 E
else if( m_nJob == JOB_MAGICIAN )
/ V1 R2 Q7 H5 J nPoint += 90;0 O+ `; F" O6 `' {5 R- E5 M' f
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: h) f. M- G! L* k5 K9 w nPoint += 120;
, k# [4 u( B9 j5 o$ X1 m else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), l) N+ [/ Z, R0 Y2 l
nPoint += 150;/ v* B* W- f7 T% E, V# X4 r' N, k. `# e9 q
else if( m_nJob == JOB_RINGMASTER )( T6 L; r7 H/ _
nPoint += 160; {# J1 W! p# }5 X. s6 M
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! T( o h# {9 S3 \9 m4 w, F
nPoint += 180;
2 M' _" {. ]' X else if( m_nJob == JOB_ELEMENTOR )
- m2 p0 {3 f; ]0 K: K: ~, N nPoint += 390;
2 Z* r8 H7 Q; l! G: m3 [3 m3 p else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ R2 u& j* I5 e; L
nPoint += 120;! ~6 ?, w) Z; K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 s- \; [+ q8 R# \) m( @
nPoint += 150;8 S8 M: m! D, S$ F
else if( nJob == JOB_FLORIST_HERO )! n6 a7 M3 T# j4 w+ s H
nPoint += 160;* [* Q& d4 b4 E( k+ p# |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 K$ q8 ?( q' a0 G H( H6 ?+ W nPoint += 180;
4 m& K- J# O# N) o) s. M, X4 c else if( nJob == JOB_ELEMENTORLORD_HERO )
( ?3 n$ V5 r3 q+ W2 Y! I nPoint += 390;6 H1 _! _' L) H) l5 m8 b
6 j; v* {: v4 K4 Y AddSkillPoint( nPoint );
( ^- J6 j) `7 _+ A6 ^3 c m_nLevel = nLevel;# f' C) ]9 J$ _" B2 U
" f a, J$ _- W: m" G4 a1 J7 d
SetJobLevel( nLevel, nJob );. s9 |% V, K+ [- T# }8 p/ @
m_nDeathLevel = nLevel;9 J/ P# W }2 |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 M5 R# M0 s0 y* Y5 [ if(IsMaster())3 x7 ]% m0 {3 b" H( a
{* z$ [9 `' i! L0 r! g' G
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 k) I* g; Q* w
if( nLevel > 59 && nLevel < 72 )
. i9 C( |) T! I1 m6 `9 l, U O dwTmpSkLevel = 1;
8 n4 d* b1 a2 J! W4 C5 x% {) ?; w else if( nLevel > 71 && nLevel < 84 )
8 \3 `+ W, Z' Z3 A- Y" | dwTmpSkLevel = 2;
- A/ b* o2 g* M" `/ p- G* O else if( nLevel > 83 && nLevel < 96 )0 P+ Z* a+ ^, \+ I& ]7 j0 ?* G( m
dwTmpSkLevel = 3;3 q, S- X/ \5 J: O
else if( nLevel > 95 && nLevel < 108 )
$ S2 z3 x7 ~* o$ e: N dwTmpSkLevel = 4;& Q; l( M6 k' }
else if( nLevel > 107 && nLevel < 120 )
& @' i) `" i1 v( `8 U( ]/ g6 n dwTmpSkLevel = 5; T6 y) F& v6 @
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( b. S% A; O/ o* e { " n' H- H9 r; |1 ]
LPSKILL lpSkill = &(m_aJobSkill);( z, `9 f. b4 R% r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 A, m5 c; m) L4 S) ]8 A {2 V1 ^: U" j1 j2 C: p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* P- L( }( E9 f( G! ^- k, i _ if( pSkillProp == NULL )
- g) _! j& p5 l6 j continue;
9 V& J% n* j& r5 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 |1 {- D& r3 Q; A2 V- C; { continue;
& J1 C7 b+ w( c+ y" L$ L7 ] lpSkill->dwLevel = dwTmpSkLevel;3 D4 D9 E; I$ A L
}& b# x8 ~8 Q+ L: s/ L0 x+ b
}; o$ J$ {0 R p" v" q
}
* [ S9 @8 G: E: \ else if(IsHero()), @5 V- e6 \" f; z
{
( B& q/ U5 J+ q" _ for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ `& Z( T, p% W1 S0 `1 v { . u. T% M+ k- f/ C$ M, N
LPSKILL lpSkill = &(m_aJobSkill);
- E8 X5 Q$ ]3 n if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 Y: w1 f- O; h, k' l6 p* P7 ?6 { {- A# K* f) i4 |, E; K9 h6 D6 y* o4 L# S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " a$ U. i# b- o
if( pSkillProp == NULL )
9 H- v# p5 X8 ]' ]# G; J g continue;% C0 p9 i/ A% s* c: d( e* h1 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' D" ^" l5 D+ \* v. [: J$ C) w% F continue;
2 @* h q7 f D7 E lpSkill->dwLevel = 5;# B5 w3 s0 L' h N
}
4 ?3 m1 [: J- C/ h- S4 a. d9 d }. ~/ ?- C" C; @9 s
}6 O( H0 `( t/ h; u" e; R0 U- d
else if(IsLegendHero())
3 \# l: Z. B+ ]1 ^ {8 J5 ^9 V+ k/ U2 Q( a* G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 Y8 }8 ^ {- \5 r9 _$ Y5 a6 E
{ ; v" d9 r& B4 I- Y
LPSKILL lpSkill = &(m_aJobSkill);
5 Q! {0 ^) T3 Q if( lpSkill && lpSkill->dwSkill != NULL_ID )) @3 @5 G6 a! Z6 Q2 g8 m, q+ w1 v
{
2 J H+ Z7 }7 _$ h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
X! Z: \% h4 R" O if( pSkillProp == NULL )& z6 Z* j8 _, g2 v
continue;
l3 S* V; u# U T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 V8 @' b# W- h* m
continue;
/ u! [: a% F3 w5 ~9 S- I# D lpSkill->dwLevel = 5;
. _- \; o+ M% T3 F* F7 X0 U }6 z5 V3 s' W2 r4 d
}
- U* w( X% I6 F! J/ [2 p4 D }
. J" s/ ?) m% g" {6 U! B( l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! k) X. Q, J- b# R/ P+ E
if( bGamma )
8 y+ [$ h% W: m {
: r; e) W9 x! \ m_nExp1 = 0;- ^; N }, R- H, o
}
' G$ @: K) j9 U* e; o: a5 g2 A4 }' p! m6 p+ W1 i
( (CUser*)this )->AddSetChangeJob( nJob );
; I0 b6 X: \; Q: K* g, B g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 G0 ]; g% F. h% ^! M
- r( N8 B; N- U1 ^5 J
$ \' K( G' y( P6 H! @' g#if __VER >= 11 // __SYS_PLAYER_DATA& G& \9 s8 u+ n. Z0 x1 q" \
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
m1 S3 x1 i+ X% O#else // __SYS_PLAYER_DATA$ G( G6 f" z+ m. p3 ~* P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
`* t ` ?" |9 r" {$ f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( T; {* r( H B% F0 F5 w
if( m_idGuild != 0 ); Q! `. ?) e' v/ r' K" d' b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( x# g+ e4 A. s#endif // __SYS_PLAYER_DATA
# i) i5 h; r( j3 r SetHitPoint( GetMaxHitPoint() );* u5 e( G7 t- _- B
SetManaPoint( GetMaxManaPoint() );8 d5 s( b+ I# F' i/ r0 E
SetFatiguePoint( GetMaxFatiguePoint() );- W' Z% s6 I9 Y A; g
if( nJob >= 1 && nJob <= 4 )
c1 a! z1 F* a0 _# d8 O, N1 r {
! t! s+ {. o$ {: s- ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;% m# C; |& j8 ~' s4 W
m_nRemainGP = 28;
8 l6 _' u$ ?/ L, `9 F }
% b5 r6 I% O! D3 I* c8 ? if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* |/ {$ X* f: g9 O8 B {
' ^" V M0 z3 K/ V/ \$ z8 N m_nRemainGP = 118;
1 W4 b7 ?' Y2 X //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: C! O; Z2 C- U: F3 M1 k/ s6 s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 Z0 h- \3 m) I4 e5 z }# e, L8 l9 m9 }6 }3 U0 X: W& h/ i6 P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ g9 u* B- m% q& B. i) s {
4 d% K; ^* C J; o CItemElem itemelem;
6 s$ V/ R$ Z4 K6 A3 y+ \% V itemelem.m_nItemNum = 1;% q" k5 F e$ n# w/ F
itemelem.m_bCharged = TRUE;; O1 U* w$ j3 X- Y0 `5 g7 R; a
BYTE nID;
) n: X8 m, @% V3 f J* J3 k" o7 }. D) x
if( nJob == JOB_MENTALIST_HERO )0 E7 b, L& X1 y/ X- G$ C* P8 t4 Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! H: w( Z6 I' w" s, S9 v* q) ^% V if( nJob == JOB_FORCEMASTER_HERO )$ W4 q; _$ N0 ^' _
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 @# G! Z: d+ o
# L2 B9 ]4 d+ z; A2 R ( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 d/ `0 P- O* b2 P }
1 I+ {) u% t( u g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' n- f: r Y' D) a# [) _4 T0 j* y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: T7 q# K$ w- V4 d8 c& W0 V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. r; s7 }3 l0 W0 ^8 p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, c, t, o9 v; w. V% J7 K# E
( (CUser*)this )->AddTaskBar();*/: m8 Z2 T$ w8 W0 [3 N' x
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; |$ k5 W5 ]5 I6 r6 L4 ]& p q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! q" j) L- m; ?1 h0 K! m: O' B ((CUser*)this)->CheckHonorStat();
3 ^, X8 A2 x- f* {& m9 X4 j8 q ((CUser*)this)->AddHonorListAck();; g+ v2 l. V5 n P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 ~ T* t" ]" d/ a! F9 Y#endif // __HONORABLE_TITLE // ′Tà?4 N# D9 W2 M0 r( Z3 p4 c7 E
}: r$ G; j- }4 A( Y. y6 y
#endif // __WORLDSERVER
0 s' o% P8 @1 e% D3 g( Z' o" ?, M0 {} 9 M. @- \$ r& n5 H* o* C f
2 w0 T( m) p& e然后你进入functextcmd.cpp并添加以下2 V+ t0 u8 F* C" T2 r2 h7 \
4 O+ Z7 z0 `0 { j! u- ^$ [
代码:6 `1 a# S. M. f
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ w: Z: q: y" j3 u* F
下面插入
! w2 [; L; M9 Z/ f% {0 B/ jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / C' [8 ]; s( z9 U
9 i, G) K; Q) U
然后你去
( `, m; k. D) _3 S5 v0 U" a0 ]; C, {, J6 e; E: ?; W
代码:
" ~' L0 X3 M7 C代码8 L5 ?# H" N& j" r, o
BOOL TextCmd_ClearPropose( CScanner & s )3 ]7 ^$ E& S" ?9 s" P; B) n7 p6 f
{" F5 E: m% r- ^3 L% v
#ifdef __WORLDSERVER( U n. `% d$ m/ [" E- w# I
CUser* pUser = (CUser*)s.dwValue;
! D. f& j8 _# j, ? g_dpDBClient.SendClearPropose();9 u3 K7 |/ d% S- y( z
#endif // __WORLDSERVER
3 k; K- `( {* T( s" R+ \ return TRUE;
$ o: n" \& c7 Y1 l}' Y' t6 S( K% o, P
下面插入4 u: ]/ Q4 n- q4 o5 u4 R
BOOL TextCmd_rebirth( CScanner& scanner )
) k o/ q$ O8 E0 N* H3 m; @{
( }8 X6 V: Q [#ifdef __WORLDSERVER
: `3 _% C" d& Y. E8 TCUser *pUser;7 L+ ]$ _7 }' q1 z, E
pUser = (CUser*)scanner.dwValue;
0 H7 a9 `' k/ |2 ^" Eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) f6 C8 @6 h1 P* S4 @pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& v: V) e1 x9 N* O' v1 l
else! A( [: G( D3 ~; Y( i
pUser->AddText("你还未达到重生条件!");& C$ U% l- \8 ?6 Z* i
#endif
: `8 J+ t5 G/ }0 a: x( {- h1 m: Nreturn TRUE;+ R+ W: k0 h) q+ {0 @7 j U
} " S# s$ G/ v* M/ O; t
. E2 W+ l7 R* Y7 f; ~" d: O7 X6 y5 w/ p& l6 O/ e
3 ?1 g/ k1 D) ]% q% F) z, R. s
/ Y6 m# @, F- ?- A. a
|
|