|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# s3 R6 D9 \6 |
7 }( J8 f& G/ M( q; ], c1 OMover.h+ s' Y& m' D9 A' N, Q; g. M9 t
代码:" l2 e) G: D8 M& B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: p$ E4 J9 F1 g1 r& j" q/ }" f& d7 M8 s% e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! f. K! F! H! a3 @$ S: A1 L, H! b
7 y3 B' W' u8 z# G然后你去mover.cpp添加
8 Z0 G9 E! {; }* n8 v8 p* R6 B, U* g3 I
代码:3 J! H$ |, O: G( `7 F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); I4 X1 O4 t! w& O2 |9 g
{
3 I# L' i, l1 E1 \; w) z# w, V#ifdef __WORLDSERVER; K! ?" ?' ]/ X+ Y/ _! Z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 b* `# a/ A" ?- d# | MoverProp* pProp = GetProp();
( ]8 p* I1 V& I" ` if( pProp )
+ E+ ^+ t7 ~5 w$ T. \ {
( j# m- V) d1 @4 P" G2 D if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# B8 X: E/ w) b4 I- v' A {3 u- J8 x; |1 {% w$ p# P: u% c
AddChangeJob( nJob );6 U6 E, ]3 l$ K: Q- Z0 t
}else{
/ f" j/ E2 Z4 Z# A. b return;
" ]6 R# H9 w0 U8 Y }9 K# K2 {4 V7 y' [+ g
int nPoint = 0;4 d5 t- _1 ?7 B* n0 }
if( m_nJob == JOB_MERCENARY )
( u9 f# p) Q% b* H* I nPoint += 40;0 N' \: Z; X1 M' M6 B/ Q, U
else if( m_nJob == JOB_ACROBAT )9 U) \' A/ a( K
nPoint += 50;
1 O$ x/ |4 r& l2 [2 I+ ^. K+ G" p else if( m_nJob == JOB_ASSIST )
, L+ Y# u1 t% G0 | nPoint += 60;1 W# N$ \4 l4 G" d
else if( m_nJob == JOB_MAGICIAN )
8 i$ _) K! S' \/ @% t nPoint += 90;) r8 i1 `* f7 c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 Z2 \; [) f6 U1 f5 J! B nPoint += 120;
+ P9 d7 X. z8 _! l# n! K else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 \* e. u. A2 Q# N/ Q2 T nPoint += 150;2 \3 r! k4 b3 f" L# u- W
else if( m_nJob == JOB_RINGMASTER )
: P r$ i# c( y" O: a nPoint += 160;
7 D3 e: d7 F6 p B else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- l) V6 y: y7 | nPoint += 180;
# b% u; T7 ^# B! S8 w) E else if( m_nJob == JOB_ELEMENTOR )
& A/ `% n; k" Z4 [ nPoint += 390;7 Q N4 | b$ c) b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 c* n' [) n$ ~9 d nPoint += 120;3 s- O9 B) _8 D1 g" N, x, G
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): i6 n, U0 q7 T! I. I; S# v
nPoint += 150;4 P7 F/ X, m" j1 T) M! M
else if( nJob == JOB_FLORIST_HERO )% I3 y# d- Q' s$ L _/ Y
nPoint += 160;
9 R+ h% B! a G0 b$ F; s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" w5 f" b) }; }* K3 l+ d9 d6 j; H
nPoint += 180;# o% @2 d+ z: j; N9 Q. a
else if( nJob == JOB_ELEMENTORLORD_HERO )& B! o) C% k9 ~
nPoint += 390;
5 |& I/ I7 |* k6 c( b6 S: r \+ g, K+ \6 D9 k+ {
AddSkillPoint( nPoint );
; Q1 q/ t: h& k7 N3 O6 d# W* w+ `1 q% u m_nLevel = nLevel;4 `0 q+ p! {' a. i5 D5 E4 j1 }9 }
9 Z9 e3 z' p; b( L$ l
SetJobLevel( nLevel, nJob );
& z* z* M+ I# D0 y m_nDeathLevel = nLevel;5 N6 \3 Q! e0 s) r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 h- O% E! N+ ?3 o2 n+ J, B. U9 q' j if(IsMaster())
- v8 v. e5 [6 n# P {
. K7 l9 ?' u4 l$ o( [5 T( ? int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 P+ j, P# Y% o' m
if( nLevel > 59 && nLevel < 72 )
8 D4 j9 F. n' j& | dwTmpSkLevel = 1; H& o; C+ H; w" W$ b
else if( nLevel > 71 && nLevel < 84 )
0 f" k: _( }9 q! L dwTmpSkLevel = 2;9 Z) n/ A9 S/ _" R0 ^+ J
else if( nLevel > 83 && nLevel < 96 )
o, U4 A% _' N dwTmpSkLevel = 3;9 {" a# v4 v. F" Z1 k. z$ H; A
else if( nLevel > 95 && nLevel < 108 )
( x+ T: d0 h% h, I dwTmpSkLevel = 4;5 t9 p; l6 M9 Z8 F1 O; `+ D
else if( nLevel > 107 && nLevel < 120 )
5 t' q/ O" a; M3 t* ~ dwTmpSkLevel = 5;, ^2 d7 T4 Y2 y o4 G0 h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, C4 l0 S: K3 ~ {
% j& k: j; b3 v- z& W' M4 [ LPSKILL lpSkill = &(m_aJobSkill);. S4 y" R9 @# A( s( ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )- K6 f9 B. V$ m/ ^! e- |2 _7 c
{* |: h6 S. n7 a" j! P0 v. g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! O( p3 H/ _- N1 r0 k* J r# i7 w
if( pSkillProp == NULL )
" N4 T' m- D. ]0 Q continue;2 m' A0 |+ m6 q" i5 S" F/ h/ k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). Z, c1 Q5 C: b% f6 D X: k
continue;" p1 z8 j: F, X9 R$ \5 ~% d
lpSkill->dwLevel = dwTmpSkLevel;, w" C% B- @% { C* z
}
* ]" [% [) ?2 Y G }6 {' `# ~+ `# k, K z
}
+ f2 k4 J. C* Y+ u1 {7 [ else if(IsHero())
8 p- R4 D* c2 ^ j+ i* J% f {
& W5 Y, s$ f/ k6 t for( int i = 0; i < MAX_SKILL_JOB; i++ )
: j* X5 K; V `3 k% i$ J \* Z+ a1 S {
2 N0 v4 _3 r( e/ _5 O# i LPSKILL lpSkill = &(m_aJobSkill);/ D0 b5 {7 P3 A7 |/ p5 u9 }8 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 f8 F/ M, Y) m {5 c, C* k, R& G O8 P- f& L0 f7 u& P! z9 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 s8 a, Y, v1 z. F% I1 i# m( S: Z if( pSkillProp == NULL )
9 L% Z/ O/ g* U/ [9 `/ }5 Y continue;
) R& z1 r: g4 J' F5 |4 U0 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 T6 x! A8 a0 u3 m6 o9 o( @ continue;
- Y. M$ S" ^6 Y0 C- R0 b/ |' \ lpSkill->dwLevel = 5;9 |8 E, ^% e: M3 l" q
}
# E7 _0 M: O6 E: C/ j }
( R. m9 i+ C8 ^0 L# r# k, ? }0 j+ M X$ p' V; Y" X9 N
else if(IsLegendHero())
: q& I' y6 V6 Y' M) C2 Z {
7 I9 F @# P3 l0 q! }* R5 H for( int i = 0; i < MAX_SKILL_JOB; i++ )
; N' O2 F( S( G/ z" V$ {. q { . L& e: ?2 f$ r; @% |* `
LPSKILL lpSkill = &(m_aJobSkill);+ B5 D J2 A4 n4 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ c6 O# z' {9 o* a, A" f: m {
. z/ b/ q7 r2 V( y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 h3 t7 @: x" O, D if( pSkillProp == NULL )! |/ D" n$ a' _4 d7 b$ _: H! Z
continue;' [% P8 H7 S. ]1 F, B V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% S8 `% X9 Q8 D* ^1 n2 q/ g
continue;
1 z* v; q3 e* L5 o1 r1 L lpSkill->dwLevel = 5;/ h7 s/ R" D0 u6 R, y% V+ Z7 D
}
& o8 C% s9 {. x8 {# c; g }- V1 v7 {) z6 d2 B
}8 m: d. o/ j3 {. E
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, W9 O. }9 X2 ]; f( N7 ?& {9 Q
if( bGamma )! X1 s0 I7 t4 s$ C9 Z
{
. z( z$ O+ f2 b5 v0 F m_nExp1 = 0;
6 a4 s/ B/ e: U1 J" @2 P) T }9 e; v7 \. a) V
7 J0 w8 ^9 @. P4 l2 y% `! B6 |* t ( (CUser*)this )->AddSetChangeJob( nJob );
* o6 ? |$ d! v! d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# k8 w. |" I+ c7 a, x0 ~/ S( n; J0 J5 w& V8 x* z# B+ C2 }
! h' {( C+ n' V
#if __VER >= 11 // __SYS_PLAYER_DATA0 B( k0 w; e1 ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& @# K& c$ \& D7 c/ Q: D$ Z6 U
#else // __SYS_PLAYER_DATA
+ C& ]" H& w5 n( i- {/ o2 [ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& k% d4 J3 p; P4 U! J3 n4 h6 L5 R g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; K- k( i' S1 e$ f if( m_idGuild != 0 )1 F% W" z4 n' i0 {& \
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ ~& Z) f% {- A' W3 U, T#endif // __SYS_PLAYER_DATA
) x5 x2 A% |+ u, o2 [( J SetHitPoint( GetMaxHitPoint() );/ F' b7 x* O6 S k. n6 c! Z. I
SetManaPoint( GetMaxManaPoint() );
$ A2 K. l: T7 I* M5 k/ e- h- u$ B SetFatiguePoint( GetMaxFatiguePoint() );
% ?* ~9 Z1 E! T. O: ?2 u if( nJob >= 1 && nJob <= 4 )
+ a/ N0 X. G' b. T" I. Y" ` {
* F0 ^: u6 X) L8 L6 ^2 X* |" K2 l$ { m_nStr = m_nSta = m_nDex = m_nInt = 15;
! C5 l, m: j0 C( X m_nRemainGP = 28;, t+ Y9 Y, h. d1 j
}9 p6 y6 {& a! ]& q* V2 u: Y- J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' J% E$ X1 ~+ n) j6 G: U: \
{ _: h6 o F- |3 |1 ^8 V
m_nRemainGP = 118;6 s/ J0 r- c: M7 n: e7 w
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' e/ j) q. q( L7 X m_nStr = m_nSta = m_nDex = m_nInt = 15;
- E$ L4 H: f- A }( Q1 B" S( J/ X! p1 T
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" R& @/ O; r @ O% c, B
{3 y2 M) ^' N# h* E
CItemElem itemelem;- V3 {0 q& Q: _5 D `
itemelem.m_nItemNum = 1;
, P5 E$ G8 t* U& R itemelem.m_bCharged = TRUE;4 S: [1 d. R, I- U2 z7 W8 C7 b
BYTE nID;8 U0 d. J# ^3 {+ J1 U$ x- E: @
8 w: b, S+ N( A) g if( nJob == JOB_MENTALIST_HERO )4 Y% T9 y' ~# W# d2 E! S" {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 _ t9 S4 o, Y$ o3 U0 { if( nJob == JOB_FORCEMASTER_HERO )7 E; Q9 e9 C; U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* s) O, x! T) p" u7 H
' ^, a8 I+ _; O ( ( CUser*)this)->CreateItem( &itemelem, &nID );3 Q7 n4 g( M0 i
}9 [ R6 O: b% l
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 y% [6 S; u$ Y' l4 Y# m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ @- Z! ]$ \1 l+ Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: G/ X& P' J1 H& E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 H% p8 [5 B8 i! ?! [/ ^
( (CUser*)this )->AddTaskBar();*/' u- K9 E$ J) z" b
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# Y1 F8 `4 Y& v) i
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, z# \% i, a! d' N$ ^# K
((CUser*)this)->CheckHonorStat();5 E1 H; _1 E2 }5 R7 u5 e- c
((CUser*)this)->AddHonorListAck();
, ~' U, V: N! [, Q. d+ v$ T. Y g_UserMng.AddHonorTitleChange( this, m_nHonor);# u: ] D9 n% i0 o' Y6 o
#endif // __HONORABLE_TITLE // ′Tà?; S+ Z+ ^2 A2 Q3 H {
}
& x8 G/ w7 F3 \, G3 X( H/ a$ k#endif // __WORLDSERVER4 O$ v# d- r/ s. v; W
} 0 `% i3 L& V2 u" x8 F
7 z9 a O! D! W5 b, ~' z2 w
然后你进入functextcmd.cpp并添加以下
+ j% k9 a }% c0 I) T) `/ G
% {, L3 \9 Q" z \" ~( Z; V代码:' w2 x0 C1 a" J3 Y$ Z" J6 t
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 j: T D0 y& Q1 F下面插入
2 d/ q6 `* {" g5 ]0 uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) P6 Z5 [/ q. [. D) E. B0 q
6 }; I. F q/ l z W' ?% M3 K
然后你去0 N7 I' G2 l4 N( _0 _
- e, Z2 I9 @, | y' Q
代码:) K! B0 W3 [& q& Q
代码# O6 C# a+ @/ E, F
BOOL TextCmd_ClearPropose( CScanner & s )1 e5 I+ B+ Q6 H" Q
{
1 E; t1 _3 V* T6 d: K* O# d#ifdef __WORLDSERVER5 k' W5 w, O1 R- D) h! h
CUser* pUser = (CUser*)s.dwValue;
7 i% p: `# L$ h: p; c3 v2 e g_dpDBClient.SendClearPropose();
! I" F, i8 z* U$ s6 G#endif // __WORLDSERVER( i# X* @! S) x% L0 \% R6 i
return TRUE;
" _) F3 f) p# @$ y+ C8 Z6 S# L}1 z% _9 G. N' t
下面插入" `) u9 H, c& D
BOOL TextCmd_rebirth( CScanner& scanner )
w2 j# d) w" u0 F{8 O4 w4 o) ^( a( E! m- I
#ifdef __WORLDSERVER. m! X8 [- R! o7 Z2 M5 w
CUser *pUser;
6 t* s6 j$ O/ ipUser = (CUser*)scanner.dwValue;
, ] c1 O7 X; c' q4 jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 F* b f* S" P' o' F9 O7 Z+ L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 S9 |' S* k! V6 `/ t) X# Gelse
/ a$ P8 H: k$ ?: QpUser->AddText("你还未达到重生条件!");
" X3 I9 s# C/ ]#endif
2 n; q5 b c6 p( lreturn TRUE;
& O) k+ n; o3 B, Y9 ^3 z. y} ) W- I8 u; M. h, H+ Z8 k' G
1 D9 m$ H. n" D3 c+ z5 q* a+ W, @
' G U9 Y7 T, Z0 ^ F3 [- s
b7 x* J/ \% g; F
" {/ l, r8 Z1 w2 h/ ]1 b
|
|