|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- t$ Q- m2 ?, s4 A
" |, a6 L2 ^ X4 q* tMover.h* C' z( Y4 {2 {4 F2 M1 n, T
代码:
. q3 _- i' k, z) }' c' S找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 S" z% r2 v( a/ W: s
% m2 H7 V5 J$ z5 I9 C下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + ^6 W' K @1 E8 V* I) r4 v
+ e/ P1 c0 l' t c然后你去mover.cpp添加8 M, Z" [! s) n( b3 i, I' {9 C! _
4 I* F. { u& ~# O3 j' h. N( |+ l代码:
. I- z( j! y+ {2 ~4 i6 D ^void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- t1 I/ a8 f5 {: N2 r{$ o2 A. p* x8 x9 t& P$ i1 [
#ifdef __WORLDSERVER+ f* O9 g8 o L* o( |7 ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* J7 @& U" z" W( x( y7 d MoverProp* pProp = GetProp();
0 h a/ T3 r4 g! t3 b% ~1 N. J) d8 `8 w if( pProp )
0 \2 E/ Y) c7 C1 O; @0 I4 Q {
4 r6 ~4 F3 X3 H0 A if( nJob > 0 && nJob < MAX_LEGEND_HERO )" w2 F8 {5 C/ D) e: A2 p0 o
{4 `% @1 i/ r; T, r/ v
AddChangeJob( nJob );6 I' U) J- F( j
}else{: R( G3 v" Q% |$ g/ w9 C. D
return;& v& E; C1 C) U' _+ J
}
0 {: P, ^- p. | int nPoint = 0;
( p3 S0 @" ]' u+ u if( m_nJob == JOB_MERCENARY )
- f4 _! O) S0 {" M# z$ c Y) ~$ J nPoint += 40;. }+ d3 H8 B! i# V$ G j
else if( m_nJob == JOB_ACROBAT )6 J: U+ K0 e; \5 y
nPoint += 50;
- _* D3 I/ ^! M; v9 s' C else if( m_nJob == JOB_ASSIST )
" y6 e% l s! ]7 o# e; W# [ nPoint += 60;% G) Y6 v8 s# S- B" x/ W
else if( m_nJob == JOB_MAGICIAN )
5 q s4 h) I3 T7 V nPoint += 90; R/ O; l. j! C" i, h7 |$ d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )/ @5 b1 ?# Q4 e) b; C n2 J
nPoint += 120;
# S- u: Q, O: Y+ |6 [ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# q. _0 l8 C& I8 k8 I9 f
nPoint += 150;
! i$ ~/ O8 Y$ m& p, `5 L% U else if( m_nJob == JOB_RINGMASTER )
2 J( u# E& e, k' n* e* ~6 { nPoint += 160;
9 h4 N# U- e# P$ c else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# i8 A$ \5 F# I( A. R7 h2 i) B0 S
nPoint += 180;
j y2 @6 k, \ else if( m_nJob == JOB_ELEMENTOR )
8 i6 `4 t+ D- ~6 I% q" S9 j' V nPoint += 390;
' J+ q, Y6 B8 b1 Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ A6 X! g7 A; m6 M nPoint += 120;
. B! t9 Y& v$ J& d! k else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ s1 }; d m' f4 P nPoint += 150;
: c1 R O' ^! m1 S* ^ else if( nJob == JOB_FLORIST_HERO )- e2 h- `. t- S. }% s
nPoint += 160;& U0 c: a/ u5 q3 X( j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ P$ h% c2 N9 j8 V) o nPoint += 180;: {7 }! |. F$ s0 P" }' s# j! C. h1 N# I# A
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ l/ [2 o: g, A7 T) w# b% a nPoint += 390;1 M/ h; ~! L5 l; n# L% S% X
! U. z, B. T2 N6 E# R/ G+ p& X
AddSkillPoint( nPoint );
) D9 x& K3 z; t; D: M9 J% t m_nLevel = nLevel;% j3 n/ S1 w9 Q$ @, E
6 v% W+ q& I$ o( C
SetJobLevel( nLevel, nJob );1 g/ p% v% q/ J9 j; ~% O: J3 V
m_nDeathLevel = nLevel;
* Y; l) a5 t: Z J8 o3 f#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, U+ J! ?* x3 _6 T9 N if(IsMaster())
4 u0 S5 s! i; O! u+ m/ B {
) x m3 u& i% N6 ^6 O3 T int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 ~) z, i/ c6 @# g) y" s+ A+ l- t/ A
if( nLevel > 59 && nLevel < 72 )
3 U+ ]8 q+ C6 S5 d0 `3 R3 N dwTmpSkLevel = 1;
( B' i; t; X* R0 f. |' f+ E" Z else if( nLevel > 71 && nLevel < 84 )
$ F/ D5 W' j% e9 W, w& d dwTmpSkLevel = 2;
* `, L) D1 B: n else if( nLevel > 83 && nLevel < 96 )" T4 @5 p2 P3 @3 ^- o2 h
dwTmpSkLevel = 3;. P# V$ K% E- ^( w+ ^
else if( nLevel > 95 && nLevel < 108 )* m6 i) ^( P1 O$ i, ^2 K) p
dwTmpSkLevel = 4;0 F. s( F( _3 ?/ _4 m0 _# J
else if( nLevel > 107 && nLevel < 120 )
! l$ W2 }2 B2 Y dwTmpSkLevel = 5;
0 p: ?8 d; k. f; S6 I/ z for( int i = 0; i < MAX_SKILL_JOB; i++ )
* g0 r9 W5 ^, _" R, V0 x' C* v; \/ z { 2 G; \9 ?4 }8 G6 `6 }; t
LPSKILL lpSkill = &(m_aJobSkill);( \) j0 u" B" Z0 g$ ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )% g7 Q; Y. g9 _; p. c' j$ ^
{# ]' N3 I M9 f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 i, P% L! W1 G- S) u
if( pSkillProp == NULL ) k& p! E/ F% e
continue;
7 D1 f& {8 F" j3 s) `& W. x$ L if( pSkillProp->dwItemKind1 != JTYPE_MASTER). w% y5 f& O+ Z; a% ]6 @
continue;
2 Y5 \! u) U- @# j) m lpSkill->dwLevel = dwTmpSkLevel;8 D# ^" h0 h& Q2 P1 w
}/ Y) `. o0 i3 L* N! w, P
}
4 B, x, U. ~" k3 I) L9 C }
3 @, R0 X1 T8 X3 ~9 M8 r7 N- [ else if(IsHero())
! [ J: ]0 V" \0 T; c# o {
1 |4 ~$ b6 W' B" I1 }" f( ~/ R z for( int i = 0; i < MAX_SKILL_JOB; i++ ) R! Z) y% E- G# z+ A1 a
{
$ E" C: x9 O( [ LPSKILL lpSkill = &(m_aJobSkill);; J! G1 c4 y& h( f) f. q: t9 c5 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 ~# q+ N, d' `" r- G( @4 E {
2 y7 ?/ c4 ~/ T" Z1 P( ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* Q; }5 g$ R7 v& \ E! i9 V if( pSkillProp == NULL )
! c% S1 I2 z9 ^7 C. T( L continue;3 f$ E: W* W. C; ?0 i. J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! r. i7 |' {% S! A: U
continue; u) r) G) Q, D0 N
lpSkill->dwLevel = 5;
5 Y& c2 {1 H# Y q. f. f3 T+ V }
5 W( R) Z& L, Z) c# t! F g }
2 D0 V) ]# @( ?4 N! i1 P; U }
: {3 e; z1 N. A' _+ `5 `/ ^ else if(IsLegendHero())! v- J# O |, n3 A# @4 m+ _* s# ^
{
: y- k; ]2 H" h* ^; p for( int i = 0; i < MAX_SKILL_JOB; i++ )
: ^+ p! Z9 a0 A5 K) g {
" n( R! b6 r: P LPSKILL lpSkill = &(m_aJobSkill);) q! [4 e3 ]* I$ J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# N8 J. ]1 Y) a; Q {
5 Z" ~8 | y) l! |) T! Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 I9 Q, \$ v; J: e1 [- w, S0 B
if( pSkillProp == NULL )9 {2 g: K% w( N% H4 M" b
continue;9 X; D- f) B" C+ x6 z/ l3 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 Z9 u4 I! _6 _- _! Y9 n continue;
9 G5 T- Z7 }% T lpSkill->dwLevel = 5;
+ L2 {: n7 ~8 N }; \2 \$ w& b7 y$ t1 R& {
}' c( q/ v) o3 G* U5 P# F& T$ |
}( N1 N- D1 u _/ \
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, ^# \+ W" P9 B& Z
if( bGamma )
% A, _4 X, v$ ^- h {
# j" g+ ~# n8 Q' @. _0 R& K! u m_nExp1 = 0;/ A& ^" Q2 q2 ^- C0 ~
}
+ Q% P6 ]; V4 `+ O6 Y. P8 m/ Q
# k5 T, s: e p; c8 p ( (CUser*)this )->AddSetChangeJob( nJob );4 ]: N2 W5 w* k* D
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 c/ H5 h- B. ]5 P9 J& m0 A; u
3 _2 K' B5 [2 d4 m$ u# U
3 M: `2 V' g6 f$ z$ q% s#if __VER >= 11 // __SYS_PLAYER_DATA2 M5 d2 u7 _% S4 M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) I' a# i4 h# o7 e7 f$ C0 ?+ T#else // __SYS_PLAYER_DATA& G; B. ~, x/ Z! _' [4 ?; B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% p; A4 p- S( y+ I8 h: ]- |7 ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 j/ k& b4 |* P+ o+ H* @ if( m_idGuild != 0 )
+ b) o' Q6 i% p2 S g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, P8 l6 F& [4 F#endif // __SYS_PLAYER_DATA
& F: o5 y3 w! z/ Q0 b- Z SetHitPoint( GetMaxHitPoint() );
1 Y+ a4 T$ Y7 D. t7 f SetManaPoint( GetMaxManaPoint() );5 F- U `6 o1 M0 S# ^
SetFatiguePoint( GetMaxFatiguePoint() );. G; m" y, i1 w
if( nJob >= 1 && nJob <= 4 )4 d0 r( N5 P+ q
{, W2 A% P) T; N2 A \$ j+ W
m_nStr = m_nSta = m_nDex = m_nInt = 15;. }' @ [* Z7 @/ W
m_nRemainGP = 28;
3 U/ t# {. n5 Y: j }
7 W) ~3 Q7 I' c# `4 \6 G$ z9 q7 ^ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 w7 d" f E6 E8 h' m. e' f. y
{
2 i9 b k# _" D |1 t m_nRemainGP = 118;! j( f5 {& H% n+ N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ |2 n* I$ @2 N& u7 J) J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
e8 K' T3 I: Y$ E }
# J: m4 c8 @1 J( m5 H if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 Y6 s, b, s# o6 l
{% @+ }' N7 [; w" n# C1 t
CItemElem itemelem;0 q- c: a3 f, E1 N# u' R# e$ s* [5 q
itemelem.m_nItemNum = 1;
4 @# {( b \+ K0 @ itemelem.m_bCharged = TRUE;) f& F6 U; p" Y
BYTE nID;$ v9 O0 R+ t% f" d5 l& K' Z
7 P2 }" n7 u: e" F! Q if( nJob == JOB_MENTALIST_HERO )
) b3 y5 z4 z& E- H8 o( m V% Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 z/ }* M, k8 @- m- N. K' z4 y
if( nJob == JOB_FORCEMASTER_HERO )
O: P4 k/ e$ V itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- _! m2 Q7 T! F- F
# P4 I1 C+ P/ b, n8 x3 q ( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ a; r' S; c# x8 C4 b }
7 _* b8 k' s3 q# v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) g9 o+ x3 j5 d1 d4 J( L1 N4 h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* F) E' m- E+ x7 p% e# ~ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( z' u* @/ O7 y4 {$ P2 k /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, D% N3 E& t8 e- Q& C
( (CUser*)this )->AddTaskBar();*/9 z) F- t( U$ p! ^ v
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) X5 i0 D* w' M: L1 u5 r) A- X
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 d' b7 K# x; f: } ((CUser*)this)->CheckHonorStat();' l0 [" Z4 [! X: g: S
((CUser*)this)->AddHonorListAck();
9 G3 l3 w7 h2 x- ~9 D% \7 l g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 e! \& S7 F }- u; J- k6 Q) e#endif // __HONORABLE_TITLE // ′Tà?
+ m, W N1 A t |9 P( [9 a, x6 T }$ Z# M: g7 o+ G/ o' m
#endif // __WORLDSERVER0 [; h& K" Y; u& V0 j- A
}
2 R7 S! X J9 R4 u! o9 G6 h* Z5 H" Q6 _' r9 ^' ~
然后你进入functextcmd.cpp并添加以下
9 ], P- M+ k; ` n4 L6 W Q. h
- Y* Q# V# X0 h6 y# r6 V; E代码:
7 Y: k3 c4 y$ f1 B( ?ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 z; ? K8 U* m) b* b0 d/ Q8 B下面插入
) M$ F; M# o+ Q) G3 Q- O. [$ hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 x; V9 [$ e% _* [2 l! _4 o
& V6 ^+ Y6 {* u! w/ ~8 T, n# ?然后你去! o4 ^$ }0 Z; B4 r: ^3 B" h2 @1 S5 r
1 |' \/ {- O4 S
代码:1 F2 r" p8 v, O4 \7 @' p
代码
* G l, U9 ]& ] d: U6 [& SBOOL TextCmd_ClearPropose( CScanner & s )% Q" I" d% w3 G% Y8 _
{
3 r% ?* w& x; b' z#ifdef __WORLDSERVER
2 B- B' b( d7 _ CUser* pUser = (CUser*)s.dwValue;: M& [* n! O V5 A+ I; q" t
g_dpDBClient.SendClearPropose();
4 |1 B; J* A; P% F7 c#endif // __WORLDSERVER
6 j6 d* o& D& o2 [/ G, } return TRUE;5 e- Z }$ H7 [& ]4 I# n
}. g6 Z/ \6 A5 d! z/ H/ Y
下面插入! R- A$ g9 F( i6 g0 W0 S
BOOL TextCmd_rebirth( CScanner& scanner )
6 h/ O7 ~4 y$ E% Y# B. k: Z{4 c9 A! X( t; J1 |* c- h; q" n
#ifdef __WORLDSERVER4 z* i+ U5 O& W4 \
CUser *pUser;
% B& g, N+ u+ O" o" ypUser = (CUser*)scanner.dwValue;
* v/ h) h+ }% L1 Y& }if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 G! n% V4 B; Y! V9 R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 Z _0 _ w5 ~( Telse
+ _' R. N% h" ypUser->AddText("你还未达到重生条件!");
: h6 }- @* l3 r# K& z#endif
5 {) P4 x: P1 K$ _7 |& m3 Z! Y+ lreturn TRUE;
- Y. a1 p% l2 U# V' g} ; m' G$ T; c- _" p) A
' d* I' X! H: Q: I! n |
( N5 w2 {% C+ r: Z" w& f# n; O1 X& `9 ]% p7 m, Z
& |( o" w( F5 s& F
|
|