|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' S7 u. m6 \' r, r+ X G
6 ?- v- v- ~0 B* ^% D
Mover.h
' V1 M9 ~* D4 s8 k/ o% Q- Y9 ?代码:
) @* B9 k* j t找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü R* [4 u# Q4 h3 o* d5 D7 Y
* r/ T$ A' F# S3 t. t' K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / G1 b0 _9 X, X; z
" K Y2 c" L" S" a然后你去mover.cpp添加
$ J4 d. |: |$ w3 Y8 W, l. h4 A8 j* ?6 k _. t5 z9 y- E5 k
代码:
' v& @! j& J& t+ c; \$ Xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" f* n9 u% M O; L" n6 h
{5 A, d. W B- o7 h% z7 Q9 Y8 B& ~
#ifdef __WORLDSERVER: |1 @& t. J5 B2 h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 R/ Q4 \8 i3 h# F/ b7 P& x MoverProp* pProp = GetProp();0 Z- d) _5 p# X: n! x/ k H
if( pProp ). n" M% q A* f" x/ i, H" v
{
9 i, F3 M: q- r$ g1 i if( nJob > 0 && nJob < MAX_LEGEND_HERO )* B. B" J# H. U3 G; X8 L* x& C, r" I
{$ d" V0 n& S3 n, B& Z% w
AddChangeJob( nJob );/ b0 ?. F8 i0 F, K# I8 R2 v6 s/ u
}else{: t' g/ v) C3 r
return;
7 S: C! c' t4 G7 l/ I0 D0 o }
7 K* j+ n, J t; M% D% N int nPoint = 0;) a% ~7 r; N% {, p1 A, p* a7 y' g
if( m_nJob == JOB_MERCENARY )
+ C% i% ?8 h# D- S+ R1 ^ nPoint += 40;
7 j. g2 s! i0 x- Q& A! z. {+ `- d3 w else if( m_nJob == JOB_ACROBAT )
4 j' }3 T9 @, d* j' w nPoint += 50;
/ N9 a. C* f5 [6 ~9 Q' r else if( m_nJob == JOB_ASSIST )) x; e- A) N! t: g
nPoint += 60;/ G9 j) s# q! l
else if( m_nJob == JOB_MAGICIAN )
, J% \% j9 ?+ Q+ S! J0 D nPoint += 90;1 c/ M3 I' l/ H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& @5 s4 K. i4 I/ d nPoint += 120;* }! y: v0 ~, U4 |3 \! m# ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& x4 z$ j b' U& Y" e3 } nPoint += 150;
" G' P- R3 i% ]% Y2 O4 I2 r& W) | else if( m_nJob == JOB_RINGMASTER )
, {# ^& X/ E8 F* U2 r2 C nPoint += 160;1 y3 ]4 |; e- ]1 _1 h: A
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 y) o1 K6 n V; y+ w% U$ Y nPoint += 180;# H5 [ e: B x% ^8 J S4 j: u
else if( m_nJob == JOB_ELEMENTOR )
9 N8 d$ `7 i: J+ r; @ ~( m& V# ^! q nPoint += 390;
/ F7 A5 R0 Z& Y2 s( v* n6 G' a else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 v% d8 I: A' V8 W, w nPoint += 120;
4 I: ?2 N5 ~* G else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% f7 F* n _+ I& s nPoint += 150;
, B3 n: j6 M& @, U( p* N else if( nJob == JOB_FLORIST_HERO )
; f* f) Q( A& ?7 d/ t nPoint += 160;; c' z! Z$ p( V# G9 _% g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 s& z4 D7 H+ e; {4 v7 O/ g5 Q nPoint += 180;
0 b( P# C7 g0 p+ S i3 p U else if( nJob == JOB_ELEMENTORLORD_HERO )7 l/ k! N- U( A9 T
nPoint += 390;5 w1 A& H$ b7 T+ w7 F
( [( _4 `0 S, g% x0 R AddSkillPoint( nPoint );
' R" D5 [0 ?+ O p4 ? m_nLevel = nLevel;8 }8 w# U& ^% h! N5 K9 a) ]7 l
8 V, C! ]4 ^+ y2 \9 y0 ?
SetJobLevel( nLevel, nJob );
! N9 \( i7 c9 ~ m_nDeathLevel = nLevel;
2 f! y: R7 Y: O6 C& X* }5 r#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- f w7 H/ p0 a# {2 f4 q# S if(IsMaster()); @" i; E) c5 {: w, B: |/ k8 W& k
{
( k# q! Q5 w6 C) X7 \ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' j/ \& {, I+ R6 o% f9 H q if( nLevel > 59 && nLevel < 72 )
1 p$ q+ C) _" @ dwTmpSkLevel = 1;9 Y6 w- {6 X2 {
else if( nLevel > 71 && nLevel < 84 )
" w7 C& [; }9 y) D0 E dwTmpSkLevel = 2;
& s# _+ z' C$ I7 ~ else if( nLevel > 83 && nLevel < 96 )
6 I+ H5 b3 p' `% n6 u. X dwTmpSkLevel = 3;
' @2 g* {1 Q6 H5 t2 U- f else if( nLevel > 95 && nLevel < 108 )" l4 C: \: [: S* @) [) E
dwTmpSkLevel = 4;
8 D- ~& c$ W# @6 t% E8 A2 v else if( nLevel > 107 && nLevel < 120 ). _- r, f9 l& v) u/ k3 y1 R
dwTmpSkLevel = 5;( j0 z. z$ z: r4 x6 O0 Z6 V/ H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . S a/ ]& y u2 z
{ + S2 i0 ^% u6 o# {* S
LPSKILL lpSkill = &(m_aJobSkill);
( I4 R; @- n5 p if( lpSkill && lpSkill->dwSkill != NULL_ID )
- d2 a9 s. T8 l2 W: C3 l E2 Q3 d {
( s# r' z c/ d2 w. J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, f$ s$ x4 Y9 t0 W if( pSkillProp == NULL )
7 k- ^; M2 D# F% C continue;$ v4 b+ q! ^9 p" y7 F4 G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- W a* V) Q: o/ L5 d continue; Z5 i+ a5 s; E
lpSkill->dwLevel = dwTmpSkLevel;3 O. m( d$ `2 N9 C
}% v/ u" E) y3 j+ U" d" z
}# |0 b5 N' Z7 `. K3 j. }( j
}8 o9 c! \8 A' z3 S3 ]+ t5 W+ C( v
else if(IsHero())
- G0 {% {9 q; q' i {
; C P+ r7 Y% h( Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) A8 f6 M* J# ]
{ 3 \+ W2 P( o- c/ V
LPSKILL lpSkill = &(m_aJobSkill);
7 H6 c! o$ h6 _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 l! S* h( j3 U+ R) h7 h {* j) J" J$ r5 s2 Y V3 ~' d8 ?2 T( m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! _) n5 {) a- }) a6 z3 L
if( pSkillProp == NULL )
) G2 `7 H! B- T: c! ] continue;/ ?: c: J. s k" m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* T5 C# M! a: J$ U& K9 R
continue;
7 h- `* G1 X' m! W1 G/ F lpSkill->dwLevel = 5;
0 f- A% E8 v' f* D0 t+ ? }
c+ Z. p$ l/ A5 Z+ Z, [. f }
" G S F* l4 L2 a3 G4 }) } }
0 k# ^8 g- U7 j+ ~ else if(IsLegendHero())
8 {2 v% G1 j% `/ ~ {# q8 K/ X5 I. A/ Y7 v8 u
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , {1 d" d0 _% M6 q: _
{ 9 G( o4 r- r( @0 V* D: u- S
LPSKILL lpSkill = &(m_aJobSkill);) g7 ^/ x E) T# W0 M# h& h0 q7 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )! t3 `5 k! B2 |/ Q; f7 k
{
' w( Z& W A8 E6 c. k7 } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; U6 |5 A0 S8 W8 U( h2 I% \2 h
if( pSkillProp == NULL )
: V2 e+ G/ j4 c1 \% X7 c; E continue;
, K9 q! `- t' K; E; ?! l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 I5 C8 z* q0 k continue;& `2 E/ S! \6 f1 D
lpSkill->dwLevel = 5;& O8 W, l7 ]' \
}/ x: Z8 j: P, ]
}
& p6 R5 \4 M7 i. U! W( ?- T }5 p' O5 ~6 m0 [; _+ @! o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 M3 L$ j5 y0 w2 G, Q, |& K
if( bGamma )
- O. z' I! _& R5 _' A {
9 g: {" f! T. Q: x! S \ m_nExp1 = 0;
1 |5 \: ]) u3 G4 w5 M }
6 J1 y: h0 @# T. J# B9 C. _$ Q0 t* l: z3 ?" P2 c: A
( (CUser*)this )->AddSetChangeJob( nJob );
; S- g" ^) C$ P4 r. r' g g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! N, I: L7 b9 Q O- e6 k' W0 Y
+ J& X/ |1 N. a0 k$ @ n k: [4 D7 R* B0 P1 t
#if __VER >= 11 // __SYS_PLAYER_DATA
3 t; @$ l! U3 q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 t" C1 W/ }2 J#else // __SYS_PLAYER_DATA
, `( d% O: r4 k g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 a+ P. Q+ y h6 { g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 W% H+ ~# C% s. _7 F
if( m_idGuild != 0 )
6 O9 f# t8 J8 N( h; Y7 }0 a1 N8 f2 _ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, q2 U9 ~: D' ~1 Q* O
#endif // __SYS_PLAYER_DATA
6 L3 a4 K" {8 ^ w% o i SetHitPoint( GetMaxHitPoint() );
5 k$ \1 [- e C2 o( R SetManaPoint( GetMaxManaPoint() );
9 r; W% Y7 h# e SetFatiguePoint( GetMaxFatiguePoint() );1 N; |% Q, S9 P; l. i
if( nJob >= 1 && nJob <= 4 )8 S0 T5 K# R, J+ Z5 [
{2 t! S, A8 ^& r; S% v, o c
m_nStr = m_nSta = m_nDex = m_nInt = 15;; q# U. x7 o4 i, A( p
m_nRemainGP = 28;- {# F4 l; m$ ]1 e: y+ n7 K) ^
}( E1 [' @" z8 j; K1 r! B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
6 n0 Q9 D3 Q1 Z& c/ U {
( b* |; N7 D% y6 _+ D2 L, _2 Y m_nRemainGP = 118;( X% l: M& B% _; c2 \, o) R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* [. B3 |% N& m
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; Z9 e7 x& I% q1 S }
+ M% ~5 D: s7 X: Z/ E9 K if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 \- S8 x& m+ w+ f8 E& {" e3 s
{5 R: s4 k0 U; b4 m8 M
CItemElem itemelem;
7 {1 R3 s% Q" }1 f$ B8 V0 q" I itemelem.m_nItemNum = 1;& L% |5 {) y: W! B a4 j
itemelem.m_bCharged = TRUE;8 n, B7 D/ y' n1 r A3 T
BYTE nID;! P; X. y1 [ {3 ?' Z
; H0 B* I, h4 Z8 T+ ]
if( nJob == JOB_MENTALIST_HERO )/ d, A5 r, E# J+ ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ n, c+ C) u2 Z" t0 h8 Y8 \9 j+ X
if( nJob == JOB_FORCEMASTER_HERO )) c) N9 I, p. {2 e+ H7 z% a8 x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 ?4 y9 W+ R8 `7 x+ w! i _7 z4 G4 }* I7 }% a$ a$ `; @" |
( ( CUser*)this)->CreateItem( &itemelem, &nID );
; a- `- F1 q1 Z8 W5 x }& k6 F$ ^$ q& i* U
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
Y/ e+ z# u8 x# [$ q H# V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' ^; ^' l, g0 l% X$ L
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( ~$ ^6 `' i. L. l% s! F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! b' e" V) A9 |
( (CUser*)this )->AddTaskBar();*/
9 d: `/ m* {+ g: H( v! ]/ O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); x$ Z' |3 X8 R+ X: _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ D4 l- n+ t6 @, v2 p
((CUser*)this)->CheckHonorStat();7 c- S/ B8 E/ M8 a6 ?, J- g
((CUser*)this)->AddHonorListAck();; x7 S" `, z. C( A. p
g_UserMng.AddHonorTitleChange( this, m_nHonor);( Y. |& K8 `& b( v8 G
#endif // __HONORABLE_TITLE // ′Tà?0 I4 V" j3 r8 Z- P& d
}( V# M& R9 ~: b- @9 q8 f
#endif // __WORLDSERVER
' h1 ?# Z8 R3 B4 |* [6 O! D} $ B9 E ?& z! H/ P* J4 w6 ?" N
" @% v0 o# H! ?, J6 Z: i E然后你进入functextcmd.cpp并添加以下
0 g5 r* v8 W1 Q2 r/ J- B1 a4 `* d8 v& C, ]+ \% r
代码:
- Y, F* M/ i( y3 F- y; A0 a; Y- lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): A& c0 y' W9 H+ S# m8 `. i' }; A7 y
下面插入
+ v0 ^7 m, D A+ K* ^/ GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 p3 n( r$ W8 G2 J6 x+ N0 h
3 f. ~0 P1 I1 A6 d6 C) x# f$ z1 D$ ^然后你去5 C* ^" B0 J1 e% K4 u
2 m6 ]' e# e+ @ @ {5 Y
代码:
0 k f$ `4 W0 D4 D$ d+ y' p代码 x$ A! J! v: g2 i6 t) d0 H
BOOL TextCmd_ClearPropose( CScanner & s ); }2 z$ n4 k: O8 y% r/ A
{. C. [5 o2 C* `( u, P; U! D
#ifdef __WORLDSERVER/ ]3 D1 m# j$ d/ J8 e) v
CUser* pUser = (CUser*)s.dwValue;5 d+ a+ z6 W) J3 k) ^# ?8 U
g_dpDBClient.SendClearPropose();7 J. K1 Y# M, @, |
#endif // __WORLDSERVER
2 }' E; k6 r" g* F return TRUE;) S- ?+ G# C9 {- `- Z' f
}( r! b6 ^ k, h1 ^2 b: p
下面插入
g: d1 }) A, y( P; ]8 U: HBOOL TextCmd_rebirth( CScanner& scanner )2 s6 v8 J7 G( K! ]
{& q; b- f6 G* ?; y
#ifdef __WORLDSERVER
# Q2 P! b [) ]) GCUser *pUser;
& F1 ~% g4 h& q1 {3 D: J' LpUser = (CUser*)scanner.dwValue;
% m. f1 X4 [/ F% Uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( B4 H* h5 o) A$ O3 M# c' w0 U! @pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# H8 L( D6 ^# M- u* g$ O5 a3 J6 u8 relse( p5 w: p6 d, P+ Q8 X/ E& P3 `
pUser->AddText("你还未达到重生条件!"); K0 E6 b* N9 ~* A, w3 g0 b. W: N
#endif
; ~; ]; b4 {) q5 `return TRUE;
+ i) ?2 c) P- u8 Z' v6 w}
, o+ w8 j5 r$ u9 J" N& Q1 S- s: {* r* u" c' t+ O5 h+ t" c9 U. m0 x
! Z5 H7 `0 Q7 t+ r- y# h- o. F; H6 X$ ^+ O+ F
6 M3 k6 t! `# M X
|
|