|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( N$ F# ~" y6 h8 }
$ }8 v: L+ w7 ] t3 f8 N# v9 V! `
Mover.h
- _9 P2 m. T6 ~7 V* S$ x/ v代码:
$ w2 Y2 ?" c" @0 Q, o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" ^, q7 h7 O/ J3 ` |( ]; U
' Q; b6 C2 J6 Q3 Q$ A3 X下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 V( b+ t- @% R0 k! l7 y' R1 W; s% _6 p
然后你去mover.cpp添加& w5 F5 i# ^1 K- t* z0 g+ D
& B! o; W. S8 d& {代码:0 K/ s* V3 m1 c* H4 W/ ` _6 a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ l1 Z U6 `: M0 M5 w$ h{
2 ?2 i7 E w: |+ e5 ]1 W#ifdef __WORLDSERVER" K: D9 [6 m( R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ M9 m; _! y9 q6 t3 f Q
MoverProp* pProp = GetProp();
. u" ~" A0 u# r" `8 z; h if( pProp )
5 Z, Q/ O; Z; o {9 J: s2 a' y; n$ B7 `# Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ u* R" Z' U2 p8 |" f2 @5 f
{4 e& @4 e( t' ~+ `6 @/ }) _
AddChangeJob( nJob );
# v/ M d- i) e9 _" x$ L' G+ a# Z: k }else{# ^ ~5 o$ @* s4 q% w Q
return;
" Q% c9 e$ T" V8 f- ~ }
. r: b) t( k7 X) ]* @( T2 B int nPoint = 0;
! D$ s/ o; j& l- `" M if( m_nJob == JOB_MERCENARY )
6 V! B; g& N; `0 A. {5 N$ u nPoint += 40;
t5 o1 e% V( e/ B# f% S+ O. y# Y else if( m_nJob == JOB_ACROBAT )
0 Q( A0 ^9 O0 a8 `& x3 Q nPoint += 50;
, R [! R; G" }! P else if( m_nJob == JOB_ASSIST )
; Y5 @! H8 ~3 z; A5 ]: l- ?% t nPoint += 60; \% \" n4 g$ `" o! ` y
else if( m_nJob == JOB_MAGICIAN )+ k6 v. f8 ?! W
nPoint += 90;. ~1 }1 Z* Q: O9 a
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* L+ Z& c9 Y4 v, _
nPoint += 120;
2 W U/ K$ L' f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); \+ p, |2 Q: W) F" o
nPoint += 150;4 n* W8 c: e) @4 g
else if( m_nJob == JOB_RINGMASTER )7 ?, Z, W3 `$ l2 I/ E9 F) c5 w
nPoint += 160;
: s: C: e; U& a* C) R! E$ F' G else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- {: C/ o, H, n nPoint += 180;
( ]* y* e9 \! d1 w else if( m_nJob == JOB_ELEMENTOR )
8 n" z( |5 \4 f- @6 p nPoint += 390;6 U) N( a( _, p- C8 w: g6 {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) E- U2 M0 E# o' j: @7 M nPoint += 120;0 h3 Z1 i, ?+ H9 q3 I, m8 s- r
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! Y" d" o+ J4 I3 L" A8 E) |" K$ D
nPoint += 150;
9 y6 A- ]! v( y- s else if( nJob == JOB_FLORIST_HERO )2 E, X/ h* b1 c+ W
nPoint += 160;
# L/ L" Z0 v$ c Z; | else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& d3 U9 o T: W' W) s& M$ [/ j0 B8 C
nPoint += 180;2 k Q; k; o0 T1 ?" V/ A4 y
else if( nJob == JOB_ELEMENTORLORD_HERO )
& \$ Z, z5 W# e0 r6 I nPoint += 390;
8 `8 y: h- S9 U' |0 X6 |4 f6 P/ r; i1 N
AddSkillPoint( nPoint );7 a# S2 }7 F! {0 H% {
m_nLevel = nLevel;
( L: z9 H( A6 h+ B* f. s; `6 Y! S: q/ Z) Y$ x2 f
SetJobLevel( nLevel, nJob );
( k7 a' x7 P* E( h m_nDeathLevel = nLevel;/ q/ _' P0 E2 ~: z0 P# ?5 m$ I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans o1 d4 L9 |# X
if(IsMaster())0 W) h4 f' |: q6 I
{
1 v9 R! p ]* g4 ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* S L) }- h9 o) k8 D8 ? if( nLevel > 59 && nLevel < 72 )
, j: T6 ~3 m* A9 C4 H h6 P; r dwTmpSkLevel = 1;
- [& H& X$ I! P) G1 N else if( nLevel > 71 && nLevel < 84 )+ \4 I2 o2 T- l' k' [9 h) i" }7 a7 a
dwTmpSkLevel = 2;$ f8 _$ m* \+ S7 s: c. k: @( u- \
else if( nLevel > 83 && nLevel < 96 )! S( V, Q h! ]7 i% G$ }5 Q
dwTmpSkLevel = 3;1 |1 O" x8 C1 c* I. e" W+ e& |
else if( nLevel > 95 && nLevel < 108 )8 ^; |$ T3 n: m, C6 C) E
dwTmpSkLevel = 4;
4 a) c* T! W9 k1 y else if( nLevel > 107 && nLevel < 120 )
: x: H; U9 L( T dwTmpSkLevel = 5;. m( p- x2 K4 t ]! A: G/ ~9 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% O8 }; H( K1 K9 q {
5 S+ G) q& P9 k( p' H/ B' ~$ U* W LPSKILL lpSkill = &(m_aJobSkill);
+ g+ j# _9 P" N2 p if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ ]- c3 I. u+ @" m {4 v- I1 w1 f; `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 e/ [/ F; f6 J* o' \8 O$ [. }
if( pSkillProp == NULL )
" k1 U3 Z. e; q+ }% d1 ], | continue;5 W: q G+ I3 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
w" B0 }0 O$ }+ s3 a continue;* J9 L7 J- I5 ~- ]: m
lpSkill->dwLevel = dwTmpSkLevel;
' p3 L0 T9 K- }: w/ {+ Y }/ A* Y; f6 c8 a7 X5 o; @" ?" f
}0 N u* v) ?0 C
}; V" ]4 @1 d- t
else if(IsHero())+ H# m& g7 {# r' v1 c
{6 T6 U# q' q2 z/ q( e& W$ \8 s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) T$ i$ D4 I% p' j2 v/ X
{
/ x$ U& q) a. ~# \ LPSKILL lpSkill = &(m_aJobSkill);8 v% a6 |* V9 G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 ~1 q) f5 j4 o8 A9 |1 q& @( E {
# J# T R# M# B" V0 B1 p4 b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" I8 I6 ]. v9 p, O if( pSkillProp == NULL )
: q5 ^) U+ Z9 \& i3 k0 i8 T continue;; U; d2 W' @& {- N3 o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" a5 G6 r0 P5 J continue;4 n( c4 W" u/ p3 V S+ t3 \
lpSkill->dwLevel = 5; d) g8 ]7 `+ y9 V
}% l% s' w6 }8 ^; L
}+ j" I9 [, |; q6 @
}, \! P/ I# J* t1 n
else if(IsLegendHero())& p; H$ Y9 R/ y# F9 K
{
1 u, N4 C2 D9 E! U0 X# o for( int i = 0; i < MAX_SKILL_JOB; i++ ) . P2 |6 A1 S# \
{ * |4 T& M: J2 g. k% g; k
LPSKILL lpSkill = &(m_aJobSkill);5 r. I8 Z9 F8 N- u6 @1 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ [- [0 C. P$ ~. W {
" u6 T5 f6 ^3 w: Y, V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: k5 p$ q" ~8 N5 h m if( pSkillProp == NULL )
/ R$ ?% A& J% H; ~! b continue;
7 }% `6 z8 O$ v' D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- H h$ I. |0 J _2 m* o$ \9 Y7 B continue;
: o! ^9 `1 L( r6 y4 e' G lpSkill->dwLevel = 5;
6 \6 q$ M2 b. W: x+ B5 J }* W6 z% k8 m% u5 p! Z
}! c! Y2 Q, t2 D1 B: m1 H
}
' M) Y. d5 B, ~8 z% I' Y- D! D#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. o, \( k+ ~0 A! M& u if( bGamma ), H( r6 T7 h, |, K
{
\3 W8 ]* q, q: F r, T m_nExp1 = 0;
8 W$ C2 P) r+ l }! K8 t' ]: m8 q# h2 }
/ a+ q+ H' P+ p" r, Q: ]- H
( (CUser*)this )->AddSetChangeJob( nJob );
) F0 ?" X* o% g. W, m( k* g g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% ^: c% G/ }% g7 u8 z1 W( W0 G0 S: ], z$ M$ R4 D# o& E
3 z2 n2 [' c+ g8 q
#if __VER >= 11 // __SYS_PLAYER_DATA
% o9 e# w! r9 A3 ^0 {' u g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 _% j( [% G& ~1 o9 `0 I#else // __SYS_PLAYER_DATA
: {1 M& t6 W: p5 n7 Z7 v g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. U$ @3 v. H3 \3 k
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ \( }/ P$ `% R0 \( M4 n0 u- O if( m_idGuild != 0 ); Q) b, }7 N M! K. l% y; M* R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 y& I: _5 O% F* z#endif // __SYS_PLAYER_DATA8 o$ O8 h( Y# e: ]: a
SetHitPoint( GetMaxHitPoint() );
" ^ U0 c0 u$ w( q" B SetManaPoint( GetMaxManaPoint() );
5 `& m. P% K; |* u, [ SetFatiguePoint( GetMaxFatiguePoint() );
* V( k5 L; e/ V if( nJob >= 1 && nJob <= 4 )
5 L$ f2 a. J- z9 m {
# y L* x$ E5 P* L" \( f m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 R+ J1 b7 ]: b* M- \6 M2 T! h. n m_nRemainGP = 28;; _7 }9 b5 C! G u
}
7 ~4 |& d! c9 s* a2 J2 z4 D if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 G. R. r# w2 W# \/ H- z) N
{
: z0 f8 o$ R$ u T) t( o4 O m_nRemainGP = 118;
9 O1 z# I! B6 h) z. u //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) w1 z7 b5 d. ~0 Z8 J7 G7 [
m_nStr = m_nSta = m_nDex = m_nInt = 15;; M4 [/ e: A% [8 b% u& r
}
5 p$ d$ w r# F$ ~) X8 T, w, X if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 b! B4 e% U1 O/ L: m5 J8 U0 l
{
+ U) f8 J% J8 u- A; K; s0 L6 Y' m CItemElem itemelem;: X: z2 R: u. _
itemelem.m_nItemNum = 1;
1 }2 k+ s$ x0 {6 C% F, e3 v itemelem.m_bCharged = TRUE;
+ \2 i8 H0 o# ~9 t2 G' Q BYTE nID;+ F2 _4 D2 K+ U! a3 b8 K) _1 `4 k. p
) b i/ S# [" z if( nJob == JOB_MENTALIST_HERO )
: y" A! s9 L# e: U! m$ N2 {4 H: r itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& Y4 K; `" \ T' I
if( nJob == JOB_FORCEMASTER_HERO )3 J% T# g8 u. F: o* q6 X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& W9 \6 a, m q
1 Y, Q: j/ H. s2 s ( ( CUser*)this)->CreateItem( &itemelem, &nID );
! H* i& h! B8 D1 W Z! C }9 F) S/ r2 Q7 ~
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* Y2 w0 a1 V% q! T1 `0 X ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 D, L! Z. M9 J/ i5 d7 F& a) u ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' `/ V! d) @/ A8 P4 i2 n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); i; j& w/ u2 q+ _
( (CUser*)this )->AddTaskBar();*/
7 A0 [1 r% C$ X) K- P' A# p! s; S ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 z. `* i9 L( B1 `8 ]2 O$ h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 E2 c/ U( Y* `/ C# r6 }! H
((CUser*)this)->CheckHonorStat();" |5 V1 Z& S N# z" o( R; }
((CUser*)this)->AddHonorListAck();% T. ?, ~) X( L4 D
g_UserMng.AddHonorTitleChange( this, m_nHonor);$ A2 K7 I( ?0 S$ j
#endif // __HONORABLE_TITLE // ′Tà?! d% H. ^0 |. x/ K/ v4 H
}" x& h. ]1 D8 l E4 Y- P& n7 _3 x
#endif // __WORLDSERVER, `3 o1 B) l( g. l) s; M# Z
} 9 ?) K) B9 S# A* e. M0 H
) e8 x" ^" B0 I+ g+ e# _5 [
然后你进入functextcmd.cpp并添加以下& Z: c8 D& \2 H5 t! X/ t
1 v# C, m0 s" @& S" w
代码:5 h' z2 I/ }% Y2 t* D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 P6 z; L: z8 Z; U; x( N$ S下面插入. Q! S$ o& v* t, x$ I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 A h+ M K! D6 m! v8 G& _) V ]/ k1 }5 |, c4 U
然后你去+ b' q4 E1 c4 A( [ Y* {9 s
, M' e4 S6 B9 `代码:9 D! r2 G2 i! z9 q: H$ J
代码! N; q% O7 Q" F
BOOL TextCmd_ClearPropose( CScanner & s )
' A9 m- N: ]* U/ p{
% m% T5 m6 }4 _#ifdef __WORLDSERVER1 X; h6 |& a; u1 E0 v. s
CUser* pUser = (CUser*)s.dwValue;1 a/ n) C+ D0 w
g_dpDBClient.SendClearPropose();9 \. S) m$ Y$ M2 Z; I1 l9 i& g- h
#endif // __WORLDSERVER
6 B/ Q8 m" g" _4 | return TRUE;
( t4 l, C. _( b7 y}7 f0 e v: ~* b8 ]- i4 `
下面插入
) N: ?/ j; G% o0 V' N8 ABOOL TextCmd_rebirth( CScanner& scanner )
2 f3 X9 d+ f8 U! G; q/ A1 c* E{% k. @" d& ^; q5 H4 ~, O
#ifdef __WORLDSERVER
5 F# e) m" M7 K; Z8 H6 A9 VCUser *pUser;
* `4 W2 M+ I' c& x" y9 w( J' B( wpUser = (CUser*)scanner.dwValue;7 l4 z( B6 \- }
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 T, }$ N+ N0 i8 T0 H. ~, o
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 e& b0 A3 n% n2 E ^) Xelse
/ x4 C: r0 ^% I! `* }4 [) KpUser->AddText("你还未达到重生条件!");" I3 f: c, o1 Y: a6 V" K& S
#endif
$ K/ L, F R; d! |% Freturn TRUE;9 v. k9 ? G) Z/ w6 W- O# J$ {1 q
} . _4 J! b$ I \* ~0 E
1 a6 F; s( M7 _2 l1 o3 j1 Z; z9 o; {
. [9 p0 Q8 H0 C5 e3 V! f/ Y: k
$ `$ A9 n5 V/ H& C |
|