|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# z8 s& F! x6 Q
% J; \ p2 C2 d# LMover.h* b( U4 L4 ]) C# X+ v8 v! O
代码:
& a/ \6 O2 K7 B: [+ |; R) ~/ r找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" p& q- r* w6 x% E
0 k9 j7 `* S- {2 d下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 y* D9 T4 D X7 L2 M
2 a6 {1 n; c" V. ?然后你去mover.cpp添加* F' v# \# I# o
' e2 I/ T! m- {代码:2 A/ O/ S; S$ Q. A9 c2 v( N0 @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 Z' j4 d/ U* ^ V
{$ B2 y0 [ U# q7 S9 N, l
#ifdef __WORLDSERVER4 ~& g2 I {6 x, N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( h) J/ r$ k4 |6 f8 D' Q MoverProp* pProp = GetProp();
; R( L' Z; m& |2 t if( pProp )
$ m2 E N% F7 t% H W6 F {
+ \" @' H) a7 X2 d if( nJob > 0 && nJob < MAX_LEGEND_HERO ). t& F3 d( D# `# b
{ a4 W8 t/ i6 m- s; }# A
AddChangeJob( nJob );3 P. i8 X% I# S" J3 y: K5 Q' E
}else{. ~, ?, n4 C6 Q
return;! R1 d, I; ?+ }) A
}. c* t e1 b9 h4 N0 k( ~: t9 y
int nPoint = 0;7 R) I0 q' k! E) h* q
if( m_nJob == JOB_MERCENARY )8 X9 M0 Y4 G8 \* A: l
nPoint += 40;" \4 i% S0 F/ ^( C+ N" q+ I% \
else if( m_nJob == JOB_ACROBAT )
; R( v: i. B) G1 Q nPoint += 50;
* k0 U8 H9 m- b l else if( m_nJob == JOB_ASSIST )
\( F; K ]) h" M9 H* N" H nPoint += 60;
" X/ E. A2 O+ d+ [# _$ o8 m8 ? else if( m_nJob == JOB_MAGICIAN )
# S9 T, l3 R& E. m: z: j: ] nPoint += 90;* m9 |( j3 T) w, c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 j8 j- y4 m/ q. S( M* Q3 N% x7 |( a nPoint += 120;
8 h; m# R# A3 a/ m, p: f9 } else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): P, p9 a" u! f& ^8 r
nPoint += 150;
$ M, _) x$ k! w% N9 t/ E1 E( u else if( m_nJob == JOB_RINGMASTER )
: p' d: m& Y3 I' T) X nPoint += 160;2 X6 k! L1 ]0 f2 O6 n3 j; a$ ~
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 B2 ~5 q5 x' K nPoint += 180;
( M8 N. Q# W$ k3 s# A4 P5 O4 W. ? else if( m_nJob == JOB_ELEMENTOR )' t* ~6 j2 g. L0 G" C, {3 B' V
nPoint += 390;
: W9 |6 Y7 Z2 d$ i" H; u else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; \3 _* v2 R8 Q, [! w6 ^9 o nPoint += 120;
9 r! Z/ N) @1 P+ j( O) r else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' x" U6 r$ F3 F+ V
nPoint += 150; v/ U' I. B4 B- Q8 s( d3 b
else if( nJob == JOB_FLORIST_HERO )1 }& o/ a2 z) _
nPoint += 160;
# M4 [9 P% l# [& s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' s2 s/ ^, ]( J8 p nPoint += 180;6 E! m3 R% y5 u* O- [% b
else if( nJob == JOB_ELEMENTORLORD_HERO )* ~1 c* o# K8 k6 q
nPoint += 390;
$ F* F9 {* u2 S8 h, ]# h Q
) z6 p: G$ g8 g8 @) U, D% E' ^5 a( w AddSkillPoint( nPoint );- H0 h9 u* o( w- q# \
m_nLevel = nLevel;4 e! f, D6 r. @, G
6 D0 y: Y k% |3 @
SetJobLevel( nLevel, nJob );$ [! J }; l9 y" w) \/ n3 L* K' D( m
m_nDeathLevel = nLevel;
( I2 q, Z, h9 I( i. [+ v' Z#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- S" `0 K' _- j$ I if(IsMaster())$ [( f; j3 t$ Z6 M$ E4 a6 U
{
$ A0 w, k* J2 e( F int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: h- q/ ` _; I* k3 c- v+ V3 f4 Z if( nLevel > 59 && nLevel < 72 )* V" [9 l; Y% u7 B f; F, Y& ^
dwTmpSkLevel = 1;
! A4 [9 x# {/ J: R2 \: Y- U else if( nLevel > 71 && nLevel < 84 )* A/ s/ {- O' l- a) w
dwTmpSkLevel = 2;
$ Y( }& q' A: S- N* I3 P else if( nLevel > 83 && nLevel < 96 )
: m7 l V5 \! e dwTmpSkLevel = 3;
) v1 p, {# B, s! G+ t8 D else if( nLevel > 95 && nLevel < 108 ), i8 k9 C+ c2 q$ O
dwTmpSkLevel = 4;. H. O9 k, ?: P, o
else if( nLevel > 107 && nLevel < 120 )
9 R; l. u3 O" e$ D2 ~* d dwTmpSkLevel = 5;
( [/ z: u; z b for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! E+ @, {) F8 E- I7 S8 J
{ 3 z6 `; j4 [( \, b
LPSKILL lpSkill = &(m_aJobSkill);
% L' X$ D5 {5 G# S8 e( E3 | if( lpSkill && lpSkill->dwSkill != NULL_ID )" r8 Q! }) N ?9 a8 ]
{
! p ~% {) w+ t7 r: C! h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# C7 H+ P$ L, X$ W, [% o if( pSkillProp == NULL )
) u1 ?& D9 q, r, ~) n) V continue;! U7 ^$ T& x E/ h8 u8 C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, x, i& i9 Y* ]0 `. Y$ m continue;
1 `5 W% X% F! H' k lpSkill->dwLevel = dwTmpSkLevel;2 r; Z. W, Q h& I
}: O- ~+ J, y- c5 A# l/ o& ?4 S
}
7 V Q9 z0 e; X( D }( C8 S# i/ F1 e" n3 ^& H1 a+ m) v
else if(IsHero())
/ T, ]( w7 @' q4 {' k) S% y4 s$ R {
+ b1 d9 S8 c' \ for( int i = 0; i < MAX_SKILL_JOB; i++ )
( b2 Q1 |- K% R { , o( Z% a" D3 n
LPSKILL lpSkill = &(m_aJobSkill);# i& S+ K$ q/ K" @" O+ s/ [* q6 G7 E. ~
if( lpSkill && lpSkill->dwSkill != NULL_ID ); I2 b0 F: M2 v, R
{
9 }, g" M9 S, j' b. h0 a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % d N+ p! x+ \% u5 u
if( pSkillProp == NULL )/ @" L" B) W( M1 ]$ A+ g! l
continue;4 |9 C* T4 E8 b! C/ {% o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
S$ S- S; ]! l& i" ~% i continue;1 ?( p5 P. k1 Q8 T
lpSkill->dwLevel = 5;
# b7 r. P; {2 T |/ w4 } }" U; k; W& n' H* b
}9 E$ g+ o D8 ?4 X( `. Y9 Q4 j1 u
}1 V3 M/ C: [( ]: T9 w7 y
else if(IsLegendHero()): P: c& J# b$ m9 F
{$ Z1 M8 ]2 ]5 r4 C6 M: e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 E; {" ~5 m! S+ T1 o4 J/ y$ S { 3 n! [" Y4 P S
LPSKILL lpSkill = &(m_aJobSkill);9 x' M/ l, L! e y" K
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ O9 m9 N* |# m9 S' C( w2 k% V* }
{
0 {9 J/ y' J. X6 l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* x0 \3 R! g' _6 n7 s if( pSkillProp == NULL )
. E2 g7 s7 V, k5 z0 K continue;( y% j. E N- r3 A2 v# {( O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); f% }* B5 W% a. L$ f" y# v
continue;
6 g$ A- p6 _/ d% F6 B lpSkill->dwLevel = 5;$ p( v5 ~4 J% e( ?3 l
}$ v( {! Y4 I9 T- s: s6 V
}9 I5 ^$ t. w' H
}
) b6 ]1 k5 w+ f0 b2 p% C#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ R6 [# `. x) {6 K! c$ G if( bGamma )
+ L Y9 C! F5 H2 N: W {
9 O x0 r! R7 ?. W9 G7 H9 ^ m_nExp1 = 0;3 Z, S! e, `! F5 w4 l$ _. u( E
}
- l( C! E0 j' l s- [+ k& X% D0 Y% I" y9 b- y
( (CUser*)this )->AddSetChangeJob( nJob );8 D( ]- a: H5 _4 q. ^. [% W9 v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); d( Q6 A6 ^8 m2 U! h/ D$ t% K& x
: F Z& z) @+ w9 C! S( U4 s
: U7 ~- b" y& |
#if __VER >= 11 // __SYS_PLAYER_DATA& x+ D$ Q. m+ i. E4 a; F
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, Y, a6 u8 A; x$ ^#else // __SYS_PLAYER_DATA
7 Q# b4 v. I! X9 V; l) u' O* j, T: U g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' f+ l6 S: X3 E! q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 Y& ?, v3 E. _6 b if( m_idGuild != 0 )/ i' [& @0 p4 Q7 B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 M+ U! Y% z& F% q% u#endif // __SYS_PLAYER_DATA7 K! B8 O1 j2 L' y* }
SetHitPoint( GetMaxHitPoint() );
8 x! h( u2 |+ h6 H4 S( M SetManaPoint( GetMaxManaPoint() );6 G: y: |8 P: E0 V$ u
SetFatiguePoint( GetMaxFatiguePoint() );
6 \9 n, m: |/ C* e if( nJob >= 1 && nJob <= 4 )
- ~8 D3 Z( @. A0 |; T {* X( m" X5 n1 B
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 f) C: k; A, g Y+ Z9 J' Z2 \
m_nRemainGP = 28;
6 m y1 h1 s5 O+ \* j }
5 c1 ]& `$ [- u+ o' A+ n; ^ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' ?( q/ l( {; B3 X/ ]
{
7 t3 G+ f* f- B' d+ N: Z m_nRemainGP = 118;
' S! u( H Z& _5 W //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 S: C) F ?6 C% i+ h i m_nStr = m_nSta = m_nDex = m_nInt = 15;0 _# n0 l. C; T; P1 P' M/ g3 O
}7 h+ B+ t+ U4 h" U( u! c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 X) u; j; K% |; r {" J( k! t7 o% y( i' ?6 T+ D
CItemElem itemelem;9 v9 P! H/ x- I9 {3 R7 h3 }/ e8 I
itemelem.m_nItemNum = 1;
3 k6 s& ]* @' N- a7 `9 v itemelem.m_bCharged = TRUE;
! _& i8 L& _' d2 j" n: C BYTE nID;+ t6 _5 y7 f. @2 ^) a
4 J) f6 B: F* H5 m& }6 k
if( nJob == JOB_MENTALIST_HERO )
0 x3 r# B" m$ L; \% w itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 ]& t* G9 K5 ]) |+ o, F9 W
if( nJob == JOB_FORCEMASTER_HERO )+ s; M3 I" A) ~& R1 y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 P- t5 l+ s$ T0 r6 u8 e8 e6 p4 X4 `0 ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );8 n b5 K S R0 b+ J% P" T
}. C1 z# U/ e" i( E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 F! c: Z+ [6 u8 C V7 B0 Q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 n3 p/ h5 {2 m
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 r/ f8 g( ^& g4 c B6 C /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& \: @/ ]9 w$ B7 s S8 i: a& m- ~
( (CUser*)this )->AddTaskBar();*/( F! O: \8 c1 Z1 e
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ D2 y4 a' e/ c: @) ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* A. |2 R$ h- i/ G! M ((CUser*)this)->CheckHonorStat();: s" x8 J$ }0 m3 g, n: q
((CUser*)this)->AddHonorListAck();
8 E4 r! D" Y6 F V# B. E% `+ m- } g_UserMng.AddHonorTitleChange( this, m_nHonor);; d1 C% C! W2 D4 i
#endif // __HONORABLE_TITLE // ′Tà?' Y6 ?& O' S# S/ @) E
}
) R* g0 y/ ^, o3 V5 i7 g; r#endif // __WORLDSERVER
- S% h/ S9 p1 D; c} H! F: y7 q% L1 `, {* K* P% n+ p
( D K F' u8 P( ?2 g
然后你进入functextcmd.cpp并添加以下 `7 H+ f9 z5 [6 Q! z8 y9 s
1 Z+ d+ A Q* `( o+ }) h
代码:
. s- q. f/ l# k& {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 N8 q- B9 @+ ~下面插入 X3 x( k6 ^ F( i. T3 [8 |7 S4 L6 `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ m- k; j* z" I+ q5 E: [8 t3 T
0 Z7 R3 |, Q6 v, S/ P然后你去
" G ]8 K" X5 f) L
- H, E8 M- Q" ?代码:* O3 H- o2 x6 \: B8 b- B* C
代码
$ t3 Q2 {6 b! T! \BOOL TextCmd_ClearPropose( CScanner & s )5 Z; h) [+ R, F, H0 \$ t: h8 Z& E
{
. h3 j5 E) T( u6 n! b. }1 O) {5 D3 X; n a#ifdef __WORLDSERVER
3 ? U; i3 `2 [8 w( \. a5 | CUser* pUser = (CUser*)s.dwValue;
5 E( z/ M5 O2 ]* @7 j! O8 U7 Y g_dpDBClient.SendClearPropose();
- D0 V! Z3 l) m#endif // __WORLDSERVER
. ]0 p' P- k, }8 j5 b return TRUE;: @3 y) a! t2 r
}6 O+ ?6 X2 A3 t, T" i8 v
下面插入
$ S/ Z% F% r5 H; {5 oBOOL TextCmd_rebirth( CScanner& scanner )' [2 R# ?9 h/ a
{* A! I+ W* X' R0 D9 \- G' z7 ?* r
#ifdef __WORLDSERVER& N p0 c- e/ \" W7 l
CUser *pUser;, d2 {6 u8 l: K- X! ?0 ^
pUser = (CUser*)scanner.dwValue;
1 {9 a- N+ H' M9 O" vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' C* n0 r5 d8 A9 A# _7 y: JpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 t% V( R# m( |7 h* p' g( N
else
& c: Z7 r2 O4 n, w* k/ s4 [pUser->AddText("你还未达到重生条件!");
2 G, Q- i4 b% Z$ w#endif# L* v2 o0 j8 L7 I" H! X
return TRUE;$ m/ K( Z9 ?; j) h' w
} , w( J* \4 Z" e- N6 t5 l
% Q6 ~" n. {* w
( W6 L# A7 C2 t0 @, K: ^! P1 ~; ~
) O( T. t3 r* k3 s5 P' G8 \4 X8 H/ z4 n0 ~
|
|