|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" p/ v4 j- E7 B0 U
& r- W) c9 ~9 H4 eMover.h
' W# w5 T# F1 ?+ ?* b& O/ d( `代码:- f/ I! C( Q% x. j: [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü5 ~) m$ K% p/ J1 C/ h! c1 c% }( T
1 y7 [- S# [% {' c6 z5 n下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 O/ O8 p5 u% V$ K0 ]
0 ?7 Z. l2 H7 ~3 y5 w( o) F# W) M然后你去mover.cpp添加
& `; U$ G% U$ P' g& _7 h' V c. E+ I
代码:
C# D, W' o/ I6 E: Avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' w& o0 A p! {4 Z9 p# ~
{. H6 Y. v% |" p3 H
#ifdef __WORLDSERVER
: W- ]. g7 z% ` // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: B8 k! `1 H: r' u- d! j
MoverProp* pProp = GetProp();( b& r/ a6 a8 b U1 Z- o" b! z
if( pProp )' ?2 [1 D4 u q; D
{1 O: }8 M+ a4 @& U' @7 |
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& S8 m) ~# P! M2 m7 h' c
{8 g' j' u8 x* f0 Y) ]1 t; F' ?
AddChangeJob( nJob );) w: d6 v- R5 g* @: U+ E9 o
}else{, U5 T( _, h. w* S& N
return;
: q7 t( A) P- c; b. x! ^9 u }
" K) P: r$ ?' B/ k3 r int nPoint = 0;# W9 b& ]% O$ _
if( m_nJob == JOB_MERCENARY )
4 m; ]; H- w" ^1 F8 H9 k: @ nPoint += 40;+ p5 f! U6 m8 x5 M& s
else if( m_nJob == JOB_ACROBAT )) U( s1 R7 |+ @# T0 @
nPoint += 50;
@: F- h2 U6 }, D2 ~0 K' { else if( m_nJob == JOB_ASSIST )
& x3 T# f9 L9 n- D2 X nPoint += 60;( [+ f2 w( `; V8 U$ O9 p
else if( m_nJob == JOB_MAGICIAN )
9 a7 v6 O0 O( |' P nPoint += 90;$ l# l8 H( m' Q% u4 f" j( ^5 v$ I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 Z- _; \' J/ w# T: g8 a' D nPoint += 120;# `4 G. S. b3 n! l; T: i( R
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' f. P$ V% X" x6 ^$ g
nPoint += 150;
7 V0 }' o' C5 P( j% d" c# H else if( m_nJob == JOB_RINGMASTER )' ^* `9 Q2 I6 p
nPoint += 160;) n" {: z' O+ ?( \
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 I2 o1 w0 ^/ N0 I6 v2 m$ Q nPoint += 180;9 e( R! Q: r6 S" C
else if( m_nJob == JOB_ELEMENTOR )
, }$ g1 I' z9 @! S/ {3 \" c& W: p nPoint += 390;
7 c1 i3 C& X8 Q/ q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( a1 H- J0 \; F4 I4 |3 H
nPoint += 120;7 J" q' k; ^& W% }( J+ h9 M; y- Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 I/ R7 U/ L9 x! p4 G" \/ T nPoint += 150;
% Z; ?& U, F3 I3 u W) T0 N else if( nJob == JOB_FLORIST_HERO )
# B- j" L* i; I- k nPoint += 160;" ^& @% l0 k. \$ ]+ g* q# m8 ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 H7 J0 n3 x- o: W# P
nPoint += 180;" y+ y/ o! z5 e5 V# q( U& m
else if( nJob == JOB_ELEMENTORLORD_HERO )) t# l. U+ Z& b& ~% d2 ~4 W4 p- A$ J9 j
nPoint += 390;
5 K5 x, }9 D" C* M/ b! E4 x% ? W" l. E& e
3 J# K7 y, G, t; \% ?4 w# @ AddSkillPoint( nPoint );- F6 G9 C: Y, E! `; B0 u5 V3 T
m_nLevel = nLevel;
) |/ C1 U- q. R' r( R# R0 W
4 v, H! r5 u% m+ Q8 j' n SetJobLevel( nLevel, nJob );$ I1 k/ m, m2 b) u3 X, s& x3 u' C
m_nDeathLevel = nLevel;- s+ f) d; k. z% ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. M4 C8 H9 z' x, p5 p& O, e
if(IsMaster())
7 H( q( P0 s( d& p1 W, J {! F( o ^: B. j, p5 L8 T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 a9 h5 c% W% J if( nLevel > 59 && nLevel < 72 )
9 c9 p6 r3 l# `: e0 I dwTmpSkLevel = 1;
* l9 l8 A9 M1 j) i; J else if( nLevel > 71 && nLevel < 84 )
6 e1 Z$ q$ G# a1 n; c dwTmpSkLevel = 2;8 l% {$ Q/ b; \+ X% l7 J
else if( nLevel > 83 && nLevel < 96 )3 u$ h- C8 b$ m# K' c. `
dwTmpSkLevel = 3;8 m: A G( [% s: F: n: a
else if( nLevel > 95 && nLevel < 108 )
$ @; T1 m5 ^$ y/ z dwTmpSkLevel = 4;
0 T+ S @ b8 x/ u3 F) U- n# J else if( nLevel > 107 && nLevel < 120 )
8 r4 b; o& e9 h; g# q4 E dwTmpSkLevel = 5;
4 g: i& I3 A; S+ A' d0 d( l* j; h for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( Y6 i( k' b D9 X1 k( E
{ & V6 }. @. O, _1 R
LPSKILL lpSkill = &(m_aJobSkill);
1 @2 [2 l* {7 I% C; F2 l2 i if( lpSkill && lpSkill->dwSkill != NULL_ID )( ~* e* n* b/ j. ^
{$ m6 B4 L! o1 w) y9 K; m T; ?2 C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 ~3 R& B+ Y) r& g0 W! x if( pSkillProp == NULL )
1 L! A, y8 H. r0 j8 A8 f) J4 e; ? continue;
. {8 k& U0 o4 k4 K* u3 C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! M5 V: \0 h" S& W2 V* I- | continue;
8 R7 y! H% a8 g- j# Q( M lpSkill->dwLevel = dwTmpSkLevel;" A6 x$ a3 ^6 y8 V+ u: e
}7 A7 o. O" X4 v. M8 b' g
}3 N, O2 y, o6 [; S8 o7 f1 N3 T3 j
}
0 {/ O; _0 n( o else if(IsHero())7 `; k9 z- @1 ^8 f7 L# ~* D8 J7 ?
{1 H q2 v. G; T2 T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # n$ o/ L! `. Q) h. l
{ : w x, j, ?% K- H* H
LPSKILL lpSkill = &(m_aJobSkill);
: ^" {, I4 @, @ if( lpSkill && lpSkill->dwSkill != NULL_ID )5 y: r Y& o6 p ` K
{ K% |3 T' `- j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); O( V( o8 l9 T9 Z. v/ r5 S
if( pSkillProp == NULL )
6 X0 b" W2 t: H1 y2 \ continue;
) G2 B1 U4 g8 i# g }1 _9 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# D3 J' u, ?$ p" ^
continue;
& I% g Q- |% X! M- H lpSkill->dwLevel = 5;" q2 D6 f) X; k0 M6 H& W
}, l2 K; V6 P4 w
}- a. }+ z* C5 F1 N" o. O3 Y7 E
}$ Q; ]$ U& _" `8 d
else if(IsLegendHero())
7 C7 n* v. u" p& q( [: H {! i& L* L: {: A5 R% q& P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , T# {$ ^% G0 t' I, n8 d) g' a
{
( D3 u7 j* B; q1 o+ h: D7 ^ LPSKILL lpSkill = &(m_aJobSkill);
; e2 {# z3 w, g! L8 y: R- p& _* v if( lpSkill && lpSkill->dwSkill != NULL_ID )( Y0 l @; G* c: Y
{+ r, j7 k+ l% W7 n( b' K+ n1 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . u0 c& X3 |/ w5 z
if( pSkillProp == NULL )
& d6 R; Y5 Z# G/ [ continue;, d: v* f% Y+ \; k4 ]' P, `6 C, {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ A$ E. R; Q0 [1 `' L! \
continue;1 W9 e: R6 g- r: h3 @. K- [8 D9 i
lpSkill->dwLevel = 5;# ^: f1 D$ X, M
}* `/ q9 b& A) k1 M$ e; g$ j
}4 Y- v% f% f3 l8 z+ k9 L8 C/ i8 r
}
4 `8 |3 y `- B/ K) P, ?. Y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 a3 b7 P2 G7 M% i7 ? if( bGamma )+ d2 ]. K# X. x" \, f# o" D* w
{
; t3 T, O% ~" A* E3 H m_nExp1 = 0;5 e5 u: b9 l/ T+ S: ^9 B7 v
}
6 N. A+ D; R8 w' j, b4 f# A( ]: `0 M( i& e
( (CUser*)this )->AddSetChangeJob( nJob );
/ h8 E% f! N. Q9 K+ M6 P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; A" G2 x3 S% ^& T. c
- f" g) `0 q9 K& v5 \8 f/ y
! v4 l( S M6 m4 g3 {#if __VER >= 11 // __SYS_PLAYER_DATA
! X% ?/ J2 a, O! \ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) }) g1 ~+ _, ?+ l+ |& ~& S: P
#else // __SYS_PLAYER_DATA
% e. r) L; M4 w. l, L! [+ t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 v X; }$ f9 p6 Y. `; F, i8 Z8 O- ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# j. }6 u8 K$ O6 V! t; `2 ~ if( m_idGuild != 0 )) o! b6 x5 x5 H7 E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
S5 n- ` _. n" u, ?#endif // __SYS_PLAYER_DATA+ ]0 j3 }7 @6 f; f2 B* r' |$ g" X
SetHitPoint( GetMaxHitPoint() );( P- p% [6 `2 p
SetManaPoint( GetMaxManaPoint() );
' R2 t# {6 Z3 i* Q' E SetFatiguePoint( GetMaxFatiguePoint() );
- B; {4 @# e1 e }+ B6 U if( nJob >= 1 && nJob <= 4 )# p: {/ M' B4 j/ v% ^) E
{/ ~+ B; X9 \+ j5 j5 |( ~4 G5 m
m_nStr = m_nSta = m_nDex = m_nInt = 15;! }# @2 Y5 V+ f& u+ D4 z5 W
m_nRemainGP = 28;) R1 Q- m6 g; E
}- P8 q' a' i. I9 w- u. q$ \# X
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ m: H! J9 _) l0 c4 ^- V! e {
( V; e# j7 Z) j N/ |& ^6 K& Q' ] m_nRemainGP = 118;1 W' ?0 [/ _' X: e& T' w X7 \
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 I2 U! l( h! B m_nStr = m_nSta = m_nDex = m_nInt = 15;9 A( B/ T; \) u& k& B
}+ b( s; Y2 r( U/ ]7 h% C( U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 b( l# m0 u. Z, c, U {/ X; w9 G! J! P9 ~5 s1 d/ X+ z% H
CItemElem itemelem;; z/ K: k8 M3 C* m+ J% B- u
itemelem.m_nItemNum = 1;
! i. S, l& y, M* t6 s itemelem.m_bCharged = TRUE;
3 m3 i+ K- M- L5 e# Z3 J9 j BYTE nID;( s0 q" d# @- a u
+ Q3 j0 m/ X4 a8 v% j6 {& t if( nJob == JOB_MENTALIST_HERO )
; S1 ?! _8 y r' d itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 \7 Q- I4 n8 f! X
if( nJob == JOB_FORCEMASTER_HERO )
" D: Z @3 `7 W) c itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- c" X. [. o4 @( v) p! c' |3 |1 s2 O
+ d* I6 X7 @7 C( m ( ( CUser*)this)->CreateItem( &itemelem, &nID );7 e8 q4 i- S5 G0 z9 F# q
}
1 r( Q- u$ a7 ` g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* x- |) ?# {1 G" S7 b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# C( s) A& t' W H5 e6 M1 X- W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 I, R Y$ m- j& ?+ E+ d# G9 C /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ n$ J! ]7 A# |4 H* G7 b ( (CUser*)this )->AddTaskBar();*/
' |; A) N+ ]: a) r& i, t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 {: _+ ~/ Y2 N( \" X' X; V* U#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' q9 x& ^1 V+ T, h# \& A1 I9 [
((CUser*)this)->CheckHonorStat();
, `/ _- P. F0 h4 }$ c ((CUser*)this)->AddHonorListAck();
$ k6 u1 t; R7 B, T3 H, f& y g_UserMng.AddHonorTitleChange( this, m_nHonor);# ~0 N3 A! S( Y: u. R
#endif // __HONORABLE_TITLE // ′Tà?
3 T* y6 I! B4 H' l: ` }
% |" |: P8 {, I. T#endif // __WORLDSERVER
& p8 L! c8 p2 q3 f$ H} : \3 I9 K, Z8 z3 X8 B
0 |9 w6 \- |3 T& M" v9 R
然后你进入functextcmd.cpp并添加以下' X# Z5 M7 V- i4 u' `! T5 m% Q: w
5 j+ `; M: B4 {" D& p6 T
代码:
- x3 H: r$ I% s% N, XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 b5 a+ p) C# D' [
下面插入
& h% [9 I, Q. k: m$ J- ]ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ n1 v- C2 \8 D% r% v
$ M$ N! ~7 M( d然后你去
3 J4 \8 Z4 `3 C& y+ |8 Y* K h8 \) J7 J. M6 ]( ~
代码:
! X5 x% e {8 J4 U5 J% E) ~7 R( z代码# O+ A7 \) o# h4 e; E7 s8 d
BOOL TextCmd_ClearPropose( CScanner & s )! @& }5 U0 P* U+ L
{1 C! C' f4 b( F7 A, u+ l6 E- s
#ifdef __WORLDSERVER- L5 P; a$ A/ M5 \6 i/ X1 I9 Y* h
CUser* pUser = (CUser*)s.dwValue;: z6 [; B6 K. u! Y' B
g_dpDBClient.SendClearPropose();
" J) x; ]0 h: n, x: A" U) D#endif // __WORLDSERVER
: a- m0 Z4 y( Z" {9 V3 o return TRUE;
* q4 \/ ^$ R4 ^# W h}
- O6 O8 {" z1 G下面插入/ T% k- r9 Z. T% k& }: @5 t3 x* Q
BOOL TextCmd_rebirth( CScanner& scanner )8 @7 M- g* \3 l$ h& E6 T
{% h7 {! E+ S) f& ~! s* B
#ifdef __WORLDSERVER
. J1 t: L% ~; |1 [+ \1 ~* R QCUser *pUser;% Q5 X1 f$ y1 c* A9 f5 q
pUser = (CUser*)scanner.dwValue;
; d( w8 _; Z; |+ |if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 G/ t$ O! C/ {' ^# B. fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 S" W- e# ^* ^
else
# b) c3 u8 L8 |. U$ K4 dpUser->AddText("你还未达到重生条件!");
. \' Q' B C) B* }* Q5 A& D& l#endif
* f: x( u+ ?5 v8 yreturn TRUE;2 Z" q3 ]: l8 G; K
}
/ ?0 j6 \% F# j& A) z5 c
! }6 C/ b- _, ~
) X8 ]! y0 n+ N$ V$ Z/ o
3 s: A: [; W+ d5 B7 ~0 x' z. @, M
: z4 j: J: J4 @7 p8 z6 C6 g9 A. O' s |
|