|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* P8 v2 {% M' Y0 n
7 t, U; `7 ?* `* V; D3 eMover.h
/ j8 V* m; ^5 M/ g代码:
- z7 P- M- C7 A9 B" Q0 ]找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' o8 }; d5 t8 D
0 R7 I1 {! T. Z2 _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 w4 v8 U- ^0 }! j9 P. q8 ]$ a* z
然后你去mover.cpp添加
5 x) k5 e* S) y' a% u
, n- e3 }; b5 M: }1 W# q! g; ~代码:7 s/ U/ l( {( Q) A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- L1 G: y0 F; W' j- ~- [
{4 B2 t( w: Z& m! j, `
#ifdef __WORLDSERVER
5 P, h2 L2 }7 Y5 p2 U9 g; \8 Q# o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& g& z; G1 T; T/ [* E0 F* E j MoverProp* pProp = GetProp();
: o Z$ C4 r: v, S" l& M if( pProp )
3 f# Y. q! D6 L/ m {$ w) b: I: R7 g: ]' Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 d7 j" e1 L7 |3 \4 E: v {) y- o8 q4 k5 ]8 d4 R( v( P: f
AddChangeJob( nJob );
* q; @5 ~3 l- Z }else{9 I6 l& b- h" l$ r: R5 \7 U2 ]
return;) }6 t2 A! c; s+ l
}- }& X9 n0 ^+ o* I- B( h( ~
int nPoint = 0;; {- `1 Q7 ]9 Z5 Z T
if( m_nJob == JOB_MERCENARY )' z7 B: Z+ R/ Z4 D
nPoint += 40;/ q) S- @& y+ O! ^, b/ L* U' T
else if( m_nJob == JOB_ACROBAT )
) C7 i* v& L. r+ l0 {) T3 [: R nPoint += 50;
" `5 Q4 b/ N |5 x7 X9 A5 X else if( m_nJob == JOB_ASSIST )
; R1 y1 A; c. V3 _ H V: d nPoint += 60;# g( a1 U2 x1 w( r9 {8 P8 \
else if( m_nJob == JOB_MAGICIAN )
! y# D \+ }* Y/ ?9 l nPoint += 90;- E6 p. V6 i- z9 R% P
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ O7 N6 g- a% e' K' ] nPoint += 120;% s! w7 [% Q _% J! A0 A: U
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' c, i! y2 V) D. T& M
nPoint += 150;
- H) J5 g( K' \$ ?$ @ else if( m_nJob == JOB_RINGMASTER )7 F8 d) H! X, r" F2 |4 \' P# O+ t: L
nPoint += 160;& l. `% k3 O, ~5 |% Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )7 k" T9 r7 W! q
nPoint += 180;' j1 A, f4 H L( `5 y$ A- y1 j5 \
else if( m_nJob == JOB_ELEMENTOR )
3 O% d+ N- c8 B( N4 x. D nPoint += 390;; J% ]$ H% m, H# i9 }
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& e1 S( H7 f& C! @$ ~; z nPoint += 120;/ L+ b+ f# E. U! [# k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 p8 ?1 p- F, v) p0 v( L1 W, M nPoint += 150;
2 } r" d( Z! m# ^' k, F4 `) b+ C8 { else if( nJob == JOB_FLORIST_HERO )
2 m8 J. @; F8 y' T- H) ? nPoint += 160;
" G4 d$ q$ h# L. [$ k8 X else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). |" Q0 D& d6 N8 R1 b5 v. {% K- L
nPoint += 180;! A$ T" j( |' l$ c
else if( nJob == JOB_ELEMENTORLORD_HERO )
& w4 n& d; G y m nPoint += 390;
, j4 H$ t9 ^/ D& T4 i* q$ W$ ?* r" U6 b
AddSkillPoint( nPoint );& g) K u/ L+ G( F4 s
m_nLevel = nLevel;
6 W+ h7 ]( H: k7 `
. D2 ]2 I- q* y* t+ v SetJobLevel( nLevel, nJob );
, g! o$ G3 U' y. ^: N$ A m_nDeathLevel = nLevel;
) E' _2 i3 ]$ a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 i9 D2 \% l# P% U. d0 M8 g
if(IsMaster())9 K. O" {7 o, _) _! |: R
{' t/ r" r' j$ j/ |1 }) y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 k' I2 l: v7 M* t if( nLevel > 59 && nLevel < 72 )
" ?3 F. {, z+ a9 ^+ R3 H! a, y dwTmpSkLevel = 1;7 a) b5 l, d: B5 X. L4 ]
else if( nLevel > 71 && nLevel < 84 )
$ n. K7 o& z4 V! x dwTmpSkLevel = 2;( p. H( [' G( V; E- }. a- s* b
else if( nLevel > 83 && nLevel < 96 )
* k% k1 @; e- K" ~& x2 E6 K dwTmpSkLevel = 3;
& Y& t+ m* I9 Z6 |' D else if( nLevel > 95 && nLevel < 108 )
% z5 K1 _) N6 k3 `- U2 G dwTmpSkLevel = 4;
# t' D; f/ |# i else if( nLevel > 107 && nLevel < 120 )
; m2 \) T. d! i' b7 w$ E dwTmpSkLevel = 5;
5 t; A# _/ U; C for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 T. X0 t3 a" v5 K& l
{ ' Z M( T2 W9 y; y V' Z; p' T* v
LPSKILL lpSkill = &(m_aJobSkill);4 y* X$ B0 W- x: @' V# B
if( lpSkill && lpSkill->dwSkill != NULL_ID )& K8 P G" u2 h! H7 C
{
5 O3 y+ Q: F: U8 u# A" W0 t& ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! H4 @8 F/ F: i7 {1 s5 n
if( pSkillProp == NULL )9 ?" G$ Q* P: D( e
continue;
+ E1 C9 g6 [3 `" F* |6 ]) d2 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 k4 c: d! v) J& H6 C C- ?* M! I
continue;
. ] |, k2 N0 x9 x8 [ lpSkill->dwLevel = dwTmpSkLevel;/ z/ }, T+ Z% A
}+ _8 M- ]0 m4 ^7 N7 ?
}
: B" \) O% ]% H$ V( i- c% |9 v }) U4 C ^! ~) `$ G6 ]
else if(IsHero())
$ ?+ S( w9 a$ j: k$ G$ p4 [! S {# G q6 u' x' o8 _! |& n9 |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 ~9 a6 o _3 _# S- F
{
, v. i. n, h! N7 H& M' g! X. e LPSKILL lpSkill = &(m_aJobSkill);+ V" }, _" G; i8 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 L+ v- h0 P z4 Z) v+ B
{" L3 r# g' L" j; \3 B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) k# M" f* g- R& T; w& G! F if( pSkillProp == NULL )
2 n' o, V$ c7 ~% I0 a H continue;9 M5 X. o/ t( v5 F o# Z9 w5 _' | I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). U. _0 j! i: n2 N( ?* T
continue;3 \9 q/ n% g E1 w8 ]
lpSkill->dwLevel = 5;* A. |/ ~3 p8 Q) [* ?
}9 c) a6 c2 a8 p
}$ g; c6 V/ R1 c+ g7 O( c- z! K
}
+ ~, ~1 V6 H7 x* g# z7 _ else if(IsLegendHero())
: K" I9 Z6 l9 h0 z7 R {3 _' e* W( P- F# O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! U7 N6 U i+ S' }
{
8 Y( F: Y. Q$ Z, ] LPSKILL lpSkill = &(m_aJobSkill);
! a5 w- F& f$ i+ k9 o8 Y if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 P. d3 }! j5 Z2 U9 v; B {; L# f; T, @- ?8 ]; ]9 Y7 N% k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) k; g6 Q1 J' ~0 ]; `4 H5 {# T* [ if( pSkillProp == NULL )* @+ o2 w0 ]* g" ^/ O" l. B
continue;
$ ?& q) x' K9 x( i( [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" u! q9 h: y5 G( d1 r7 e continue;
9 L9 r! b5 c. S0 I lpSkill->dwLevel = 5;
$ J7 M5 |5 _$ R3 O- `2 D, l }
0 D% _* p% w$ G. w* M }# {2 C" R) `) } x4 [; E
}) \ V# H* x: s0 b0 x9 I0 P) v3 B; j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# y& d1 V, E, R% m7 v2 @' Q2 t
if( bGamma )8 [9 {( M- X$ V$ c* O
{7 f. N( x, m$ `8 y5 f' e
m_nExp1 = 0;
! X8 K7 q6 r, V% ]2 H- h. p1 D0 J( }0 P }% J9 t) P# V, c0 \1 p5 r6 c7 R
2 p! A( x1 p+ e$ ~# x; h ( (CUser*)this )->AddSetChangeJob( nJob );
6 C+ p1 q6 ~2 }+ e0 h/ F3 y' b2 T g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' x5 s* t: V/ w0 z
: H+ p7 M0 R% y/ \8 m5 R3 B( O! b* {. K, h: ?1 C
#if __VER >= 11 // __SYS_PLAYER_DATA
. L2 K2 }* a- l g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 r6 d- A! B( X r
#else // __SYS_PLAYER_DATA J j# I$ c3 J- {2 S0 [ S7 U
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, a2 J" F! K- j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 v Z$ ~' I- ~. t% m) x7 }" G
if( m_idGuild != 0 )! Y* V" j, l/ M& ^1 s' F R# H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( b" f4 K5 t! p$ j#endif // __SYS_PLAYER_DATA* Y8 I' l/ D. b1 P) M& E% S
SetHitPoint( GetMaxHitPoint() );
; n& m5 A- c5 b: `( j5 u! F: j: ] SetManaPoint( GetMaxManaPoint() );# [* H2 {: D# M; |" K
SetFatiguePoint( GetMaxFatiguePoint() );/ K( H& [) u! ?1 y' t+ t
if( nJob >= 1 && nJob <= 4 )
' t: n8 g d4 f" y) D2 P {$ G; m9 i6 Z( d8 y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
B7 g2 }2 J" P1 r: c7 a! Z, S m_nRemainGP = 28;
' |' P' s! q) G7 v }8 }- o9 d" F9 v" q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 B% F8 _0 H4 X# y- U! C {
: j. K, u' N$ E' I; ^* V: ] m_nRemainGP = 118;* |: w8 p! s7 F# H3 a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; B( r4 j d+ g& t m_nStr = m_nSta = m_nDex = m_nInt = 15;
( {3 F' i: q! {( l }1 W4 V. d9 _6 e# ^" N9 e. }
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 j# B3 S8 v5 a) G) Z7 L! ` {
% z- r5 E0 w0 q( \ CItemElem itemelem;
+ _7 N, ?1 I5 ~ itemelem.m_nItemNum = 1;+ j9 P2 H: L2 {7 p* V: k: k$ l3 q
itemelem.m_bCharged = TRUE;
) z) e; O" \: H, U& E1 J7 M3 V) } BYTE nID;5 f% s* ]. j z5 k
9 O2 h$ [$ q, }0 [1 t4 {6 Q
if( nJob == JOB_MENTALIST_HERO )
3 _1 p. X( \! m: \5 b) r itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- r; e4 _8 i/ `, v, S9 B if( nJob == JOB_FORCEMASTER_HERO )" t' `+ S7 B% B) R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 z' W2 w% f0 f6 W( Q# z, e* v4 N2 q8 V& P- ]5 a$ Q7 k
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! l8 o1 @' H3 e; \( r, X }$ t7 O2 X8 A1 a6 W
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 r( u0 ^& a" b4 p+ k2 g$ o+ n5 t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* J+ q+ R, b, X3 E0 q7 F" R ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 z/ a1 D! _* n! R /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- M5 L$ `. X1 } ( (CUser*)this )->AddTaskBar();*/6 q" c2 w+ L n, C9 [7 U) ]
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ E! L, B: d8 S8 E7 ?#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& P4 k |( |6 v# a! D, O ((CUser*)this)->CheckHonorStat();3 M3 v! K2 g7 \* z
((CUser*)this)->AddHonorListAck();
# n) R: t4 o7 p4 X6 S5 f8 J6 Z- P g_UserMng.AddHonorTitleChange( this, m_nHonor);
' ?% ^( K; x6 B#endif // __HONORABLE_TITLE // ′Tà?
9 @& C7 J3 Q9 J" ^( t }. M1 f' h% s e0 g* f/ O
#endif // __WORLDSERVER
" _2 q! V4 W& e1 ]4 c}
) l- T" ?0 C# A1 }; [
0 |8 | W9 y- ~' t" T然后你进入functextcmd.cpp并添加以下
$ h' }5 E. U5 H/ O
+ s( b5 U& {/ ?" Q/ _- J. B代码:
1 t' D9 J1 X1 }' ^ TON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& F/ H9 @6 A5 r下面插入
7 v6 t. N6 Y- X; B j+ S/ rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) # H& C0 X! ~7 x9 b: a# b- k) `
j3 `1 t; N6 L1 Q. E6 v然后你去
6 s, O1 T/ g+ u2 w( u) ]+ N; @8 Z& D! S
代码:& ^# f- r" X0 k, E y
代码9 P1 D2 u2 U1 Y
BOOL TextCmd_ClearPropose( CScanner & s )- E# _, h! z- t- J2 |, e
{
I& {6 }' Y0 V+ d, K, d% a#ifdef __WORLDSERVER$ ]) F- e% a N
CUser* pUser = (CUser*)s.dwValue;* R# w0 W# @2 F: }
g_dpDBClient.SendClearPropose();
% Z: J" N: D/ L#endif // __WORLDSERVER
j: @) ]& F' x1 J7 f2 J return TRUE;
o& M$ z, D/ Z3 j6 i}
! b U: @" q* X# q7 d) f下面插入. p1 i7 @$ Q+ o
BOOL TextCmd_rebirth( CScanner& scanner )
) s" f& d$ ^5 J2 I! q{
3 R: A5 J3 y) Q# p/ r1 u#ifdef __WORLDSERVER. ^1 l: a5 i6 }9 q C
CUser *pUser;5 h; u! b/ G+ I, Z) _$ \
pUser = (CUser*)scanner.dwValue;
1 |9 @$ c6 }5 X4 ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): h* f$ J6 c+ e0 @" M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ B: `& u: Y( K( |9 t# p2 nelse
6 f$ B- \/ \4 _9 B0 ipUser->AddText("你还未达到重生条件!");
, T/ o4 U% X- @5 @#endif
0 ~$ U" ]4 j# L1 m& z' u; freturn TRUE;
6 _/ D U1 m2 g6 P2 x} 9 G7 U" |7 y ^' a4 w
6 Q% I: D5 ?0 i* o/ B; y
$ m3 ~6 b* I+ T, X3 q. a5 W/ `; Q/ i! n# F5 e/ s0 n9 i
0 a8 g9 p4 h% ~$ P1 E5 h |
|