|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 a( `2 \4 ~$ m% |9 P) i. M! d' ]2 A3 G) M
Mover.h" O" H# X/ g* q! r8 r
代码:
0 u7 C) d% Z, C% i2 A) n) \& s; _找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 J% _/ D j" ]. s8 K
/ P- m& I. |6 T7 C7 [/ X; l下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 q: i: t0 |! @- C* Y, L7 ?
; @* R6 E+ P8 u4 ^
然后你去mover.cpp添加8 @4 K% C6 ~: A# _ q5 Q9 \
6 u v/ E- \( n* f. o代码:
8 X! N) q. ?( ]( M# l6 C4 {% \void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& t. G M/ }1 D2 d% }; E8 P{0 u2 D2 @' G$ {$ v
#ifdef __WORLDSERVER2 c, I, D1 r* [" B, X7 ?; p- P
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 u. h0 C8 ^1 N
MoverProp* pProp = GetProp();. l* K3 ?+ w" b6 _: U0 l0 f' p3 _
if( pProp )( `6 S; _% P8 g% a" K2 i
{
% e. N$ i2 ?# i$ q" _$ k% R' B if( nJob > 0 && nJob < MAX_LEGEND_HERO ): O) A6 j- J# i0 e5 q9 k' t1 l, [* P
{( D0 V4 b/ b4 M% |# Z2 f9 Y5 z7 ^
AddChangeJob( nJob );
. R, l( |- W4 c+ _* s$ P2 Y" Y }else{5 Y4 g% L) V- J
return;% J" k3 z- o; \. u
}
6 ?$ d4 z, X- v7 ^' Z* T. \. _) M$ B int nPoint = 0;
3 a4 |+ G5 \, A3 e% Z if( m_nJob == JOB_MERCENARY )7 V% n' A: @5 ~. M9 V( m
nPoint += 40;( ^* l( a% H2 L$ h# x
else if( m_nJob == JOB_ACROBAT )
. a5 Y! Q) z' H: W nPoint += 50;/ |: R" f" a: o1 u) v
else if( m_nJob == JOB_ASSIST )
% t# b- R5 ]* m- s) T3 T nPoint += 60;
1 _+ f6 K! t+ T: ]2 l- T% Y else if( m_nJob == JOB_MAGICIAN )
( M, ^( q( m; O& u7 U) j nPoint += 90;# J% Q4 `- }5 Z5 T5 r/ A$ ~
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* d% Y3 }$ C% h$ E8 S) @ nPoint += 120;9 R. w6 s w# o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )1 o% g# V+ R8 \
nPoint += 150; u7 T: M" G; ^! G4 v5 N7 y
else if( m_nJob == JOB_RINGMASTER )! C2 D) r: ^4 n* Q2 ~/ `3 F8 C E
nPoint += 160;
6 s( `# _+ S0 B/ ? else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 v& h8 c( F+ H- K7 `- N7 h& B
nPoint += 180; E, A' U1 E& q% o+ S
else if( m_nJob == JOB_ELEMENTOR )+ ^) i: d: Z, v/ Z' K
nPoint += 390;0 H7 ?/ w7 \- T. H
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* x; P3 t5 n! {& K/ C) G1 _
nPoint += 120;5 G, Q# c3 J: g; O, J3 h
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 e; k- t9 `0 d# d: ~ nPoint += 150;. Q1 x) `/ p$ k% S# L l
else if( nJob == JOB_FLORIST_HERO )
! |) L. y! `- @) M( B nPoint += 160;. I0 a4 l3 b" d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% L; U4 p: U- X+ D$ f' x nPoint += 180;! f" p8 Y6 w- p: R
else if( nJob == JOB_ELEMENTORLORD_HERO )& Z% y5 e- ^7 `/ R. X5 j
nPoint += 390;
, Q6 Y& T; p! s6 X! @4 i
: A n, u7 P/ h+ I AddSkillPoint( nPoint );
- n, g' E; [* E3 m& B/ m2 S6 D7 j m_nLevel = nLevel;
, v8 r* J* ~, }% B1 z0 g2 D8 Z5 h0 a1 R) }1 Z/ `# m. P" O; H
SetJobLevel( nLevel, nJob );# ~) ?/ p8 N( x3 e1 ~- M% _4 R- k
m_nDeathLevel = nLevel; G# e D6 Q0 f* @: u1 w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% P1 Q% r, Q1 t$ k if(IsMaster())
* U3 m& \' @4 Q3 {8 U" e% W0 @ {% f$ Y1 t6 I9 m4 Y9 l0 X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( W, ~7 g" d$ w
if( nLevel > 59 && nLevel < 72 )3 }( w8 _5 N5 R! H8 d) i; E
dwTmpSkLevel = 1;
* p7 {% S0 Z- R0 u1 ~ else if( nLevel > 71 && nLevel < 84 )
; w7 O' C9 J$ [* a dwTmpSkLevel = 2;
% n+ H, G" y4 b+ k else if( nLevel > 83 && nLevel < 96 )
4 L# t: l) t7 i: S4 y2 { dwTmpSkLevel = 3;
7 H* s$ ]9 x* ?, W! h9 D6 m! r else if( nLevel > 95 && nLevel < 108 )# K3 M! |) M, ?! ^* }1 X" d4 g
dwTmpSkLevel = 4;4 T% |+ `! e! l7 U9 L
else if( nLevel > 107 && nLevel < 120 ); R% k% E+ I6 c4 i- l
dwTmpSkLevel = 5;2 K; `8 z4 a) ^6 X6 k, r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 [$ b- H; s& K0 d( l- w { - h& d5 n4 d0 ]
LPSKILL lpSkill = &(m_aJobSkill);% v' W$ v6 J2 J' f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( L; F; m8 x8 X% w, F0 z2 x( @, p$ j {( |" P5 m0 K5 ?# D: f6 p/ ]( n! F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( A1 l' G8 V/ O/ [: l5 V/ F# { if( pSkillProp == NULL ): n1 e& r' j1 G8 U1 b8 v( @/ L# M; B
continue;5 W" |* H, h) Y4 V5 R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* o6 h) z4 ~$ C
continue; N( p6 B$ A |0 N0 K% B
lpSkill->dwLevel = dwTmpSkLevel;
4 J% I$ z. ?4 W/ W; ?! C }
/ L* W* ^+ w. N+ F5 C: g& x }; u3 w; K# C0 q% T, }0 @
}
% ^ v& e! a1 c3 Y else if(IsHero())+ h g6 r0 P" S
{' D8 j2 [! R2 H2 V% V$ C$ r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 R8 o) s+ g5 s, J: A5 L4 @
{ 9 @3 o$ M' V, i5 k% e$ U% l; }3 C
LPSKILL lpSkill = &(m_aJobSkill);1 ]5 {/ m2 O9 [, o% q8 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% m9 b( e# K% G. T* O2 T- F3 u3 [; P, m {+ m( m$ x G. D7 _, L p( {/ N5 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 H7 @$ q) H( `# U5 `- E if( pSkillProp == NULL )& _, V- J- e1 B( F: O
continue;$ p4 z8 A- y4 |4 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 \* k/ B2 f0 @) N! L* Y
continue;/ E! O. S7 v" \/ \
lpSkill->dwLevel = 5;; C3 x: Z3 t( u5 N9 @
}
$ ?- V+ M. R5 f }
, `3 O' G( Z2 M! F3 s! h2 N }) z& u1 [3 f* x3 V6 E7 R
else if(IsLegendHero())$ F9 K0 T, M5 X' e
{$ d0 t; f) M2 W9 c+ o- k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & c" T' c- p; X8 n
{
! G, N. D" Y J( n0 { y& N LPSKILL lpSkill = &(m_aJobSkill);
8 i% O3 H) F4 n- b' p3 p$ g$ G if( lpSkill && lpSkill->dwSkill != NULL_ID )7 V% `- x3 r3 P' T0 ]
{
; x, O; ]3 I9 G6 I4 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + b* T' }8 Q1 l( k2 d( [8 k, {3 I7 x
if( pSkillProp == NULL ): j/ w4 P; B4 Q
continue;5 e) N" o& x8 g8 Y. B6 f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# \; s. _' k/ p/ l3 h0 I* ` continue;
% v3 ~! I( \8 |) y lpSkill->dwLevel = 5;
7 y6 i/ z& c+ ?9 C, B& ] }
/ K A9 K& o# Z } s Y" A" P' x' G! ^7 J
}: B4 n: O4 \! X, j1 r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) ~: Q6 f. t- K4 I# Y, r3 w% F
if( bGamma )
' L. c" f: |6 A+ a {
4 U; l" b2 R! _ Y9 A, p m_nExp1 = 0;
; |; l+ Q% Z* f- y( ?4 T! Q }
- b6 H' d+ I; V' D! g/ F* E8 e
* U/ z8 G* l2 d! F6 Z# Y ( (CUser*)this )->AddSetChangeJob( nJob );
3 v4 E% i$ q2 q! k) J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# U. j' Z/ ?9 x b
9 U* I* h8 N% e+ m2 j
# k. k+ [3 r2 }% i#if __VER >= 11 // __SYS_PLAYER_DATA+ }; s# ^* {0 O4 `
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 \$ ~+ \+ l) P/ z2 D
#else // __SYS_PLAYER_DATA
; Y( I- J: }7 | g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: U* W/ V( Q' v
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 K+ l% z; t$ W" d if( m_idGuild != 0 )
9 Y) {8 o! P1 b6 S# C g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 A# P# S! E% Z0 }" v, ?4 Y#endif // __SYS_PLAYER_DATA0 C# ^+ E z% T
SetHitPoint( GetMaxHitPoint() );6 Z" T# y& }1 [* @) R. q
SetManaPoint( GetMaxManaPoint() );
1 C. ~7 b* l/ g% ~- E: E/ w, M SetFatiguePoint( GetMaxFatiguePoint() );; n( n# @: [1 O# ^
if( nJob >= 1 && nJob <= 4 )$ l. F& Y+ X4 L, C3 L _
{- F* Y! I, Q7 {0 I) I2 g) P# L
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. y( ~- v0 }$ M4 g m_nRemainGP = 28;6 [7 P, `1 n9 ]# ^6 x7 i ]/ G
}
3 V$ X5 n; n* `' g if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* c. u% M" h7 \) D
{! j. b: ?% |$ Z- Y
m_nRemainGP = 118;- E& h) x: A# M+ i/ Q: m" n- c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* Q0 V. g& O3 E m_nStr = m_nSta = m_nDex = m_nInt = 15;
- K- F/ [4 g$ c9 q$ ~; W# J7 x }
, D6 h. L5 T! m9 ] if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. u* W# S3 w8 ~8 C# V {
, L8 A6 {# [) h2 X6 @7 i* i8 P% d CItemElem itemelem;
6 q( A/ F0 Y9 x* a5 i itemelem.m_nItemNum = 1;% g- p! @$ e( z4 ~6 s3 C
itemelem.m_bCharged = TRUE;0 i) }) x1 r8 g5 z1 q: D& ~3 j/ ~# C
BYTE nID;) Z! d5 n% r3 D1 Q: f$ A* r, X
" Q9 D6 @# ?% \6 h7 u if( nJob == JOB_MENTALIST_HERO )$ S7 ^" r: l1 D7 F7 q& X- N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ w8 ? f/ o3 |8 g. m$ Y7 X* r. v
if( nJob == JOB_FORCEMASTER_HERO )
/ U7 e, g( B( ~. f itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 S6 e4 P& o2 Y* g
" e; @. X% ?' x ( ( CUser*)this)->CreateItem( &itemelem, &nID );
) n \/ G3 E, r' J }
8 c5 N/ q; v& {# v. l( B* [7 z7 [( T g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 |3 v) g$ X t) B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" i K4 u/ a3 d6 ]/ o# Y! k
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) ?! o; y$ h+ D7 @8 ^# z4 n) p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) Q, T: q3 k! T2 a: R! d4 D+ r
( (CUser*)this )->AddTaskBar();*/
7 G5 M1 A8 r" p& X5 t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& N8 h& V: y9 S; V% N0 f8 `" q7 r#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) {. X, a% [" I0 q* Z; g ((CUser*)this)->CheckHonorStat();: U( y: [/ m J6 j; U2 O
((CUser*)this)->AddHonorListAck();( Y7 a" o5 A+ x
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" K) S9 u' y; V$ w8 i#endif // __HONORABLE_TITLE // ′Tà?0 Z3 b* Y) ?+ r4 H% T( j
}) q+ T: g6 N X7 R/ O- {* e9 n
#endif // __WORLDSERVER' H2 G& M2 Z( ~7 q
} / x$ m$ |- C+ h' p8 u* V0 Z# T( Z; O
+ W) P. Y; p5 r; P$ ?# s
然后你进入functextcmd.cpp并添加以下' P% V& h" n) Z: \; m
; l4 B8 I T6 `. U代码:
) n* G6 A% {, E" C1 U1 @ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 n1 [, G6 Z$ P7 K. Q& Z( `- H5 ?# N0 P
下面插入5 ~# ^# F# |: g" z w8 }5 [, Y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 z! p, l( M7 f, K' W5 j
9 l5 h& t$ t4 u# D7 H4 `
然后你去
4 f& g2 N) J& ~, I% [* F2 U1 _8 x) \1 _4 B; [; u' t
代码:
3 s1 ~7 M) [3 t) A代码
* \2 c3 s- D8 ~& z% A$ BBOOL TextCmd_ClearPropose( CScanner & s )+ f- F6 D5 [8 q" T! y [; q3 v
{
7 O/ r* A/ U, p _* l#ifdef __WORLDSERVER1 T: W* @6 H. t& M3 @
CUser* pUser = (CUser*)s.dwValue;( N. j4 J6 B0 Q
g_dpDBClient.SendClearPropose();
0 R3 e+ G/ s$ M9 z U1 x! f#endif // __WORLDSERVER* S7 v* ?$ ~/ S
return TRUE;
P9 @- Y' r! O: Z}
) W( r# ?3 M1 V" c- g, s下面插入
" n( h/ U9 ^# o1 _6 {: H2 s8 aBOOL TextCmd_rebirth( CScanner& scanner )& z. V% j r# x0 s G; b
{* c/ J& |. J5 g- A) e- L+ l! C
#ifdef __WORLDSERVER
- f% Z& V; k' [' Z# g: _CUser *pUser;/ g- k/ v* h+ {+ }; [3 h9 }4 W. s2 Z
pUser = (CUser*)scanner.dwValue;. H+ K6 m( G/ S4 ]
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 c @7 N0 U, ?* Z/ j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( Y3 I+ n1 j0 Q4 G7 v- i
else7 j1 e% ?+ g" {: [; ]$ `3 o0 R
pUser->AddText("你还未达到重生条件!");
# U. ]% l( d, Z" R/ x x6 K& ^* R#endif; z: g: b3 C) k2 J$ ^+ G4 w
return TRUE;
- K4 V4 _8 E% [% T}
7 J" A4 g6 I! }: |6 M5 l6 }
" e: J4 W" R% c
' N7 n& ?, T, @& m- f- W( [8 Q2 o8 b
7 r* Q8 T6 d$ ?, o8 i" N, l. ^/ h% p- j. o$ D
|
|