|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 _) y# Z- ~$ S5 i) G0 Z$ b- c& u8 W
+ K' Z& X+ y2 q* EMover.h, }( [% `+ c C# h) }2 D( |$ Y
代码:, u! j. y7 w" f8 g. o6 y0 ]
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* Z& K* H6 z9 H+ ] I: z/ _( f6 x2 P$ ]
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' V1 _6 b7 Y1 c6 X3 L- J7 J4 G) e3 X* d4 \, o$ w; F1 J
然后你去mover.cpp添加* }: K% d$ l5 R
7 B# V, k& `+ U代码:( j# _: H6 A4 S( \' j, a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% o* O* L* e5 |
{. l H2 s# p, J% W; |1 |/ R
#ifdef __WORLDSERVER/ @5 C J, A. [0 [( O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& J0 H0 S3 ~& ^7 y1 \+ j) }! J# F. v MoverProp* pProp = GetProp();
f/ q' j3 h% a0 i" f if( pProp )" B% u( P9 a8 z9 x' G( R3 T6 a
{
5 G# {) ?; `+ R+ r if( nJob > 0 && nJob < MAX_LEGEND_HERO ), ~" n# K, }/ x" {
{
- @" D* r2 k( q6 B% a AddChangeJob( nJob );" ~& Y% y) n+ b+ |3 b$ W6 T; @
}else{7 {: I: a( r" j
return;, v- `1 n0 `# G
}
3 {$ x6 _3 k5 K- T int nPoint = 0;
! v- ?- m: D0 W, [: [ if( m_nJob == JOB_MERCENARY )
( _6 L& N! c( U9 s' \: }4 t nPoint += 40;
_9 R7 B+ e- n) O( t, K3 u3 ]% q else if( m_nJob == JOB_ACROBAT )4 v: s) i/ l7 D/ @; t- H- A. k
nPoint += 50;
& b5 _$ D8 Z( T+ k else if( m_nJob == JOB_ASSIST )8 p/ l& M8 f! `! i* t
nPoint += 60;) H: W* y* g* M. E0 [9 t3 p% d+ t# l
else if( m_nJob == JOB_MAGICIAN )
: c1 [" Q& c' v6 E nPoint += 90;- S4 @7 d# e2 l5 Q$ P: i
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 }' O) V! F2 h* C9 _% E
nPoint += 120;, e- C, P, u4 N O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) ]+ o2 I/ ^- B* `
nPoint += 150;
I ~7 H) Z# H: N& j. |, N else if( m_nJob == JOB_RINGMASTER )& C. d( Q6 B2 V$ Y
nPoint += 160;) ]& s% v( U" x$ V4 {9 d: x4 X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! }$ g5 x# ?+ l* _
nPoint += 180;
' M! A5 ^$ a, o5 Q: ` else if( m_nJob == JOB_ELEMENTOR )$ K+ J/ N; a. h- K
nPoint += 390;( ]7 g: D! ?: A/ H) j/ }: `' G" {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: I( o2 k# l: M P& N0 s% t nPoint += 120;7 U( I0 o' o. Y, n3 O9 y t4 a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' N3 Z1 D) l' l% b- g4 G$ l& m } nPoint += 150;
7 f/ l& G3 X" T1 a6 b else if( nJob == JOB_FLORIST_HERO ). J5 Z+ n# T4 g- C( j( M
nPoint += 160;4 p, e" O+ @3 x: j5 r
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 n E5 K1 j# _: q, K
nPoint += 180; ]% P, y1 q w
else if( nJob == JOB_ELEMENTORLORD_HERO )
' g0 x d5 k7 P9 @7 Q# k+ W/ R5 z! x nPoint += 390;
/ c/ T" _; V' N) ]% j
$ b0 N2 o# i6 F) B7 P6 w AddSkillPoint( nPoint );
; j! G+ Q/ L4 u* [" | m_nLevel = nLevel;
, l! W6 y4 U% C% }( o( o) u* N: D- n4 x4 @& ~6 P/ Z" T5 C
SetJobLevel( nLevel, nJob );
6 s" Q3 [; L C1 a# |* G m_nDeathLevel = nLevel;& X( a9 k) P! _0 C, w3 `9 F
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 h' W' d' {4 a R0 P3 b
if(IsMaster())' c2 {- u9 [4 A# P
{
. ^/ W' T. _0 w int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; [' I+ z& X, d1 e
if( nLevel > 59 && nLevel < 72 ), A9 g+ A9 [% j$ X) A: p# Q! `( F
dwTmpSkLevel = 1;
: _# A/ M7 c/ E) R a* [ else if( nLevel > 71 && nLevel < 84 )9 }8 X: Q' ?4 E) }5 V4 }; O1 [5 z
dwTmpSkLevel = 2;1 N) j+ k- y) s
else if( nLevel > 83 && nLevel < 96 ). A s$ `3 u, v, \/ I; {% J6 z
dwTmpSkLevel = 3;
$ o1 s: R% k; y- Z$ z* F9 u else if( nLevel > 95 && nLevel < 108 )
' W7 `9 l p5 L0 O5 @8 Q dwTmpSkLevel = 4;
0 L: `! u7 r% l$ |+ r else if( nLevel > 107 && nLevel < 120 )
4 P: K" j& W/ p! y) _; ? dwTmpSkLevel = 5;( y; q I6 n2 H0 T5 e& R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& h% Q; c% s* i4 s% i { 9 h( d$ O G, q
LPSKILL lpSkill = &(m_aJobSkill);, i# V( n1 Z8 F1 x7 R* Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( }5 S! t5 q$ u$ [# I+ ]* t {+ \/ \+ N, t+ h3 Y1 Y" ^5 p/ e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - U6 B n: }! Q+ v0 I3 S; u
if( pSkillProp == NULL )% E0 Y* f/ l r; k
continue;
# `* n7 @/ k! y9 X6 _8 R. H3 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 w% O8 y* W6 F8 [& K5 d* J! a2 P9 D continue;) Y* [$ S7 p5 l- z
lpSkill->dwLevel = dwTmpSkLevel;
& \# r- H: u9 c }- N$ l, K4 ]3 ~4 x6 R
}* k4 x" W5 j" ~* ~
}- G! J: E0 z( X1 ]
else if(IsHero())
& x2 {7 ?, b* E: N {
4 p- j K2 o$ ?0 { for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 @# T; B% Q% U5 E+ U& c* C- A$ L* B { 0 ~9 W% e1 H, I
LPSKILL lpSkill = &(m_aJobSkill);
; \& Q& G1 y, T: @ if( lpSkill && lpSkill->dwSkill != NULL_ID )" }4 W2 Z* k; |4 R2 T2 r' }4 J% l0 w
{9 @( o" P- W l8 D: T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + J; f7 N9 P) D0 Z' M1 A8 ~
if( pSkillProp == NULL ). O2 b: g6 I% s! \# M; ]( c$ K
continue;
: L" A! }9 b0 j- ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' a7 q: l* H% ]7 K: R continue;
8 l0 D( ?. X# M1 w( \ lpSkill->dwLevel = 5;' U1 ]* C* W' Y9 [0 @) \2 y
}
0 {- x/ C( V1 ?1 Q9 X2 O8 o }
! i# b% d8 b% h6 D! z* w8 H }; v: A6 m- m9 o$ m. z2 [
else if(IsLegendHero())
0 Y1 e- e# o9 u. N: j3 I8 W {# T) z- u( N7 E# j: K2 M1 Z/ O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . L. {. a2 }; r) f9 @ K a+ Q" \
{
% }; F: m6 z2 o; R LPSKILL lpSkill = &(m_aJobSkill);& r4 ?7 O, h1 u0 s0 K L* j
if( lpSkill && lpSkill->dwSkill != NULL_ID ): Y; P- ? F3 w$ I
{
0 c( N8 I/ L! x3 i7 X& N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" G5 v& R" |4 w! {% s {# e if( pSkillProp == NULL )! l9 s3 W c& i1 e1 D. {
continue;
2 C/ V. }+ Y+ O9 ^/ N5 H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ }* ] c x; b continue;% _/ z- H& P2 }$ ~) g, l/ S4 \% Q6 a
lpSkill->dwLevel = 5;
E! g1 H# } |3 q* Z8 L. i2 `4 S! _3 H3 v }. @9 M; e+ _# h! M* g
}
' e. q7 h8 [1 p8 V! K) U0 A; s }: V6 V9 B/ l4 a6 g# H/ i3 E+ b
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 I1 c- x% X4 i7 N" l$ C- ?
if( bGamma )
( A3 U4 L/ {( m# o% i4 | {
( X% e+ n! q8 q9 s5 J! F1 C m_nExp1 = 0;3 l0 W7 h9 A0 F
}) C$ x1 }! b _
$ y! E2 @) V6 _& O
( (CUser*)this )->AddSetChangeJob( nJob );9 p3 U. H- p1 ]5 G# i
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% R1 O8 `4 J3 p
; P2 T# y& R7 t, m5 i( q. O
9 l/ f8 F5 z2 {5 j$ a+ u! t#if __VER >= 11 // __SYS_PLAYER_DATA
0 A2 O. ^0 N. R9 W8 m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- c% K D% w/ i6 x# c1 j
#else // __SYS_PLAYER_DATA
# ~- O5 J B8 A g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: ]1 @$ W* M( E1 W' T5 ^ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ X9 d' E6 E/ R6 K+ b* g
if( m_idGuild != 0 )
5 R- K0 x: n7 k% n g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 @8 P; l9 `2 } u
#endif // __SYS_PLAYER_DATA3 Z+ ]5 R/ Q' ] c8 m
SetHitPoint( GetMaxHitPoint() );
( p& V" [* M3 ^1 y/ X SetManaPoint( GetMaxManaPoint() );
0 I/ [5 I# O1 o8 u5 \ SetFatiguePoint( GetMaxFatiguePoint() );
, C' P+ `) R. k; I. a! w if( nJob >= 1 && nJob <= 4 )
$ t. F7 k% G- N {
3 M, m1 ?0 C5 \7 S' t m_nStr = m_nSta = m_nDex = m_nInt = 15;1 q. Q% D) }! l9 n
m_nRemainGP = 28;2 J% s- ]. l3 v4 {9 _3 ^: d* P
}4 S" Z0 ~/ C2 K5 ~3 H2 v @6 m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ v- p2 s* S* X' Z$ R {
3 F q) o5 D: p9 m% E5 P' k' t m_nRemainGP = 118;
" f6 D6 \' u8 Z5 W( P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ w$ `5 ]6 V, {/ p m_nStr = m_nSta = m_nDex = m_nInt = 15;5 f0 _* S( r6 }- ~. q1 ~3 d
}
6 F+ D0 U7 ^/ _6 T9 U if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ m4 w8 ~- u/ u: _$ K. B( D \ {0 t' Y: e" D- K6 J3 H
CItemElem itemelem;
8 L0 I" [$ [8 n, o, |, \ itemelem.m_nItemNum = 1;% S# k. D0 n1 n5 q- z( m
itemelem.m_bCharged = TRUE;' T: }. y! y$ |* x0 @
BYTE nID;
1 u+ I" n0 x$ p+ ~9 p$ j* D: n( D1 o3 z- m! c3 F
if( nJob == JOB_MENTALIST_HERO )5 {) G8 e- S: F/ C3 w$ k4 u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 o) l. Q4 W6 L) E if( nJob == JOB_FORCEMASTER_HERO )
- F8 Q5 F( v% ^ X l, s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) l, M, r* n# Y+ u
) r( I+ M. U0 Z, ?9 I; J9 M( A) U ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 }+ e3 o1 ~: E! y/ [5 Z, v S+ q$ V
}
" a1 W; x+ F2 z: t e3 Y n3 ` g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. v9 c9 T' q$ E8 G1 y3 e) N9 ? ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% ^4 E* ^* k+ v Q" o+ B
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 p/ f+ K9 |# j
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 T3 U) h! e7 A% Y" F+ m9 G
( (CUser*)this )->AddTaskBar();*/4 x7 Y: r4 a d. Y6 G; h; {- k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% F0 {/ b& t5 }' B$ r3 r#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! r' D! E2 N L% \# j7 `5 A
((CUser*)this)->CheckHonorStat();
4 B9 N: ` F6 e ((CUser*)this)->AddHonorListAck();* W3 W- o- X4 B \% m+ v
g_UserMng.AddHonorTitleChange( this, m_nHonor);" a3 }: ^! p: ~6 M: O
#endif // __HONORABLE_TITLE // ′Tà?# R9 U3 i! N5 `' o% j6 y! k
}5 _1 E8 D! H" C
#endif // __WORLDSERVER& q! m5 ^' A! l; G( Z
} * c' H% D* H L0 p' ^
}. z% K& _1 b6 K( \' \% p4 ?+ _# }然后你进入functextcmd.cpp并添加以下+ z: H/ t( P/ v5 Y$ Z7 H0 h- X5 q
- S% G8 q* H0 D
代码:
& a9 v3 a7 g% vON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). m0 i5 h4 h& f
下面插入 _6 U2 d! d" }& o" }0 u
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . z, q5 E( R+ d( l0 m: H* a
# v, P) l$ \1 {; S. p7 Y然后你去9 c; V' b+ c% L+ j
# f: V3 h6 i$ E2 I& V6 n: a, |
代码:
r. L8 m4 Z7 X$ Z% r+ [- W- r代码
8 P% M8 q/ l' g+ C/ s6 b6 x9 qBOOL TextCmd_ClearPropose( CScanner & s )
) @6 q; r' d$ H) }6 I7 B1 l V' d{
! a0 u M$ ?( K) C# x. J#ifdef __WORLDSERVER
, m/ U0 Y* j$ Q0 K( s& r* | CUser* pUser = (CUser*)s.dwValue;
! K5 n, v, w h* i g_dpDBClient.SendClearPropose();
5 i6 l; I$ }$ [# V" D# y( ?#endif // __WORLDSERVER
8 _6 t5 x" A9 |& ^- T7 g. y return TRUE;
! R# {) u& Z% F9 h4 y}
: s4 W& |6 D* S7 x2 V8 N: u q1 t下面插入1 w* G% W) |* l( f; [$ W3 P
BOOL TextCmd_rebirth( CScanner& scanner )
6 }) _# o# x' ^9 U) D6 n; K{, p0 g7 C+ Z3 m
#ifdef __WORLDSERVER
. ~, P$ l3 D6 e6 x9 {CUser *pUser;7 A( k' J7 C! D( |
pUser = (CUser*)scanner.dwValue;% }4 M3 Q: x. X9 u5 K/ _
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 _0 v1 G! P$ V8 X3 L$ d& I+ hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% A+ z* @0 h4 ^( N+ Z
else7 E+ u: G: N* [$ C6 l( M; D
pUser->AddText("你还未达到重生条件!");
0 n K0 L: b9 n) ]#endif
/ L* I. t) X$ [+ t! \return TRUE;0 ^( V9 ?$ q6 x8 c. m& x# v& i& G
} 4 B" R( K+ c2 f5 t3 P ~5 Z' p
" d) d1 V; [+ R2 U j' l! i$ S1 x! D3 b N* H4 y5 S
6 D9 U' l! }- `5 L6 G! P- n1 L8 j# `) r) u: s$ T
|
|