|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, O& Y: r, Z3 V1 F3 Q& H: `
4 F. R( \) I% O! ?$ D, fMover.h8 J4 X2 T( o. g
代码:% O% j( `/ v- \3 R3 S
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 @7 H4 N: W9 z: D
" w/ C) \4 F ~9 q/ q; @/ Z$ a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . d" w+ R% l, j" v- h- A6 I E6 B
; |# K" n" w. b5 f9 J0 g
然后你去mover.cpp添加. A: _% @* g( l( C: d: b7 v8 h
y3 n7 J+ t0 A3 e( b$ O6 r8 o5 U6 f
代码:
' I; V( s; s. Y% Avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 m) c7 T {! y' Y" z{
; C5 @& z$ p! f; @3 F#ifdef __WORLDSERVER1 @) N6 c. B! Y1 K. a k8 ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
_! P' }, i" B6 f* d. p! {7 M MoverProp* pProp = GetProp();' t- [ l+ X+ D; ]
if( pProp )1 D: g G! R G: F4 n
{" }6 l7 r& b @! p/ _8 L& W7 X
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 G2 z6 ^; m2 G9 e& M/ } {$ q; k. P( e3 Y/ f9 Q
AddChangeJob( nJob );
* S; z4 Y* N9 z) m ?5 F }else{
- n- |1 N) ^. p: O8 w9 Y Q return;
% f( H3 ^+ c& q' E5 z }8 i$ B( R, X2 {; D6 G' N( {+ ~
int nPoint = 0;
" u0 z( d0 P' a( r if( m_nJob == JOB_MERCENARY )
5 i, _: L, }$ p2 |* b( q! r nPoint += 40;4 C- t; G s0 E( l W. W M i
else if( m_nJob == JOB_ACROBAT )' o; V& _, C. t5 S- ?# a
nPoint += 50;
: j O7 B* ]3 [, C/ D! Z l else if( m_nJob == JOB_ASSIST )
) ^" ?2 n- [# A; ?( U nPoint += 60;
6 M: A5 C' A& k3 k0 j q; }; y+ Y1 r else if( m_nJob == JOB_MAGICIAN )# r P7 i( ` X
nPoint += 90;2 Y4 L; j# `0 g" k2 t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 F/ b; l0 w6 E+ d2 A; h' X
nPoint += 120;
; H9 |9 A7 F9 e$ h; `, w% S( V$ x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, B, ~! w. d; t' ^( q- I nPoint += 150;
; C; z8 a* T7 m7 _% s+ y6 \+ | else if( m_nJob == JOB_RINGMASTER )
4 C0 t) d2 E! `# } nPoint += 160;* L" U( D0 ]3 K* }" k4 d
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ z! `! ^: r7 g+ w7 P nPoint += 180;
* m' i9 G ?# k x8 x# J( f Z7 h else if( m_nJob == JOB_ELEMENTOR )
4 N' ?0 v0 K1 Y nPoint += 390;
" U/ ]& K/ Z6 p$ L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). g( K: G3 i7 F9 x0 k9 H2 R h8 O9 F
nPoint += 120;
) c; x A y* \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" [' |2 t8 r# z7 D& F' Q nPoint += 150;
2 B. b3 @' W' d: {$ X3 D" B, j else if( nJob == JOB_FLORIST_HERO ), @% ?) B2 O" L2 {4 s
nPoint += 160;; G) T0 e4 }2 m- G( @( K6 Q/ ?5 x) @
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ K+ m) U8 b6 H" `3 m9 X
nPoint += 180;
6 z9 H. |+ `3 i( l! v else if( nJob == JOB_ELEMENTORLORD_HERO ); T: l, C. z! i
nPoint += 390;# G- y& V' b. h6 F: e4 v/ A1 O
; o( h( }6 _" ]" s
AddSkillPoint( nPoint );' S4 G& t- y, E4 v! g% O; E
m_nLevel = nLevel;
/ C8 d" `4 l- W6 _) j' h
: n& D. ~& F W" m2 W, b# H. t& F SetJobLevel( nLevel, nJob );
! K6 B; n3 D& K1 n; W/ L0 ?. z m_nDeathLevel = nLevel;
+ G; u3 J/ V4 o* j#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% y! c. B q7 f6 Y3 z% r5 w
if(IsMaster())5 Z7 H0 r( I- |4 ^& u
{6 q- R9 x& A6 G3 B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# P7 ]/ u# I* c( b
if( nLevel > 59 && nLevel < 72 )
* l% N1 P) t3 s dwTmpSkLevel = 1;. E6 k( C2 a6 l3 X3 D9 L% H
else if( nLevel > 71 && nLevel < 84 )" H! X0 }; {- c4 p, Y3 G" y) x
dwTmpSkLevel = 2;, r5 m5 k Z3 i, \
else if( nLevel > 83 && nLevel < 96 )7 z0 A. M. k6 K& [2 Y% M9 O
dwTmpSkLevel = 3;5 ?3 c$ q7 [, T! j9 \. W
else if( nLevel > 95 && nLevel < 108 )! k5 Y H' c& ^' A0 ~
dwTmpSkLevel = 4;
/ ~! S0 z' C$ o9 b5 E( o9 \5 e: D else if( nLevel > 107 && nLevel < 120 )
& a1 B3 p9 p) l0 {2 f8 H* o dwTmpSkLevel = 5;
: u2 i D: J2 B9 L for( int i = 0; i < MAX_SKILL_JOB; i++ )
* N K4 }8 [; S9 z) C4 S. H {
. S; j' _$ w& [ S LPSKILL lpSkill = &(m_aJobSkill);
# R( j2 A; p& k' A if( lpSkill && lpSkill->dwSkill != NULL_ID )
) @( k; _, s, l* i& ] {
; A. y: |6 C* {7 x: y" e d+ e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. @0 w: L' v6 x0 \! x if( pSkillProp == NULL )
5 f |* y" n, m& _0 c( |4 X, Y continue;
$ l' h1 [; |4 z8 ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ d4 B) V* A- N4 L
continue;( H0 n: R3 ]4 c% Q1 O/ i
lpSkill->dwLevel = dwTmpSkLevel;
9 c: B I# y: n/ m! I0 z }, @( W& W' N5 e6 L
}
# J8 I# L* s& m U/ v$ T5 a }) c5 B( I( i9 U* x% X
else if(IsHero())- `& Q6 L9 u7 H p8 F9 |
{# y# B9 I3 W/ _3 E' J9 s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( E R* B4 W6 L. ] { , N/ O9 p5 F5 K. @& U& `
LPSKILL lpSkill = &(m_aJobSkill);
. H( S1 Y# d! u, ]% q- y/ L; X# ?5 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ Z1 }8 ]8 n$ W( y+ _# Z! Q {. w/ L' y' e, l# o# L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 f& V# W2 }4 i; V, d. f
if( pSkillProp == NULL )
: b! _: |9 z- c/ Q: O continue;
8 h7 N6 e. U0 y( d L6 E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( h- L! t0 P y0 |' ?; z3 j continue;
1 O- i$ C5 t) H- ` lpSkill->dwLevel = 5;, R& A! b2 }( p
}
4 d. A5 b# c8 ^: [% d: G }) J- {0 j" _% `7 u" _: j' R+ q% \7 x
}
4 X( @, X" b6 u% h. b3 A$ k, v$ f# E else if(IsLegendHero())
) t( t0 L! c3 j; k+ h& G' L% r; k {
: I# N! g/ u" U% k1 Z/ t7 j& F! R for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 d0 c6 Y' ^7 G% H5 O
{ 5 W0 X0 E6 k+ o! M1 w6 P
LPSKILL lpSkill = &(m_aJobSkill);
* `) |- s, d& ]1 g! ]* z if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 c! O- Z, T7 |7 E7 L9 F0 @; f {
9 j o5 b3 N8 A* ~- _% f6 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 e3 R, q+ C% m& X2 [' T, `+ o0 s7 r8 s
if( pSkillProp == NULL )8 _/ I [( R5 I" O) r
continue;
2 W2 N4 s' J0 `, X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ ^8 w" B$ U9 x* ` continue;
, i2 }2 ]& Z6 j" S lpSkill->dwLevel = 5;0 P# v0 C N/ r2 u. e& y
}
1 \/ g" j7 v( B* F6 V5 z+ s }
( E9 i# p; ]: s. ?# @) K }* ~" q% Y4 d k% y# L. _: b
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 T) ^" Q8 R# p2 s) V& T9 v if( bGamma )
; U4 P9 t9 \; ?4 _2 s {" W* ]; Z" y( G3 D3 e N
m_nExp1 = 0;
6 m" s# e5 \8 P7 J; [+ y }+ W { {+ D; L" \
2 ?, q+ j& W1 A( g) L
( (CUser*)this )->AddSetChangeJob( nJob ); }, r2 V2 E( h! ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 F0 T/ w3 f: r
" W1 J5 Q! D2 }+ B* p
* @& X2 f: f7 E( F#if __VER >= 11 // __SYS_PLAYER_DATA
4 p8 n' Q% g+ B6 U( X: r6 L- ~$ R) A g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# s1 `$ c3 y$ W. U/ g#else // __SYS_PLAYER_DATA* k: _) j' J6 A7 m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 n5 U- \! e! \+ s! Y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' @0 q' @$ h9 e/ u+ O1 d" w if( m_idGuild != 0 )
6 J1 W4 l4 ]7 g3 Q/ {, S; I$ K g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 b) t0 ~3 w/ {$ l* j6 X#endif // __SYS_PLAYER_DATA
. ]8 s+ w7 ?: I- V! N" e' { SetHitPoint( GetMaxHitPoint() );+ U) J2 {' X. @
SetManaPoint( GetMaxManaPoint() );: i2 |$ Q) [6 _, V' O3 l
SetFatiguePoint( GetMaxFatiguePoint() );
0 o; u# s2 x; V# Z0 N1 [; s if( nJob >= 1 && nJob <= 4 )
6 ~1 r" Y5 U- p4 N {
7 Y3 _9 _* |( ]4 G4 } m_nStr = m_nSta = m_nDex = m_nInt = 15;/ ~, x( Z8 u/ e7 K7 l7 [
m_nRemainGP = 28;: t3 B! h& M+ J* x2 q( q* I$ E; l
}' q; v1 F5 ]$ d& Z. U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! r9 G0 s6 J* w0 s9 U/ r {
1 Q, k5 ^# ~4 }8 U8 W/ | m_nRemainGP = 118;
( I$ O# s+ h/ F# ^6 e1 ]: d //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 }7 u2 k; J6 i8 ?. r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: i6 f/ ~1 G- X) z& I' Q& i% z }2 x7 b' f2 S9 n% D7 h7 ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 ?$ M. b6 C5 y$ D: c
{0 j( h7 e* @/ s4 f
CItemElem itemelem;, Y( S; y3 W/ |. X0 G a* r
itemelem.m_nItemNum = 1;
" {9 _ F) ^; g/ k itemelem.m_bCharged = TRUE;& {: L v! b2 ^8 a
BYTE nID;
* w8 j7 G! p* z, D; ^5 M- S: q+ ^
if( nJob == JOB_MENTALIST_HERO )4 Z' g6 o. N& w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: U e5 E/ d3 ]8 B6 A W% ` v
if( nJob == JOB_FORCEMASTER_HERO )$ I: K' J% d0 `' x6 A l
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ F* l# s& A' }; r: |( o5 n5 X6 O' F6 `5 R; A
( ( CUser*)this)->CreateItem( &itemelem, &nID ); u! k3 s6 d& [6 z1 s$ w: o. J
}& y! {" S9 Q# S& Q7 m4 I
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( E/ Q+ z; Q5 a
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ p; C( m: c- F8 b z) _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& {3 Q8 Z4 Z. P$ h4 |2 ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* o+ ]- g: a3 ~ ( (CUser*)this )->AddTaskBar();*/
- L5 W0 e* W, W# P7 ~ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! x, V8 A. A: k+ C0 J#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 ]3 ~% N+ D" g& Q" N
((CUser*)this)->CheckHonorStat();0 O% ~4 W8 U9 l1 t" i0 A
((CUser*)this)->AddHonorListAck();
8 K, p# [+ F1 t/ V5 [ W" { g_UserMng.AddHonorTitleChange( this, m_nHonor);
# ^2 p( v- y- p) B8 J' Q#endif // __HONORABLE_TITLE // ′Tà?0 l4 ]' L/ u- U. M: @; r' m2 K
}
]/ ^; _- B1 d" P#endif // __WORLDSERVER
+ F# b& w& n/ V8 V+ X9 |}
8 X1 P) n/ U7 Y( @' B' r* s: T. G- ]1 p# a0 G
然后你进入functextcmd.cpp并添加以下# g& W) {9 U" b8 Y7 ^) R
2 \; m& o4 q8 b( ~$ f- D- Y, Y
代码:
- X5 P9 e, Q# ` N9 G( uON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) w3 Q' F" r1 D) x( O" }& U. N1 J
下面插入
) L ]0 A' k6 {$ d! n- p0 y3 JON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 n9 T8 y8 c( O+ C0 L6 N
% T" M$ P" f& F5 G/ r' r" g8 k然后你去; D7 S+ g/ T, ]8 f! q
) E& `8 L# F# C8 i9 p2 B5 J* g代码:& N' |; o/ j, r5 U. b: E+ [
代码$ i6 z P$ y: e/ X
BOOL TextCmd_ClearPropose( CScanner & s )3 R! o$ V4 ]4 Q2 K3 o1 d0 s
{
4 s, k# U0 Y1 u: o: D+ F/ |#ifdef __WORLDSERVER/ U% h& j: H5 ` l0 o9 N/ o3 g
CUser* pUser = (CUser*)s.dwValue;3 i. P. w c" s, o! R, _/ z" c
g_dpDBClient.SendClearPropose();7 m. H( L. X% J/ g8 n
#endif // __WORLDSERVER
. e, ^ S5 q2 Q* y5 c# I: T0 R return TRUE;# s/ ~7 H E( j4 D
}
1 i% r1 V5 c' {7 C4 t; x下面插入
& x. m. W! `8 h& D, D/ p* |BOOL TextCmd_rebirth( CScanner& scanner )
& e0 ?: W* m. p$ d{# o5 {- w! m( T
#ifdef __WORLDSERVER
7 p N/ X- ?9 T7 ~CUser *pUser;
+ H; p) @4 O- QpUser = (CUser*)scanner.dwValue;( a: z: E% }8 ?2 K1 \9 G2 X' y1 k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 w: n0 c, w# Z! ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' w5 U, W5 X" |, {! c
else
; R X; D- _% o$ zpUser->AddText("你还未达到重生条件!");
( c2 G1 W+ w) ~2 [; ?/ l#endif
; i& z$ E; Z% nreturn TRUE;; S& Z* L }0 y6 u( r
} , ?4 ^( U5 K( u3 x& |& r; U" h2 V
& }0 V# i# ~/ V6 V. q6 ?* ^$ g8 Z
) c d( L" X k' ^* J# x
) i5 k' x' u/ ?( u( v7 v( [' @
|
|