|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ i; L3 a- B) J: t6 M! h* g& q0 Z( K$ D4 `# K7 `) Y1 M& Q
Mover.h6 G3 \" E7 [, {0 k6 ?- X
代码:
* K& H3 h) o/ R( i) a* Q( q- P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
`; Y( d2 Z M* D0 ]" P% \: ?% `, c2 p4 |5 s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 _4 T+ r8 j' i7 g+ z6 o: r
, A& V) K E7 i; u然后你去mover.cpp添加
$ M* N1 U' ]! G; P, K( {, R5 f( f; A+ V" X( `
代码:+ W- Y* } i- E$ G$ [
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 o! F0 E7 \; K. s; N) X" t
{7 {3 `# \9 f% c, K. ?
#ifdef __WORLDSERVER: U- k8 R/ ?! c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 m3 G0 Z* \% N MoverProp* pProp = GetProp();
/ @( h' S# r- G+ X/ H7 J% Z if( pProp )
) s6 q' g9 n! g& l {/ w) l9 j5 x" e8 l
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# `* F* x8 ^# E; \ {
2 S" V+ w7 A6 ^3 r$ g AddChangeJob( nJob );
- ]; [7 p; {% p% B* j }else{
6 [+ j; B$ F) G( H/ Y- ]0 F return;4 ]$ }1 ~2 X; |, n
} o" _" t7 a, s9 L
int nPoint = 0;
* k" ]0 C; n' J" k e& S4 U4 }! Y: J if( m_nJob == JOB_MERCENARY )2 S. Y1 ?5 S/ a. r+ \
nPoint += 40;
5 t# J) N4 @. U2 r8 @9 {& o6 W# o) a0 \ else if( m_nJob == JOB_ACROBAT )
+ l4 R. w3 m# k, T) ?0 | nPoint += 50;" ~# @6 p' N8 \# Y% d9 B+ O5 s
else if( m_nJob == JOB_ASSIST )
9 L! m3 y& T$ J nPoint += 60;# ^" y# A; e+ ^5 W& j) W7 s
else if( m_nJob == JOB_MAGICIAN )
8 O6 j; ^5 L; Y6 J2 ^; i nPoint += 90;$ b( x: h9 J7 G3 |4 K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, ~3 O( c3 v+ Z9 L+ P9 D nPoint += 120;7 h/ U6 F2 s8 C( \3 Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ D! Q9 V- d) ~4 e4 O: K
nPoint += 150; G! ?5 n: t1 R% {6 P' @
else if( m_nJob == JOB_RINGMASTER ), \ ^0 ^! \" U" c" S
nPoint += 160;. ]6 T" J$ L U9 \
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" b! M% d1 C. u r, K! @ nPoint += 180;
, \ l" n7 i4 b, x( d* F! m else if( m_nJob == JOB_ELEMENTOR )4 l8 c; y9 D& S- e
nPoint += 390;: d" H. l, o/ q, |) T2 ?2 _8 D& ]
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 u, e1 F3 E1 m' d5 [: i1 W
nPoint += 120;* a9 t; B5 W# m! `) O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ m* y, r7 f5 T" }7 | nPoint += 150;+ u' V2 r1 u/ e1 r" \4 J
else if( nJob == JOB_FLORIST_HERO )
+ I8 S4 z. G& w( N0 E# d5 R nPoint += 160;- P; L {. R4 @ }7 S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 Z: o/ T/ e5 \8 M }8 y nPoint += 180;- s K# I2 W- l; n) l4 o( }
else if( nJob == JOB_ELEMENTORLORD_HERO ); d4 n+ m% U# H& V( K
nPoint += 390;2 W5 G1 x4 W% e4 I
. x3 l" @8 H2 N5 L+ s
AddSkillPoint( nPoint );
j7 K& Q7 w O m_nLevel = nLevel;4 J. c1 {' T6 ]
; U7 P: B; i0 U4 Z a5 S, x
SetJobLevel( nLevel, nJob );5 w! X- n1 g8 z- L
m_nDeathLevel = nLevel;
8 W" H/ q2 z3 y' Q' C* Z; C& N#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; ^$ \) m& Q$ h; r+ p
if(IsMaster())4 B; O% C, m# E* z
{% c9 E8 r1 E5 F3 c, g- O9 N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ I! R. u }8 X& o2 i if( nLevel > 59 && nLevel < 72 )7 n' ]" p& E. J. I {! }9 g* h- P
dwTmpSkLevel = 1;% D' `9 U* M- h
else if( nLevel > 71 && nLevel < 84 )" S p q' |; j+ b1 O7 F7 M! y7 @
dwTmpSkLevel = 2;
$ l/ `: z) O* L! Y* K x8 [6 J& _ else if( nLevel > 83 && nLevel < 96 )4 v7 L' G0 s7 v; H0 l
dwTmpSkLevel = 3;
! ~- m, o4 p, g else if( nLevel > 95 && nLevel < 108 )
. v0 g% y- y9 f6 L, ] dwTmpSkLevel = 4;
6 t9 @2 i# |; a- b5 {( ]/ D6 B- } else if( nLevel > 107 && nLevel < 120 )
5 i0 ?0 Q* x! A: A" ~' g' B dwTmpSkLevel = 5;
$ f+ F o# _1 B6 ]3 X# |: O for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 o* C1 i! P Q' K# O& N- \
{
# F0 Z& C. O; c/ J5 A$ ^ LPSKILL lpSkill = &(m_aJobSkill);
! d, r v. q. ~" m" k1 L. A; ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 @& Q: g1 ^% V! @" L3 ?4 v. b+ f8 Q {( u& m- V# y* l6 i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, y* D- B- _; |5 \& m if( pSkillProp == NULL )* d% X: k" l. w* H2 S- v/ i5 j
continue;
4 a5 ], c/ Q; w1 M. \- B- V$ k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ |; U9 }: J8 Y
continue;. X+ w% T0 |. [! p% k, d8 ]9 K5 |
lpSkill->dwLevel = dwTmpSkLevel;
, u8 [* c' O- [" L. Q. g }
6 j7 n( y. X7 ?; j% H. A }
; s/ }7 n+ K8 ^) h: @5 F2 W }, o9 J0 l9 d& k& k& p
else if(IsHero())8 l: n" L" }; k
{
6 x! W9 O; |% Y$ s' @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) : s2 h) a8 m; M2 r7 J& G) o
{
7 R* v* a: A/ R! H, ] LPSKILL lpSkill = &(m_aJobSkill);* o/ w, Z( [/ M9 X0 g' R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ u2 E0 C" c8 t( j' l5 O9 h1 i {
% Z, X% `- z: |: M. _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 j1 @- U/ B. D2 L$ H3 O( k( p if( pSkillProp == NULL )
7 l# v+ `4 h! Q. Q+ t7 _ continue;/ |5 D0 c% z% _. n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 ]" T9 j* L! `0 y1 n7 z
continue;
* y- M$ l7 P7 L( `8 f! g lpSkill->dwLevel = 5;+ ~2 D, G9 n% d" f9 q; y' `( a
}
5 E. h! k8 A6 t- v& W }1 Y! s; o' ~ @; X0 {5 ]3 |3 V4 F$ s
}4 x R- i1 w- f9 r
else if(IsLegendHero())
! F# t8 g5 h s7 M; { { x# v: o; k$ w4 q4 ?& t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , Z. f( B$ G# x8 T
{
/ ? f3 U7 R( K* t4 A LPSKILL lpSkill = &(m_aJobSkill);7 m' a/ a" f% z( Z- r! j1 m
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ o& x( O3 S# B
{+ p" l, {; }+ q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + S" d# ~7 l/ O0 H9 S; m
if( pSkillProp == NULL )5 K: _# ^, t9 ?4 Z+ G! i; S" M
continue;
0 p. R4 H) \2 }* \7 a6 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 N! G$ q4 z4 A4 ?* r5 N! K
continue;
+ ~7 }+ E8 b0 Y, ?$ S/ V lpSkill->dwLevel = 5;
6 h& T* i! f F: o" v }
" z+ p$ ?) e% x9 H }
: U F* k) _3 A3 _$ z* p$ ^ }
% |; o! K# l# Y8 O; K( l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. R/ e+ J6 B3 s2 R* P
if( bGamma )
! {- y& p" J6 p3 A# q {
@$ _- J' B2 Y: R( g" } m_nExp1 = 0;% [! S0 X C a" B: m
}5 ^$ v. F% ?6 k* j: V& g
: o3 P7 r. ] {4 U, l: D9 ?
( (CUser*)this )->AddSetChangeJob( nJob );
, I5 Q! i7 q8 q: M. F/ E g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) T! O; | F& I, ?& o5 ` F$ C. `' U' o" O! o- _
- v- d& n1 a% @' B" |$ L" i
#if __VER >= 11 // __SYS_PLAYER_DATA( S4 p' ]$ w! h* ?* o2 f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% D8 u) Y1 g4 W" j#else // __SYS_PLAYER_DATA
3 G4 Q7 Y* v9 F# D$ f+ x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 t& g( c( @" x' J3 p7 v& o- G9 M g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ I" v# ?3 f1 Z9 p if( m_idGuild != 0 )3 j' l. p1 U4 |1 t& [6 z: L2 e2 v9 ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); z) {. B) m6 x* l
#endif // __SYS_PLAYER_DATA2 l) {' @6 p: \: s+ X
SetHitPoint( GetMaxHitPoint() );; k5 U) N5 A8 A$ {
SetManaPoint( GetMaxManaPoint() );9 ~5 a4 S* w L3 W3 Q. `' D
SetFatiguePoint( GetMaxFatiguePoint() );
+ ]7 x* b( `" R) j1 h6 r g1 v if( nJob >= 1 && nJob <= 4 )
+ Q. R3 U5 x l- z5 x {
, m8 K+ W6 @/ p9 `4 E m_nStr = m_nSta = m_nDex = m_nInt = 15;
. C. Z3 {% ]' ?/ a m_nRemainGP = 28;* o, Z. ?+ O8 J! z% g
}
7 y1 ~9 y/ H0 k4 i! d6 w6 }8 | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ l* E6 @, e8 _7 F
{0 L5 x: x4 s: ]2 T$ T
m_nRemainGP = 118;
, |& u ]2 ^. _9 R# w; q7 f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 x2 r0 S2 e8 ] m_nStr = m_nSta = m_nDex = m_nInt = 15;! s/ |0 o: A0 T6 F& v, Y x) i
}% {2 ?) y/ t7 J, e- W8 n" N4 t$ z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 R0 K. S8 i; h* @# t
{
2 O6 E5 D, U3 v2 W! Q: N D. ` CItemElem itemelem;
; v3 w& Q# l! C& B itemelem.m_nItemNum = 1;
5 S# j8 z& L0 h; q; o8 x( O itemelem.m_bCharged = TRUE;+ I. H% l' t/ D% Q8 H% \
BYTE nID;+ B y0 G, I- Y; {. y! |7 H
: [6 ], B, \; S; P, l; ] if( nJob == JOB_MENTALIST_HERO )
5 U/ d: ^7 H9 Z0 ~0 k+ c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 ~+ `0 p: w1 { n' s8 Q/ ^( L
if( nJob == JOB_FORCEMASTER_HERO )
! D/ A- M5 L2 o* Y3 S itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' W2 q7 }+ j' G
: P$ p' p7 R% m5 W' d8 M4 v8 O4 z/ e; y
( ( CUser*)this)->CreateItem( &itemelem, &nID ); J( k6 J1 {+ u
}
4 J0 g4 l; g8 n \2 D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ a. W V$ B/ g. B8 }0 b. g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 H% |% c) ]: t$ ]* D h# ^
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 o% H4 n- T2 e2 @ d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% w) f; H9 r" Y# [4 x# F0 L- e
( (CUser*)this )->AddTaskBar();*/# N: n" x! O' X* y2 X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: S4 Y5 e' p. g#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- n" Z0 { e( @ ((CUser*)this)->CheckHonorStat();$ F. ~& g f% C, k' c
((CUser*)this)->AddHonorListAck(); M9 R( V* t5 i1 S4 g
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 S" ]# B! _. C
#endif // __HONORABLE_TITLE // ′Tà?( r9 ~, [' l: Y
}
7 y6 ^1 I7 m( D$ u: N#endif // __WORLDSERVER
0 {7 G' I, f$ c& G; s+ _} & K$ `5 K/ z$ d. g+ s
# B# l- [6 J& F. H4 ^7 G
然后你进入functextcmd.cpp并添加以下
1 z- {7 g; K4 J+ v9 ]
4 E. ^6 [; v, _0 m4 I# I. t3 w代码:7 ?5 R8 G8 q4 F% C2 {2 q z9 t T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ z& U/ w- b% S- g$ g4 L下面插入& v7 z7 ?6 f5 d' d6 }1 [7 d0 ^
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" U& `7 A6 j# @0 R8 |9 [4 L% N4 i( Q7 |" k' H' }' `4 M
然后你去3 M9 a% |3 I8 j
: m& A: f r: N9 z7 p, G( K
代码:8 V8 M/ R2 ]2 {
代码 K0 _' s: ]4 q8 w; j
BOOL TextCmd_ClearPropose( CScanner & s )
/ C- m6 a' ?# `" W) z{
; l' w* ^9 b( o! M2 w#ifdef __WORLDSERVER
2 o5 a/ n( W" K9 T4 E CUser* pUser = (CUser*)s.dwValue;
2 \, l. N7 A& }0 V& E6 [; U g_dpDBClient.SendClearPropose();6 u1 ~' n8 x; w3 H: V( @
#endif // __WORLDSERVER. q3 h, h- j3 _" J, M) a
return TRUE;
# y2 a& h/ J& F" U}
% Y$ |3 E* P: D, x$ y2 {下面插入' {+ d* R( A4 U: p
BOOL TextCmd_rebirth( CScanner& scanner )
' y& W9 O9 |, Y! V1 i+ ~6 O( K{, w4 \/ p L/ Z; A. l! K
#ifdef __WORLDSERVER
: v% Q, S- E& g; T# b4 h# _3 R! hCUser *pUser;
/ Z6 o8 X9 {' i; K9 R+ V8 xpUser = (CUser*)scanner.dwValue;: x$ i2 n' Q% t; D9 C8 k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' l) d% w4 }9 S/ HpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ R2 |* g$ [7 p. \! I7 s; ]else9 v( D( r$ k( \% n$ L3 ]* t; D8 |8 y
pUser->AddText("你还未达到重生条件!");
1 ]6 ~- \# U6 b e0 w% g0 P#endif
7 _/ W, L! Q- K( oreturn TRUE;/ L8 Z* U6 @! O. C
} 0 \" X+ r" g/ v" D/ }
/ {8 l4 k( _% ~$ v8 J" x8 z* r5 f6 q1 [( h
- S. b/ M2 ?% c3 {+ w. Q. D! A. S q, `( g3 A5 S0 P n
|
|