|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ ~, R/ o: v4 |4 V
1 r3 r# i( k( m8 g( ?3 IMover.h. S1 W9 s& g; P5 b) [0 d! j
代码:
4 z2 f* |2 {& U2 u4 k找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( R( ?6 `3 f3 f0 F6 X: Z
- B( c% X% q; e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * @% ]9 n0 |% ~& G/ k! |
, `4 J- G: C8 O9 M3 `/ B4 I$ H然后你去mover.cpp添加7 Z D: R" Z3 E, F4 d
% Z, B& x9 ?9 R( i& _代码:2 o% o$ W7 A3 m% t% ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) c" T" i& o2 u2 `# W
{
9 P! ?% O: m/ I#ifdef __WORLDSERVER7 @$ Q7 W w- Q8 |2 {0 H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 U% z( e5 k- Y2 a. Z J MoverProp* pProp = GetProp();
" L# [2 e# r2 b; t9 b* T. o if( pProp )2 o L; c v+ W! d& Z9 s& F( L
{2 T! t$ r8 T Q' T+ I; I0 z
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), v r9 n; d1 \# c7 i
{
1 g0 K7 c% i m: u. K AddChangeJob( nJob );
+ K" k5 i( d6 ]& t7 i }else{# g' w+ ~5 G* z" T
return;* R, [4 D/ l4 i2 t. i5 o- `, \
}
$ e6 v+ g+ h' P) z% D4 u5 { int nPoint = 0;8 Q3 W( t, C' \8 E
if( m_nJob == JOB_MERCENARY )
. {5 p$ l" _/ `0 B; T2 Q nPoint += 40;
- T0 L$ h) r1 ?7 D" y else if( m_nJob == JOB_ACROBAT )
- L# @; `3 p% h0 P v nPoint += 50;5 o" U* }; _: C/ n
else if( m_nJob == JOB_ASSIST )6 E* U- @+ b; I
nPoint += 60;- J0 i/ U. V3 l; Z% h/ Z
else if( m_nJob == JOB_MAGICIAN )
$ y" Q3 A- {% N7 J# k+ v nPoint += 90;' t6 ?& ^( H; h9 N- }! ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ J$ g, R2 x2 r4 |- C/ C5 V$ a
nPoint += 120;- N5 O( b( z8 u' [1 B7 S4 w
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 p5 H: U" w9 j$ X nPoint += 150;
. T3 }, m7 p: C+ i( T+ T else if( m_nJob == JOB_RINGMASTER ) U6 V B- @ M5 ]( G: a
nPoint += 160;
; M% v' s$ v& V: `& w! R! z" {1 p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ j ^2 z' [( G% D+ J; o nPoint += 180;; `# u; n$ y4 x% Y4 d: A
else if( m_nJob == JOB_ELEMENTOR )3 e2 a$ v. ?- Q! ^
nPoint += 390;1 l( k, f% H& M! k2 J4 P9 y; ?
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 Y: @* b# x# ^) T6 E
nPoint += 120;
" U$ y' V" d; R/ e else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% l+ v. N+ l, g$ o
nPoint += 150;
+ C+ L6 A7 V& q( n3 P( N else if( nJob == JOB_FLORIST_HERO )
" w. O( }( A, `) p# e nPoint += 160;6 d! F4 |; d. y9 j, H5 E3 S; [5 C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" e+ N* V* O- {9 Y: S: o& w2 _
nPoint += 180;( t7 T9 k w9 S v3 j, \; L
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 ~+ l6 t* d# Y, A* f* K' ~ nPoint += 390;
" l$ @; q5 T; z2 r% V1 ?( s
4 s! O3 J4 j: `1 ^% S; S AddSkillPoint( nPoint );
* D' L2 K0 d+ I" d4 y o2 L, z: S m_nLevel = nLevel;
1 h9 E1 s: q% B$ o
: g O" z/ x/ u- [' p5 e; I SetJobLevel( nLevel, nJob );
: o1 {6 C7 `) m2 { m_nDeathLevel = nLevel;
+ \8 }0 U( K4 A' ^#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* j' k2 F7 b: k% z! Z: [- c5 F if(IsMaster())
4 r! ]+ Q& g0 C$ Q# f {+ K9 v( K7 F n0 S
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* j i F: n7 W; J- f' u5 w if( nLevel > 59 && nLevel < 72 )
" l$ s$ t1 p1 Y dwTmpSkLevel = 1;0 {5 n/ x l/ z R
else if( nLevel > 71 && nLevel < 84 )) c) o" D0 L( F8 I/ t3 [3 |
dwTmpSkLevel = 2;2 `( \8 X* V( ]% {* G- o, a
else if( nLevel > 83 && nLevel < 96 )1 C ]; w. v$ X
dwTmpSkLevel = 3;
$ U8 J( G5 u7 D9 S1 @: h else if( nLevel > 95 && nLevel < 108 )
! K9 ?: e9 l; v+ [+ D6 `8 Z dwTmpSkLevel = 4;+ @1 _0 B. r; I( w( n
else if( nLevel > 107 && nLevel < 120 )
0 I' s! _$ ?0 o6 t( d( [ dwTmpSkLevel = 5;9 y9 b j6 m/ t4 W, T$ V! l$ \2 w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ~3 V4 s- F g
{ 2 _( t& A, W" \
LPSKILL lpSkill = &(m_aJobSkill);$ n0 W' j7 R: Q0 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' {8 J: \; g& E" I5 o) H {
4 g5 ~ [2 R% ^, c, w- [9 j5 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& ?$ l. X* Q8 Y% [ if( pSkillProp == NULL )
& N* k! m) |+ t" G! G! H continue;/ m" s! A1 p+ y* Z* }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* o3 l6 x: |, [, J& c continue;% s! {2 ?* G: w {% |
lpSkill->dwLevel = dwTmpSkLevel;
. v/ P( d' ]0 \2 y o- B' [ }
0 k' K2 X- F+ y% E; G }5 X* M2 u+ L6 R7 I3 C
}5 Y. ]0 R. q, L
else if(IsHero())& J8 K/ r/ K) `7 T0 v, M3 \
{
, J2 u0 x+ |$ _. M for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 @$ J! v* m5 b, z, o$ H { / s2 @( K6 D5 y5 t& R
LPSKILL lpSkill = &(m_aJobSkill);2 F$ y/ t- Y& ?0 x! o- x1 w5 H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 K. H2 I' k/ Z7 t4 a {* O+ t7 e% c. G* x' \6 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( _' W$ n- T% z- ?. T) s
if( pSkillProp == NULL )* V9 Q+ X0 \0 N7 @7 w ~
continue;2 m& T8 q' e9 g$ q9 F1 K* s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* V }" x& Y: ~+ b9 L
continue;
$ k3 f8 D/ n. N G! ]; C lpSkill->dwLevel = 5;6 q' M) l: o5 W7 q% U; I
}+ _9 _, u. E5 M4 }8 a* p7 w
}
, d( M6 h6 g- w& g }6 b- ?: u' X" Z5 K8 S
else if(IsLegendHero())! k. L8 a. N& R
{
+ E9 W# ?! V! n* e2 y- ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) l8 a) k1 B4 l
{ + ~9 B) g7 ~# c8 x7 }+ ~8 N
LPSKILL lpSkill = &(m_aJobSkill);6 z( J* c. I+ |: k, C
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 }8 m- n ?1 ^9 K: d: `
{. h2 \$ `3 E6 i8 z6 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 J5 x* Z0 W* ]; f' c/ [ if( pSkillProp == NULL )
9 o/ [" r+ r R$ o! `! s continue;
& r& r7 \& m8 [: g4 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 p1 h2 C$ V: A, U C5 s$ [! n4 G continue;' E' m# U1 |5 a7 P5 s! ~
lpSkill->dwLevel = 5;
( m3 R5 F; L! _6 C5 X }
' z( p) p- J. V4 i }9 R& {! n" t4 b. ^) Q* Y' c
}
9 R5 J, l4 z$ a6 I! Z3 W3 T6 ?/ f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 ]0 x! I2 Y9 K
if( bGamma )
' O. P' R( N# ] {
4 p$ D! x# @1 ]0 Q; b2 G m_nExp1 = 0;: q) l0 W7 K3 `, c: K- r
}
! \0 j- S2 T7 X: u8 V8 U. y0 H7 b) G( r& d& f
( (CUser*)this )->AddSetChangeJob( nJob );
% } n; {/ C+ c8 V, i; l0 s g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 e4 w0 y( M* N
% v6 a$ O$ K' N* C
* ^0 e; V3 K8 B#if __VER >= 11 // __SYS_PLAYER_DATA) z7 K7 F% t% N9 f5 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 J' {3 L1 w0 e2 Q+ c#else // __SYS_PLAYER_DATA& S% Y& ~( b& b# K4 v/ B4 j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ C1 D5 g4 |2 n+ s( Q: l. t! q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# u7 W7 P. G/ H$ ]# R
if( m_idGuild != 0 )
, _& g6 p+ T% _4 q4 O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, {* L" [- Y; D+ s4 [. Y#endif // __SYS_PLAYER_DATA4 V( ?9 r( G6 r( Z$ c8 X B+ ~
SetHitPoint( GetMaxHitPoint() );
7 s! ?% C2 C H& { SetManaPoint( GetMaxManaPoint() );
6 B( }/ Z* Z. ]2 b) ^( P SetFatiguePoint( GetMaxFatiguePoint() );$ x2 @/ `0 V, r( ?! [+ k; ^
if( nJob >= 1 && nJob <= 4 )+ q4 M( Y4 O! K4 [
{
) v( o* X+ ^& l" P/ @ m_nStr = m_nSta = m_nDex = m_nInt = 15;# ?! _2 N" O2 T- T
m_nRemainGP = 28;
9 n" s+ f/ t8 [- N! O% F E% U }; I, ]( W) m" ^$ s
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" X2 z8 p; {' p3 g1 ^ {
1 d3 m# [: R& Z* d m_nRemainGP = 118;0 `, ?9 y. W& N, q! y" w
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 A* y4 q# L, s1 w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ i$ M$ Q) Y, r0 M$ U }9 g! h: L5 Z- K* Y$ A, s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ k5 v+ p5 G0 K# V- g# Y, z {, \. {* i+ h; x! v5 N& E
CItemElem itemelem;! c" u# b* r j+ T
itemelem.m_nItemNum = 1;
3 o5 {6 j* x% c Z itemelem.m_bCharged = TRUE;/ r' S( s2 s( N$ C
BYTE nID;
" ~" M% r& m* B" \
- ]1 p* Y4 L- M1 l$ S) C$ D if( nJob == JOB_MENTALIST_HERO )4 i+ u# }. G1 r v) Z* {7 N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( A# N( K; ]/ T) p# c6 e! ~1 J$ d
if( nJob == JOB_FORCEMASTER_HERO )
; N7 ]1 q4 U) ~/ z9 E2 k/ y" A S1 u itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& l3 X2 ^& k; v& ~; I. x
0 q; b9 w! I5 r } ( ( CUser*)this)->CreateItem( &itemelem, &nID );7 T# z( | S# v1 X
}7 a R/ F5 h) W( V$ J
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, i7 j! P7 U. W: v" P9 w
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. Z5 [! s, m @, @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* R! o: q4 j" g- ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 ~5 W& y& `/ } ( (CUser*)this )->AddTaskBar();*/+ j0 O, t- S7 D% ]5 Y& m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* w+ V& Y" h, d2 ]* i#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 p& y( [" [% x! x4 C/ d ((CUser*)this)->CheckHonorStat();
: `- e0 I7 V, [3 N7 I6 R ((CUser*)this)->AddHonorListAck();& F# X" M I$ D2 W
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 j+ e( E" k8 g, j5 _; L7 v2 G! [5 d1 u
#endif // __HONORABLE_TITLE // ′Tà?
7 O) ]/ p" f, F a' V) w }' |. R$ m( \, U+ ^+ w. J: w
#endif // __WORLDSERVER( S3 x" e1 h# ?1 f
} ! g5 j8 d/ \- a, s+ e# w, B' e/ n
$ k* ^1 q& W! H8 y( n
然后你进入functextcmd.cpp并添加以下
! I5 S/ G7 k) E; [/ [) b. |; F, M2 i
代码:
! c5 C2 C6 T* x8 TON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 Y/ N% G+ ^3 o' R, H4 c4 I! k" y/ j下面插入& E; A; Q7 s( ]9 d; _* P( F( r
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 L& ^( b0 R2 u8 ?
$ [+ U' d9 v# w$ P9 y% S然后你去/ y) O3 F$ I; a# Q: X* q
: G7 c( Q. [" _8 Z2 W0 J1 H: ^
代码:4 ^ F+ E7 N/ V9 N' t( x5 Y; e
代码
; I. S! @. c6 J$ b4 j% V. VBOOL TextCmd_ClearPropose( CScanner & s )
# t6 v. m9 k* k7 w& r% A T7 U{, h Z1 U/ Q4 `7 B. D
#ifdef __WORLDSERVER: _) B$ U, C2 W0 _0 y3 h0 ~+ @3 ?
CUser* pUser = (CUser*)s.dwValue;
7 F$ e0 c; Q8 s/ \+ O# m, z u g_dpDBClient.SendClearPropose();
$ k% P2 w' H1 g#endif // __WORLDSERVER$ C& E; L9 r3 d1 u; P; D& P6 Z( m
return TRUE;
: g( V( r( T& i}7 x' q( m8 I; L$ D$ ^ I2 J
下面插入( ]- T# E, V# ~1 d% A9 e
BOOL TextCmd_rebirth( CScanner& scanner )
- R2 c/ x; n& E9 g# s/ E{# v3 C9 F; A) V. Y& }
#ifdef __WORLDSERVER
: H9 s" a5 ~+ ]CUser *pUser;( ^" l9 Q- H% o
pUser = (CUser*)scanner.dwValue;: z+ n6 n4 n/ w! J, ^! B( W( B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 W% c% r, F; V, { XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 J+ ?6 b, h/ Z) w9 z& Velse
7 k) _8 N1 b! t5 K$ w; hpUser->AddText("你还未达到重生条件!");
" L( d, n5 g9 n8 L: `% i# \#endif) n0 z/ t( d; H
return TRUE;7 Z4 y5 ^+ A' e1 m
} 4 N% P9 V8 N* Z) j3 q8 j/ e. ~
; |& X g6 s! {6 m: S: o( \
0 o4 v( J! N/ U) ^* N
7 W ]3 h5 k8 Y& E
$ z& g& N/ e k: }+ r/ n F6 Z' l2 [ |
|