|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- r2 O" i: a2 T9 X. q
+ z" L# ~4 I6 d$ j
Mover.h3 ], A: } C5 F* |: t
代码:
- I& _5 b/ F* Y/ m" |0 Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, }! [- i' d& h+ t! D
! H# E- o7 v5 u, Z7 c* b下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* q9 h( M* B0 V, Z- @
8 V/ U4 C0 B3 }4 y- l- w然后你去mover.cpp添加" r3 f9 r) M" |+ l
( K/ g2 X4 ?: m3 b4 F: j
代码:' ~; j3 e4 d5 Q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 P4 f, |* m3 H- `) L8 `
{. o8 `/ Y4 U, c! J
#ifdef __WORLDSERVER; R' a% B6 \. ]& }' U8 N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. p# ^1 r1 o3 }+ [% c0 k7 Z5 Z1 M
MoverProp* pProp = GetProp();
5 r- d. Q; b* Z' i ~9 X$ ^ if( pProp )
$ G3 x; o0 F! }2 v4 E {( V! u% J+ z) Z5 l" {( N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 \3 T0 T' R! I& L4 Z, N& N9 ?
{5 s' ]# c# n2 F4 j+ w" X
AddChangeJob( nJob ); S: i y% L& ^3 X: G6 \
}else{3 i/ e; W: r/ H$ @ W1 O8 S% w
return;
# S/ I$ }2 o! H+ {8 m& _ }
) I# F" k% N, }( y7 E int nPoint = 0;7 w0 w. @% T2 [# P, ]* p5 v
if( m_nJob == JOB_MERCENARY )
Q n: B8 k) e5 S i9 _% h) C2 W nPoint += 40;7 U2 W6 f7 m: { K1 r
else if( m_nJob == JOB_ACROBAT )/ p6 M0 ?# D$ |: _
nPoint += 50;
" Z4 H3 ?; Q* I) W& J else if( m_nJob == JOB_ASSIST )
; o7 X1 f' B- g* H/ A2 O. {: { nPoint += 60;# a* M0 p( U: ?4 V/ ]! m$ D
else if( m_nJob == JOB_MAGICIAN )
- Q8 g* q/ \1 d% R$ e% ^, b9 J nPoint += 90;% m( n2 [' y' m# G! [: `# Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 }& \6 Q% d) e) S nPoint += 120;
1 Z( Y7 S- ~. k/ N" {6 l& x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 ]: s& B' `$ T6 E- I. j b/ M nPoint += 150;. \% o' H8 T" {* r9 d0 k
else if( m_nJob == JOB_RINGMASTER )
. H( g& r1 [. e! U2 l5 o n# u nPoint += 160;) W- B4 X0 f! z6 Y C* Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; [% f6 _/ s" m( B2 q5 M( u nPoint += 180;1 L! o) G6 C6 x# |: v
else if( m_nJob == JOB_ELEMENTOR )1 w% S9 D' @4 f9 z+ @0 M
nPoint += 390;
. T( @, t% v) r( O$ @ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 ~! B# ^' k: |9 M. f. b# C nPoint += 120;
1 m% w N7 c( y. Q! _) r else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% I. X* p, m! Z0 W$ d+ m" m) `
nPoint += 150;6 B$ L) s# b5 ]$ ^! O
else if( nJob == JOB_FLORIST_HERO )- C0 o% x3 H( x# S" T( @1 W
nPoint += 160;- ?! v; W) B/ j: X/ Z& W% V
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, b8 B( i( @7 G nPoint += 180;# {7 H& O" @+ P: J6 Q, i; v
else if( nJob == JOB_ELEMENTORLORD_HERO )' ~7 m8 E6 w+ G* [7 B" ~; E) c
nPoint += 390;" i, n! W/ B6 J5 `3 M
% n/ c3 |5 R% s, M7 q* @
AddSkillPoint( nPoint );' }/ b2 t; C. E1 h, I$ X0 `) ]
m_nLevel = nLevel;
) S1 I+ {1 F" O/ }5 W
! E9 a7 W1 T) D3 t2 X8 D5 ]5 P SetJobLevel( nLevel, nJob );5 H' y& t& ^' d/ c0 D0 z
m_nDeathLevel = nLevel;
. b$ ?; ?$ n" }' Z#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: L! g! ^5 o5 |/ r# Y
if(IsMaster()), E8 F7 ?* f h6 v6 @! N- W4 }' Z
{! L; {% n' ^: _
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 d; r; C- P& c( U if( nLevel > 59 && nLevel < 72 )
3 H) P0 j( D5 B. u' V; I dwTmpSkLevel = 1;5 J4 [ R/ C& {% Y% Z
else if( nLevel > 71 && nLevel < 84 )
* ?# D" _* D& j3 V dwTmpSkLevel = 2;$ `4 w r2 [6 K* x6 X! r
else if( nLevel > 83 && nLevel < 96 )2 _) w; b, @' Q# ?' b( H) |
dwTmpSkLevel = 3; G6 q- h4 i( p
else if( nLevel > 95 && nLevel < 108 )9 _; Z: R+ H$ h$ _) ^2 U! o( b
dwTmpSkLevel = 4;1 b/ E3 e$ h. V1 h0 q, ^! e
else if( nLevel > 107 && nLevel < 120 )/ I; P3 y. I$ ^% s
dwTmpSkLevel = 5;
- E" Z' E" I6 z0 A for( int i = 0; i < MAX_SKILL_JOB; i++ )
& b* X" n5 J+ `4 l" n; p" [4 m% ` { % a1 } Q8 v. [" q1 F& M
LPSKILL lpSkill = &(m_aJobSkill);
% U0 h: l9 P4 p o" T% e+ L if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 E( E) L$ K4 r# W {
& M8 z4 M* [& k$ o% ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : I, g% i1 y$ H0 A1 g* X) g
if( pSkillProp == NULL )
% S+ b& J( s2 E' _3 L+ h! [* K continue;
. [) U" D4 {' X- V7 N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 w+ ]1 v: w' \. r% l+ Q' O% @ continue;
4 J7 A: P! Y0 t) [( H, s; `( q lpSkill->dwLevel = dwTmpSkLevel;
+ K* r" N! f$ \& | }
* O& s$ H6 h' I8 ^4 A }& v* @! N7 H( y0 W
}* B# G5 g# ?2 {- M+ g) K9 j7 S
else if(IsHero())
0 e' T8 C4 z) k( B8 O# O. @ {5 x3 j( w) C) M/ P, s* ^ r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " B6 }2 i( {- K F5 h1 l# q
{
+ T- I, [- }1 v LPSKILL lpSkill = &(m_aJobSkill);
# i# ], n: Y- `$ P if( lpSkill && lpSkill->dwSkill != NULL_ID )
! ]6 \5 `* E) A! q! i {
3 W" o+ b- x v- D5 P3 R# e4 v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
J1 f ]0 D4 n4 p, ~4 g b if( pSkillProp == NULL )! p5 m1 A9 k' y) s5 P0 ^% b
continue;
) {6 k f5 @. K8 n: } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' n9 @6 N/ Q% `1 i- W7 ]' r5 U# @ continue;
" x* i& r. ^4 [ lpSkill->dwLevel = 5;4 r1 q, v& p' {: z0 @9 a
}
, k5 a5 m9 I' f g& Z/ Z }9 o* x- l7 R- R: B1 S
}9 _/ x4 o1 @) C& Q/ ?' W
else if(IsLegendHero())/ r9 l. x7 w" N4 n" ~/ t* T
{
+ g& g- J' E8 Y) }" } for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ ~" n7 X# V7 A- j: [
{ ( Z$ |1 v' |8 y. u
LPSKILL lpSkill = &(m_aJobSkill);* O" c, F" m6 @2 D% p- M& B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 U2 n: w$ v1 k, m3 n: C" Z6 m9 o {
; Q0 x, _2 N0 ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 P9 i! |- u5 z4 I if( pSkillProp == NULL )
: Z0 o% a% C( J; R: P, \ continue;
8 i8 I7 A7 I7 _' T+ G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 Y# f$ E7 w- Y5 m3 ^" E
continue;
2 A7 }9 y* \* A, A5 d6 A lpSkill->dwLevel = 5;2 E4 H& \9 U, ~ Z8 H) g, ]
}
2 F8 q: ]# a! G. } }( M' Y& P4 w9 C1 R& M6 n% Y- `
}
6 |2 Y3 _1 _) c& \+ t' i9 P/ e' x#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ e8 c) p$ v; N if( bGamma )
. N3 K$ V5 a& r {, A7 B! q9 D9 X8 D2 S
m_nExp1 = 0;
, t( s' \ P& L H S6 F2 h }
! z7 f0 S8 Z9 x3 u( e. z( A3 m" r
; l8 ]- s& x( }6 U ( (CUser*)this )->AddSetChangeJob( nJob );1 T# {! `2 ?( ^0 P
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 l0 e7 ^/ G1 U# _; h: K* j2 a8 P; ?# H6 o% Y6 Z+ a& H
8 D: r& a1 Z9 G3 @. d" n' H- P @
#if __VER >= 11 // __SYS_PLAYER_DATA
( k2 y& M4 I4 u8 u; H7 ?2 f g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ F6 W' E/ z9 j& I/ ]' V#else // __SYS_PLAYER_DATA
) t5 ], [1 A( g4 o, x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; P3 a- v" p- q- f& D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# g4 y, S5 q8 l& U8 ` if( m_idGuild != 0 )8 q! d; E7 ~ Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* a8 w( w) U3 D8 b#endif // __SYS_PLAYER_DATA! d$ `0 W5 X3 e* c) f
SetHitPoint( GetMaxHitPoint() );) {: V& n0 J! C7 L
SetManaPoint( GetMaxManaPoint() );
" M- \5 w7 ~2 j: J6 _. a7 I SetFatiguePoint( GetMaxFatiguePoint() );
; y/ K; H) T+ f' c+ K if( nJob >= 1 && nJob <= 4 )
% ~8 j) s; x# r {
2 i4 A, Y) L5 J1 m m_nStr = m_nSta = m_nDex = m_nInt = 15;3 b; v3 C) @- ? p9 T
m_nRemainGP = 28;- g2 W* O: _- S
}) K( n" m. j7 y2 B& u/ M. L
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 u( ^$ E3 ]% r {- f$ Y- B) a' c' B w% k! J" `: ~
m_nRemainGP = 118;
. O7 Z+ e3 o! X0 G- E- o //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 p K( c# w- z! U+ v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' C# f4 ]* y. _9 C }3 R& |$ s. ?! n5 _9 `1 x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( A; R" d( m I8 U
{
0 K' f, U# |+ u9 ^! y% x CItemElem itemelem;
; ?% \; J. j c( ? k itemelem.m_nItemNum = 1;( h' t ~3 T9 C+ V, N4 F
itemelem.m_bCharged = TRUE;+ f9 f( d Y; }! P
BYTE nID;
}$ j; m$ v+ u" N0 v# k) ? c: H% r
if( nJob == JOB_MENTALIST_HERO )/ Q3 G) ? ]+ b* r8 Q6 [/ ^) N* Q: [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
\) y4 x3 F' H$ b' e if( nJob == JOB_FORCEMASTER_HERO )
- B7 }5 ~* _+ R! {% g- S" B: Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
X6 L7 u; o* |- t ^3 u: d$ y1 ^8 u
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 X2 J9 j" o0 ^ }; a( P+ N n1 X7 m' t' J3 B9 \7 ~
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& j6 F: Y2 i- ?# m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, m5 C6 k" a3 U2 O' F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# E* k* x( e9 F% C- I
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) n5 E. K$ a( `& o& a* _ ( (CUser*)this )->AddTaskBar();*/
/ P; W. @6 o+ j, h' A$ e ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); R/ J- e. h- O8 }* L" }: s* d' M+ w/ c
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 {9 F- }) ^( r. `2 v* e; f" E ((CUser*)this)->CheckHonorStat();" {" D* a0 Q: J, E
((CUser*)this)->AddHonorListAck();! t5 f5 X) n3 q" H
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 ]) u1 D% `+ K# B5 i$ G( L% V#endif // __HONORABLE_TITLE // ′Tà?
, R8 r6 P% a! z1 f }
5 Z7 n% v3 k( a+ y% r; g#endif // __WORLDSERVER% G( G" D$ \- m1 W! R2 A
}
0 H: I) s2 e. Z5 |
) |2 r6 Z+ }0 B. t4 g9 d然后你进入functextcmd.cpp并添加以下: O$ d9 C3 c0 X; \
% b8 V: l/ j% T5 j# d. J0 Q
代码:
5 i9 ~' h! {( ~ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* ^ W6 i% }/ m" V" T1 T; W
下面插入) J, @* @+ U) S! b9 D; s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 Z& m4 N5 x8 C* y; L; _, |& _! o9 _) }) V7 f, h3 I9 f
然后你去! I9 F2 Q% c H- a% [4 z
! X4 Y' O( Q0 E A8 e: ?7 n8 r
代码:5 l. Y# o% q8 b5 G3 R( x( R
代码) ?% P* B# @% N6 U4 ^' D, n0 p: I
BOOL TextCmd_ClearPropose( CScanner & s )
7 T# j7 A- w. h3 g/ b{4 w; w' `* G/ T( z. F
#ifdef __WORLDSERVER
: A: a8 ^# } m, |" \! L CUser* pUser = (CUser*)s.dwValue;
7 l, N% A9 y$ K! p g_dpDBClient.SendClearPropose();& D: C P2 S& X q+ g
#endif // __WORLDSERVER# m7 ], Q4 Z$ i# d0 x' P$ N
return TRUE;4 Q9 o B* a+ k! S' i
}
4 b* I$ u- a) N$ s0 u下面插入1 g* V7 K9 B0 q4 @4 c/ K
BOOL TextCmd_rebirth( CScanner& scanner )
- j" U: S, E' g& M2 g7 a1 R{
8 x/ S8 o2 y% W& @' g( c) }$ V#ifdef __WORLDSERVER
9 I/ N' d' C, c; ]1 P9 kCUser *pUser;+ |" D+ P) a$ `' F
pUser = (CUser*)scanner.dwValue;
7 Y! _& C$ F/ p0 z8 Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# s1 T. e9 u# Y# w6 e A' J. VpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ |7 B& b$ d7 }) W: h, Q; N+ m, }
else
1 H, m+ J. z- Y9 Z/ P0 o# SpUser->AddText("你还未达到重生条件!");
2 r# M5 \1 [/ {9 Y/ V$ i1 Y#endif
! s: H, B" c- j1 c, Jreturn TRUE;
& R( ?) |, G, x; n6 X6 u4 g1 f3 |, K} + B. y3 J* B8 a b
! I' ]; n! @, f6 O# B4 s* l& t0 @
$ Z1 F, [9 ^& z- h/ @5 ?
+ t6 u- K1 z6 Y" D: W* @
+ D% h5 G( C% w. w2 j) f |
|