|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( f' S/ s( K7 ^( P2 {3 C
0 B* |' b8 X9 V! d u- X
Mover.h
' O8 B0 q# o, F2 {+ E$ g代码:* `9 k0 S1 \5 i8 r- \, e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' H# d1 y& K1 j: t: j# S: Z5 z' F& Y) f1 _; p! y! t
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! u0 X' J& ^& u5 i, e
/ H# R$ s; c4 V; k6 u5 u. @9 g {+ ^然后你去mover.cpp添加1 z) r: O3 k+ j/ m- j: {7 e
$ R- c( ^/ E9 v4 H
代码:2 U) N) l$ v1 E' t1 t+ t7 N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
L' ^" B! c% b) _8 s{
7 L2 u' H! I& Z. i( x#ifdef __WORLDSERVER- H5 y, _5 w8 |7 F' P/ K+ E9 i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 r3 E! ?! n# r
MoverProp* pProp = GetProp();3 Z# Z3 e I) a* ]! A! r# `) e1 A
if( pProp )
5 R5 t* \+ a; G6 I7 c5 s, b% G {
0 f, j6 F% F# }' Q4 \2 v8 w if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 T. o8 _ M9 g" c( a
{
) a0 j1 l) {, ] AddChangeJob( nJob );
! b0 {9 G* b! J& J" x }else{
5 {/ r: w4 S/ ]4 o5 E( ~1 K( d return;
) o9 o& k, _) T3 c5 u! m3 T }1 U7 U/ d% _6 l* J1 \
int nPoint = 0;
: O/ P: W# ?; F" O/ y if( m_nJob == JOB_MERCENARY )
$ l( _ p- |. _, V+ w nPoint += 40;0 p( `$ M9 I8 d
else if( m_nJob == JOB_ACROBAT )& }" Q: Q v0 L* _# Y8 n- F. B! n2 A
nPoint += 50;: f, V) ~, I& ]8 r
else if( m_nJob == JOB_ASSIST )
6 Q' a5 H4 p) u2 P7 v1 g- F/ l, m3 \/ p nPoint += 60;* w B2 g1 }5 ~$ ?/ [4 P
else if( m_nJob == JOB_MAGICIAN )
+ s9 ~$ e6 d$ P1 p0 J; H, h nPoint += 90;; d# |+ r7 H; G9 Q* @3 c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 c, g' A; f+ {2 _
nPoint += 120;5 B/ |( f! W4 i
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' E4 [0 X5 t, D* W( ~5 O# C. Y nPoint += 150;( q h) F1 b J# e2 A4 [+ n
else if( m_nJob == JOB_RINGMASTER ): W& J0 P% p$ D( ^, g* O. w I
nPoint += 160;: J3 Z) V! `# Q* `$ f& q8 F4 z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 u$ h$ l: x) D* R nPoint += 180;5 t+ _, p6 S# d( {, ]- J
else if( m_nJob == JOB_ELEMENTOR )9 h+ Y" F ~% s8 n" h/ o' J
nPoint += 390;
5 I" y/ p& H' x! Y) I- U7 V else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). E2 [8 f' s6 J2 H& d
nPoint += 120;8 Y, J! s, N$ F' m
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 q9 y, b+ b( W! c nPoint += 150;+ m/ x9 k' a5 ?9 M4 X& C- I! L
else if( nJob == JOB_FLORIST_HERO )
+ X7 G, H) J8 q- ]! O' L+ i nPoint += 160;2 h1 W, O" l( b. B5 r2 ?$ S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( }3 @1 z8 [" j# w nPoint += 180;
2 u6 d$ r1 m7 V5 j! N else if( nJob == JOB_ELEMENTORLORD_HERO )) p0 A$ A6 u4 W3 l) H ?8 A0 c" ^9 v
nPoint += 390;
4 i6 a4 C0 o$ U4 B, @
* d5 f n' G0 F0 N3 S8 n6 d4 H AddSkillPoint( nPoint );$ m5 W5 ^7 n5 I- C1 `9 n
m_nLevel = nLevel;
, ?1 m$ u2 M4 T# n+ c; }* N+ i& @/ a0 Y
SetJobLevel( nLevel, nJob );
) Q2 X+ V' B1 u6 v7 R" S m_nDeathLevel = nLevel;
" ?, a' i/ }: a5 G& K#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' \9 }5 G# D, h4 |. u* [* Q2 l if(IsMaster())
# M9 {: J$ t: j; s5 H/ A2 X {
5 ~# J& o6 u5 t7 S9 t7 s int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 F' [7 d0 i+ t* P if( nLevel > 59 && nLevel < 72 )- Z1 i: \; p5 ]7 _: S' f1 q
dwTmpSkLevel = 1;( X' M" I' ^. `: o# @$ h. e
else if( nLevel > 71 && nLevel < 84 )$ J/ q/ t- g% F7 U4 L
dwTmpSkLevel = 2;; L* T3 Q Y1 e; ~5 h/ B
else if( nLevel > 83 && nLevel < 96 )
, h. H1 D: \* {7 d* b dwTmpSkLevel = 3;
/ ~' i2 |# h! N% ^+ n else if( nLevel > 95 && nLevel < 108 ), `$ ]7 ?7 D( F: z M; h0 f
dwTmpSkLevel = 4;
3 `( V9 ?& `; j' h else if( nLevel > 107 && nLevel < 120 )" T, U6 T/ z* R' K
dwTmpSkLevel = 5;
( J: d/ @: b* r& ^+ l( c$ n! j for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 D! P* Y6 V" _! \* Q) R, b { ; k( W5 D v N6 f. b$ B! A
LPSKILL lpSkill = &(m_aJobSkill);& z- c: F( z4 ~ s; W5 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- K+ Y3 `! m: s. Z {
C% F B1 z- Z/ O3 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 P# G! h$ F- B7 u, X8 ?. p
if( pSkillProp == NULL )1 n; |: B8 e1 g6 f2 l) Q
continue;; J2 s5 m5 O) z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 p; z. s1 x( h; e( d' V5 \1 g. S i continue;+ P/ i, ^/ ^9 M7 [! S5 P+ P) Q( Q
lpSkill->dwLevel = dwTmpSkLevel;' F( @6 C/ {2 E
}
0 M( n1 Z9 u' h6 Y; t! ` }
3 T- q8 X1 X$ {* n7 X9 e7 h }
1 ]& |( d e$ ?1 n$ Z else if(IsHero())$ Z, H- l+ B7 g; g
{
( g8 T% U( d- `& @! Q* ^' x) h$ c5 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
O- r8 `" n. k$ s H1 I1 J8 k2 g {
0 D" Z/ a" N: \! f% e LPSKILL lpSkill = &(m_aJobSkill);) y- o }# \& e
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 D" I3 l' {: j6 I4 @; U4 Y. O( o+ R& M
{# {& @; G/ ]. ~) @8 A3 E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; M9 v5 B8 f( t& |$ t
if( pSkillProp == NULL ); j$ X7 M' D F f" c
continue;
( G5 c# v- }1 K. Y# X; d1 W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 e- V) _0 k! Y5 J/ e- J" K7 u continue;: n7 K" z- K+ I! }: n) ?
lpSkill->dwLevel = 5;
: R5 c! w0 s# M& H- i( o& | }" w; A8 i$ k: {/ m6 z z+ ~
}
$ [8 Z1 X/ r7 D3 M }# u1 n' I4 c# [! w& C
else if(IsLegendHero())
4 Y8 O$ x: n: B {
3 J$ E9 s& _$ ~8 u' w5 N* U/ S for( int i = 0; i < MAX_SKILL_JOB; i++ ) : D, q! ?' g, l$ a
{ ( v& V' p) r7 M: j2 \# k d; a1 M
LPSKILL lpSkill = &(m_aJobSkill);
: K w' ]! A& s% S/ `$ f$ R if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 Y) g. E/ C h {
. M6 u3 ~* G/ ]: l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 k; V2 ]$ l4 H ]* q6 } if( pSkillProp == NULL )" |" m, }: \9 K9 K' {( M9 L) u# S
continue;
2 A) b$ ?% G! R: j9 M5 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! z6 h3 ^/ l" N
continue;
9 H) m; X: ]! M1 I6 S lpSkill->dwLevel = 5;7 R- a& G' K% L1 W/ ~, x& P, l
}: Q" Y2 T% v' |7 N
}
& D* o$ J0 r7 t/ z7 { }
o+ L8 E+ C6 v+ l& f9 E1 R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, @0 x( W. n! Y9 F
if( bGamma )/ f3 v# X" B3 \- J
{
+ o3 j3 `( n/ s- c5 I2 k ?! T m_nExp1 = 0;
) m5 X* j3 j) L% {" |! k } e! v* s6 }' ~. t4 s6 T( J
" B' y# P* _& X. F1 i
( (CUser*)this )->AddSetChangeJob( nJob );4 ]: W! v( b' k; [9 K# }
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" Y( @" `' L. ~5 @- z
; P* u6 T4 L5 `- |- X7 S( y6 ~9 i2 f6 b& ?, x
#if __VER >= 11 // __SYS_PLAYER_DATA
7 g7 ^# p% w* i/ v3 F' j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ W! P8 d( F4 s5 v. X3 J' |
#else // __SYS_PLAYER_DATA
% C. v5 b% {% O4 n# M; x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 X/ J% A2 Y3 n! z2 Q1 G' [) g+ j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: ~: m0 H9 |: ?+ K
if( m_idGuild != 0 )
+ O, {5 ^8 |5 I) d b g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 W0 \7 \& n2 p5 d#endif // __SYS_PLAYER_DATA
' f# ^% \+ V h; q: F7 D- j% R( z& p SetHitPoint( GetMaxHitPoint() );, F" T1 L4 D/ i$ C* b
SetManaPoint( GetMaxManaPoint() );7 Q8 Q1 ~$ D$ _7 D' P7 z* C) f
SetFatiguePoint( GetMaxFatiguePoint() );
) j& Z5 j% I' }5 Y if( nJob >= 1 && nJob <= 4 )1 l u5 g% C2 F! s
{
1 D. T. v& b7 H Q: `1 R0 L m_nStr = m_nSta = m_nDex = m_nInt = 15;$ U6 y& H' W! A+ P5 v
m_nRemainGP = 28;
% @+ t$ k5 x- D+ [# C }
; B1 D0 f* p0 S% P# B" J9 E9 O if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 _: h0 m- b2 ~6 T6 r {
' L" O) V% J2 A i" s' e& M m_nRemainGP = 118;
6 Z; N( E6 t! H* S4 R7 J; a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: ? [5 y0 k6 m- o; ] m_nStr = m_nSta = m_nDex = m_nInt = 15;
( S7 ^" F% v' Y# y9 ^ }0 P0 ?' _+ \& Y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 a: ]+ x) P. g! P# t4 g4 S {0 r2 @( Y/ N' c" o. q/ Q
CItemElem itemelem;
. A7 o0 j9 `6 I$ D! h# l% X itemelem.m_nItemNum = 1;; y2 v% b- G- A* B* `9 |% j
itemelem.m_bCharged = TRUE;
9 J# J3 \6 {: n- z- s: _9 F J- c BYTE nID;# |: f2 G i4 k: w7 U, q; U1 j
( V2 E" Y& x! k5 z9 a r/ a! Q if( nJob == JOB_MENTALIST_HERO )
% i5 L& T Y6 {" [( L4 m% C itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, w: Q B+ x. e' K. J6 o/ j if( nJob == JOB_FORCEMASTER_HERO )* ^7 k- S7 i3 N% z9 M" Y5 k# f
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" @0 E* ^% j9 y7 F
" d8 H1 x4 m4 G; C v9 A! i ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# M( H1 z# v3 ^0 N j }
( P0 A8 r6 |0 {- M) e7 U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ K4 c i9 B$ V: H ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- p9 |9 O! \' k8 m; ~: t- K. f ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, u& U7 i* _3 M5 n /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 H. V2 Y3 S9 d9 {! T3 g- l R
( (CUser*)this )->AddTaskBar();*/# `1 w% I: K6 j- g* {, w5 G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 A; U- k1 w& d$ Z* F# _8 l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 q0 x# {9 G4 f, s+ _ ((CUser*)this)->CheckHonorStat();9 Q1 a0 b; R3 U2 x+ Y1 D# I/ C
((CUser*)this)->AddHonorListAck();
( e$ m; t- ^0 b0 a g_UserMng.AddHonorTitleChange( this, m_nHonor);9 e6 J, m* \2 M, K
#endif // __HONORABLE_TITLE // ′Tà?
& `/ ? G$ d- _! p, g* r }
o5 R) W: p% D/ d ~#endif // __WORLDSERVER& Z9 K: b0 l2 @ W
}
2 w* _. r8 O# N" w0 O9 F7 d. j' b8 O1 O9 Z+ s, M) i
然后你进入functextcmd.cpp并添加以下2 {9 r) n6 X* l2 I6 ~
0 m0 Q# L7 n8 V& d6 o代码:' w: {, i6 @: L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 i+ H6 c' ^9 O; h7 S
下面插入3 y, U5 ^6 {* `6 v4 v3 d4 w% c5 R1 q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 k" W4 i$ N! @1 q$ H2 v1 M
# D2 E. W3 N" r7 ?% I, c+ g然后你去$ O& V/ h& o7 i0 q2 ^# R# h
8 S6 }4 P( _2 G$ t% h代码:
# a& G$ H/ C6 ?5 z; c) \代码 Y; g+ K) q. n7 h# {3 d9 V# O* ^
BOOL TextCmd_ClearPropose( CScanner & s )$ b) Z# y3 W! T, S1 c% D
{
9 q3 f" K y5 Y ?9 T5 s#ifdef __WORLDSERVER
4 K) j1 }' \$ T CUser* pUser = (CUser*)s.dwValue;
1 l" n/ d7 {2 L( o( Q- o g_dpDBClient.SendClearPropose();
4 l4 w7 Y+ c# E5 A3 A6 K4 h#endif // __WORLDSERVER
# G/ B$ |) q' n0 I# r return TRUE;
- V0 j: i+ q0 O5 c! A9 r}
, ?/ |+ y: ^# V下面插入6 y( J& w4 o5 W$ U ]' R6 G9 ~& z
BOOL TextCmd_rebirth( CScanner& scanner )
4 |- x/ k$ z# |: O9 E{4 N( P6 {$ X* ^# x/ x+ P3 P/ n0 [
#ifdef __WORLDSERVER1 Y0 H* n2 ^7 p0 i& x5 V) R4 Y
CUser *pUser;3 V! e+ }4 X' e- [0 \% ]
pUser = (CUser*)scanner.dwValue;: P/ \2 i/ U- K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ u P& i1 z( m7 YpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 a; L0 t$ s/ w+ ~! p; ?
else
/ T6 j4 S7 B/ b' E( g7 YpUser->AddText("你还未达到重生条件!");
7 k* j. E' H9 x& @! r" j. {#endif
) S1 ^! L; J& ?$ ^( X. R% ?return TRUE;
9 X; M: {3 w$ k( a} + \$ C# v: {5 l) |3 Q! z
; c/ ]' X$ T. H& L& m: g3 @: H" K) ?2 d* v* U& s9 D4 r. c
6 K2 q8 i- l8 C6 Q( Y
. H* q, H8 z8 w; \ |
|