|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ M: m- i$ x4 H/ d
. R1 r+ `8 w- D* dMover.h8 @$ ^9 q( t: ]- D/ h9 L3 x
代码:
$ E* k( C: V9 Z7 c6 p) h8 G8 a: I找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( d# Z1 I1 B) h5 i8 e" H2 y8 p+ y
8 G$ }9 w. P+ q- o3 d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* _/ `2 a9 E7 m- H# ^, d! q! e9 r/ r9 ~# ^$ N# |* v
然后你去mover.cpp添加0 F0 U2 M; u5 s3 L
& }, p* {; {% G# r2 i
代码:- l8 V) S& \! K; ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 F5 D# {& E% k0 ]/ _
{
' n+ ^) e+ j# ^#ifdef __WORLDSERVER
6 L$ n+ R6 j4 b! k5 S' D s# x" L& s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; M! f1 b H' }) l3 w2 O+ W MoverProp* pProp = GetProp();
" f! P Z+ r# r- A: L4 ]- Y if( pProp )
! H9 v: N. V- @4 b6 z: q6 b {* W" c' r- {5 @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 T8 ]4 K0 i N q; ?7 @% Q$ {3 \
{
c) [3 V8 G4 S( C; N% q2 j8 ^# s AddChangeJob( nJob );( \: ^$ c3 c' _1 a; V4 G
}else{7 d0 I' w4 x. J% B
return;6 |4 r7 v- P! X# H. R" e2 W
}5 C) d) `, c. L% m
int nPoint = 0;; j3 ~: b3 d$ J. n
if( m_nJob == JOB_MERCENARY )
. R' ^+ a6 m3 p5 S$ [' ^ nPoint += 40;
$ f$ h5 G% @) K else if( m_nJob == JOB_ACROBAT )8 _' r" Z! a. a
nPoint += 50;- W9 N% g9 f& f; d5 U7 T9 _9 U! X
else if( m_nJob == JOB_ASSIST )
! V- C) Q$ H6 |' F& H nPoint += 60;
0 s. x- g4 c+ J9 B6 F/ F else if( m_nJob == JOB_MAGICIAN )
$ p e9 x5 N k, U nPoint += 90;
9 W2 u9 ~" x! C+ g7 q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ W% E7 n1 d1 I v$ G nPoint += 120;
7 r# r" O' G0 ?0 u7 h& X else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 F7 z6 W+ P4 K& \2 e) `1 ?8 C
nPoint += 150;) @/ I( p' A6 W# k$ y
else if( m_nJob == JOB_RINGMASTER )
1 C" J1 @$ {$ L8 V- T nPoint += 160;6 ~" X. y9 m" b: h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ ]) {# {/ ?: i/ e nPoint += 180;1 `. r+ V' R8 }
else if( m_nJob == JOB_ELEMENTOR )5 J% I. W5 Y, n! g
nPoint += 390;: E9 n3 r% v/ ^- b2 P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) P. o+ @* @6 E0 D+ g nPoint += 120;
* {" U- ~- r; m else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) W3 X, n4 r# \' W* W nPoint += 150;9 j5 g4 C; \; p- F$ X1 q# F
else if( nJob == JOB_FLORIST_HERO )
+ `: h3 {" }& ~4 N! \# \) i* j nPoint += 160;3 V# M$ X1 R4 e
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- ?8 e! ], r E& b8 `1 O
nPoint += 180;( S- {: ?% E9 t. C
else if( nJob == JOB_ELEMENTORLORD_HERO )
, I# }/ t2 i0 Q( b K, ~0 e( f nPoint += 390;5 u; t$ r0 u/ X
" c" H; e9 H! f7 w" C$ g- S" A AddSkillPoint( nPoint );
( g, h g% [3 Y2 S( Y# ? m_nLevel = nLevel;
: w* t/ ^+ W- V8 j2 M: O& k% {2 |0 a7 ?4 Q! Y# g/ f# z' t
SetJobLevel( nLevel, nJob );1 Z3 E. w* i8 j1 O0 {
m_nDeathLevel = nLevel;5 L, Z& ]( `/ F5 {/ \: h9 E
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 |" l1 p0 v+ C4 C& J
if(IsMaster())
4 H [% i; u' E! n {
7 i1 {9 u+ [9 I) Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, i! H* B0 w, r" e if( nLevel > 59 && nLevel < 72 )
6 j& _3 B+ v; i" ` dwTmpSkLevel = 1;! N/ E7 o6 U% ~$ B
else if( nLevel > 71 && nLevel < 84 )
1 p: H, o4 {8 I" i* H. c2 ^4 r dwTmpSkLevel = 2;
! Q. C% W0 `/ X, R) @ else if( nLevel > 83 && nLevel < 96 )
) W% c2 Q% d; e% c% J3 w dwTmpSkLevel = 3;
! ~$ G% r, A, _6 Y* h6 ]* p else if( nLevel > 95 && nLevel < 108 )
% V. E& ^; V# S5 T. A dwTmpSkLevel = 4;
' D. c% U9 G0 f% _. K' X/ _/ K# g else if( nLevel > 107 && nLevel < 120 )2 _5 g2 O* W' |& }9 [
dwTmpSkLevel = 5;
7 T: Z' M' C6 z! H for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; Q; w- a0 T) \
{
7 D4 ^1 I' y9 w/ ]3 t* }3 c LPSKILL lpSkill = &(m_aJobSkill);$ _$ N$ v n% i5 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )! N) a8 U z: ~' ?
{
/ @ i" x6 _# n; _7 F$ E3 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . I5 t1 Y2 c5 `% j
if( pSkillProp == NULL )
/ l+ ]1 N4 r" r" C+ S; g' o2 ? continue;4 V* W, A6 I0 z5 U+ a5 d; f6 @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 e* N+ J- G- f8 y- r" |7 x continue;' I) @& F# d) `6 m
lpSkill->dwLevel = dwTmpSkLevel;. ?. q+ R& P. _# s& ~/ c3 _
}) @7 N3 S( V6 e' v2 i6 S
}' y# J- D# l; K8 W0 Z1 k
}( C4 D7 M2 s2 v, e' k4 P: U; F
else if(IsHero())7 y5 x% l1 k5 U! {( z2 H( d
{
. o/ F% J% D1 E& K# X for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) L, W p0 B* i& u
{
5 Y" P& _% d/ n$ Y LPSKILL lpSkill = &(m_aJobSkill);
* Z7 l {# `7 @/ }' |; n# u% J if( lpSkill && lpSkill->dwSkill != NULL_ID )$ C, n6 k, d4 p9 z- d9 X4 I
{
1 k9 b* J1 A' X8 y( }5 r V- o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 V$ x3 Q; Q. Y4 \6 {
if( pSkillProp == NULL ), D! {2 }% e% c# P
continue;
N3 _* x* L2 U4 \! i) ?- K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( m% H( W" Y4 n4 H( B' B; J- K5 r
continue;
( ~7 w& p% _/ d: P9 z lpSkill->dwLevel = 5;- s+ m4 ^* Y4 x9 y
}
) {0 W0 h5 `1 W& I/ z }3 Z" e1 b+ M! x9 [( M' ] H
}3 ^8 O! s+ \% J) B( ^! b
else if(IsLegendHero())" J: S8 e4 u, \ m2 d. T
{) ]2 X' n' `' W7 U) Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 V' n; D% d+ S8 Q, R4 Z* o# e {
6 }$ z- @8 i( J0 ]* Y$ M" l3 ~ LPSKILL lpSkill = &(m_aJobSkill);4 s" g5 x# z( p9 @
if( lpSkill && lpSkill->dwSkill != NULL_ID )) M8 S: G+ ~9 g4 | ~8 C
{1 G. t( L V6 D! j. h8 h7 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " g, F8 c8 C* L! x9 _* S
if( pSkillProp == NULL )
8 R$ W& L* L' c0 \+ F& ]2 r/ s/ L+ I continue;
/ \, \7 c! P; o l% X7 d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' p! @. K C& U1 \+ @3 [* y6 p continue;( F1 x. V; o* G% c$ J) r9 ~
lpSkill->dwLevel = 5;
2 \1 x2 N# L& \: K! P }
7 b, ?! u, W# Q }
# h' t. q1 g( P0 t }
7 v0 I& u$ O0 \. A1 ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: M; o2 S- e* Z1 t. O; b6 n if( bGamma )- a9 n* s% ~9 g4 _; D# V; v) O
{! q7 Y, m: h; M8 C2 b. ~1 z
m_nExp1 = 0;
' {# f6 {) D u( P }
3 S7 @ f0 M0 O2 O7 d3 k2 ~) {4 a' x: z! q' ^. k
( (CUser*)this )->AddSetChangeJob( nJob );! ?, ]4 P3 |. M2 v2 i0 Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 X0 K( Z1 p4 v1 v9 n- u9 `$ s/ D! e, F: r: t( w$ x5 @
8 o; y: t. G/ C#if __VER >= 11 // __SYS_PLAYER_DATA1 s) K3 r4 s$ q; L8 F
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ q5 z# a, m! a- c4 \: i. @
#else // __SYS_PLAYER_DATA: P8 M# r+ ^$ y; `) n. z1 {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! P1 S0 |8 a+ X* P$ S) U
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# A9 P/ l. R( A$ K
if( m_idGuild != 0 )/ g3 a- q9 X4 O" V1 g$ Z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 H3 M8 ^; ^+ M1 K1 T: f#endif // __SYS_PLAYER_DATA4 y; K1 I! J, L2 J8 b5 u3 `
SetHitPoint( GetMaxHitPoint() );% Z( \& S1 {( l# p9 `3 w
SetManaPoint( GetMaxManaPoint() );5 \. n5 I m' ]4 w$ K" p3 z$ C
SetFatiguePoint( GetMaxFatiguePoint() );7 Z! U0 T9 Z* ]1 {/ B
if( nJob >= 1 && nJob <= 4 )" U* N6 y/ R3 O
{
! d4 X8 G e" P" P" g1 O9 G( [! { m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 J1 I" [5 e0 M. }5 m& j m_nRemainGP = 28;% h1 |4 r# @5 N+ F7 T
}
+ a% w# Z4 r& l# K if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ p# p- @ e/ z" Y
{, U: P- _: h1 u4 [7 c
m_nRemainGP = 118;$ b l2 D- Q+ C/ s* X
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) U- w8 `) [& j. c7 A m_nStr = m_nSta = m_nDex = m_nInt = 15;. m' i1 n5 w& f
}
5 E( g9 q6 h) L/ Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! f/ t8 H* S. R) c0 c) } {1 D4 W' k/ I. S2 T' @& g
CItemElem itemelem;* L L' h* c. S2 R- c# R) G" O
itemelem.m_nItemNum = 1;
* ^ ?$ v( {4 y* y1 a( W itemelem.m_bCharged = TRUE;
3 p6 A1 Y' T: b# S3 V9 W BYTE nID;; a$ _3 H: ~! G/ C2 j) n* l
, O/ c2 F1 X% F4 q
if( nJob == JOB_MENTALIST_HERO ): v" `- Y; n$ c( s) J9 W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 F7 y1 E* t) b/ u; ]
if( nJob == JOB_FORCEMASTER_HERO )! O5 D \9 e7 J& M& T9 W
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( M$ k2 I( k1 `; h% I
/ \. h2 \$ e5 U' A" m6 h; _" _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );& P- A p- C! a' I) `2 N
}
# [6 k7 w& d8 E E: r5 d4 q# D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; l( T; ]/ M& J8 g% ] X H0 F ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, Y$ D2 V$ L! D2 |9 t7 b: A. M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' i% U/ D3 Z! M& q6 ]9 L
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
{9 b6 P1 i$ }) M) Z( v ( (CUser*)this )->AddTaskBar();*/# {/ a/ B* L3 Q+ B" P3 s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, T" f) n- Z* e* `7 Z# R: g
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 O8 s- g$ p; B& S; G. { ((CUser*)this)->CheckHonorStat();4 f% }' t, Q: S1 l! `# L" e
((CUser*)this)->AddHonorListAck();
' L% ` m) S! ` g_UserMng.AddHonorTitleChange( this, m_nHonor);! n8 B0 h4 K9 P6 q& g% D% k0 Z" |
#endif // __HONORABLE_TITLE // ′Tà?
) ]1 r! s# m% F4 j* U }
9 f* o! [- n& B2 g; D#endif // __WORLDSERVER* H6 b4 {+ R7 ]5 S( s; X2 _. o
}
8 V5 x0 r1 S# ~
6 u$ y7 V3 q+ t3 H, c, Q然后你进入functextcmd.cpp并添加以下
) q) h$ R2 {4 G# ~1 H" f+ V4 k8 _6 m; F2 p
代码:, R. y' @" S' [3 t* L/ Z8 T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
o7 R: X* B" H4 j/ e% I下面插入
" e( q2 o* W2 kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & G5 H$ M8 \/ y0 F: @/ L- U- D
! X' b' Z: Z3 N! i1 K' D0 F
然后你去 k+ {; E7 O u) [4 s' c
8 O, y5 Y' t% {+ V/ R( m H& Y7 O# ?: A! A代码:, c9 |% U7 ]% G( k- ]
代码
. Z) G3 e) ~$ p# DBOOL TextCmd_ClearPropose( CScanner & s )2 S( p/ n U0 P, }9 ~! M( x4 n( ~
{" [4 j3 D) s, l
#ifdef __WORLDSERVER
' |0 Q9 }! @2 ~ CUser* pUser = (CUser*)s.dwValue;( z! N7 \- ?' u( `6 n8 `
g_dpDBClient.SendClearPropose();3 G# Y4 H2 m, c6 p0 k
#endif // __WORLDSERVER
7 C" N5 k: t. B return TRUE;
1 E8 T* Q! Q; m) b( b1 t6 S+ V}
0 f; a) _6 l$ n9 ~下面插入# j) a8 I& X1 B
BOOL TextCmd_rebirth( CScanner& scanner )
' L% I: r7 X e{9 C$ u0 [6 k5 z7 B6 {
#ifdef __WORLDSERVER5 ^' A4 w$ y) n9 J
CUser *pUser;
6 n) B3 @! i, E; Z% ^& w; d9 lpUser = (CUser*)scanner.dwValue;5 V6 b0 P" o g6 A& M6 r0 y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' r' o. s' D( z" ]% t' X* v) J
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& o: X! [4 s2 ^3 Velse: E" k0 n6 @3 _9 u; j
pUser->AddText("你还未达到重生条件!");
7 H. T1 a9 [9 n; v2 N( I/ b#endif
, t5 R* T( y y2 L7 K& preturn TRUE;
6 l# P% y' F- ^+ m9 ]1 O} h, x; T$ Z. h4 F, ]0 \& y
. R- _ ?, P. `$ f; Y
7 A/ o# v# H: A. q) X! a5 i; v+ R' X; Z5 r/ t* `
b% k+ F7 J1 ^ o3 n( ^
|
|