|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# W8 o) U, |2 e1 i
2 L0 \2 ]& c, ^/ @) U/ j/ YMover.h8 h) q7 `% ]0 W; s0 p W
代码:) P% k# @0 }# K$ ~$ c
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 t# o, @+ x% k( g6 q/ D$ h, h
( N5 ?' ~* N, i5 c: t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 \6 s8 ~( g# @4 g% S- b) _
/ ^2 p1 `/ u b4 M然后你去mover.cpp添加# |. r' K" v# |" q9 N: H- h
4 ?- C- y8 w9 t
代码:& B) i2 b4 ^! B) `$ ]' @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 z& C2 s5 ]6 B {/ P{
8 f$ G# j$ ^3 k) y9 w7 ~1 X#ifdef __WORLDSERVER1 G- _$ m, l) J! x+ M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" H0 }0 \9 ~* l MoverProp* pProp = GetProp();
$ b/ B2 ?" W7 v$ [( ?- S' P3 S( ~$ ? if( pProp )
+ M+ o3 t& w5 j: }' E @ {
; G, b# @0 C. p1 I' r if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. r% Y# |2 c7 B# m) p3 c' x {
% |/ r+ t* {9 q$ C# r, J AddChangeJob( nJob );6 m- X% A2 r4 W, G) H
}else{0 G9 Q( Y3 u% _6 q% i
return;
. v0 G2 G4 s- c5 g }
V$ X) H# |6 G1 Y1 j# U$ E int nPoint = 0;5 Q w0 P* ?, |8 b
if( m_nJob == JOB_MERCENARY )
: M5 ~5 f8 w @: J5 V7 K nPoint += 40;
" j3 X2 n" B" p0 R" [ else if( m_nJob == JOB_ACROBAT )8 g* F' f0 q1 T7 v: X1 G V
nPoint += 50;
4 \( k, v1 P' V else if( m_nJob == JOB_ASSIST )% N( {' v9 u$ J
nPoint += 60;
' }0 m1 E% {. c6 X else if( m_nJob == JOB_MAGICIAN )
. W6 S. F$ I7 U8 m0 j. k3 b nPoint += 90;1 ]9 o* ^. [% j( h3 g. x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 I$ o/ w% Q; D
nPoint += 120; K2 v; o. @+ k5 @" V& ]
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, a* B9 I: X9 `$ G) M nPoint += 150;
7 H: R9 z; B! |7 `! e% V; M else if( m_nJob == JOB_RINGMASTER ) q! n; ~0 G1 h3 |: K
nPoint += 160;7 C- c* ~+ e4 W: N/ o
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% L! O0 V, K# l* b [, b nPoint += 180;( w: o: K! t/ ` Q6 Q
else if( m_nJob == JOB_ELEMENTOR )
$ s7 n4 e8 U+ i) S% b7 n6 w nPoint += 390;9 g8 F: s- r: @2 g8 T
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* j) c/ L& A$ X; I nPoint += 120;
" m2 }& z) T5 \# y& H; p- H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& S' ?- A% I% Y, Y4 S0 X8 B( s
nPoint += 150;
0 T1 Z% g* [; \' [0 c else if( nJob == JOB_FLORIST_HERO )
' a2 I- a9 I h$ i/ G7 x& Y, m nPoint += 160;
2 }/ v/ w( [7 i, x% E else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
]' @, X4 ?) ~4 F3 Y7 x nPoint += 180;6 L: H' M4 z2 ~
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ j4 L0 e- V7 J% @( Q nPoint += 390;* p7 V3 t0 S6 @, O, ?) u" r) ]
E4 f# M; U6 ?+ N/ N AddSkillPoint( nPoint );# a3 M9 j9 H$ o+ C: c6 {( p
m_nLevel = nLevel;* Y2 k+ b, I% @% m0 O1 I- l
4 f. o2 }: p& r" e/ y. o SetJobLevel( nLevel, nJob );. h+ ? |0 V8 u# ^, H
m_nDeathLevel = nLevel;
7 a% E3 k5 P8 o5 h& K#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 x0 D4 |9 A/ r! E
if(IsMaster())% W' p& ~8 r5 w& q
{% D! E! B# P- G+ M- U
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 {: b' G, a6 x' ]0 \$ M$ b1 H% X5 ~ if( nLevel > 59 && nLevel < 72 )
5 g& \ x) J: d' F2 U, b dwTmpSkLevel = 1;
1 `/ G* I& E, |4 Z9 c6 Y& A8 s else if( nLevel > 71 && nLevel < 84 )
$ y+ H. v4 L S: W y0 ^ dwTmpSkLevel = 2;
) X- r$ s$ _1 S8 g9 |4 ` else if( nLevel > 83 && nLevel < 96 )
6 e4 f5 a; u8 G% ?! D dwTmpSkLevel = 3;
3 f* g& B! m1 ? else if( nLevel > 95 && nLevel < 108 )% \& D- S1 C- d% }
dwTmpSkLevel = 4;
: h3 C$ o' ~1 M else if( nLevel > 107 && nLevel < 120 )2 H) g7 ^6 }1 `$ T {. Q
dwTmpSkLevel = 5;
: ]* D/ `2 ]3 I1 Q! W& r for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 T, ~* [ N; L; D& Z { / e4 e& n. I3 Z5 f" s! B5 W
LPSKILL lpSkill = &(m_aJobSkill); M' q( \* k+ E3 i
if( lpSkill && lpSkill->dwSkill != NULL_ID ) y: R! w- X$ Q( v' X% J" k& Z5 ]7 \
{
5 k( ~* J4 o6 G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 o5 W/ o* n7 L1 ?- I2 `; k
if( pSkillProp == NULL )" n \. v& i% Z2 S+ Y9 E
continue;
! j& h% s: W* {) _5 m( J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, j y+ Y$ U: v: W- t2 A0 ~$ J continue;. i* B! F) f) {! |: j9 F& [
lpSkill->dwLevel = dwTmpSkLevel;* o: L0 }$ I2 D5 } w# ]3 c$ U
}0 B* x& H. F3 }, h2 d" T
}" N, W. s! T7 i! M2 z( k% L4 s" J* k
}$ h5 p0 H) H" Q6 }
else if(IsHero())
1 E4 S! U" Q% n0 J T4 { {2 _& J/ d% ?7 K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * d: I. c7 g& ], W! g7 E" x
{
" y3 w+ @% ?! y. y& T' t0 p LPSKILL lpSkill = &(m_aJobSkill);, R# M" s6 ^1 f, i8 g2 v1 C$ u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; J" G9 k' j; } {
) I) t" G: S( y6 N5 A. c0 J) b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% C/ y, z" x& I8 q U4 C if( pSkillProp == NULL )0 v* i% B! U) G. M
continue;; D6 I. |& X" S/ w! G3 E$ T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ ?: M/ d/ Y* @( W continue;2 l' p6 t* X" c- y* l: W5 A1 ]
lpSkill->dwLevel = 5;7 e; z2 W9 L7 ^0 s4 a9 y4 \4 W
}
0 \: X7 S5 v, T5 d0 [; { }
( R. z) U5 p1 p! R( a }
, d: D! \) Y- g x9 u else if(IsLegendHero())+ b: v6 U* B4 T6 V
{' P9 A A0 @% F2 Y$ w/ r, g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 T. B4 s0 H# U# q% c3 Z7 n. b: j- q
{ $ A8 Q! m: J2 t# k5 j
LPSKILL lpSkill = &(m_aJobSkill);
9 ~8 A x4 _- g! E if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 }" [3 W. Q, t6 ^6 |8 M: `) |1 V {" B; H' m6 }9 A8 a( J% s1 ~ s$ k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 P; \9 T- o- }* b if( pSkillProp == NULL )$ R# l( n6 N/ c2 l* b0 M
continue;/ s) y/ f f/ R) o; }8 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 B5 e$ v$ e- j continue;
5 |2 ?( K5 @. \0 ? lpSkill->dwLevel = 5;
1 @8 u7 d. ^6 Y: h1 \4 _ }
) k U7 s+ J+ u }
- L& x2 b: Y0 G. [$ G }4 q _. F7 p9 r! X$ D; `+ j! V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ i; E" h' |1 A) n3 a" ?
if( bGamma )
3 S/ [5 P% B9 i, Y {- w( _; ? n- w5 N! W5 U
m_nExp1 = 0;4 N1 f6 A0 `1 ~" ]8 c2 H) E; c
}
" W9 l+ L8 C/ m6 K; k8 x- p
& b- m7 n% D; k0 ^2 A5 x2 p4 P ( (CUser*)this )->AddSetChangeJob( nJob ); z' P$ \8 ~) |; s0 n/ n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& i0 u4 D5 W5 d* C6 P5 u. t: N: n$ h) T1 E) H! \
! \: {1 C; q5 [# A# {& [#if __VER >= 11 // __SYS_PLAYER_DATA
$ i& n, S& p. z/ ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, d1 J' P( q2 g+ M) _#else // __SYS_PLAYER_DATA) h% v0 I9 m5 ]4 {3 G& D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 T4 c k9 T, ~5 g) N y$ u0 B% O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( T: F4 V/ A, B% F
if( m_idGuild != 0 )
5 E1 \! I: y! c9 p4 h g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% m$ u, b. _7 b6 V
#endif // __SYS_PLAYER_DATA1 L* ~% a; V, P5 ^+ ^; d: `: H7 j
SetHitPoint( GetMaxHitPoint() );
1 n& t( I" h) r' F1 X- o+ u SetManaPoint( GetMaxManaPoint() );6 F7 |' h2 N1 A& d
SetFatiguePoint( GetMaxFatiguePoint() );1 e$ p# A1 @) |& t, W% w% S2 D) n' X
if( nJob >= 1 && nJob <= 4 )# a4 k- A3 f+ M! l
{0 [+ V( n. ?* {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% J- O4 i5 y( s8 k! Y! }# U1 N m_nRemainGP = 28;) ?; |2 v; |& O9 W! T8 t) r4 B
}
7 {( T, g% u) H4 g% i/ s if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( s. @3 @' {" i4 d
{+ y- ]5 r% e) R3 c* `; U. m8 w
m_nRemainGP = 118;
+ k2 K/ ?. p! N% p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: g# {1 V2 M; P( u! `( {7 w3 |" O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- d ?. T' u# Q( r) m/ P }
9 H# b# {5 F/ `( u& j/ ?' h+ f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% d j/ j! f, u& U- T. N: h {) l% C( e# Z( `
CItemElem itemelem;5 l' R L9 W# a( `' u( g7 E5 D7 U# {: D0 K) ~
itemelem.m_nItemNum = 1;9 y& K, B) f2 |, c
itemelem.m_bCharged = TRUE;2 w4 ^8 @. e3 k9 T8 C
BYTE nID;; K0 E$ C5 w& u
) M8 [$ d2 r, K! I if( nJob == JOB_MENTALIST_HERO )
. p. V/ `! h5 G" J# C+ b itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; N% ]8 V; W9 k- V+ K& Y9 x if( nJob == JOB_FORCEMASTER_HERO )
' E( ~8 n8 c: B% ^7 x u4 z+ e itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;8 h! |/ a- i Q1 v: I
$ P4 j: R7 H3 y& H: r, l ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ S c# K* e/ r. Q: O5 f
}
+ h* J2 _7 a; h- ]5 M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- Z* ]+ z g7 ^8 `% G1 q% i4 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, j+ s9 m/ a1 }" Q- R. Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& b$ n( I" s, F1 c) S0 I
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); u9 T& s3 |1 Y5 `) B* R3 z8 f3 \' E
( (CUser*)this )->AddTaskBar();*/
$ P' L/ E$ y. L. ?! z' d+ ]+ X, K ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! }: ^# r/ e: _; n4 H, P#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' c. N; V% E* |1 U- g* f ((CUser*)this)->CheckHonorStat();
! w! s4 `( H0 w4 h ((CUser*)this)->AddHonorListAck();
) N: b* y! x$ c8 S" Q l g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 |* u9 x2 Q, g ]) q#endif // __HONORABLE_TITLE // ′Tà?' y- W3 w- [& C4 C0 I
}& R; f& f# b& `5 _: z. U- g
#endif // __WORLDSERVER
6 q5 M9 I- D, N5 c$ y} 8 }7 V2 C$ ^& s0 m
# t2 Q/ y1 N0 V
然后你进入functextcmd.cpp并添加以下
. x( V1 Q$ n+ Z g. H# M7 y
- u/ Q2 c* \/ X( [2 r4 y代码:
0 i; T# X, D8 nON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 Z3 E, X) Q; e: m5 }+ @/ N' w/ m
下面插入
* C0 U B, _5 I, n5 |5 R9 |/ jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 S$ B+ t! l+ |! v; ]" L( R' P, v3 f/ K( J: W
然后你去2 N/ q A3 T; O ]# b
- j3 g! G8 g i9 K$ h3 l
代码:: x- N! k# I! d2 p' r; ?, M
代码
- T+ c( ^2 h, I: ABOOL TextCmd_ClearPropose( CScanner & s )8 i6 U: [9 e! ~ z! w( k2 V+ d2 n
{
f. V. ^3 K& _3 t#ifdef __WORLDSERVER
( S5 ]) u8 ?& z& H CUser* pUser = (CUser*)s.dwValue;
?% ^; W; F9 P* b! b: C g_dpDBClient.SendClearPropose();0 d& U1 G, X! i
#endif // __WORLDSERVER
- a# `8 v' o7 X. g) B4 |) K2 r return TRUE;! L# @+ o G3 a$ h
}
. |: B8 g% w3 ]0 H下面插入& V6 U Z! L# w5 z
BOOL TextCmd_rebirth( CScanner& scanner )7 _0 j2 }0 s7 M$ d+ T+ i8 ?
{+ I# r0 s/ X" f4 V/ t9 q
#ifdef __WORLDSERVER- M' G3 ?6 n, [6 L& ]) p3 r5 {( f8 E6 E
CUser *pUser;) r6 T! G+ H8 }3 R! c1 O7 w) t
pUser = (CUser*)scanner.dwValue;
" r$ r: y8 h, ~, ^$ h& V/ k- a% M$ Lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) W' Z5 e$ c) e0 `. d9 V
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& N) L4 m4 \( A( m
else- J( _7 p4 x# k) p" X
pUser->AddText("你还未达到重生条件!");6 m, }- A& y! j8 Q) P: M3 g; R% o
#endif
8 Q* a# }; ^" }/ x7 i6 _return TRUE;. ~7 k! h' d* ~6 D6 K; _
} 6 A9 B1 `( v; ~6 A; [' P I
6 o+ v, D& D O5 i% R
" _' S8 b8 ]/ z8 b a. _. C
' `4 e" m0 b2 P: ~2 v5 y; u/ c4 l7 `
' j- ~) B/ T9 e! @ \ |
|