|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 k$ _3 [( b; w1 g- X
% S$ T# y' F' f# S3 uMover.h
6 a e4 ^: {8 p代码:
* a$ I3 }: y+ D/ H% h' Y; D- D) g% o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 V4 q7 {* K# o* z
2 B; S4 t ^$ k" w; |1 x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : o% r; ]/ j& m, s$ _
8 J8 I" {# a1 }/ k V) ]/ u然后你去mover.cpp添加4 V O- E4 v) Z
0 h8 u0 X6 Q {代码:
& W- t% B7 G% S1 B( o- l8 Kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 E; @4 o) @6 M{
- i4 y1 p3 r. f) f2 {#ifdef __WORLDSERVER O- ]% _0 p: F$ W6 t/ [. \
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; H$ k" C8 P+ l6 C: g- w5 I' Z MoverProp* pProp = GetProp();
1 W+ F0 w, L( D+ @1 `9 E if( pProp )/ C. R, u' Q7 k( L2 e
{$ N# }% S2 ]( R1 [. ?( s) M
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% F1 R- G! R+ _* ]* {6 W {
7 s; f& v) T' ~4 l @ q& C AddChangeJob( nJob );* v& K/ ?) p ^0 I' r- Q, ]6 p
}else{
* f! V: c% C0 i return;
( P+ y- l* `1 |1 n }
+ e) `2 X; P7 s2 ] int nPoint = 0;
# y; v$ V& m8 z8 a1 O! F5 m if( m_nJob == JOB_MERCENARY )' b6 p% L. ?) `0 b P
nPoint += 40;
8 H4 W* t& {6 z. E else if( m_nJob == JOB_ACROBAT )3 ?, l1 D" b6 @# G6 ~
nPoint += 50;
7 ?1 n9 A6 Q- M4 W* T else if( m_nJob == JOB_ASSIST )% u: H* b* Q8 h3 _0 g+ G( j
nPoint += 60;
! \# j5 k$ s7 J0 A$ c else if( m_nJob == JOB_MAGICIAN )' c/ M3 G2 u; i% V- H( [
nPoint += 90;
4 e+ y1 ?9 {& X8 }+ |7 D, L4 y3 K' H else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- v) |$ T" [5 ?2 W
nPoint += 120;
* W/ \# N! ]$ q# m7 y5 y% o4 P else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 H$ a9 a0 o) o+ R nPoint += 150;" z5 `' n8 a! N- g1 r
else if( m_nJob == JOB_RINGMASTER )0 T I/ I* Z8 Y7 u8 u9 [' G; R
nPoint += 160;& t. H# j) I$ E1 j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' _) d# ~* A9 n nPoint += 180;1 k, F, `* y; H
else if( m_nJob == JOB_ELEMENTOR )
. C, w; ^. G( ^5 K3 d nPoint += 390;) p5 ~0 g b8 Q, m/ p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' O. E5 g O' Y nPoint += 120;* G6 o$ j' j* H( c, n9 g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 P: ?" R9 p0 U# _! J2 [ nPoint += 150;
7 ^$ R1 c6 f4 b+ T `* ]7 c+ ] else if( nJob == JOB_FLORIST_HERO )
2 @ J+ n; f7 y) k nPoint += 160;/ T' W1 a6 m! m# C: s* L
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ G: ~7 V4 ~# e, Q; M
nPoint += 180;
8 q2 B: m2 M$ L% z) f$ ^4 c0 S else if( nJob == JOB_ELEMENTORLORD_HERO )% D( ~8 y: e) Q; m% _9 a, q0 n
nPoint += 390;
/ F7 y9 C, b) M, m# k$ [# h
- M4 {5 c9 s0 L) t AddSkillPoint( nPoint );
7 ]& B0 x5 w% Q/ U/ a m_nLevel = nLevel;9 h" G/ ?+ S& X1 M8 \- v' F
$ w* T! k4 Q3 G, u
SetJobLevel( nLevel, nJob );
}- t5 G2 Z- v% S/ I/ o) c: L m_nDeathLevel = nLevel;% g! o% \! _8 Q' n7 e; h
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( U: U* o( S! p. [; n. E, o; e if(IsMaster())
3 A& O1 O. F) m/ I& p0 e& Y {5 r+ g: O* J+ r% c: ?; V" m$ l! c
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 j. f$ K4 T$ ]2 u, N
if( nLevel > 59 && nLevel < 72 )4 `* W( o- X5 ]* _6 A
dwTmpSkLevel = 1;# N0 g" j2 h8 G, m8 Y* }( S
else if( nLevel > 71 && nLevel < 84 )
2 _$ n" E3 D: C4 `/ v+ r dwTmpSkLevel = 2;) c9 p+ m6 @0 w
else if( nLevel > 83 && nLevel < 96 )
+ @1 M. g% L$ h6 [( H/ Z dwTmpSkLevel = 3;
$ v( U; S4 C9 L" x% Z0 n0 S else if( nLevel > 95 && nLevel < 108 )
, y$ x, ~+ V- Q$ d# Y2 \ dwTmpSkLevel = 4;
1 [& k$ g6 ~4 X% Y else if( nLevel > 107 && nLevel < 120 )
$ H1 _4 \& X$ t+ [ dwTmpSkLevel = 5;. r) m5 v. C5 [7 B; y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; f6 v. v8 { ~1 y
{ 5 q- |8 l X& b* S6 k
LPSKILL lpSkill = &(m_aJobSkill);5 U" T3 J- A( Q5 ?0 Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. w$ s$ C3 Y( U4 i- n W$ T2 W4 f {4 A, I; Q1 d" b& Y- k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! h! N+ J# s/ X2 R
if( pSkillProp == NULL )
+ A4 V& W3 |3 j6 Q7 ]( @ continue;/ D: c* v. `( _# _, \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 J+ K1 Z/ ]( _2 \4 I$ O
continue;+ f4 s9 ]% N/ O% f- f7 Q/ a4 Y: y
lpSkill->dwLevel = dwTmpSkLevel;" r) k( V7 q" p
}
4 L) `- C4 d3 ^/ d4 {/ ?) N }
1 K. v6 R. M2 n }6 i; J( b* t8 j; t7 y# n
else if(IsHero())
& A! ?% v' a/ A$ w+ X d7 u. F {9 o) C# S- ?2 m' z" p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + e6 p3 l: l% |, p j6 R
{ : r# }% R& c1 P) ]
LPSKILL lpSkill = &(m_aJobSkill);3 Z: V, s ]/ A b( O) E
if( lpSkill && lpSkill->dwSkill != NULL_ID ); o" `. |' S7 T* g# C
{
' y2 P& j; B5 d5 u; {2 x& h8 B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 p/ |4 L6 \4 t2 e5 r C: W if( pSkillProp == NULL )+ E. J6 n8 j2 L( y& d; t! h
continue;
' U$ L. H# W! ?8 s" X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 F& y% k+ W( s% U continue;
5 ?- c& a* \! l. N0 ^ lpSkill->dwLevel = 5;
; Y0 V/ d4 `" a3 l# F" E) u }
% ~% k' n3 f X6 b }
8 ]- O9 m" v1 ]( a }
8 U/ e0 \+ {3 E+ s) f else if(IsLegendHero())7 z7 M1 E5 u' s+ D8 G' ^) C A! ^
{
4 Y& g2 x5 k1 e: s& c1 v for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 O" [9 f% | Q {
8 q# Y6 s' v) K LPSKILL lpSkill = &(m_aJobSkill);! Y$ h' {: Z/ q' Q7 n1 b a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) `& D- H4 X- n. ] {
3 T3 Z& J6 K) U, u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 V$ ^2 c( \! _ I! y0 }' p
if( pSkillProp == NULL )" o# ~8 Y- q1 Q1 z9 E: R, t. D) M; V
continue;/ f5 U/ ~7 v# ^ G, V1 b; W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 B+ e" R: q* R
continue;0 S! r$ a7 d, H% _! Z8 a
lpSkill->dwLevel = 5;' J' O1 ^. h# u' ?3 E
}
0 z) \) ]' X1 h. h }
# A7 T2 o$ o* W/ m# c6 Y& c6 c1 r }' I7 e) A4 [+ y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; C2 h' f/ J0 f
if( bGamma )% l+ ~+ e# [" v( a& I
{
" X# s. m) Y8 T7 U/ W+ |. k+ l3 a3 C m_nExp1 = 0;9 H/ n6 K6 Q& x
}
, { B G3 z, d5 D; s. ~
6 v& j* }6 C. l/ n6 G% j2 h ( (CUser*)this )->AddSetChangeJob( nJob ); r9 v& V* _1 K5 Z- s/ K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; c' t/ h) y0 T& w {
3 I7 j- [8 X. j3 S: S+ U$ q: B( m" R5 A* J3 \8 _. g% n9 G: v2 _
#if __VER >= 11 // __SYS_PLAYER_DATA6 P0 `% f8 Z- C7 b& o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) k7 b; x0 I* E# n
#else // __SYS_PLAYER_DATA
6 s1 x- ?: v7 o( s g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: V P! _# E8 U- z! _8 ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: [! _: p5 p. [8 b
if( m_idGuild != 0 )' h. O! P% }6 x& ?
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& Y0 x, C7 C* p: r#endif // __SYS_PLAYER_DATA. H2 W ^$ M/ ]/ F- P3 d
SetHitPoint( GetMaxHitPoint() );& i" U; o' d9 W0 v; q4 G. V- k
SetManaPoint( GetMaxManaPoint() );" S+ Z6 g' A7 B" m
SetFatiguePoint( GetMaxFatiguePoint() );
) t6 _. O8 `, z* ?' J$ V/ v if( nJob >= 1 && nJob <= 4 )8 f0 V. E5 I9 E; ]4 H) a) Z* {1 T/ A
{
( P; u# k7 [2 B4 J# q" P9 u m_nStr = m_nSta = m_nDex = m_nInt = 15;: t2 X3 g. D1 ~1 S$ d. b% Y( l) m+ U
m_nRemainGP = 28;8 E J" \; P' Y- L* k1 ~
}
9 V1 i# Y2 W6 S0 T if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" {2 S0 A+ Y4 J4 l( ^& y {. y9 Q ?" z# ?% u9 l% {
m_nRemainGP = 118;
; u$ E1 o& b7 t6 L0 p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 ~9 D4 w- G; o N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ R+ W3 b0 C5 E N }2 D" p! H% A' i$ ?: X+ D/ e4 Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( R- |* N+ \! I4 r/ W6 ] {$ B* c, t8 o9 Y% O. y/ x
CItemElem itemelem;
; [- ~) h7 o4 i5 y: D: z9 w itemelem.m_nItemNum = 1; ?6 M) W8 ?2 n6 e9 S- N
itemelem.m_bCharged = TRUE;
/ q$ E0 R3 [2 v BYTE nID;/ L( Z1 N! s0 g* D5 b9 m P' I
1 x- |, C8 `/ \1 D3 M" I1 j* f/ B if( nJob == JOB_MENTALIST_HERO )8 f0 a5 ~4 _- J
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 Q+ l5 B: L8 g/ l- X* u# v
if( nJob == JOB_FORCEMASTER_HERO )
# t5 `% s9 v2 ?" ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! o" j" }7 n, e" N( E
8 \6 c5 m' s" V! T
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 j. M3 c9 K, W2 e, @, l' ] }9 \, c4 y0 _/ C% n* D6 [6 \
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ q" \) B& K# k, H2 B' C
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 p5 U9 w: W7 i- z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( W7 h) B4 U2 K$ R% v/ D" S+ A) u /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 R$ p R1 M( Q7 E/ @3 l ( (CUser*)this )->AddTaskBar();*/; C( u% ?: }0 p m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 }2 f/ E r7 O* E9 u' @#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) D4 S. t: {/ [7 V; j; O; U' P' x ((CUser*)this)->CheckHonorStat();
0 R4 `- n6 H: w+ d ((CUser*)this)->AddHonorListAck();
4 {8 t. K. d5 m3 U6 n! P g_UserMng.AddHonorTitleChange( this, m_nHonor);, |9 i( z' a9 g% b) p* w2 b
#endif // __HONORABLE_TITLE // ′Tà?" g! c) L2 U2 n, K8 R$ D
} }: R# m6 X1 t5 r8 |
#endif // __WORLDSERVER
- B' K/ i! a1 L) K# R} $ ]+ x- H0 n, A/ \; A% I' z. P3 D
2 t+ e" \# I2 {2 C1 M+ B
然后你进入functextcmd.cpp并添加以下; ~( c. y: P9 ]7 x2 C
- F" S* J5 l' T2 i: O代码:
+ G' z& X+ n4 K UON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ }1 I. A& i6 R: ^' {% y
下面插入) x+ }! z! Z# p. S3 V/ V: P% J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- w, v$ g7 b) l! X8 e) y& \7 c" K
然后你去/ m% F6 `# O* l# u; d. [
& K) E+ ]; Q2 b. U! H
代码:& E0 ]! b1 ^2 V
代码
9 ~1 S8 [+ {" R0 j C9 \BOOL TextCmd_ClearPropose( CScanner & s )
" f: s0 g/ B4 K7 y{
) e( e' J3 x6 s#ifdef __WORLDSERVER
2 x( y* b2 @1 B0 w; k& ]4 j* M CUser* pUser = (CUser*)s.dwValue;
- B0 a2 K2 j* F5 b. E! n g_dpDBClient.SendClearPropose();
1 I& ^; g2 P( ~ X6 z#endif // __WORLDSERVER
4 M; P* _4 w9 c% t5 w return TRUE;* I4 |' p) ?4 C/ f; B s/ @! ]3 K
}
$ R$ ]4 O; X6 x( H9 m! U* ^下面插入% s {+ ?2 b" X! ^9 w
BOOL TextCmd_rebirth( CScanner& scanner )+ c7 `, L9 H4 Z0 y- D
{5 i: L a0 n2 |5 f& e. \/ a: |! g
#ifdef __WORLDSERVER
@) W6 e! F, E# z1 i) l% t. K5 rCUser *pUser;
9 l& s9 G, F6 SpUser = (CUser*)scanner.dwValue;& |* X* v: d( f
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# g! ~/ U9 n6 t; `9 _6 _) fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& \% m2 ]' v* L% _" @
else
$ c$ f) d1 a& u& x1 ]pUser->AddText("你还未达到重生条件!");' j; Z/ ?9 n4 u# f
#endif
) @6 a; Q+ V" L4 P: Vreturn TRUE;
* n# {5 z' k% j' o) O7 h}
+ v6 d6 H4 a2 e* N7 ?+ |" \0 h. k N9 @. t2 I# j
8 ^; k! R6 O+ N( o2 v$ X3 q; g8 [
. h+ N( U! C* B- b
! ~# O# K* @1 X
|
|