|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- C g0 Q8 g" F4 V( f( l
5 q/ a7 d6 }4 ~# ?Mover.h
0 O9 a. K* t- I4 G! D2 q代码:
8 D3 o/ } p6 A* C找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% A: [8 F$ H# m) ~ }
6 r+ `# ]1 g' X* q _/ Q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: t. H# n4 E2 R# l5 o
8 h3 p' N& r9 I0 L& g* j4 t然后你去mover.cpp添加
9 V6 j1 o- F! @
$ O8 f5 d+ j% i$ s1 S) y代码:
- n+ Q3 D! l5 k5 v9 @" Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% x$ B- Q; h) P/ t- i5 j{
4 M8 @! w" ~8 @8 e& @" j#ifdef __WORLDSERVER
0 K/ `3 J: V) y, }+ }0 ~ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" F, F6 x0 f/ p% p! c6 V
MoverProp* pProp = GetProp();
8 h! i- F4 A$ k" b& @ if( pProp )3 T' t! p9 `* c3 w" [) C
{: |; P) l) B% s% A/ }
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 [' z* [5 k4 w3 n6 x. @ {
. H% D) U; [% z: m$ Z) S AddChangeJob( nJob );! |& t. J, W0 j3 Q
}else{
2 L; ?' }# L$ o8 o$ [ return;1 A. C9 P' h, i) z3 R2 P: T6 ~
}
7 p" _0 I1 R7 |% @! t% U int nPoint = 0;
9 n5 F1 P5 u. z if( m_nJob == JOB_MERCENARY )
$ j" @1 O z$ g+ B5 d nPoint += 40;/ t3 v8 `( n0 t# ^1 f' Q
else if( m_nJob == JOB_ACROBAT )! Z$ q! _9 N: z3 p6 Q0 q
nPoint += 50;- D/ G) q) u: l0 E& ~5 k+ ]
else if( m_nJob == JOB_ASSIST )
$ p# C u: Q+ Q$ E$ J1 O nPoint += 60;1 X9 r2 O3 U( R( p. y0 R
else if( m_nJob == JOB_MAGICIAN )( H3 {( S; d5 O2 @! R& J0 }
nPoint += 90;8 k, q, J6 X) C$ i9 Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% m: Q" }# U/ f6 h8 ~ nPoint += 120;
% L2 o; G" V7 k4 X else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' V+ E4 T1 E+ m. `7 g M: | nPoint += 150;. B2 C0 ^: t, z. D$ M0 l9 |
else if( m_nJob == JOB_RINGMASTER )+ n" F) A. M( w
nPoint += 160;4 D, q8 w* r" a7 d# k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 R6 k# ~. m' s& }$ M
nPoint += 180;
2 F! L7 [4 e6 [* G3 h else if( m_nJob == JOB_ELEMENTOR )2 o( L& `; ?: P8 s5 m/ F$ ]6 m/ V
nPoint += 390;
: B. |" {; e* T$ }6 z6 A+ O" a+ ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, H0 E+ }4 l1 @/ G: T nPoint += 120;
j& g( M! y; j w5 z: I3 F else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) q' w. w4 @8 N3 A6 q
nPoint += 150;
9 g2 o& B$ v2 G else if( nJob == JOB_FLORIST_HERO )
% @, ~" q( Z# u6 T q nPoint += 160;
9 Z0 M0 V3 X5 T else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 ]$ E$ ^1 ]' b# O$ U" _3 D# v nPoint += 180;
+ h l/ p E% t1 E; ~. D& w! b else if( nJob == JOB_ELEMENTORLORD_HERO )* f H# X# X) Z8 b
nPoint += 390;* t) E1 q x1 y, x# i- d8 [
( a9 W! p7 Q, k: A; I
AddSkillPoint( nPoint );
0 ]# R! D3 ]) D$ F- \ m_nLevel = nLevel;0 k! j8 q- N( J9 r' m# f8 U6 h* n
& t" m: E1 |( Y) R* E- t3 w7 Q SetJobLevel( nLevel, nJob );
" ~: l. [/ c2 H$ B m_nDeathLevel = nLevel;/ N) M7 Q4 w- x
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, A" P# T$ q' E
if(IsMaster())
1 W' A1 c7 U( z% P' n {
$ c; K t) m' l3 c6 d' z/ \ int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 e4 @6 ~) Z0 r, A o7 U* J3 d
if( nLevel > 59 && nLevel < 72 )
7 w; ^1 | |) P. U% c1 k dwTmpSkLevel = 1;. m9 |9 e/ X2 f' d
else if( nLevel > 71 && nLevel < 84 )
9 }2 f7 E9 q1 b' R; K dwTmpSkLevel = 2;
4 q+ i7 V, a; \7 l9 ?9 Z else if( nLevel > 83 && nLevel < 96 )6 ^: e9 A3 A( g- y
dwTmpSkLevel = 3;( J) K5 F T0 K0 ]5 E {
else if( nLevel > 95 && nLevel < 108 )
8 u% e) ]3 z6 g dwTmpSkLevel = 4;4 f8 L9 M% @# U( G
else if( nLevel > 107 && nLevel < 120 )
+ A. @9 w! b* J- w7 }6 Y: X$ \ dwTmpSkLevel = 5;
- M4 d$ f$ W3 i8 K3 [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
% t1 v' W5 s( F5 `$ Q+ z {
% _; g) C& k |9 s) r LPSKILL lpSkill = &(m_aJobSkill);
$ `8 Y& r3 k$ ?) z8 E# T if( lpSkill && lpSkill->dwSkill != NULL_ID ). _5 d1 @8 y& }. g$ o/ h
{( [7 z1 n& f! {6 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : L0 d o) q5 u+ x2 E. I
if( pSkillProp == NULL )
1 s5 J/ | t9 k3 o continue;
( ^' i1 E4 y, W4 U; ~: R0 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ ^6 |4 r3 K% N. q1 U6 ]9 o1 K
continue;
. ^' p4 k) Y2 x$ O8 A3 F& x( P; @ lpSkill->dwLevel = dwTmpSkLevel;3 _( E, }, i& m" [' j% e
}% C8 y* X0 g+ M. ]* v
}( N, m8 k/ w7 ], H V$ k5 O
}
! i3 F* x. {5 F: R( a else if(IsHero())3 k4 j* s& e$ `: q2 L9 i
{
$ i' w) x$ Z2 [* ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 q: b2 d. n- U* J/ v* x
{ 2 [7 }" @) P9 q% R
LPSKILL lpSkill = &(m_aJobSkill);% x j& a$ U: m8 P+ s2 ?8 g4 i
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ h/ A5 M" t, r! b0 w( p
{2 l! i: I8 k" `# }7 G) V) q) A; H9 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) T% y- a# E+ u
if( pSkillProp == NULL )
8 [0 N* M% g, s9 F7 H continue;" F, ~1 V/ z' m7 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 S) a: {' | r. p( C' ~9 h7 l7 I( M continue;* Q0 C7 `) }1 V. z; W! v
lpSkill->dwLevel = 5;: Y. j+ e6 z& ^; P, w
}3 \; Y; J8 A( s4 a/ ]$ m
}
5 [7 G- g& R8 c }9 ?. C* }8 b) M1 H. z! B
else if(IsLegendHero())1 c7 A7 Z; R. Q9 s
{
1 y1 c4 G8 l6 _+ c for( int i = 0; i < MAX_SKILL_JOB; i++ ) , b" i) c+ e% ~# R/ `, S2 Z
{ 2 v: L8 I; r3 u% Y) g1 L
LPSKILL lpSkill = &(m_aJobSkill);
% S6 G. [6 [$ {/ j6 [1 K if( lpSkill && lpSkill->dwSkill != NULL_ID )
' s: e; x# r* i! a5 x% {7 V {6 b8 d4 _6 a* m7 k+ ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' S5 ]+ G# V2 e S
if( pSkillProp == NULL ). u+ l0 _9 v- R# }9 f
continue;+ [% g8 Z: A! h) \( l, C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
S# N& P* C ]6 H% Y/ s) B/ E continue;
% e; {6 Z; i9 z lpSkill->dwLevel = 5;' w7 ?8 i0 T" n
}
4 }+ A( h0 x; j$ K' E7 R& x }% U$ G2 t1 q3 Y w0 e
}
/ G) x/ m0 N) i" k: k4 ], p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: i/ V4 x+ ^+ _7 N if( bGamma ) ?5 z+ \% R1 h& }
{5 d6 m! V) u4 ]2 A/ s& _
m_nExp1 = 0;
1 |( i$ I/ J8 t+ ~# e% {9 }3 L0 a8 r }4 b& T' D4 C1 o7 G7 R" @
4 c- g' c$ f+ t! A, n# _ ( (CUser*)this )->AddSetChangeJob( nJob );
. e0 F& }# X2 }, j6 a. } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 x- a" Y7 s' v. N# g$ K
9 S" @& N# O: P" q; y9 d; k' Y5 |; {0 s5 k
#if __VER >= 11 // __SYS_PLAYER_DATA
# N; S3 u- t1 ^9 }$ a+ M- c g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); Z- M! }. Y9 T; L2 Z2 t
#else // __SYS_PLAYER_DATA
) P1 |8 E p( p+ ?. {, L* f A g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 p0 L7 L+ N5 f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 T' y7 H, y. g9 i' f if( m_idGuild != 0 )* y1 N, F7 A) Z, I! t2 \, I* @' R' d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 d# P" z8 A* R! P9 X& h#endif // __SYS_PLAYER_DATA$ e. C' `3 A7 p: ~
SetHitPoint( GetMaxHitPoint() );' y. r3 m5 X2 R7 ?, |7 \
SetManaPoint( GetMaxManaPoint() );
5 i7 h( p& |. i" R- M" T SetFatiguePoint( GetMaxFatiguePoint() );
3 I1 i0 l- W0 r3 {$ R if( nJob >= 1 && nJob <= 4 )
+ K% z# y. K5 F {% @( n; b2 ^) M3 s
m_nStr = m_nSta = m_nDex = m_nInt = 15;' K* w0 N" \: }7 P" w$ j
m_nRemainGP = 28;
7 O! j# A4 J4 L1 _( S }
& c3 M1 }6 o3 }7 ?1 X# L1 v0 p if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), }2 P3 ?) x7 [
{) @ C+ a2 E% Z g
m_nRemainGP = 118;0 @2 H' _% _+ z Y) t2 p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 h# D5 [* ]3 c' X; J8 D
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ X2 Y' {: T5 X8 {
}
- G; w- F# H: m' D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- i! M+ N9 M" K+ ~) a" { {
0 d0 G2 {5 t/ ]7 [& D! t CItemElem itemelem;
5 f0 L( k7 { b0 I& m$ L; ?/ A itemelem.m_nItemNum = 1;
6 r: r/ B. F2 F q1 K/ i9 U itemelem.m_bCharged = TRUE;; |7 [- a# c. }$ O/ ^) i$ p
BYTE nID;8 S# O0 a% ~" b9 }+ C
! p( \# G7 W: g* [! A+ I* U, M if( nJob == JOB_MENTALIST_HERO )
1 x& r! o1 Q, Z5 R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, m- J9 K% J/ N1 I
if( nJob == JOB_FORCEMASTER_HERO )+ e( F; w3 w: Q) ]) y' i/ `
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( ^' f ^6 V/ ~5 O2 W+ r# y
& A( i Z5 A2 o7 Y$ n' f ( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 r; k& k! g& b0 f2 e1 \) q# C% C }! a" @4 G" R7 U0 a9 N" y U
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 Y8 W7 a) t1 p1 R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ j2 B# _1 `6 V. Q# u: H$ [% u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 Y! a& I7 M3 f- ?' w7 G; P. N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ T) }& g' k) [) q' `4 s- S" P
( (CUser*)this )->AddTaskBar();*/
! W: b% b6 |1 [. B$ D& ^6 B; _ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); x" P8 a1 |. v y% }+ I8 C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) ?$ H7 x, z E ((CUser*)this)->CheckHonorStat();% Q2 H8 E$ d& o; a A& a
((CUser*)this)->AddHonorListAck();4 y; o: |! F, C, ^, P
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 C) M4 s0 U: K* t0 W6 O
#endif // __HONORABLE_TITLE // ′Tà?+ ]( o9 o7 M% I- `6 A' g d1 v
}+ `$ c3 a6 A; \$ t8 Y) [# a
#endif // __WORLDSERVER c4 F- O4 e( ~) [1 D; j
} 0 j* ^& {2 _1 Q1 x! T3 o i% T$ A
9 G; n. g9 U1 q然后你进入functextcmd.cpp并添加以下& |1 R Q8 M- v' J
' N% ]5 a2 y9 N
代码:6 \0 w/ X$ z) G
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 L) n3 {! A" d
下面插入
% ~1 w3 E: d9 f1 F) M$ LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( W- H) [1 A/ z( h( x2 l; m3 C& y- r* r& }
然后你去9 F% N' J; n i s& n2 i; g M
( ~! M/ e4 U5 ~9 C
代码:
1 {7 s' R/ Y3 D- }/ ~0 q! C3 T* ?代码& O. {& F/ I8 |( u
BOOL TextCmd_ClearPropose( CScanner & s )
6 B2 H6 W, I$ p& G k# k3 Q' H{
1 y. e9 U# `3 s* z% f# j4 ~* N#ifdef __WORLDSERVER; }) d: P( A! r2 ?2 a0 K; m
CUser* pUser = (CUser*)s.dwValue;
, n" m; K {2 I; p7 j g_dpDBClient.SendClearPropose();& |" r% U( {0 h( F& K
#endif // __WORLDSERVER
4 K8 P; ^0 |9 {, e3 |% F+ N return TRUE;& ?2 S* A% l$ j1 N2 J6 p
}
* T6 U6 L6 Z8 W( } j# a/ X下面插入
* o8 _: C5 }" Y: y& k+ WBOOL TextCmd_rebirth( CScanner& scanner )3 G7 |: t& d# k+ b
{* X3 p- W0 s. R6 ?
#ifdef __WORLDSERVER
( W$ x9 b4 O4 @- B( t; ZCUser *pUser;
5 z3 R9 X- P( t* |/ W8 S( g( x# T6 ?, T9 mpUser = (CUser*)scanner.dwValue;- m- ?- r6 Z. f9 O# ]$ t
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 P) I: X1 ?( g. ?% O
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 y8 X) B, ]$ S
else
( N, L5 V/ I8 k3 I! TpUser->AddText("你还未达到重生条件!");+ U0 G$ c; t& o" f, V$ R/ ^
#endif
+ }/ z4 {4 w% x+ f- Greturn TRUE;; g$ f5 l" t; N0 `
}
5 C) Q" o" g# |8 A w
* ~# v5 K3 E. |1 b! c3 f! R% a' ?! C" M3 Z1 X
7 C+ E K2 c, G( y5 Q$ o3 I
+ i1 g) X! O% Z/ U7 ^0 p! T |
|