|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel ~6 y2 t4 L; F V( ^* }+ G; ^. {* L
$ W, c* I n3 ZMover.h q d/ o; P7 t! [; ^+ ]4 ]. \
代码:
: v6 d3 r1 x, K4 Q1 n: ]( ~' j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. W; I" G/ I0 P- m6 A: E, V3 J- O: Z% Y- g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ I0 S' v! h! l2 A% D) ~
) G. Q, Q, T6 a# F7 f8 X$ A5 }然后你去mover.cpp添加
+ v6 i8 k( l$ _3 O o6 k' A, {% _/ s- D
代码:: H$ W6 G. E5 X6 ~! ^+ ]* Z4 D8 {( E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# _: e4 B. T' u5 a- l& D- ]6 @7 L
{
3 P1 F' D7 ]& `$ p+ p. B#ifdef __WORLDSERVER [/ u+ u4 F1 I4 c# ~" l( s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 p* R# @. w# ]" F. b' a MoverProp* pProp = GetProp();# n' ^; t$ \5 Z9 }
if( pProp )
v) o, q+ \5 G5 Q# h! Z. ]. Z3 @ {
, }8 o- g8 o# L) c if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 B* u% {% v0 v {# a5 r# B I* ^* B1 N8 E* D
AddChangeJob( nJob );8 l' n- j; S2 Q( |" g. G# p/ i
}else{
$ S6 e) x$ L0 A) f. t return;
9 k4 { ]8 Q9 } }
) t, Y4 |$ a \" I! @0 s* I int nPoint = 0;
% v8 E* f2 t, t+ ~' ]: [ if( m_nJob == JOB_MERCENARY )8 [3 s# i* D: g
nPoint += 40;$ S/ P" u& g/ B' I
else if( m_nJob == JOB_ACROBAT )
3 ]' b3 @1 u! e3 w' a nPoint += 50;
, J0 R" N r1 } else if( m_nJob == JOB_ASSIST )9 j% V1 c( G% P! p: y
nPoint += 60;
) G7 v) {7 F9 j; Y else if( m_nJob == JOB_MAGICIAN )( `( m! L# [2 {- ]6 `/ S, N. L* P V3 V
nPoint += 90;
8 ]2 `! H4 x% {' C2 n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ c& d- |7 r& w& o* M2 ` nPoint += 120;
, F" w, ~6 e! P; Y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) v9 A$ `! n* a. Z' E6 i
nPoint += 150;: d3 r0 x! v$ a! s0 {
else if( m_nJob == JOB_RINGMASTER )
" u- y7 Z: C5 i& t4 R$ B nPoint += 160;
! B2 G7 ?6 y3 v( N7 j) q0 I# v else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 r8 N$ t" @' o# E nPoint += 180;
, B8 E. y% T9 P+ J% z else if( m_nJob == JOB_ELEMENTOR )- v5 Q/ S- d7 M% |* V% y
nPoint += 390;3 K- r" Y0 k# l6 g" ]
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ a/ b/ O( q6 o" H
nPoint += 120;$ a" G! h3 q5 ^" ]2 O7 H/ D* Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 K L8 z% m c' G1 O( T nPoint += 150;
# f# ^+ J; n! I9 `0 I else if( nJob == JOB_FLORIST_HERO )
3 l4 ] E+ U- @& B8 r4 ^1 l# C nPoint += 160;
& \ O! `1 y! J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 U3 n* h7 |) R3 E
nPoint += 180; v, d6 n1 h$ e3 \' p6 m: C
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 d, F3 y) @( P, Y4 H! G nPoint += 390;) s; x4 g8 n2 r2 y8 l# ~ Z# t& J+ j% K
: V; t9 _& L$ b+ K, z AddSkillPoint( nPoint );
3 X/ f" y w- N m_nLevel = nLevel;% M6 G& N0 J9 C2 S/ @8 `* u0 K
$ ]& }: o" j9 d: L& L* |2 [2 X SetJobLevel( nLevel, nJob );
9 E# B% v) F# g2 \5 c m_nDeathLevel = nLevel;
5 ^6 _* k# S: P- B#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ `8 ~# ]5 T0 p; X
if(IsMaster()): k6 R" R: T0 B9 p# |
{
' b& F$ g9 E* N+ t/ b! _( _" v: _* ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 J1 Z9 R6 ]" f) e& Y if( nLevel > 59 && nLevel < 72 )7 P" u N: n9 M) G0 |' x
dwTmpSkLevel = 1;# R$ M8 e3 Q9 L" ^) X& b
else if( nLevel > 71 && nLevel < 84 )
2 C: f% p4 V. N2 `# h* a- ? dwTmpSkLevel = 2;
5 J f9 [5 {7 f else if( nLevel > 83 && nLevel < 96 )
, R9 v. h% s0 {' S0 s dwTmpSkLevel = 3;
8 T! ?1 u% d" k6 d. z0 W' \ else if( nLevel > 95 && nLevel < 108 )- _$ u5 w6 h1 \9 [/ ~
dwTmpSkLevel = 4;
`8 b) ^; Q) Q4 n( e4 y else if( nLevel > 107 && nLevel < 120 )% r6 R% {' }0 s) ?- M
dwTmpSkLevel = 5;; K- e* u; `; ~& r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 }% |: U1 {& f& m8 \) O# b {
" C; j7 e' b, p5 x# f LPSKILL lpSkill = &(m_aJobSkill);2 h/ u J& Y: u) F; I9 |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* a" f: ]& A$ @, S$ I {
9 d2 { x+ Y4 `; o' | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) O3 T% \3 F2 B9 q7 G; e if( pSkillProp == NULL )# v: d' Z8 n) M. e* g
continue;6 K' ?7 U* f. p5 t6 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! h4 C2 x6 b/ U* N: m5 L- Y continue;
/ x+ E# Y( W' C% R+ H, S8 _ lpSkill->dwLevel = dwTmpSkLevel;
8 w& d3 a. P& _& `' l }
& \) ~! R$ j# N8 M/ i }
$ D) R# x4 n2 I6 d/ L }
9 H$ ~: ]: v5 x. e1 [3 d else if(IsHero())7 \$ [2 H( p$ n9 g3 [' l( n5 C- v- X
{7 C6 a+ z- k8 y7 W9 c% y, _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 w m# c) E3 r5 b$ ~6 E { ) @. U% w. q. f/ X; U# Y
LPSKILL lpSkill = &(m_aJobSkill);
, g0 b* n5 M& @! D7 n7 d) S if( lpSkill && lpSkill->dwSkill != NULL_ID )
# I9 ^/ h. [: C+ v+ c4 g {6 n2 \1 v) k1 P2 T) W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' O' n' }/ R7 q
if( pSkillProp == NULL )
( P# w" ^9 o7 `& y! \+ x continue;
6 h+ V3 G# T5 `! M t0 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 b+ {, ]+ H0 b
continue;; v+ e7 F, n6 \" W) a) t
lpSkill->dwLevel = 5;
% `5 R' F5 {& U$ T! T9 D7 u }
" Z1 f3 c& ?, X {2 g }% z7 \/ }4 M2 b! ^# V! q3 W1 ]1 S
}
1 z2 V. @; A3 ~ else if(IsLegendHero())
% F( C4 n( N: }" T0 ?& a {8 ~% m7 B' [, K5 {- E& ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : l k& [0 Z8 A; I6 t- j8 V0 ~
{ , K# g% u) T+ ], a7 \% ?0 Y5 Z6 G
LPSKILL lpSkill = &(m_aJobSkill);# U& Y" u5 k( ^( M( ]9 p
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ k6 K8 ?; [2 {5 Y1 r$ ^8 t7 x
{
5 w' g; T" Y# `# F5 V3 s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) p }, d8 b+ {& k if( pSkillProp == NULL )
( k3 b6 ]0 ~1 W: J4 ?( D* _ continue;
: ^* h0 \0 ?. P! N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 v* I5 m; S1 L* b
continue;% W! [; |. S8 ?' O+ o# J
lpSkill->dwLevel = 5;
' J1 ~6 }2 ~- S6 a8 k }
+ J0 }- j- L8 | }4 R: y& E( T- v8 ?( A
}0 B: Z' f- x) n) |3 Q G+ K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' L# z" C% w. T* `8 a+ v if( bGamma )
" R. ?5 @ s4 \# L' W$ O {, v s3 t L( @0 h6 u
m_nExp1 = 0;
. j6 [2 A3 a5 Q7 Q5 L7 f4 b0 p }! w9 q9 R9 U3 ]8 H1 C7 t
# q' O. `1 |. z/ g. Z3 p4 y m ( (CUser*)this )->AddSetChangeJob( nJob );4 A' g; q" j+ i4 ], z' r
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 ?, z2 `% d5 c# r2 I( }$ e$ y9 C
* N# y/ N7 U3 `* x' ^! u. g) L# P' u& t, N7 W8 E7 Y
#if __VER >= 11 // __SYS_PLAYER_DATA: H* t/ Q; a$ J( ^2 D( l. z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( E% V5 ~* {3 E, ?9 {! E#else // __SYS_PLAYER_DATA+ G5 x* {5 c( ^3 O7 b9 Q1 M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 D' l. H- o k% Q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 Q1 T4 O! u9 x! c/ Y3 @& L2 ] if( m_idGuild != 0 )
0 `. H# U/ v: x6 w: h g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 ]( e5 J m$ y0 T" S" J# G3 |
#endif // __SYS_PLAYER_DATA
+ K7 A. o# ^! {5 |( J/ f9 y( u5 | SetHitPoint( GetMaxHitPoint() );4 R8 i* t3 Z8 l, e$ K" ]
SetManaPoint( GetMaxManaPoint() );% S+ M2 p0 a( _0 D4 \4 z& }* ]
SetFatiguePoint( GetMaxFatiguePoint() );
5 q- h: ]. n2 g! ~' A+ G if( nJob >= 1 && nJob <= 4 )( X% ]7 w3 H$ m0 j1 A
{
' B( h9 d0 S/ T3 @# }% V( N9 Y m_nStr = m_nSta = m_nDex = m_nInt = 15;
( l3 q7 d2 o0 A m_nRemainGP = 28;# b6 M% x8 _$ U1 q
} Q3 |4 @6 T/ S; H. W! r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: m: l0 v' l* J# V {0 `& H% m1 x5 A/ |% ^
m_nRemainGP = 118;: R) N4 ]4 P4 [; M
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' Z- A' _! J [3 ]" R( J
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 W# I, q* F% g/ J
}% _& Z" }) X& [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). a" `' b% _, g) \% l) I) m, @; s
{
: ^8 ]/ U5 S2 n$ s8 v3 Z3 ^ ~ CItemElem itemelem;
' ?# r9 N0 V( l/ b$ r' ` itemelem.m_nItemNum = 1;
* w; P$ ?1 W$ Y0 b itemelem.m_bCharged = TRUE;
# F Y! S7 S3 q) ~; I; P6 b+ s" @ BYTE nID;8 ~9 q! e7 u0 O: K) n- p
& R6 j- n0 s* R1 q; F. B
if( nJob == JOB_MENTALIST_HERO )
& y b% ]* [+ { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' L! H8 {4 Y2 b if( nJob == JOB_FORCEMASTER_HERO )$ g: V! j. o, V
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 L& y" X6 s6 n& f2 n
4 D0 P$ S% A0 z7 c ( ( CUser*)this)->CreateItem( &itemelem, &nID );8 R1 R. T2 K R8 ?- i7 y
}
0 ]* ~ N# _# ^! z+ R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. O* S; V0 M0 C5 V% n9 e( W- y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: ^! E/ D. m4 U0 z! M2 e8 R* q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* ~, ] t) X" I3 z( P /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 ?6 u" A0 L' x8 T8 M. `. M [7 I ( (CUser*)this )->AddTaskBar();*/
& D( m a, V1 I8 v+ a; W% [. q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# o- m+ Y1 s; z e: T1 i8 b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 P3 u7 `1 o% J: W2 s, |1 K ((CUser*)this)->CheckHonorStat();
0 z* E! ~, j0 s, I ((CUser*)this)->AddHonorListAck();
1 B5 u9 m7 b$ { g_UserMng.AddHonorTitleChange( this, m_nHonor);9 T+ F$ X$ d6 n! W2 I/ r. v
#endif // __HONORABLE_TITLE // ′Tà?
1 \" O6 v; n8 ]% A& n* q: f }2 Q5 f# b0 P7 t/ ` K' q$ M
#endif // __WORLDSERVER) R0 c, y P/ V6 @; r
} / @1 H- n2 r$ S
' f0 T) r6 G' B, \然后你进入functextcmd.cpp并添加以下1 @% P4 v$ ~9 R. [/ O! N
& I9 ^# r. `" b1 R* I, Z9 }, p
代码:
! j4 X7 {3 N- ZON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 ?( @2 x2 [( B% Y5 D* X: N+ L7 d; G
下面插入 e+ y: `3 m. c3 U. N) Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 P- f* s; ?8 \2 Y0 N
. B- m6 ]2 k; O- D然后你去, O, |. |4 @4 ^
! O: L1 ^$ ?) w$ |代码:
9 k& Z" z) d9 z* V( d代码 B" P+ O) b4 _& i3 Q4 {& |
BOOL TextCmd_ClearPropose( CScanner & s )" C% U# k% X0 y7 s K0 Q; @: b
{
- R. U/ d5 i3 B- J% ?8 R#ifdef __WORLDSERVER
r8 g+ ]! I+ w/ z. {+ V+ B. v7 s CUser* pUser = (CUser*)s.dwValue;
/ s( P( F# A) \$ R# S: B& g g_dpDBClient.SendClearPropose();& F- h# s5 u9 b2 z* j5 V- ^
#endif // __WORLDSERVER
4 ?: L0 w/ P4 g+ o0 \ return TRUE;
% \; a) f' `/ b, o}
( u" R% x8 }0 r2 r0 X2 ]下面插入3 d/ Z% U4 @' N0 [% ~* d$ J# B
BOOL TextCmd_rebirth( CScanner& scanner )3 Z! x2 c8 X! A7 e, C6 _
{
" v/ u+ D' I6 U& O+ p#ifdef __WORLDSERVER* x+ ?, C3 Z& v$ r- i' T! b' j
CUser *pUser;
# P5 B" E* f$ a$ |pUser = (CUser*)scanner.dwValue;- v% e2 F* s, l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" z/ S! B/ N- Z6 rpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 S& \4 d' F) F& D& i+ a" o% Q: _else
0 O m; q- i* d/ D# u9 n7 @pUser->AddText("你还未达到重生条件!");, x, N+ m' v# z" A' p$ C' U
#endif
) T& s! E& N* Y- k S: lreturn TRUE;
' W( @' M0 {# r4 N( C& d} + D4 Y4 k; G! ]) e& q2 K
% Z) V# d9 K: J! A9 S! f
9 z" z, O5 y& Y5 Q
8 y4 X7 i7 C. H( H+ L; J; o# t& l! m: Z: @- v9 A. i+ }4 X
|
|