|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& I. a6 S4 J; A; j9 F
. X, [; h2 X6 _( P( z* ]0 PMover.h: q Y; U* d, n A
代码:
3 `! B; P2 e- _% n/ A" E; y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 m: o0 O7 ?$ C+ b: N5 ?: a; l8 c# X+ r( Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 I# X% X! ^9 E* y4 a, p
. V0 L/ `# T+ A5 G2 a7 i
然后你去mover.cpp添加
A6 I" m) l: I; T* O7 u) b9 T, ?8 @
# k: x% V2 D# u8 n) m1 }- O代码:
- H3 R% U4 H% Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) ^, A' f( ]5 {+ o& s% |
{
% ^% p3 e' ?$ K, f! i#ifdef __WORLDSERVER: D9 ^1 W9 [7 ?/ O6 p) v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 J) y3 n$ u3 J$ I/ S, ~
MoverProp* pProp = GetProp();) M. y# J( p: x/ c
if( pProp )1 ~/ Z; q, `) I, o' G: O: d: V
{
, O' s6 ^/ x0 Y: }* ?" a& ?; Z$ b if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% W% P7 j- ~9 e% g {
) J1 U/ d, p, o: C. r AddChangeJob( nJob );' o. s3 n% {6 }! K$ D! g
}else{
$ C3 q6 B% ^! Q/ Q2 y return;+ n3 s" M0 {$ \/ L8 P# D
}
5 z; w* ^3 R1 l9 f# R9 ~ int nPoint = 0;' i# M2 }- L; D8 ]9 {9 K
if( m_nJob == JOB_MERCENARY )
8 ^% H$ F/ l& W( e0 E3 Q nPoint += 40;
3 W' q- Y. X. I( F. @: Q6 e else if( m_nJob == JOB_ACROBAT ) `1 G( p/ O* m# z
nPoint += 50;, G: |% C$ [8 M/ x( C/ Y2 F/ M
else if( m_nJob == JOB_ASSIST )
% i" M+ m$ ~3 S7 Z) E" B nPoint += 60;+ e7 Y1 {- p0 R# z- b
else if( m_nJob == JOB_MAGICIAN )- d8 T6 d! {: L
nPoint += 90;6 L! Y: X! ?5 y4 V
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 t. C* K( O7 Q6 K% I# b; G
nPoint += 120;
& w( q2 M8 Q% Y2 w7 P+ m4 k b# `4 F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! f- N& a* G& s2 A# {
nPoint += 150;
- \4 c# s: O" _/ d* w else if( m_nJob == JOB_RINGMASTER )
6 {# @0 H* S6 l; w nPoint += 160;
3 S( `- E, N. i" j else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
V! o& U. C* |# }% b8 B nPoint += 180;
% m" R# T; [ s else if( m_nJob == JOB_ELEMENTOR )
) d% S% i7 _# J1 @6 w nPoint += 390;/ }/ K7 H9 I5 N7 z$ _4 [) z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
L2 N) O& o# ]+ I0 H2 F$ @ nPoint += 120;4 A+ F' ? S c( q O! e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 h8 h: C6 C6 Y, Z; U; r. ~* W nPoint += 150;' D# e( s, ]9 W* c M
else if( nJob == JOB_FLORIST_HERO )8 l6 L6 z. ?$ Y3 I n/ l* v
nPoint += 160;
* @0 ]& e! Y+ P4 t: Z. d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 e: u2 \% J2 i; V7 n; _, ~6 ]$ q nPoint += 180;. b- v. P( O$ ~1 C( f2 R
else if( nJob == JOB_ELEMENTORLORD_HERO )
# t1 \& p' P6 q; i4 e$ ]2 Q nPoint += 390;
& i* Y+ v' X1 u+ P' {# \/ u; d5 p; c$ J$ O, g) F
AddSkillPoint( nPoint );
3 s, L* `6 `* v6 n m_nLevel = nLevel;
! y) W! R# f2 R0 r/ W; m: [. k+ @+ {/ }
SetJobLevel( nLevel, nJob );
: o% K7 b0 y* H& m. q m_nDeathLevel = nLevel;# w3 I/ s+ O* c0 c( ~6 L/ c5 n
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- U- T& w( E' n$ O! ^ if(IsMaster())
2 K. j' |" E' c {
4 p1 f- o+ [) w int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: T; y' Z1 S1 V- ^. h) [* q9 C+ ^
if( nLevel > 59 && nLevel < 72 )1 C: c# \% k; o5 N! F0 d. r
dwTmpSkLevel = 1;
% G; N: Y* ~2 P' ^ else if( nLevel > 71 && nLevel < 84 )
' V# \ t, H. l1 A; W dwTmpSkLevel = 2;6 |% q0 ^! u/ L
else if( nLevel > 83 && nLevel < 96 )3 q2 ?$ J/ S* J: }. q( K7 y/ U' n
dwTmpSkLevel = 3;5 ]6 B3 f" d, m% G0 K4 k. p: A
else if( nLevel > 95 && nLevel < 108 )2 H8 w! S- n: J. s, ?0 z7 j
dwTmpSkLevel = 4;
% C! l3 s/ N$ A5 B8 s else if( nLevel > 107 && nLevel < 120 )
. W7 Y \9 a0 |3 \/ d dwTmpSkLevel = 5;. X0 x3 k% P& C+ f% c4 r% H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# ]- l- b8 z b0 r- Q { ; d) J4 K# O7 P4 s' w4 s, X0 f
LPSKILL lpSkill = &(m_aJobSkill);9 u' H2 t; n8 G: k5 Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 A/ h) d c$ n: f0 H9 p% a7 W( @& z
{
2 |# J0 r3 h6 z% [. `/ C2 s9 D) z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 |* ^7 Y! F$ ]1 G if( pSkillProp == NULL )
) V* G2 T- d+ b* X1 p, O: k, D4 s continue;2 G& Y8 [- F: q1 q4 J+ }/ d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ s$ P& I- r! y, g; V continue;5 ^) B& B) I: v; a' ]! Q
lpSkill->dwLevel = dwTmpSkLevel;- T& D3 w/ Y5 t3 N9 J
}
. A& s( c% c8 p* b }
4 m. A" I) y) V9 q }
4 W8 A. u$ p: @6 e* Q2 x else if(IsHero())
* [( Z& S; H+ j2 c9 { q" Q+ E {
8 t6 g/ i4 T. }6 y for( int i = 0; i < MAX_SKILL_JOB; i++ ) . T6 F" K3 ?2 R! [6 n
{ ' v/ J* Y$ L# D! h% _3 v
LPSKILL lpSkill = &(m_aJobSkill);
) d+ c4 E+ V! x- q$ |0 C if( lpSkill && lpSkill->dwSkill != NULL_ID )
% l! N$ B ? R& ^8 i {
& d! d- O7 e. i* h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' i9 _) z5 }" X% C; g1 N; V7 t
if( pSkillProp == NULL )
5 j3 e; \5 [" w- }) J! D continue;
; ~! v4 ^5 O0 M. G. g3 P1 k: Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 k8 V3 T; o/ e6 w continue;( ]2 m' E h" P* z# `% ]
lpSkill->dwLevel = 5;& y ^9 Z# j y& }: K) R* ]
}5 Y. O& @- w; z+ Y: P
}
4 a( E& }/ i9 h/ C# r8 b }
& Q$ u1 g( c2 q( q else if(IsLegendHero())/ b/ H8 T3 ~5 @8 c2 D
{& d S" P: j/ a$ H0 t% p+ D: w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 j0 K3 j% w! I
{
* ?- _! Q1 u0 J+ \- v LPSKILL lpSkill = &(m_aJobSkill);7 f2 d3 m: q0 m5 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' I# ~# c: ?% }* K9 h' O+ r. l: x {2 A9 k' x. _' X* t+ N; w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! Z8 D. x1 c, B. c! |' Z) C6 l- C
if( pSkillProp == NULL )4 ]! z9 T+ d0 U; q
continue;
6 A5 c) j% r% Z+ X6 [, F& ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ M* h b7 g0 j6 @9 a- ? continue;
" u2 H4 W/ u& E( I lpSkill->dwLevel = 5;" w" D) l4 C! `
}
+ @# O7 B. a% F# ^9 Z }
5 u- R1 C$ Z& F; O6 s4 J }) E1 ]+ z; f- f
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( I, `% x* v# H# L. Q5 T3 ]
if( bGamma )
d/ x' U* i9 k; _, w {
0 c& O$ J+ J9 f8 ^6 ^% p1 K& x m_nExp1 = 0;* H9 s( ^: N: `0 j \0 y
}5 H! w: ?8 I4 w ]8 o: o
3 B0 N. B6 A o% O* `, a
( (CUser*)this )->AddSetChangeJob( nJob );; G0 U8 t6 K& ~# L# A1 {9 ^7 O/ {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 D/ _/ N/ r: k+ z, A I, Z* |, r
: ~* C1 \7 [0 J6 @ a
2 ]- j1 _% ]' y1 Y& @" c6 L#if __VER >= 11 // __SYS_PLAYER_DATA; }+ U/ ]6 G! ?/ L$ Y7 @
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 t X2 T2 X) U& V
#else // __SYS_PLAYER_DATA
3 g' Z( P2 |0 H. y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ H+ x# J4 }, |' f/ ?% ~$ J3 C; d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# R( a) `9 b8 w$ ?3 f
if( m_idGuild != 0 )
( ]8 d: T' n& d g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ w9 C: r, h6 n2 p) G#endif // __SYS_PLAYER_DATA, X& N* k3 D7 n6 `% D
SetHitPoint( GetMaxHitPoint() );) l# K" e, k6 y8 i$ T
SetManaPoint( GetMaxManaPoint() );
# N2 @& H2 R6 { SetFatiguePoint( GetMaxFatiguePoint() );& u1 y% p0 M, ~' b
if( nJob >= 1 && nJob <= 4 )2 y+ D) o" }* y0 Y- \3 Y1 J5 l/ m
{% W8 I" V6 u3 [1 S
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* K7 M( U9 ]$ `0 C m_nRemainGP = 28;6 `; |. c( K8 M$ M! i: n- w
}: t" ~) M# \: N% ^
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- C+ r( Y# F K {/ U0 @/ _6 y4 z- c; @# B) T$ [# t6 h
m_nRemainGP = 118;
: c6 \0 |' T7 c' Q# i# b$ f2 e //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 O6 g( r! f' f; d- v& V
m_nStr = m_nSta = m_nDex = m_nInt = 15;# z* L, N) r9 x2 ?
}
/ t: G$ x" H* p3 `" I! e5 b: _ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 K/ }% n6 E! y' Z% Q5 v& B3 g
{, P7 J8 D- n# ~8 I, K6 v
CItemElem itemelem;
; p# k! \7 O7 q+ m0 F' T. v$ A' d itemelem.m_nItemNum = 1;
+ T/ T) f S: C, L itemelem.m_bCharged = TRUE;
3 F3 s b' V5 H7 o0 K$ m BYTE nID;
: o4 F. |# G5 N, G* m
1 M! K5 Z' n% D5 @/ R6 m6 y if( nJob == JOB_MENTALIST_HERO )) S+ d3 T, |% R1 E! [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- O& G/ E; O+ o ~ if( nJob == JOB_FORCEMASTER_HERO )
" F. [9 U9 l# Z: z5 Z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ w# a7 w9 U* L- \. r
4 E3 V5 {" ^) c# l
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 {! G7 W, `- e2 B+ x }
* w/ I6 m' R* C g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 e) l8 D8 K+ a4 S& \# y# Q. X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 f2 N) ^$ A- ]! n: o/ G ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* p& G* X! X2 n$ o, u7 [* |
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 Y) D7 [+ |, O; [ g+ t0 E8 p ( (CUser*)this )->AddTaskBar();*/8 w% S/ U2 {" y1 _; ]" B. E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) G. C# J5 j8 \4 E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* R$ F- a: A% z3 i
((CUser*)this)->CheckHonorStat();2 k/ a" N6 P5 v2 O' E* v4 b3 f1 u/ A
((CUser*)this)->AddHonorListAck();, P8 v; \& f( `8 s/ M. r" ~) ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 {7 a7 X3 a+ I: T. w1 Y#endif // __HONORABLE_TITLE // ′Tà?# \; P% A; o5 K& L! U
}, g( |# n0 C7 \5 {2 }4 H3 V3 {
#endif // __WORLDSERVER
% P& y @+ z' H' F( x} $ Q6 f5 {# ? H3 N& N! f- @# |
3 _0 |6 z5 t: U" `4 H5 \, R
然后你进入functextcmd.cpp并添加以下
$ X1 s, N( z8 Q8 {, h, c) V5 x2 C
代码:. ^) n4 D2 D8 B* J7 U' p
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) y0 F2 o% R+ G, j+ i, w5 [
下面插入
) [0 T3 ~) a s) d: NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 X5 y7 ^0 E* m
- Z: I/ w% v' l然后你去
9 w) }/ Z' X$ s; m0 B( e* e/ @) I, m6 v% d
代码:1 J9 L3 n0 k$ y* x6 A
代码& i# v, T$ u) D2 u, T
BOOL TextCmd_ClearPropose( CScanner & s )
1 _: z- [2 M2 {; ?: n{
% I+ Q# p% h8 x& t! E; s; `#ifdef __WORLDSERVER, @* P) L, o- B. q7 C6 k3 k/ z
CUser* pUser = (CUser*)s.dwValue;
2 S& {4 f4 T! v1 i4 _ g_dpDBClient.SendClearPropose();, ?# [) d4 m V. W# Z6 R
#endif // __WORLDSERVER
8 G# a3 t6 H+ @- C' A9 A% d return TRUE;
+ X- ~& @9 ?( u! n4 s! ?" M}
' A2 Z% [" U2 K9 |下面插入
& G0 D' e1 _" f+ kBOOL TextCmd_rebirth( CScanner& scanner )& r6 l; P% `7 `; l
{/ l8 U' |7 h. F3 `
#ifdef __WORLDSERVER l1 `: N; Q; H G. Q2 H( {
CUser *pUser;" b* |$ r& F" x8 Q6 T4 k* L% e
pUser = (CUser*)scanner.dwValue;
2 \1 @$ v' p6 H( A7 f) c( Q# [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" m6 M5 S/ Q1 H- U0 E. X6 f; G2 opUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( Z5 y/ r) _5 u2 s- s
else% P$ N; }: `6 _7 T0 a% d* Z) F. f
pUser->AddText("你还未达到重生条件!");* V. K6 ~$ r1 {
#endif5 A: Z! {5 h3 s1 s2 F
return TRUE;+ \& U; `$ P( D$ x
}
9 Y- t- r1 C) B
4 O, b1 g) X2 d% h6 a
+ Z. x" ~. S) `& t8 f, ^( _4 s( [* q( Z
: |7 i3 c; m7 C6 Z |
|