|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 A( o# U1 ]2 ?/ m9 M4 ~5 n) M
- p. o- U- w5 tMover.h9 R" p' x- O$ V1 c; S
代码:& ?6 t$ z1 k5 k& W
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ _; @* m- T+ c2 H+ B/ C8 J4 O# @ |" a* D( O; q; x+ Q* a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' \' ~! V: s2 ?- d3 T8 y1 I% d& H1 T* i5 ^8 G
然后你去mover.cpp添加
3 q% V S) ~5 d5 T. q# C5 }) ]+ P/ O' D, j6 o- v
代码:! `+ S8 V1 K# R+ M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 k0 |, D) u( G' Z{
$ X9 ^2 `: m5 b4 ?6 U$ x#ifdef __WORLDSERVER* D9 C0 b+ O( s& g4 w
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
]) V3 A( a2 ~( m' f MoverProp* pProp = GetProp();
# n/ ~) ?- a, O% L$ I if( pProp )
f, F% V9 j. t7 ?$ I+ i {! w' m9 e; V8 R; L" l
if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 z) N' I7 l' l% y' a3 `# a% h& ~
{9 [. h) D6 J1 w$ `! x
AddChangeJob( nJob );
8 n! c" X# F$ W# i }else{
1 z" V3 O5 {$ Z6 v' _& x& C return;
! P" ~3 a/ r/ k1 m }
! z" @. U4 y2 a! W4 m6 Y9 c int nPoint = 0;0 V$ l4 p( v* w+ t W6 O
if( m_nJob == JOB_MERCENARY )3 F% W2 o) R' I% J
nPoint += 40;1 r6 ]( f' k4 r
else if( m_nJob == JOB_ACROBAT )
: R( H+ x+ }; E- v) E8 l S nPoint += 50;/ @5 S7 W; X: I, F) a! b
else if( m_nJob == JOB_ASSIST )
! w( c, T! G. e nPoint += 60;
8 X3 j( `; t6 Y' T+ B6 D else if( m_nJob == JOB_MAGICIAN )
5 [& n; f0 S6 C1 [' z nPoint += 90;
: V' ^/ t$ M" [( D/ s; o+ D else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& J' d7 H+ y1 v" x
nPoint += 120;
. V0 j1 \' y1 g) p M, `% G, _/ D4 t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# M- L2 Z3 m5 d9 o' \
nPoint += 150;
2 z6 h7 u& S$ @; F1 B2 I# t g2 K# s else if( m_nJob == JOB_RINGMASTER )
4 N# A0 H# V! `) h; h7 V; _ nPoint += 160;
* E) n! X. s" u7 R3 o else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, o9 l9 r, ]: h/ x8 E1 x* {7 G nPoint += 180;
1 Y0 x K( i0 f7 _4 Z" j4 W else if( m_nJob == JOB_ELEMENTOR )) a% h) D% e5 o( R7 E' C! O
nPoint += 390;
R8 k2 H, Y$ R5 \4 J1 U else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& @4 v& J: Q: I% {7 d nPoint += 120;; `8 |. Y6 w5 n4 d" q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 }* ]7 u9 n5 Z' G
nPoint += 150;
# i( Q& ? b6 W8 ^7 u* X else if( nJob == JOB_FLORIST_HERO )0 k( n& N$ ?! R H" q
nPoint += 160;
6 I5 L6 [4 h, T7 D else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 _/ z5 X* D; ]! a2 s- ]5 o$ t nPoint += 180;: T& _; c% R8 n# L+ i V
else if( nJob == JOB_ELEMENTORLORD_HERO )
: s. Q- [. M& P( u9 n! \; { nPoint += 390;
8 [8 l9 @* x$ }3 K+ Q- l+ N0 s1 [6 U8 j& U; l
AddSkillPoint( nPoint );
& c3 J( o' R5 w/ i% r m_nLevel = nLevel;$ ?5 p+ v+ \6 ]8 f8 V0 t( y8 T6 f5 n
1 }7 {# `7 ]( ~ V. i8 s3 \ SetJobLevel( nLevel, nJob );( y6 c+ Y( f. H; O
m_nDeathLevel = nLevel;
+ ?% X: z9 y$ }. @4 i! q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" ^) J7 a* a2 K+ O7 [/ O if(IsMaster())
2 V/ [1 H% f* ~" E6 ] {) {& Z' z) K6 h; K3 ?. G3 _+ [/ i9 D
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& s, g8 l2 _0 X) d" H4 G, l" [3 b
if( nLevel > 59 && nLevel < 72 )
! ^& u" r$ k' b7 X5 q dwTmpSkLevel = 1;6 \) K) K4 j+ ~8 s
else if( nLevel > 71 && nLevel < 84 )) j y: X: \9 O* g) m. z$ o
dwTmpSkLevel = 2;
; ~5 P6 V$ |1 A6 E7 p4 w else if( nLevel > 83 && nLevel < 96 ). I" k! N o2 c
dwTmpSkLevel = 3;
; {; N# d @3 u7 u9 L else if( nLevel > 95 && nLevel < 108 )
( q9 j! M5 |3 m% R# v1 A8 S dwTmpSkLevel = 4;
7 V7 X n( |# V" f' e8 X I4 V else if( nLevel > 107 && nLevel < 120 )
S7 [5 L+ d5 }) B dwTmpSkLevel = 5;' x+ r- o3 H; x2 t' z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ r9 H- f t1 z6 r$ r* F7 n { 1 G. n- g4 B8 B7 L- A% B r; \$ S5 Z
LPSKILL lpSkill = &(m_aJobSkill);
: A# x; h- d8 B" V# q( \0 r" b if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ X# Q# K* z2 ^/ p- c6 _ {
9 \5 R+ N5 Q) n/ G, n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ {) Y. t3 L7 N. r; L9 ]
if( pSkillProp == NULL )
. w! s# \* _' j continue;
' g2 ^# f3 I3 `% n: u( O* d; n# b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. c1 Z# j& R: J7 V; k, \- X continue;
" K6 z. [3 z @/ I) K, r lpSkill->dwLevel = dwTmpSkLevel;8 p7 N# O; j$ {* L
}# O. K9 X/ E' ]. ~" v
}
/ H% L3 g: r ]: _ }
# }' l. H3 j u6 g5 q! X, g2 e else if(IsHero())
$ a% @1 y- Z1 m* } {
/ L( j4 X4 @. O3 P. V for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! l4 |) ]) i4 L L
{
7 T( d( ~$ M+ E& S& a LPSKILL lpSkill = &(m_aJobSkill);
# u! @& T5 L0 H1 i# W( \ @- d if( lpSkill && lpSkill->dwSkill != NULL_ID )
) i4 a: w+ ?9 O0 B9 ^ A! h {
: A0 R4 i6 ]+ z; o3 s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
K/ C+ }' n6 N" `9 m! t if( pSkillProp == NULL )
7 }0 B! T3 I$ Y continue;
2 ?3 e9 z9 H7 z, t1 P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
g4 W' W8 c% W1 U" n3 _! G o continue;' l) E5 \$ ~$ D+ k( k5 t
lpSkill->dwLevel = 5;
& [2 e0 u8 w6 b5 M }7 U8 z4 e! h& C7 `2 x! S6 W
}
$ M/ u' _! I' ^& ]: k; e }
9 B( p5 ?4 n2 w else if(IsLegendHero())
2 x: \/ V8 Y$ f6 r {
; e. J& {; @( q6 P6 b5 z for( int i = 0; i < MAX_SKILL_JOB; i++ )
* e5 f, g1 g5 b& Q { + L" w* w% T8 \7 C o
LPSKILL lpSkill = &(m_aJobSkill);
- K' X; q" p. X if( lpSkill && lpSkill->dwSkill != NULL_ID )0 i2 X& d2 }- C( _6 f
{
. o$ `, d$ O7 b4 ~" V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 }( t @9 ~ e4 f4 K
if( pSkillProp == NULL )
4 ]7 ], f6 ]% B' G' f continue;/ s& ~- p' e( d. h6 b; T* L# y# R0 y6 v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 r; D' @/ Q8 J! q- [1 I8 \: B3 x
continue;7 v \9 q# f8 u6 _( X: R
lpSkill->dwLevel = 5;
, |% q; [" q* w3 z) |& M/ I }2 P8 s+ `" W# ~
}
0 I& j' J1 }2 O( b* R$ c }& b% K6 {' Y- [: h' c
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 c8 b4 a: n/ i- _; y8 `0 {
if( bGamma )3 Q. J, V$ K5 l# y8 U
{! S) R2 n: z% h0 E8 m% {+ ~4 {
m_nExp1 = 0;3 e' i7 @1 a7 `- x, S. F7 e9 a
}
b$ E( N. w! X, d2 r p3 K2 ]4 _" J4 A) g
( (CUser*)this )->AddSetChangeJob( nJob );
7 [3 u) ^7 D, {; @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- i4 V, s, t% g: v' b+ }% P5 U% f1 j \- m! i0 H- |
0 K$ R$ U4 D1 r" U3 a* g% J#if __VER >= 11 // __SYS_PLAYER_DATA
) l" j5 P( `" B) Y% [: S+ e1 { g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; J3 v4 {# i: E/ n
#else // __SYS_PLAYER_DATA# \% Y7 j' V* D# }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 S5 h! F! _; k! V0 P5 i8 O& y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# f. m2 m X' b8 e6 R/ q, `
if( m_idGuild != 0 )
' u% n$ Q) x# [; U' |) d4 r g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: {& Y1 \3 m: m7 |" S- X#endif // __SYS_PLAYER_DATA0 j& T- _2 U3 C0 w( i/ j) C
SetHitPoint( GetMaxHitPoint() );
, ^4 z4 r7 V3 a SetManaPoint( GetMaxManaPoint() );) r- k8 L) _" C. c
SetFatiguePoint( GetMaxFatiguePoint() );" `6 ^$ P1 Y% I7 F5 f
if( nJob >= 1 && nJob <= 4 )
' V( H) C. Q0 |& D/ k, [& i" l8 l {
) T7 u; d" W8 D0 G4 I+ ^$ o m_nStr = m_nSta = m_nDex = m_nInt = 15;
! w% \! B( [9 a m_nRemainGP = 28;* H- P- z# \+ ~: b5 W1 r! J" ?# D
}
" ?" \7 N- Y, |- a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), }/ ]3 J/ N V
{) x* u; n8 @# E8 V4 S
m_nRemainGP = 118;4 ?* u9 E, w( q) x( F1 h/ ~' W! ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 i; A. i3 g' b" _: {. Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 }$ x7 C% \9 R, L }& N/ |6 O8 B% m% P7 Q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- N$ ^# _ O2 p. M
{
x- K. o2 I5 Q; b CItemElem itemelem;2 J9 b& V8 u8 [: [% J- m& F( u* c
itemelem.m_nItemNum = 1;
) U" i- t. r0 L- Y7 k& C* X) } itemelem.m_bCharged = TRUE;. }" Z; S: f8 y7 m# i# R: x; b, P
BYTE nID;
& g. I9 [# o( |( c; C0 k8 _ M! Z" m! t$ P4 k2 o
if( nJob == JOB_MENTALIST_HERO )
+ I! I; ?& z- r {( E itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! \1 k, F" Y9 a3 U8 M if( nJob == JOB_FORCEMASTER_HERO )
0 k) O8 g. T2 B7 I* b G3 O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ H8 W: ~( r) L5 p
' r3 z! _2 Y4 o C0 w4 u- r1 [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );" Q) m/ F& A2 n4 b- ]0 x
}
: B3 V" U" ?5 O9 z: O g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) M% I, _$ M5 `" r( \* ]. W$ j ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 w& _7 h& E2 a$ M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) Z; C( Q9 ^& b( H! r! P! }# Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 e6 B* g5 M ` ( (CUser*)this )->AddTaskBar();*/9 z8 {/ Y ~; ]9 }/ i
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 A& [& G* h9 v4 a2 X& }7 W
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ W) l9 N0 J" B! a ((CUser*)this)->CheckHonorStat();8 O' P7 Q9 C" T1 |9 d' r5 k. c' u
((CUser*)this)->AddHonorListAck();
, d# D( G7 _, A( D& T( p3 p2 Q g_UserMng.AddHonorTitleChange( this, m_nHonor);
- V% r6 m5 L& s; @: {5 a, K+ V#endif // __HONORABLE_TITLE // ′Tà?* T7 L9 }' N T, Y0 e5 ^
}
! @' T3 ~& q# \( L- p#endif // __WORLDSERVER6 |' ^: U. e7 }( m# R
}
. p5 D4 w) k. [; L4 }# Z& B6 h% ~( Y$ T* n a& k( s
然后你进入functextcmd.cpp并添加以下5 Y3 p+ ~: [0 x9 I5 I' w0 r" d" Z
. `8 Y9 s0 a7 A% r7 c代码:
$ C9 Z3 Q) ^5 o' cON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 V* ?7 a5 Z6 ]1 \2 B
下面插入
. H/ B$ d' `1 ^& G3 x, iON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 `# i2 K Z6 G9 e N* c1 v
6 Z7 _9 `7 {* U; M0 W4 p1 `1 |) ]然后你去
3 m- ?$ @6 \+ [9 X* m
; e5 j8 d* ]7 t9 K6 ]3 g代码:
: T. U* `- u8 d+ L! q3 [6 P7 D代码1 g& ^" H0 _* U4 k
BOOL TextCmd_ClearPropose( CScanner & s )6 M4 P2 u6 e4 H0 B
{4 p$ ^ M x; I
#ifdef __WORLDSERVER# Z4 c4 K. X# B# V
CUser* pUser = (CUser*)s.dwValue;0 ? w3 V# q% v$ {) j& y; u, k5 f1 @$ h
g_dpDBClient.SendClearPropose();
, U7 F X# e$ J#endif // __WORLDSERVER1 q s$ n# |! @
return TRUE;
6 m1 K" z, N1 u z6 B}
# T, w3 K ?2 r下面插入
' N0 L( _0 V. k0 q9 m' f" RBOOL TextCmd_rebirth( CScanner& scanner )
3 L3 U g% x' p9 L( H7 `{
& }, v- q. j" R" S#ifdef __WORLDSERVER4 J) u2 R" e& Y' o! ]' W
CUser *pUser;8 Z% l& A: P j# L" R
pUser = (CUser*)scanner.dwValue;
, P) i6 M3 _; ^* o$ c4 Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 t" V6 v7 M' M0 H* v& X* e( |
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. `8 y& u& r |' l$ G. @
else1 p5 A" b- z5 t( O; t2 q
pUser->AddText("你还未达到重生条件!");
+ N J6 z1 u: ?' H; U6 [" \! |#endif
. a% I* a. C- q" \) C+ g5 Vreturn TRUE;
4 N+ E' x" _2 E& b} - q |/ |; z& p8 n% o
: Z) k Q. U8 V/ }! b4 H0 s! m
7 G/ W5 G5 c& E3 D" ^0 A1 }* B3 h5 l% X' I+ A. u: U
, S% P/ v/ {( h, U$ w" r6 m- q |
|