|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) `% g1 {* u' Y0 l7 v4 w
) Q; V# L2 e; q8 t4 u2 _Mover.h
+ k% C$ x$ [. w4 x代码:: l: g, j* T+ n, d! W" w0 S5 X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! d" {6 H7 W. @- `( ^1 A! B
# e; @3 f3 I$ j: D
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ c+ d6 b6 t4 h, O
* N- O; z2 \" b) F$ L然后你去mover.cpp添加/ o$ Y. r% n, `4 `
0 W' @ _# ^0 J( v& f9 P! h代码:
# |4 N# m" _/ {4 D nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 ^# ?8 x" N6 @9 g$ z{% e; Z7 }1 W1 g2 G: e; b2 G
#ifdef __WORLDSERVER. I) O' I9 \- H. y! c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 g0 ~. c9 w& ?. H; d' F3 [) [
MoverProp* pProp = GetProp();5 x# g% |9 l8 u" s. X2 Q9 I# g
if( pProp )
, o o8 ^, p5 t5 S$ z4 j% J {1 s, N7 M& O# z! ?4 [$ y- w1 q6 G
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, F# W/ A% u$ n; e {
' _, ^/ ?: T+ x AddChangeJob( nJob );+ T) Q4 K5 ?9 U! i
}else{/ l* V. i e" |* k8 J U9 S, Z- c; h
return;: B0 C4 U( r+ y
}" G! w h7 O1 s/ C5 b* S) \. v) M
int nPoint = 0;
' @" m; `* E# R if( m_nJob == JOB_MERCENARY ). n7 T% J$ D, I* h z( L: {
nPoint += 40;
; w' g8 o2 _" J2 n8 V5 h! s5 J h else if( m_nJob == JOB_ACROBAT )5 c& i* U, j9 P6 w0 u
nPoint += 50;0 }9 P/ c6 q2 j2 I
else if( m_nJob == JOB_ASSIST )
! C h) Q$ f( d2 L) y k' s( p nPoint += 60;0 R O6 z6 K3 K i+ Z% R
else if( m_nJob == JOB_MAGICIAN )+ y# r# t0 l8 ^2 h
nPoint += 90;& O, x, e) C$ T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- x8 B5 C+ D: p# w0 Q, |4 L4 K+ P nPoint += 120;, M2 S5 M* {8 d- q( e( F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 Q/ [ K) z8 R2 w& C
nPoint += 150;" D$ u! S) J9 `6 W$ X( J
else if( m_nJob == JOB_RINGMASTER )
1 Z) h) l9 P/ P6 P, U& E1 ~ nPoint += 160;
% |+ F8 v+ [5 w( ~& G7 c* A& A/ u else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% Z& M) f5 |0 z/ G nPoint += 180;. y* a3 b+ C' S3 Z
else if( m_nJob == JOB_ELEMENTOR )
# ^" J, f( b# M, w7 g" B nPoint += 390;
n& x4 G( r3 y& F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& b. [- j: C N2 o. [/ m nPoint += 120;- U& j- B1 O! f3 M# H
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% F& w! u; m, F6 I/ L3 U, z; r0 r nPoint += 150;" C6 H1 |& o! F5 S# [) [
else if( nJob == JOB_FLORIST_HERO ); y& ^. p7 J- L( K# ?
nPoint += 160;, n c) K; c4 v& Z }, B- n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& Z# R4 I! D2 d( B/ H
nPoint += 180;: ^+ M; V+ Y% G/ n- v/ _3 ^
else if( nJob == JOB_ELEMENTORLORD_HERO ): a. L3 D2 Y, _: w9 l# g3 b9 S# [
nPoint += 390;! K1 j: _6 m' l- @
7 ]+ p0 q; M- f3 h; y3 f$ q) @6 u AddSkillPoint( nPoint );0 D' O7 b! G% _+ s3 R+ Y
m_nLevel = nLevel;$ q, {7 E1 n( F, ]: W, W
. x- S" B4 e7 i/ l/ M9 n$ \ SetJobLevel( nLevel, nJob );- ?% Y" P2 B1 |3 v8 z5 g. g3 n
m_nDeathLevel = nLevel;0 A4 }: P( V" k7 u
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 ~2 V, i0 T# c2 P& x
if(IsMaster())
" v6 U9 X/ f# P {
" w! |, D- I4 B2 ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 g0 Q! f/ o. V n, j: F if( nLevel > 59 && nLevel < 72 )
3 m! y6 H/ }7 B0 D; C4 U6 B dwTmpSkLevel = 1;7 v2 C/ E* r$ W9 S* t0 w+ U) X
else if( nLevel > 71 && nLevel < 84 )
) U, J" ^+ Z( ]& u& |9 W: u3 d dwTmpSkLevel = 2;7 P; ]7 U8 \9 j* Z0 l. Q
else if( nLevel > 83 && nLevel < 96 )
" w: ~3 j( t Z. Q dwTmpSkLevel = 3;8 t/ R- C. v* j4 R
else if( nLevel > 95 && nLevel < 108 )
1 h( X0 X! D& j' p# \ dwTmpSkLevel = 4;+ B4 k/ E& U2 U7 L* q
else if( nLevel > 107 && nLevel < 120 )4 G- H4 n+ I( f" P. m% s
dwTmpSkLevel = 5;
3 m G" Y3 X% t, M# w0 p+ V/ s for( int i = 0; i < MAX_SKILL_JOB; i++ ) + V4 X$ L# g% O
{
; P6 c( r) Q, j s' ]2 V6 D LPSKILL lpSkill = &(m_aJobSkill);4 W" |/ o8 `5 z6 z3 U' I
if( lpSkill && lpSkill->dwSkill != NULL_ID )' }0 ^9 s( E L) d
{5 G4 E$ H. ~6 O6 ]6 r! e% e. J8 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 y4 @. o0 w) f! Q
if( pSkillProp == NULL )1 c8 `2 e1 b4 P7 z$ H
continue;
- t; h9 z! V( Z8 F7 T4 ^/ E3 X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 h2 g4 h* ~9 G4 p: m; E0 g continue;
. H& q: N9 L ]$ C" f lpSkill->dwLevel = dwTmpSkLevel;
$ h: w& C) z8 V; o# f% M }
# U% }7 P$ m+ C }2 g, j6 Q- y! x
}
' u: C4 A0 ]2 ` else if(IsHero())8 b1 L) T3 a7 X( u+ K6 a! N; s
{+ S# p: y/ t+ C3 }# _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! _2 k. Y7 r0 ^# i$ S {
" ^# w. E$ B( t; D) P' e8 o LPSKILL lpSkill = &(m_aJobSkill);
. Z# S1 M% Z9 ^, b' Q) G, y* q if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 e5 i4 M# S3 R2 \* b' l7 B {# J- b9 I O6 E9 I- Q! Z6 U( @$ z& l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 n7 k6 n2 Z3 W3 R- b% x
if( pSkillProp == NULL )% r# k, N9 V4 m
continue;
: J2 ]! b/ `! `+ D( ]- o7 o6 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 \6 \# n& Q+ C. S- f3 q continue;
3 Y8 P' e% E5 k7 Y0 e7 s lpSkill->dwLevel = 5;7 { U* R# U9 F! j+ V* p- u
}* ]$ H/ X2 Y& b& x6 q0 X
}
! Q% V6 j0 S# ]% V. P8 k }
2 D$ i; w/ H0 O# @: o- R else if(IsLegendHero())
1 y+ f6 m/ ~& J% P' B X' T {
: z/ `; {* G+ l; q- r5 n for( int i = 0; i < MAX_SKILL_JOB; i++ ) & R9 m1 d, l! U. Y( Z1 ~
{ 6 v8 ?- l/ `# D" a. }2 t; L
LPSKILL lpSkill = &(m_aJobSkill);
: w) G. d. A: G+ p" Z) R* l if( lpSkill && lpSkill->dwSkill != NULL_ID )( a% P5 D# l. b: h% c% z! {
{& q/ z. c( K6 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) h5 V# r9 r* N( d' n F
if( pSkillProp == NULL )8 Z) E' X# M2 U7 a6 ?8 T& w
continue;$ k, }9 O) _0 X% [8 t6 X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. L2 [ [5 \4 x continue;: H$ }# R4 [& R, J. j
lpSkill->dwLevel = 5;
5 W8 K: R% n! Y) I1 G, n* V$ h }
- n m j2 S, F2 x }# `2 b# K; g; {$ R
}* I8 e/ h2 W/ ~1 C
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& ^0 Z3 N7 ?( s3 p/ Y if( bGamma )
0 v: ~ w' d$ ^& l3 g: ^9 l2 O {
) d6 s* n0 k2 G: ^2 z7 ?! L7 x m_nExp1 = 0;; S: j7 b3 a* y( X0 s( W6 w& @6 {/ a
}: u8 B4 D' r* t7 l( u6 @
7 \: S7 j- [* a# q3 {$ t5 j
( (CUser*)this )->AddSetChangeJob( nJob );9 K& M& I7 K$ a1 H; {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: ~ S2 Z: p, T" u2 b! ]$ |( D
% E X! e# `" S& T, o; N+ V3 r3 e7 q' A$ |! \! E9 e4 |9 V. D: L& y1 l" z
#if __VER >= 11 // __SYS_PLAYER_DATA; c9 y5 a3 l% h+ {# |& u
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. O, K) o( S( m Z
#else // __SYS_PLAYER_DATA$ m& |, [; a a' l* K, @
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 ^- w5 A9 Q; N: ]# n" z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% V4 j7 e" N/ L8 c if( m_idGuild != 0 )
5 m( M0 Y2 Q9 k+ B% k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& m& q2 k4 `! b7 w w1 B; c#endif // __SYS_PLAYER_DATA) o3 ]1 E5 x! K) Z/ I- [
SetHitPoint( GetMaxHitPoint() );$ `7 b5 r0 r- r3 Q9 L+ [# p
SetManaPoint( GetMaxManaPoint() );/ Z* L! K$ i A Z, P
SetFatiguePoint( GetMaxFatiguePoint() );' J8 l4 |3 D; w4 l( p
if( nJob >= 1 && nJob <= 4 )
" C! d2 R3 m1 u! z/ C4 p0 D {, k: i" T, D) L
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 R; V5 g8 Z+ A1 i
m_nRemainGP = 28;
7 J4 r* I2 L6 Q }
D. T# q1 o. f if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! @# M+ |" `* f, D. R! o {- N( w# R6 Z% g, Y7 R
m_nRemainGP = 118;6 c* t& p3 g: R. d
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; i" b' C# j: h6 i% \- ^3 q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, s# c4 Z5 X u [$ _ }
5 S& k2 q$ p, e- Z. l if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! v: q- o- i* x {
2 ^3 @8 f- ]& f/ Q ~ CItemElem itemelem;% o3 M" _7 w8 K1 J1 z' B$ @
itemelem.m_nItemNum = 1;
2 n8 \$ l2 g% `5 h itemelem.m_bCharged = TRUE;( f# l$ _3 M/ s) [6 f
BYTE nID;! }2 [' {7 h7 Q S; o6 K
, l' \8 W+ D" M; G- X5 k/ `! Z" j
if( nJob == JOB_MENTALIST_HERO )) Y9 V0 R& l& E4 R9 y" X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; h. b: p) I/ N/ g$ |
if( nJob == JOB_FORCEMASTER_HERO )8 b3 G8 j' P! b3 i# b/ q4 Y& P' e* E
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) J& r" j0 k7 n j @$ e3 L' D) i+ ^
+ }! U& ]2 [9 x& G; W: h ( ( CUser*)this)->CreateItem( &itemelem, &nID ); M( S U, G+ A8 D
}
/ R" L. m5 X7 d0 v" ?: M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! p1 v9 t2 [- t' F8 @5 K& Z" `
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: |* m# O( C- g* z: z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; E: r- T& R+ o1 J: r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% x% x3 g- {0 _1 x# m, \2 l$ u0 w* @
( (CUser*)this )->AddTaskBar();*/
7 ~0 i' C) L+ b- H ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ m, O9 d3 ^& @# O
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 H9 Q: s# V$ X! }9 A
((CUser*)this)->CheckHonorStat();
) b% R$ C- P( A ((CUser*)this)->AddHonorListAck();( N7 `! N$ y* z# Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);" G ~& T7 p0 y" C4 _6 x. b# [
#endif // __HONORABLE_TITLE // ′Tà?3 ~/ N. v% S2 D: e( [2 I. m1 D
}' ~8 w, V k% V' q0 L; f; I
#endif // __WORLDSERVER
: R% `, z; a7 V% i8 c4 A a}
5 Q, }1 s7 V9 H) t" U2 K( j1 J0 Y) ^0 o3 H4 D1 c. P7 n: ^) k/ T4 R
然后你进入functextcmd.cpp并添加以下- e, t O2 [+ {5 w7 |
6 b3 K" [8 A1 X' @" I代码:5 V+ H" V% d4 w4 I( Q" k
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" N) L1 O# t+ F; y9 l
下面插入
8 t6 e" I8 s! w' z) X: `4 zON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% G+ H% R J) \: Z m3 u4 V& H6 i+ _# j) e" z: V1 c* V) c, P
然后你去
( ]% u. o R4 M& F9 `9 o1 g
+ H1 k& B* q. t4 ?9 v" G代码:
9 `( R; p% [( C: q代码
" ?1 }/ y9 q0 g7 ~9 p: yBOOL TextCmd_ClearPropose( CScanner & s )
( B9 l: `: Y8 L4 J: U |4 {{
% h/ b4 |) f4 u# N" r% |. U#ifdef __WORLDSERVER0 [# J1 O6 i- l8 T
CUser* pUser = (CUser*)s.dwValue;
, F; ^* @8 s- x, K! W! T- V2 u+ d g_dpDBClient.SendClearPropose();
- B" w2 {' B( |. ]#endif // __WORLDSERVER( ?; @, `: A6 [ o+ j; ?1 I& f6 B
return TRUE;% R% I& d0 X. u4 F; L; | X0 v
}$ l! g' m2 @( C8 C% }5 s; _& n5 f% g
下面插入1 S0 v$ t' Q+ w3 x0 Y
BOOL TextCmd_rebirth( CScanner& scanner )
; G* a- \* c. A0 a{- a. o3 }8 Y4 n \
#ifdef __WORLDSERVER- ]' a, U' o+ E4 i
CUser *pUser;. S* J) U# H1 c
pUser = (CUser*)scanner.dwValue;$ v/ I" Y% q" U% @4 }. q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 Y6 {" I- B+ s1 k0 o" x, JpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# g, i6 a- Q# v1 felse
1 B% k( l3 k' V* T1 kpUser->AddText("你还未达到重生条件!");! R% \+ c( }; F8 Q
#endif
/ B1 z, V" w. N. U3 Mreturn TRUE;0 G+ U' b7 w- x0 h; |
} ' C, c7 j& P: G
4 O. P/ L4 n4 o6 i
( ?' ~ v2 y* ?9 v. W
; {$ X% @% W! ?
+ A$ y8 X! ]9 E& a0 [ |
|