|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
l& {, O" u/ n* [2 `2 t
- g2 a$ e9 n' SMover.h
- v6 ~! k& f5 a3 E. }, G Y; B$ r- l! }代码:
+ ^ I4 _9 Y0 j) a6 F( v. v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 \+ x: \! Z! D! O2 M. a
" k K: \4 V$ P& t. B0 i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / o+ _4 i! c7 D7 M
7 j$ Y$ u, _0 z
然后你去mover.cpp添加
* F) r7 i4 E5 s3 q+ L @
`4 D5 H* ~9 \$ Z代码:
7 W4 T/ o$ `7 x1 n" ?void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' E% G7 Z7 o2 F) f{
1 F; Q- |8 h9 g* g5 v0 M#ifdef __WORLDSERVER
9 D, s9 e& l( |8 q) X // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& E4 ?1 C* i1 J2 [1 E
MoverProp* pProp = GetProp();& k# w- i( W a: @" q
if( pProp )
% W7 v7 l4 O& q; L5 d- Z {: B1 @( U6 `; @9 r6 Z7 G5 F, R9 _& ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )" e! p. q9 Q& G3 M
{
" z$ @8 V) `# }! M" J$ f, F AddChangeJob( nJob );
+ C* \1 e6 B0 I+ U5 u }else{3 p; k) h% c9 O( E6 D' Q$ _
return;% A( L" V. S6 x5 s0 x8 n* |
} Z) _' f, [! d C4 H h/ [/ z
int nPoint = 0;9 K" b' D. A" f6 p# O) H+ g
if( m_nJob == JOB_MERCENARY )$ O1 A5 h9 A. a2 w! W: s* ]( _
nPoint += 40;3 y7 ]" Z4 a# T) D( F5 V
else if( m_nJob == JOB_ACROBAT ) Q- Q, [ S: H/ B- w; V
nPoint += 50;
9 f8 T% V6 @2 K! Q, K6 U else if( m_nJob == JOB_ASSIST )3 R) [( o9 i, `& C
nPoint += 60;9 W" \$ B* x/ e! @4 J
else if( m_nJob == JOB_MAGICIAN )
# H0 g8 G' v ^1 W% r4 Z nPoint += 90;' Z8 O$ w9 Z' {$ Y6 J+ O' b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 K# k5 i2 N) Z nPoint += 120;4 { D8 u) Y# y3 _. |( I; y' _( M+ l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ \$ j- x% K1 Q( r& J, U! ^! R nPoint += 150;
' V% b' \8 T- X! ]9 G [ else if( m_nJob == JOB_RINGMASTER )$ @: D B" t F8 s5 t9 s1 [, D A
nPoint += 160;. y& H0 ^8 I+ l/ ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 M) _- s" L- f* U9 Q2 @7 f nPoint += 180; l- a4 J6 I, T! b& `1 V o
else if( m_nJob == JOB_ELEMENTOR )
9 @! x( R a" k. d nPoint += 390;
$ A7 s; i7 ^6 o4 D/ n: l: s else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ g3 O8 S9 Z7 k4 c
nPoint += 120;
' I3 h, K# \9 P& b8 E) d# X* _ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& |3 W7 V& P7 \/ W- |
nPoint += 150;
: M2 D7 {9 F7 v2 p$ x* Z, C! r8 U else if( nJob == JOB_FLORIST_HERO )6 m, Y9 B$ @6 u' F
nPoint += 160;
: Q; a/ [9 |* Q2 L6 r m else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 @6 G) F$ x/ O* C0 O nPoint += 180;
9 L, j" m+ z, c( _0 J' U; E" F else if( nJob == JOB_ELEMENTORLORD_HERO )
$ o3 m/ F2 U1 a! e/ O5 n nPoint += 390;
( y" g- B& ` `! z" z) [) s) |- c; w
AddSkillPoint( nPoint );
: D5 f& |1 m3 b5 l$ c2 K m_nLevel = nLevel;) E& q5 s. g) K) p& _
' c; j: Z. [0 Y) G0 c1 }* J! G SetJobLevel( nLevel, nJob );
3 G# Z: h) h& W+ R! } m_nDeathLevel = nLevel;5 ], r' N: y( ]4 f( `7 {$ i2 L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 ?; f0 K7 i7 y2 X: M( A, p if(IsMaster())
4 @0 k2 |2 V( Z: C$ O' g) u3 O {
: a. D" L* b6 W) O5 V, y9 e4 U I int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! { y; c( e/ P( A* z$ S' T/ @
if( nLevel > 59 && nLevel < 72 )
3 G* r6 W& I' x# g. j6 K dwTmpSkLevel = 1;6 ], a! h( B* T; ~3 |' `* D
else if( nLevel > 71 && nLevel < 84 )- ~0 q) r) l: {; b8 q- X
dwTmpSkLevel = 2;7 |. v# L( f: @
else if( nLevel > 83 && nLevel < 96 )
, K$ u6 C! X* O' ` dwTmpSkLevel = 3;
4 @0 X" n1 o- j, `0 B% U {% N else if( nLevel > 95 && nLevel < 108 )) g+ ?& j6 H8 e Z& Q$ D; j" o
dwTmpSkLevel = 4;1 g U" J* c- z$ I" w6 |) a
else if( nLevel > 107 && nLevel < 120 )/ B& L9 y' l3 m4 Q2 p
dwTmpSkLevel = 5;/ J0 b/ N( X, C/ ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. V* O4 ~' g. y) ~ B {
7 R6 f* ~2 _3 p5 d5 X0 f0 N6 } LPSKILL lpSkill = &(m_aJobSkill);, o. ~6 ?+ P$ t% X, R. R5 g2 c0 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 [' }+ m# J: t {
* Q# s* Q) @: S4 [! \8 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + l5 U; y& @6 P: A. ^5 M
if( pSkillProp == NULL )
$ N& y6 N E) I5 }, J continue;
/ s# a1 q" I1 V) f4 v2 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# S/ K9 d) b+ Z! h7 f continue;8 z, X2 P& W; k9 }4 d; [4 e
lpSkill->dwLevel = dwTmpSkLevel;
6 N; i% f2 g) }" F" ` }& R9 ` e" ~2 x. }4 b/ _
}
( P! l2 p, t' b }
2 ^( `+ P2 T+ g! {' W, B else if(IsHero())
6 ~1 R$ V' j; b4 `7 m, w9 N {8 }5 I, u. T$ {. |% r9 O! y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( E7 P( X% g& M2 O% [, o5 p
{ 5 v' [, B `- _0 P! b
LPSKILL lpSkill = &(m_aJobSkill);
! i( ^0 E. S5 @: F if( lpSkill && lpSkill->dwSkill != NULL_ID )
( s8 y4 H' M1 r+ ^ {
# c4 k( R/ D( \0 L& i# U" E. p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & r6 j5 C5 W- X% Q
if( pSkillProp == NULL )
' Y3 e; O3 l, g continue;
( _! O+ I# ]# L# c if( pSkillProp->dwItemKind1 != JTYPE_MASTER): y! \& R) i" Y( M3 T1 O) H1 S* Q$ z* S" X
continue;
2 S5 d: o" G& n; b lpSkill->dwLevel = 5;
* g3 L7 k; a6 e% M, P. v }0 s w% d& b) z. y2 ^0 X2 g5 K' R
}0 M- A+ L/ f7 W+ {
}
9 z4 y( ?, w' e2 Q% r. ~) m else if(IsLegendHero())
3 d0 f' P( M# Q g3 n" @2 m {
9 p R2 k9 K9 H+ ~. y2 z; x6 X2 S for( int i = 0; i < MAX_SKILL_JOB; i++ )
* [* u- M# ]% k5 a3 L8 g8 J7 ] { 4 W( N5 B* o6 p1 n C& _
LPSKILL lpSkill = &(m_aJobSkill);( V6 |6 l2 M1 r# h% b* D
if( lpSkill && lpSkill->dwSkill != NULL_ID )- v1 O8 n, r5 k
{& a& {# x: x, v/ h# k. ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % z( ]- s( M* P0 u5 i
if( pSkillProp == NULL )
, P% A3 W: ~9 i7 s: v. i! | continue;% J* |' B* o( s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ D% V; V9 A h! Q0 _- } continue; |9 |, c+ ?& l7 ^3 u
lpSkill->dwLevel = 5;
' y; a; K* X/ ?5 m }4 J2 `! c; D# h3 S
}
4 x* f1 A; M J! `$ }6 v6 X }4 I9 H' C0 w3 ]6 Y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 i( {$ K. q1 o6 Z/ k8 M7 s: Y7 f if( bGamma )
6 R; X" |% d$ @0 x) z# v6 c7 Q {
) @" `/ P8 j9 G1 ~! U! W" [ m_nExp1 = 0;
9 k- p# x. T* s* O7 z$ i }4 G; k7 o, b& J( p
' z/ l; e: a) ?7 Z9 C
( (CUser*)this )->AddSetChangeJob( nJob );
8 `' A; N; B* Q' |& m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" A8 C, \) x( P2 P3 {0 [% z
' L) v0 p, p/ t- _
3 ^/ o( t7 }" ]#if __VER >= 11 // __SYS_PLAYER_DATA& w8 [3 w v( _3 d& O6 ~
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 J7 J1 ~, r1 f, P
#else // __SYS_PLAYER_DATA& v4 K: s5 k& I `% r- G6 x
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; c' t/ @6 L- R' Z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
@# g: U& u* _5 M3 i$ R if( m_idGuild != 0 )$ Z3 S u0 @+ E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ p% a+ w! u- \# |* q#endif // __SYS_PLAYER_DATA
2 F; D$ [3 O# H) }* S9 O SetHitPoint( GetMaxHitPoint() );
?, Y( ~# ?. ?& g6 g SetManaPoint( GetMaxManaPoint() );7 ~+ c1 p& k9 H/ N3 i$ P* i: ^
SetFatiguePoint( GetMaxFatiguePoint() );2 r k7 Q7 f$ L* `3 j* Y
if( nJob >= 1 && nJob <= 4 )9 K; |& [: v9 e* x* K
{& h1 b& W# p4 e ?8 Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;: T% x" M+ I# p4 L
m_nRemainGP = 28;7 l' ^! x6 D2 x. a* X
}
% N& y# i) n' S# m# \ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 m) l. v, M! i, |! B
{" \! E$ p3 ]7 ?9 T7 j% u$ U
m_nRemainGP = 118;' m5 ~" V8 A5 S! }8 p0 k$ e
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& U; y4 ]: @2 H/ a/ o/ H( R m_nStr = m_nSta = m_nDex = m_nInt = 15;
" F! }$ P! _2 y0 { }
0 @, Y+ D ]7 T# q/ B5 e& l+ B) I if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, a n/ z8 t2 f6 H5 Y" V {4 t8 E, i! Y$ i: N, R0 d
CItemElem itemelem;3 S8 c1 S2 a& T! [" p7 {! }
itemelem.m_nItemNum = 1;
2 t4 e7 n1 u& S; J2 L5 Z itemelem.m_bCharged = TRUE;' |6 Y% X }; C2 F+ K- L
BYTE nID;' q+ L0 y2 A# j0 K* y
) s7 c' `, x, I7 A" [ if( nJob == JOB_MENTALIST_HERO )5 A3 x" p: X/ G4 B) V* {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( V r: w, E8 g, O; @9 M if( nJob == JOB_FORCEMASTER_HERO )7 H& E( d+ Z) Q% H! M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, v* f* h* p1 h/ Q2 _- v1 ?& S
6 y- P1 I/ z# o0 Z; S0 ?! s. H4 [
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* ^2 B7 f* j. [* Z5 `6 _ }) s4 }2 q1 B1 d$ m4 T0 W# x
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) [+ U0 _, O* d ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' d6 E7 Q0 y1 Y+ N- u ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* R, g6 C/ R6 e3 _9 f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ t/ C+ a4 n' ^4 F+ {% [6 b
( (CUser*)this )->AddTaskBar();*/
4 Z) V0 X- n s. X0 [8 ^! B2 Q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 [3 Q" k5 T3 {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- L$ _5 c7 G) ~; |6 p) G' @
((CUser*)this)->CheckHonorStat();
1 v3 U8 O2 U/ J; K% Y) Q( ~3 V ((CUser*)this)->AddHonorListAck();5 O1 l1 z- H* j+ s& e
g_UserMng.AddHonorTitleChange( this, m_nHonor);
% d, u# Z6 S. Z" ~: @8 a5 D$ A#endif // __HONORABLE_TITLE // ′Tà?' W( w4 Q) h) A" S: H
}6 r- T" u0 m4 c d. Z$ }- h, l0 a
#endif // __WORLDSERVER
0 I1 ?6 M8 a+ y# \}
" O3 p. E+ w1 r' B& L8 ^1 w F# h6 p8 o
然后你进入functextcmd.cpp并添加以下0 y3 p0 ] |% G9 L
+ {3 K2 p7 B N% q4 Y4 p; h8 G
代码:4 l( i; [" ]0 D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- h; T8 @) c9 f+ ]
下面插入
9 I! X1 X1 C) z8 z3 L- N6 lON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 `) M w3 H8 M P9 X7 Q8 x7 T
' N3 A' r# r4 r6 A1 s9 v# n
然后你去
" m9 o* y |# I# P7 V; X7 A
, @% W! @# l+ f$ |& [代码:
; v4 z* T. G. X7 }代码- ^' l% F: @* R& }* j
BOOL TextCmd_ClearPropose( CScanner & s ), o, h% a) }& l& U4 S% M! U
{0 z: w5 U& j) y" t& g, E" [0 h
#ifdef __WORLDSERVER
% t& [) R: `3 Q* W* k# o. g CUser* pUser = (CUser*)s.dwValue;
; y% |5 v: x) o( }# ^; } g_dpDBClient.SendClearPropose();8 S" ]* x' c4 E/ D$ z
#endif // __WORLDSERVER: B w# u9 D9 O
return TRUE;
- }/ k! ^4 q/ p, w2 `' `2 I}
2 \6 x, H, `( d5 \# u下面插入
5 a6 o3 o1 o9 n" J {BOOL TextCmd_rebirth( CScanner& scanner )
X. R& E' q2 x' o: l{5 @* U: x: t3 ^! \( o* H
#ifdef __WORLDSERVER+ z& W7 L0 j/ E( p7 E! P" A
CUser *pUser;
1 ]1 M6 Y; D& ]5 f5 P% ZpUser = (CUser*)scanner.dwValue;
0 i/ X* Q4 v, }! \% Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& x& ^, L6 c5 YpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; T7 H9 { Q9 A! ?% [( D$ v
else
( a1 o1 _$ x% l. r9 R1 A- L" opUser->AddText("你还未达到重生条件!");
* m5 H" U. R2 _ R$ Q7 P#endif
3 p1 Y! j3 r, y8 }# }) nreturn TRUE;$ G/ {! U/ g9 Q5 S7 J" l5 s
} ) D. b, g- ] ? s2 H, x7 ?
4 a- S% d$ e8 M" I# O8 b# u) S _: H6 \7 A( Q! |2 h% G* b W6 I. ?4 D
5 V$ C7 W, `: N: e. R5 i3 V& G+ v
4 ^, V5 i/ f1 Y k |
|