|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ \8 |$ U2 h1 R
9 Z5 a$ G1 b+ \6 P/ x
Mover.h
/ T9 W9 v: Z, O; }" z) }% m代码:7 J _8 B) }4 G; j# h* S
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ E' n, Y# s8 T
* D% F0 P, W9 R& N1 b6 E4 Q# d下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' a3 D3 U M5 v- {
! O0 o* F2 N7 w: k" ^/ |然后你去mover.cpp添加. `% u, @. a8 S
4 M; S/ O% ?/ P4 n0 i$ s
代码:
5 H5 r3 k9 G# B$ ]7 d4 S% v2 `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; K1 t, M7 t8 e9 l; A{; P! M; r5 z! e' Y
#ifdef __WORLDSERVER
/ }) I/ r- U* c6 F) o2 S, H // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: j& [, J* ~6 G/ U3 j3 ^! _6 l
MoverProp* pProp = GetProp();! S+ r, q; O& F; v4 b' z
if( pProp )
1 E4 _0 u" c* ]. h {
7 k v/ \9 s! V a- B5 k6 D if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 h, U( k$ h' Y* `5 q
{9 n0 T" d9 |. A7 b0 H% J0 C) ]
AddChangeJob( nJob );* {- D8 f( i/ c2 R
}else{0 c1 P" x0 P. T; g1 ~4 r E
return;
) P6 D5 X7 I. D9 ~: x1 h& N2 ~( F2 J5 J }2 e: C5 S) L! J* X% B. x* t+ O8 a' |
int nPoint = 0;* f6 V/ X6 v! x: @% V
if( m_nJob == JOB_MERCENARY )
5 D) R9 i9 o5 T nPoint += 40;
; g) R. h) B/ p. q0 K else if( m_nJob == JOB_ACROBAT )) W; P4 O( j2 X+ T: b# Z
nPoint += 50;/ P. x! N% j/ c" y# u- t, w) E
else if( m_nJob == JOB_ASSIST )
* V4 T3 N9 _8 s7 _/ P* l# M1 S nPoint += 60;, V5 _1 A& w* M! n5 ?
else if( m_nJob == JOB_MAGICIAN )
& c9 c6 G5 k& y. Y4 @+ B nPoint += 90;
' }4 @; |. u3 s9 M else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- c: J: I, s# K6 h. j nPoint += 120;
0 G5 \1 \' l# Z; |1 E/ U* e# Y- F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! S2 t4 A" x. v
nPoint += 150;# B8 @, I( f# w2 [4 U1 g
else if( m_nJob == JOB_RINGMASTER )4 K3 o z, J# t8 e. i
nPoint += 160;% ?$ d7 P/ `1 F! T! [2 c) d3 J
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 S9 p& A# M# ? nPoint += 180;
" t3 y! H0 C6 `1 P else if( m_nJob == JOB_ELEMENTOR ). @; C' t6 Q/ M! F
nPoint += 390;
4 l& y8 l w2 U& P+ B else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* l0 g+ I! u% R0 O
nPoint += 120;) c8 i4 c( u$ p" W; I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 K! J& N3 X6 v+ @ Y0 F nPoint += 150;4 |# t& z; @" c
else if( nJob == JOB_FLORIST_HERO )8 |! S+ p# z& {; X) E
nPoint += 160;
: o( ~% W, e# C. c* W else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 s4 ^9 _' L$ h
nPoint += 180;
5 |- e9 X( [% o3 Q% V% X7 s else if( nJob == JOB_ELEMENTORLORD_HERO )5 f7 i( @: ?& g% e$ q. |) H
nPoint += 390;1 Q9 v! \/ n+ N! t
# X3 G4 l6 L! p) t; o1 X' l AddSkillPoint( nPoint );+ F ~6 V% b6 u4 w6 \
m_nLevel = nLevel;( ?) X8 k5 h8 B, n7 ~
2 [, t6 f6 g3 T6 E( e! l, B SetJobLevel( nLevel, nJob );
7 U* g) B1 F; a( @+ a3 t m_nDeathLevel = nLevel; E. g8 {: k+ m l; u" O+ l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
?& @; M$ B0 w if(IsMaster())% ] ~( P' j1 i, ?
{
3 D4 m0 s+ r1 F, P0 u/ i int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* d& L8 c. [7 r: L, {4 J8 h if( nLevel > 59 && nLevel < 72 )
5 H4 |; Y9 ^) V- ^; g* R( Y+ o dwTmpSkLevel = 1;
) v% r, I3 m z% A7 ?( i+ X/ U else if( nLevel > 71 && nLevel < 84 )
7 e. M' \ Z6 Z8 v7 ^$ `; A* n dwTmpSkLevel = 2;
2 {# y. \/ J& I8 | J else if( nLevel > 83 && nLevel < 96 )
9 \+ D# c% @: c& b1 g dwTmpSkLevel = 3;" J# V) h* Y: k; @% }. [
else if( nLevel > 95 && nLevel < 108 )
8 x5 s T p7 @+ p% N dwTmpSkLevel = 4;# c* c" g5 M8 z
else if( nLevel > 107 && nLevel < 120 )
/ ?0 { d# k! j2 e' |7 D dwTmpSkLevel = 5;. w( c* W5 O9 d; w7 y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 ]) r7 O1 \0 y( ~
{
; n" M% G, P" a m i$ j* x+ c' j LPSKILL lpSkill = &(m_aJobSkill);
) E; ? \. l" b2 z if( lpSkill && lpSkill->dwSkill != NULL_ID )8 V6 M2 B) Q4 w O
{
# L. I# j% f* i7 _. h5 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- r# x2 c1 S; @' v y+ K( x if( pSkillProp == NULL )
2 E1 E3 L. _$ M' K( o$ a continue;% _" u( m! r Z3 ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* G4 b3 [4 B* |. b
continue;0 }' @ n3 R7 S! j: z7 ~9 `
lpSkill->dwLevel = dwTmpSkLevel;/ ^- [4 [: _0 ], O( C
}
8 B) _4 a3 i* f9 r* Z# X/ o }
6 R7 p; Z# c. U. ^# L( p2 N }
1 i1 V# C8 _, U8 F, v$ [0 }6 e else if(IsHero())
' E: V% B% R5 c- [2 _+ H' P {
) O& V3 b. \! }' u$ [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 A. D! ~; ^5 B9 X, U
{
4 G' p+ ^% t, l: e LPSKILL lpSkill = &(m_aJobSkill);( h! {) a- x+ c2 D* a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. e+ a$ g3 W m4 u- ` {
0 W: l! D% T+ a L; Y. f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - D/ D3 V4 ]) d) W8 H8 v9 h
if( pSkillProp == NULL )
( b. C3 D2 ~& L r2 @ continue;5 h, e+ i0 y9 R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 q( G5 r9 T# e% V8 Z
continue;
" g4 n- p, ^ p b. h4 } lpSkill->dwLevel = 5;
0 g( S# G# c7 |' ]! C }
9 b* ] X6 R8 O) F. K3 v) y' K* F* N }; {3 A% f6 }% r: |
}
* a3 `; f7 ]# ~, u else if(IsLegendHero())# C G3 m- I0 @
{+ S9 s9 S. Z/ |$ a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 _7 x8 n* R! D. [, r2 O/ C1 L$ `
{
. O+ |. O/ T2 c" {# ^: f LPSKILL lpSkill = &(m_aJobSkill);2 }- E2 v, T/ ?9 S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 Z7 W& `1 u% n* S) ~ {
* C9 U: a( n! C5 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 T% W+ \( N+ C7 b if( pSkillProp == NULL )
8 q A O4 B' X; L- [/ I) K continue;
+ j6 F$ A2 ^# i* N' {: j4 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER); N( A0 H; W" s2 n/ p% L9 U
continue;
: K) [3 I3 f4 v0 N6 B* Y6 y lpSkill->dwLevel = 5;
- A( R% H* v; V8 a/ s% ]8 `: Y }4 y2 ^; n4 H' W9 u; g
}
8 K. `" j" W4 X }
3 ?( A! w6 k T+ [3 E" A3 L+ \; g" k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' w p `8 u$ h: d! p if( bGamma )$ W3 m) U$ R% p0 l+ I$ L+ S' @. C. J
{: R( a7 s* v R7 f* `- I
m_nExp1 = 0;8 R' F! B5 D: z# _0 Z
}
0 ~* M3 ~$ K, z8 N
- y3 i( A& E7 D8 Q& K0 d$ o ( (CUser*)this )->AddSetChangeJob( nJob );
2 n+ [" A0 B) `2 o g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* m: b; g. V1 s8 j( Z! G8 K# ]9 L" j) S; k W
8 e- J7 C0 [7 Z+ C4 ~' [#if __VER >= 11 // __SYS_PLAYER_DATA
) e6 v) C. h6 o4 [3 n g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 g: V) y! S3 Z
#else // __SYS_PLAYER_DATA
- R* ^8 l$ Z% o( M1 L$ s" P g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 s2 G! f6 E! z% \- L+ N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 R6 L) U; L0 N# }9 y& T
if( m_idGuild != 0 )
! g; `( Q: _% s g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 R* Y, g+ Q0 d
#endif // __SYS_PLAYER_DATA
/ w1 Q+ n8 }! `' r: ] SetHitPoint( GetMaxHitPoint() );0 ?" |2 B# z9 @1 p( C- f
SetManaPoint( GetMaxManaPoint() );& N- [' N% {6 ~3 a
SetFatiguePoint( GetMaxFatiguePoint() );; f* s6 T6 M: t9 Z
if( nJob >= 1 && nJob <= 4 )
/ N( j5 a1 Y5 h2 H$ w0 A7 Q {8 F( U9 h( L6 m( z
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 B- Q# k0 C) f. A( {
m_nRemainGP = 28;+ i, I/ K S3 @1 h+ U6 h* o
}* c) l `7 h: D h
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' @. U; E: o. I {; J3 @( |+ U, q5 ?" R
m_nRemainGP = 118;
% ]; V% g4 O7 j) X8 c4 s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) v7 \5 m; V- G! ?5 D m_nStr = m_nSta = m_nDex = m_nInt = 15;* V5 _& H/ }& G) F( J- G
}
8 a+ o* i8 O5 ^3 ? if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ C7 T- R0 q. ?
{
2 k2 g4 Y: X. \1 M! b1 b CItemElem itemelem;2 Y0 V- F2 v- q( x" T8 f; ^
itemelem.m_nItemNum = 1;& j$ @& c! L" @0 [2 W6 ^* V* K* D
itemelem.m_bCharged = TRUE;2 r" A* e- M O* h' N
BYTE nID;; \) Y( Y/ a1 U( q- z+ V0 X8 L
0 T. G% @7 g" f6 @5 B1 O
if( nJob == JOB_MENTALIST_HERO )
* H- @4 W- w) N9 z/ y, L& a j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, C* Q b! d: J* d4 G! `2 a. X( P
if( nJob == JOB_FORCEMASTER_HERO )
. @# c4 b# _5 w, y1 C& E( ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- H! n0 X" N; E
7 A2 h: F! w3 ]% B( D ( ( CUser*)this)->CreateItem( &itemelem, &nID );+ x, N1 N9 S1 ^% w# s0 S# Q* W% k
}; e0 S* B2 p- ^8 ?# k; J: z% O
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. @1 i& b& I2 e
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* x# G+ v; d e ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* `9 k5 d& O* p/ P. H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 b3 r9 _2 r! @# b ( (CUser*)this )->AddTaskBar();*/% T7 i0 U1 [: `& W- v* d
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 c y& y1 x, e; \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) x: T/ K4 H: s) y
((CUser*)this)->CheckHonorStat();/ u! L3 P8 ], u5 a* Q- Q+ J
((CUser*)this)->AddHonorListAck();0 n$ I, `' ?2 ?" [9 w
g_UserMng.AddHonorTitleChange( this, m_nHonor);
k9 q# i, i% l' v6 }- p: P ?" C. D#endif // __HONORABLE_TITLE // ′Tà?
- S) y! O! h" c8 v* V( P* O5 X; W2 S; I }
) p. s! E( E& w2 f#endif // __WORLDSERVER
. U* K8 J; h: k- l}
5 | U/ _" {9 U9 _7 o
) q' d/ r3 H# B" [* y& F$ X然后你进入functextcmd.cpp并添加以下
, d% v3 J) q9 _, b! }: q6 x! U* K' s! m2 O; E" U
代码:
! A" E# e* U% ^8 g1 g' EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* y( P0 n& ~' i
下面插入- s% X. R" T1 k/ ?( x' ?
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , Y% m* c% {& l. ?
3 l0 M6 ^! k# R2 A
然后你去, L0 i, O% h! a. M9 K+ W
' Q" ?7 m8 _9 I- L& X
代码:0 Q7 U, c# @. x X: l7 i: p
代码. V; Z9 l5 [4 t3 K/ W4 j
BOOL TextCmd_ClearPropose( CScanner & s ): s) V2 \5 F- u
{
, _2 X. L: Q* V8 Q# [ M7 p#ifdef __WORLDSERVER
/ t% \9 `, y q. \, _. n CUser* pUser = (CUser*)s.dwValue;
& Z- `; B% a, E2 {& v! i \" n g_dpDBClient.SendClearPropose();4 d# r+ K, }! C9 o n( j: O. b7 C
#endif // __WORLDSERVER
6 v4 ] J/ P* k7 o return TRUE;, c& X% B8 o& a2 U; W; V& m
}
% N e" Z6 I4 [) ^) i6 l( D' ?下面插入
; h; e x; i; d0 o9 Z4 J& lBOOL TextCmd_rebirth( CScanner& scanner )
7 m) m3 n9 @1 g5 C8 h{9 p- d2 Q( w* H5 p" B! \/ M
#ifdef __WORLDSERVER/ ~7 D; U: R4 |+ e4 X! M
CUser *pUser;
. c7 E3 ]) K" D3 Q. w M, j% kpUser = (CUser*)scanner.dwValue;7 M# }3 V& m5 y8 e n1 L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& U* ` L* n3 ~, D3 N1 G4 T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 k z% s8 o' L- \2 aelse' a5 l3 L( D' i% y# \) K4 l" s
pUser->AddText("你还未达到重生条件!");* `7 c$ p# Y# n3 J/ B
#endif
- N( T6 N- z8 V6 G2 ]2 v( W1 ~# breturn TRUE;4 A, t; c+ V) Z* h# p
}
" e5 o# |+ m$ K( M& I2 f/ K, Z7 A6 E+ Y; S z
2 s" H' v" `2 L6 V7 {1 F
# g* N. y3 }+ E5 ]" ?* U: p8 M) q" D d% S) A$ H: _( K3 u
|
|