|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ H" S6 r1 V$ [. j& q2 U' t; P6 x/ _. T
Mover.h S S I8 n+ ^) N q1 Y
代码:
* t5 F; Z+ r3 Q4 @找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& [& z6 y' a6 ^; C
, k5 v6 u8 z1 c' Q6 h下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 S$ c# C. c9 A+ C W8 I
+ T' \" T/ T5 e. T' Z. i
然后你去mover.cpp添加
7 q) w' i& G, J" }' L) l% N# L2 _. D0 h1 l7 q% B! F8 a1 N
代码:
4 ?7 Y- q$ L: ^* @; zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 t9 n/ z6 n3 [. I6 W1 A9 G
{
* O1 ?# {* |- D1 @#ifdef __WORLDSERVER5 j$ ~+ R; b* `. Q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. r: Y: Y: j# R9 r( y) w7 d( u' @ MoverProp* pProp = GetProp();* C& @4 D0 k7 E2 {# Y1 l: s$ {
if( pProp )
, G) Q& m9 ~* Z9 s# Z( i. [# J {1 C) b a$ J: H
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& C& \: p; ^. s& e) z; m+ p O0 W
{9 ]! q3 u, z% y9 B
AddChangeJob( nJob );2 n! v6 \, m# A5 N) p. X% ?
}else{. u, L+ u4 A6 j, t2 m4 d5 Y" f$ N& x
return;
& l% H; W! P9 G9 r' d' } }; a% O' ?' m: p( j
int nPoint = 0;
+ O: t! t+ T# Z6 B2 q& P, j2 ~: H if( m_nJob == JOB_MERCENARY )
' R3 b6 m$ U$ S, ~ nPoint += 40;" l3 o: [9 F% i! c9 U
else if( m_nJob == JOB_ACROBAT )
$ k6 O7 L$ r7 B" }, q2 b nPoint += 50;
# n! b* x! B8 p else if( m_nJob == JOB_ASSIST )9 T& t: t1 s! P5 w$ {
nPoint += 60;4 V3 N4 }' F' F9 {8 K1 ~
else if( m_nJob == JOB_MAGICIAN )
/ H' A9 C- o/ G9 g0 e+ S: Y/ |5 F nPoint += 90;2 O# A9 c0 Q4 ^8 i" y7 B- T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) m+ ^7 d/ R7 ?# A- e$ `9 b nPoint += 120;7 K0 [, X8 P& \! B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" h6 v* o0 R" p% ]' L! M
nPoint += 150;& i6 h% ~* k& F
else if( m_nJob == JOB_RINGMASTER )
, W3 S" K- O" U2 l+ @! S2 a; B8 a/ v nPoint += 160;
( i: [2 @4 W/ S9 b9 p! O else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 B9 k2 D; `$ z
nPoint += 180;0 S& @: l, o- [ k* _
else if( m_nJob == JOB_ELEMENTOR )4 f+ z5 X- P" M1 m
nPoint += 390;
, `; } s1 w9 k4 J# W else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& _/ Q. p( H: i, g/ u& G' Y; P nPoint += 120;
5 N. T& |2 d" F$ L9 M" _ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- S1 i% c0 _ Z1 e nPoint += 150;
: f; M( a3 J' Y* m7 ?, u else if( nJob == JOB_FLORIST_HERO )
( a( ]" R) u& V f nPoint += 160;4 R3 {% ~0 _2 n- H m- A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, v! U( w# H5 S5 R: U6 C1 B; D nPoint += 180;
+ j; j( {, o, s% B+ U else if( nJob == JOB_ELEMENTORLORD_HERO )2 ]. |* n- F. {% t' r
nPoint += 390;. ~( A( v- a) x' U* a
' [9 `. X1 Z- N0 s/ x9 c AddSkillPoint( nPoint );- V a) |4 \; b& V4 [
m_nLevel = nLevel;
! t" f6 ^+ E$ P" i# B! K& q$ ^& F
4 E- ^+ a& |7 F1 T. m/ T3 x SetJobLevel( nLevel, nJob );8 b8 ?* ^, t% e2 E
m_nDeathLevel = nLevel;
' F& x- c- X) R2 K- W#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: a3 u I: K. \" t& [9 A0 @
if(IsMaster())
O7 V' g" P% B$ B {% v7 f1 _* C8 o+ o Y c
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 S9 d+ R+ }9 J! y1 a: @4 \ if( nLevel > 59 && nLevel < 72 )
: X* [; ^, n7 g! [9 U$ M9 n y4 R3 @ dwTmpSkLevel = 1;
2 |9 N& [2 m6 `$ k% [+ q4 b5 ] else if( nLevel > 71 && nLevel < 84 )" l" r- F* Y& W! ]. K
dwTmpSkLevel = 2;9 @ T9 J' P, Z0 w: u7 Y7 W
else if( nLevel > 83 && nLevel < 96 )9 C; E, r8 R7 _# [
dwTmpSkLevel = 3;
- {1 q: @4 N# Q8 W% p else if( nLevel > 95 && nLevel < 108 )
& @: Z, P0 F. h/ \ dwTmpSkLevel = 4;
4 v2 D+ {9 y0 k/ f else if( nLevel > 107 && nLevel < 120 )
/ _" d B0 {1 a/ x5 ^ dwTmpSkLevel = 5;
" X4 N" l8 H$ s for( int i = 0; i < MAX_SKILL_JOB; i++ ) : G ]! ` \' C! n" O6 Y
{ ! }6 j* v. m" B. A, |+ r) [
LPSKILL lpSkill = &(m_aJobSkill);
% Y5 U% d! ^* m- ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ [$ t7 B# Y) r: K8 u5 H4 _7 e* ` {, I) P; }! V: J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 _6 c6 K7 E4 k. D/ ?0 t5 S, W
if( pSkillProp == NULL )2 R- e+ |! v! X: @) H. m% ~
continue;
1 Z ?6 x" p- F' c! }* \2 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER) y- J! h! o M D% L% m
continue;2 x1 O4 F. S% N
lpSkill->dwLevel = dwTmpSkLevel;
7 @, S0 n5 u# L* M( F* g& b }. q/ X9 ?2 a4 ^) s
}' C1 C p# t; Q* I9 d8 |
}1 }4 u6 x9 x8 w4 {/ H8 ?
else if(IsHero())
8 ?' S8 E' J) W {
$ }) v+ Y: W# ~6 i | for( int i = 0; i < MAX_SKILL_JOB; i++ ) g1 H0 _* B$ B; V
{ t- f& u* b5 f# ^: o' [# I0 t
LPSKILL lpSkill = &(m_aJobSkill);
- [, g+ l" y q, ]1 s/ ~* p if( lpSkill && lpSkill->dwSkill != NULL_ID )- P( p/ v. \+ a/ O1 V" X
{
/ b( X/ C$ m$ o& \6 a. H; d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' j# K& F+ O' b/ F2 Z
if( pSkillProp == NULL )
% y. v: U( p) @4 c continue;1 a* t% m: T: o$ ~, U8 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 p! o. b o/ [* z, P
continue;( [ Y5 F7 m& U! p! w6 w
lpSkill->dwLevel = 5;
t: W+ P. _1 }- S( o0 ] }/ k( o+ J3 A# @: P5 N Y( e
}
7 t. s M: B* ^! N: Z- O8 P. { }+ E0 X T' ^' K% @7 p7 q4 z+ ?
else if(IsLegendHero())
6 e3 T& _' s7 a( ^5 c {
- j: J5 c: Y5 F$ u for( int i = 0; i < MAX_SKILL_JOB; i++ )
! }: \/ D; j; u { $ l2 ?+ i! i) `9 O2 }
LPSKILL lpSkill = &(m_aJobSkill);
- f! c( P6 Z0 d if( lpSkill && lpSkill->dwSkill != NULL_ID )
- M W% o) L _. T, ?" r {; P/ Q' X1 s, g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% @5 R3 K9 L6 t) e7 t if( pSkillProp == NULL )
1 T7 T G6 }2 ~. B, S1 g0 B: v, e q continue;
; i/ w' Z2 A) f) G3 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( y9 q$ k! L/ p, n: i continue;
! k' B# ^- u+ a lpSkill->dwLevel = 5;0 J( C4 E7 u9 z
}7 g. N8 V( K, e' A5 Z; y
}! V- @" X2 j$ E
}
& C" e! S9 A/ \; R6 f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- l0 v/ ~6 K; e- ?& H" J! n) T if( bGamma )
G6 {, f( w' N( [# m5 t4 Q" ^ {; q& V2 m6 i2 ` [. H, L
m_nExp1 = 0;% h3 c6 x, g' _
}
0 w) G# J% h# Y, E2 G: a' ~
% W0 v! z3 K5 r ( (CUser*)this )->AddSetChangeJob( nJob );
7 \1 c, i. }9 B, e' m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 u; b& Z8 O4 ], w
+ T! _5 u9 c; @6 i/ N8 V& R6 M0 |5 t! \2 R+ ^$ N; {3 O) ]' e
#if __VER >= 11 // __SYS_PLAYER_DATA
5 l) D! t# F$ X& p' p g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% `2 [) _0 O9 M/ W0 I9 {#else // __SYS_PLAYER_DATA$ L& I% M/ C3 m, K& F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; u5 ~, j/ j; |9 Y7 N8 ~ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
c9 u8 ~2 e# s3 G$ ]. k/ J if( m_idGuild != 0 )4 F* i" N! }+ b9 k
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ F, C: G, {# y0 w5 ^3 a#endif // __SYS_PLAYER_DATA z# a1 O+ Q" w7 m7 d: v; \
SetHitPoint( GetMaxHitPoint() );
8 ~, C( K) `3 j. z% L* B1 I SetManaPoint( GetMaxManaPoint() );3 v5 ^1 s+ r0 o; O4 s! e
SetFatiguePoint( GetMaxFatiguePoint() );0 s$ i: ]% H1 w. k! L
if( nJob >= 1 && nJob <= 4 )4 L: F% [+ v; l5 Z6 R$ o
{
1 K7 n0 D8 G2 L6 `8 m m_nStr = m_nSta = m_nDex = m_nInt = 15;& G0 t7 ?; ?$ b8 |$ Y
m_nRemainGP = 28;
2 I; A& N% s$ g0 h' e( F }( i& Z* c. L$ A+ {- W7 t; N
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 Z7 u7 k. w6 J2 I, m' [/ @ {
# \$ i% M. {! O: } m_nRemainGP = 118;# }% c! r5 N2 v7 ]. q' M
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( L% H: h. b4 c4 W* a2 b" [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 q8 K2 V2 L7 C: J* J$ V8 v$ I }0 k+ K* D& i5 a# o& k
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* l9 F( x% G6 A. ?0 Q
{
; i( e9 R r, E4 |+ l" O) b CItemElem itemelem;
* p' b* {6 r* ]: X! ~" n7 n itemelem.m_nItemNum = 1;
5 T- @$ M; B2 w; R# m4 V5 i itemelem.m_bCharged = TRUE;% u ^3 J+ U1 q3 @( N+ E3 f
BYTE nID;& H' J5 w& ?8 u7 u: I& A% a o
) q. p. `5 w3 a! q: V& g& I& J) m
if( nJob == JOB_MENTALIST_HERO )
3 \; k) I# j& C* O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 p4 [, d2 F T x$ I# s: b
if( nJob == JOB_FORCEMASTER_HERO )
% h- ~2 T$ W1 g! P( } itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; q+ r2 E5 u& w2 o# r5 x: U" T1 l8 ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );0 |' B9 k a$ u
}
3 H0 q! Y" G/ x9 g g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% O# B, v, h' }. B) G' k6 C, q9 C7 e% [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. _! h( Z! c. p2 I0 |# B1 ?/ ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 p1 e% G4 d) c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) I7 H: {1 N5 X6 m) G% T( O7 G% s
( (CUser*)this )->AddTaskBar();*/
/ }1 g# _1 r& s5 d! C1 i ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 \2 P' M, J2 B: ]! a( B* N0 J; K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ B! m. a( J; w/ U
((CUser*)this)->CheckHonorStat();
$ i2 T) Q* p }& h2 }6 G ((CUser*)this)->AddHonorListAck();
2 k) ~1 T/ ?) E g_UserMng.AddHonorTitleChange( this, m_nHonor);
# o _' {- n P#endif // __HONORABLE_TITLE // ′Tà?. s" D4 G! n n
}
0 H0 X- v6 \6 @7 L# |$ [, R- L( |#endif // __WORLDSERVER
! @4 Z% Y5 C8 w2 N} + j) T& t: F* w4 M
6 K9 B7 ^* M; e) ] c% k- d" {
然后你进入functextcmd.cpp并添加以下
( m0 k6 z9 U: N% S' t4 `6 ^& O1 T$ P& Z; m: a: ?1 e0 m/ ?1 R
代码:
/ y. s) E# r8 DON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! l0 I$ s: v8 ?9 c' Z; P. Q下面插入
( a/ ?+ O1 e F" E: fON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; `1 L$ s% @& g1 s$ x- c
. ]4 r% L. |% X
然后你去( B( s7 k+ V9 {8 c
& H! b' q# {' d! O" ~2 G
代码:/ r, }; I4 }0 H0 a$ L" y
代码
! C; O) P' `1 N. }' CBOOL TextCmd_ClearPropose( CScanner & s )+ S. y% l. h9 x9 {
{" F6 C; i& V) h2 B' j7 g
#ifdef __WORLDSERVER
" X0 r2 s* Q- \ CUser* pUser = (CUser*)s.dwValue;
2 d4 t9 h4 ]! D! c1 S g_dpDBClient.SendClearPropose();
: N: o7 b2 k2 M" ~8 x#endif // __WORLDSERVER
/ q/ t- B w- O+ ]7 q return TRUE;
) W; ?! ~9 f+ U/ s! _}, R& h- L* j+ s# H5 _
下面插入6 J! t" {$ H U* t) T
BOOL TextCmd_rebirth( CScanner& scanner )4 b8 S0 N# u7 v' B7 _. z
{
4 T- E d) ]- I0 b% @; W#ifdef __WORLDSERVER
$ P9 } ]# ?) zCUser *pUser;
% z3 w/ ?; L( S+ |5 c6 y9 f4 GpUser = (CUser*)scanner.dwValue;/ G4 F" ~ s. l2 e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, O% ]6 G5 r" B3 c7 opUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ z2 m4 Z2 T/ \& W, q; telse
& E7 w; D& A! z* | rpUser->AddText("你还未达到重生条件!");
% Q7 M: ^& \% A! M9 V#endif
( d9 V& r# y- M8 y6 N* lreturn TRUE;
3 Z) Q* m1 U; s0 C) o2 c9 E}
2 o% N, ^( C- w
; [8 F( P# k! J0 o% H2 c. t. j, \4 x8 ]# m, q# `0 G
3 V: S2 J+ R- e4 s4 Y) Z& l' M5 m: n# h! p- p
|
|