|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ F5 n+ q* ^/ h4 b1 B5 y$ c
- G- D1 h! p0 o3 Z) _% L
Mover.h; g- v2 k7 T' M# B3 c d( y
代码:/ @! B+ V" x' }9 k$ ^- d1 y5 l
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! k4 F$ P0 Y( X, m4 W' x3 n
* v7 A8 ~! I8 N2 p
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % X0 J1 M+ N( g% W' A
! ]+ y4 u2 ^; ]5 x s* D5 R% w" L
然后你去mover.cpp添加
. K w. H" I; a& W( b2 w* u( L! }- E
代码:
5 [1 R4 u; l6 p f+ cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' q. s) ~+ B2 W7 L, c3 Z{
5 Q+ C9 \ {; ]9 g. ~2 h& `#ifdef __WORLDSERVER
- S/ D: ~- z% Q6 N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- f6 t" d1 ?, M MoverProp* pProp = GetProp();
7 ~" x# ~, H/ f8 \4 n3 n; ]- T if( pProp )4 j' A" u. T4 {1 Y- ~
{2 E; }- L% |8 |
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% f- t6 m3 P2 x6 Y: G- `
{
7 ]2 B" ^5 D" o/ J c O8 h AddChangeJob( nJob );* A& R7 h- Y/ f
}else{, `* a' H1 q; H `8 H
return;
- ^0 r! X7 y+ I- n }2 M* P+ n) D3 V2 F* }# p
int nPoint = 0;2 m" ]; v% f _: |
if( m_nJob == JOB_MERCENARY )( s( F x* c: L* P5 q9 a J
nPoint += 40;; m4 U: e5 M; A& N1 u
else if( m_nJob == JOB_ACROBAT )3 A. s; t$ } e5 w+ B6 A# T
nPoint += 50;
& p0 F& w3 X, i1 B2 K# `; j else if( m_nJob == JOB_ASSIST )
4 n* z: B% A. \- a( G nPoint += 60;
; B4 |5 s# N- R3 g4 x6 A else if( m_nJob == JOB_MAGICIAN )
$ G& R* p# q" [9 ^6 ]$ h9 V nPoint += 90;0 E) B# ^ {( H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ S) d9 \1 |8 l( l! h8 n% j/ U
nPoint += 120;
) W7 U. v3 \3 Y' V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), [4 @4 H. h3 j5 w
nPoint += 150;: p" X/ D2 S- F/ E+ C
else if( m_nJob == JOB_RINGMASTER )
% ?- \0 O+ ~1 Z/ L& m nPoint += 160;
1 _3 v. P% ~) d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ o8 P& K! q' G nPoint += 180;
% A. ~+ ~4 G { else if( m_nJob == JOB_ELEMENTOR )% u6 W. m5 `3 V
nPoint += 390;5 c, Q! w) e( B3 J
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ L- r, `/ w0 w: |0 S nPoint += 120;
( b$ x0 }$ T S* ]" [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 d* R k3 l4 i, C2 C% K6 O nPoint += 150;
9 y" U/ k) S- U1 h( k6 Q1 y5 k5 t/ S else if( nJob == JOB_FLORIST_HERO )
! r8 H2 I* P+ m0 N nPoint += 160;
) Z' ?% o4 `7 ^+ f8 U9 O1 c else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 S1 r: K9 A& n% q( [3 |& Q nPoint += 180;" t1 \! ?8 y. @) X8 H+ b) [
else if( nJob == JOB_ELEMENTORLORD_HERO )
! Y9 R% g# h/ ~7 x9 [8 e/ i0 F nPoint += 390;
( s9 u0 e& ^ n0 A, R2 x
; R6 F- y6 `3 y' s$ Q AddSkillPoint( nPoint );9 D4 N& \1 d9 B2 _
m_nLevel = nLevel;9 X+ q) F. E5 J, \# l% |
8 F" z3 r3 U B! r8 a9 r SetJobLevel( nLevel, nJob );
8 |8 }' \ I6 ] m_nDeathLevel = nLevel;
$ [4 A7 R1 v8 Q7 o4 N5 p#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ F( p( e4 N# S9 k6 q) X if(IsMaster())
- R$ z) J& t" f+ q2 m {
* t9 A: d' R* b G! f int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ `7 W1 Y2 B2 t1 Z/ l* C3 j
if( nLevel > 59 && nLevel < 72 )5 ` B d' E% W3 w
dwTmpSkLevel = 1;: H8 ~: Z# C9 P+ ?
else if( nLevel > 71 && nLevel < 84 )
; h. y i( }# @* Q7 E# ]3 E0 ?: C' B dwTmpSkLevel = 2;
! L/ m- }% C* Y+ e! G' { else if( nLevel > 83 && nLevel < 96 )+ [" m- j( y( s5 b
dwTmpSkLevel = 3;
& z# f& G& h, y, X5 Z else if( nLevel > 95 && nLevel < 108 )
2 @% U5 b8 A' u2 Z dwTmpSkLevel = 4;
% o8 X7 a( s/ M0 A5 W else if( nLevel > 107 && nLevel < 120 )+ w: y0 P6 x7 |
dwTmpSkLevel = 5;# w: z" t0 [/ \3 `4 u+ d! Q- D! G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! @8 C* I8 X5 _& R* W+ R { 3 i/ D$ F- ~1 h0 T `0 o' w1 e! Z
LPSKILL lpSkill = &(m_aJobSkill);
- O/ }! t, q+ O+ j9 q$ ?/ b if( lpSkill && lpSkill->dwSkill != NULL_ID )& c1 B5 P& U/ p1 Y( E5 j4 e- D
{
: n9 C; W0 k4 `- |- Q3 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- Y2 i9 c) M5 L9 m if( pSkillProp == NULL )
* @( {2 R) j* s4 e$ ^! b( j continue;4 V8 N q# Q( j5 f0 I( m3 N" V( i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( c5 p3 c, \4 o! S' A continue;5 [% T1 g* S/ P0 B- u
lpSkill->dwLevel = dwTmpSkLevel;4 {" m( M3 g; @, o
}# Y. ?- i q8 e, h+ f, l
}+ ?' n Y& S" g1 e L- ]- S0 n
}7 z! `/ p$ K: f) ]# J- B
else if(IsHero())
. E" u, R D2 f4 j8 R) [ {
! ^% U, l8 G7 s I4 U8 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
' I! O* |+ u# t8 N" c { + |& J! S& _- K4 g
LPSKILL lpSkill = &(m_aJobSkill);1 l) `0 r8 Q2 s# |1 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 M6 i1 y7 c# V# t
{
( x% h6 e' M/ ?! ?; r+ | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; P1 I( l7 _* G4 ^" Z% D0 ~- a& Y if( pSkillProp == NULL )
6 m" K+ C3 u! y6 a9 l! N6 L continue;8 T r x7 J% N# J O9 x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); P! ^2 m3 L+ F! k/ F5 m
continue;
: H4 n) A6 s4 F. Q# _/ v: r lpSkill->dwLevel = 5;- Q3 [) T9 v# S3 i8 x
}# D6 |6 n q+ `6 f
}2 K" s/ @! S% j+ V( o7 ` s1 y1 k
}; ~6 V% d! n. c2 S4 X
else if(IsLegendHero())
8 K, t+ n- q8 y {% l! H/ c9 q" M5 |' P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 }$ ?6 S" N8 l& b
{
# X( [ s/ J) z8 k5 q u& l LPSKILL lpSkill = &(m_aJobSkill);
4 P$ w; b! \5 t. z; B# m* q! I) K if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 _: I2 n( U# P7 b- U( k1 ? {
0 g* n5 C/ h6 _$ ?' e) k* { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 c; q8 G+ ]7 v
if( pSkillProp == NULL )
+ m+ K: G/ B- t0 g1 \. n% Z& K continue;% G0 V" _ e I0 m6 _3 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' T. U% v; u6 i( ^, H
continue;/ f: `0 y' T( |. d1 {# l
lpSkill->dwLevel = 5;
* w# I2 J% {. O& x0 Y0 W: [3 z/ }4 N; H }
& S8 W: u' s) E4 }5 G- m9 A9 U! q* X }
0 C8 r, u& ]* e5 M }
7 @5 }2 O2 t8 w6 H2 z, E3 k" d4 _3 Y' p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- N/ a( `. M, }8 [: m if( bGamma )0 N+ s( c6 {4 U# D, E* |
{0 S& U6 \6 b3 y4 P
m_nExp1 = 0;
# N4 g% ]) d+ M% m- U }
0 \/ ^( q1 I s0 `( h4 S$ M
9 ]# c" J; Y9 e ( (CUser*)this )->AddSetChangeJob( nJob );
6 p2 I* ^2 X! K0 L5 N g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' Y& y) N( U. G' Q& K3 z% Y8 C6 ?; M" Q/ j4 i- R& ?; ~
5 D, O0 S. k" x j#if __VER >= 11 // __SYS_PLAYER_DATA
; d% L% t! N: {: u& N0 m) }3 Q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 O8 |' }1 ^0 M7 Q0 H$ M; A
#else // __SYS_PLAYER_DATA+ F3 F, N# n7 G" _* d4 ` h/ \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" K7 [. h: T1 `) c2 ~" [/ b' k% B; h0 H* Q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# n g1 l7 y; l7 T0 r# n
if( m_idGuild != 0 )
, x( P S8 ^ ~; [ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* D: J& Q: g& H+ S) G6 R# o8 I#endif // __SYS_PLAYER_DATA
. t3 J/ _6 I! J8 c" C/ }+ T% ]$ B SetHitPoint( GetMaxHitPoint() );
# c6 O- x2 y9 B& N' K0 G SetManaPoint( GetMaxManaPoint() );4 Z3 W5 s3 _8 T9 z$ P: P# A. |
SetFatiguePoint( GetMaxFatiguePoint() );, R' E. j5 V3 L
if( nJob >= 1 && nJob <= 4 )
' C) g C# y3 C8 G+ t {/ ?; }7 J% W* b# q9 Q, s3 C
m_nStr = m_nSta = m_nDex = m_nInt = 15;& V( ~1 k8 `( O8 ]8 x7 f
m_nRemainGP = 28;
2 g2 w) e- ?- c4 [ }
0 l) V, L2 T( \3 Y- d4 o if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! @- {7 [7 ]) `) a. H( I
{% {- u: I, H& T8 @
m_nRemainGP = 118;
" \- [9 u0 D$ U& V //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 ~- S% M3 N: T1 X' g( {+ C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! ~/ R( G+ p) q. v: t }
) \- F1 o% A4 j/ ~; W' ^8 ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% q& H1 ?) F. v2 e: R6 a2 w/ d {$ I8 l6 l& {; O( Z. I
CItemElem itemelem;4 G6 u( G9 i1 `/ r7 G
itemelem.m_nItemNum = 1;3 i" x. R. P5 s g) s
itemelem.m_bCharged = TRUE;
1 v! q# r. _2 ]4 s ^2 b BYTE nID;8 \5 i+ Y+ R1 B+ r8 q
& t+ Q8 O& c0 R8 e/ D7 R if( nJob == JOB_MENTALIST_HERO )
9 w5 K* h, a4 Y2 t' ] itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& n/ I5 U; e9 L
if( nJob == JOB_FORCEMASTER_HERO )
: B! H9 W4 i Y G4 C itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 h- A0 y2 D3 X0 D
! R+ U7 G$ N% Y+ a: e ( ( CUser*)this)->CreateItem( &itemelem, &nID );
) i% f! X( W/ p0 n5 i1 }. F }0 D$ r4 ]9 [( x6 t+ c* Q" }( f
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 E; | y! n* T1 g4 \ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 g0 I0 C2 R/ Z+ }8 `6 Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ x9 ?) a1 W# V5 o. f5 }/ C9 h4 [ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# c$ H$ {9 C3 {: f+ h' a6 S: d
( (CUser*)this )->AddTaskBar();*/
7 y2 b; p y7 ^- y7 _6 N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. k: U, R$ R% C% j p) z+ m#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! ~+ ?: A M+ a& ?9 b4 q' [* ] ((CUser*)this)->CheckHonorStat();
( } c0 N. y% [; f ((CUser*)this)->AddHonorListAck();
" k j7 C d: {/ e) k g_UserMng.AddHonorTitleChange( this, m_nHonor);9 |+ ]4 T2 O9 r, t8 z/ I
#endif // __HONORABLE_TITLE // ′Tà?
* w; o) K% M& ?7 i/ D! w } P. U1 s `& ?2 n
#endif // __WORLDSERVER( t# V, ?; C/ U" D
}
* [; y; _: Q) E: O S! h
+ a1 P) p! y4 Z1 x% |然后你进入functextcmd.cpp并添加以下8 a X& l* d( X" {. k: R
" m# t2 k) `9 _' _8 v8 I; a
代码:( Z4 n3 N: W' d( J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): @# h( `7 _! d
下面插入" r, K' {' ~2 L3 p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* E4 G1 f6 |% p
6 t! S( {; s( u$ N然后你去
! d- Z1 X& s$ i* f' b$ S- }
, }* z6 _5 h' s5 x$ W代码:
! b9 R8 k: y7 u3 s- o代码8 x, g: [ V1 a6 U# e+ I D
BOOL TextCmd_ClearPropose( CScanner & s )
; V2 y9 }/ |) X4 E{
4 i* W' b( ?, j/ L" J+ L& v0 Z#ifdef __WORLDSERVER
6 x4 I3 X' q; T a d CUser* pUser = (CUser*)s.dwValue;
1 T7 U$ g7 z# a$ h6 r, a g_dpDBClient.SendClearPropose();8 X9 ^/ C0 j* L
#endif // __WORLDSERVER. j U6 |8 N, t! A' {& q7 C1 N
return TRUE;7 ]( d# j* v2 o) X% \8 E9 E8 F2 }
}
0 p; x% P3 u& Y下面插入( {8 E8 R& u0 O$ k" P+ h) ^
BOOL TextCmd_rebirth( CScanner& scanner )' l' s5 @( a0 q2 q6 f6 p
{
' n0 l) b, l8 f, z#ifdef __WORLDSERVER" ^1 @* y% C+ E8 E, S! d/ ]/ c
CUser *pUser; J+ Y1 u& N2 |7 d. G
pUser = (CUser*)scanner.dwValue;
: B6 u O1 D; a5 Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 Z+ ?, d; N6 W' i
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ ~, X: z( m% B% s Nelse- F6 }3 S# z4 _" b% X
pUser->AddText("你还未达到重生条件!");% Q% U) Q% T; c0 B0 B5 O( W
#endif, Q5 k/ A5 ?7 I' D# r
return TRUE;
# j% x0 W$ D# v9 i; I; `}
, |; n' W& a H- }% w U2 }
e+ h) |8 A. P O
3 }( x9 t+ f3 `7 l3 A0 L# ]/ o+ s6 M: m8 ^! X6 C) ~
) r6 q! [. o, n
|
|