|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 U' G: [4 l7 B6 h# K) N
0 T# j0 y# q" i2 j) o# _
Mover.h9 C; d* J: u6 O8 V( `% a
代码:
6 p* ?, o& E* ^5 G) V& {找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 Y% g( T3 N: ~1 p3 ]: S( o+ M- O- S* [ [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
% E, Z5 r# y& m8 u
% A) K7 Y8 j9 r7 m! ^$ Q然后你去mover.cpp添加
2 a- I6 @- S' k8 T' D" ~4 T
" {! L Z% C0 G+ n7 W5 ]代码:7 U. }$ j' Z& @2 b1 z+ l7 z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) f' D9 X! K! z4 ?- S8 n, o. K3 }
{
R' K' i9 \* ?! ?% w4 G, I7 z#ifdef __WORLDSERVER* ~/ j- \; R) ^" f! N7 }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 M2 ?2 T3 `/ t* y0 i: x# g
MoverProp* pProp = GetProp();
# j( ]( w/ m& j3 m% a if( pProp )5 I K7 w. Y* q9 ^" X) y3 q
{: K- V3 [( l7 X
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% o! q% f4 f6 N$ z+ Y, b$ n2 q6 l# G
{1 J7 o" ]1 }3 y1 n' l
AddChangeJob( nJob );: n2 P" E1 S' A0 u) U/ u
}else{' e+ v+ [' U- M. h* B1 n7 [
return;* v' ^3 V+ q& b E
}
D7 p& [1 T. o3 `& V8 m4 A# W int nPoint = 0;) j6 i. @/ x" w" o
if( m_nJob == JOB_MERCENARY )/ N- G/ G9 H. Y; C/ H
nPoint += 40;
! M7 M! Y: C# k8 j! `" _$ x5 c else if( m_nJob == JOB_ACROBAT )4 ~, R1 y$ ^& F4 g* V1 D# a
nPoint += 50;6 A9 d$ p/ A1 s$ `$ t: d- A* z
else if( m_nJob == JOB_ASSIST )
1 S/ G) k* j# Y( Y7 Z0 F3 z nPoint += 60;8 W& q3 t1 N/ a* h- P; Y" T6 K$ G
else if( m_nJob == JOB_MAGICIAN )7 G$ p, R+ a) p+ y/ D+ s
nPoint += 90;3 |9 z* }- M5 q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- F- A* I. {. Q; i nPoint += 120;
/ ~3 L, I7 g4 R7 ^" K$ U3 G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 Y% X& \2 S" ~3 g& Z J8 u nPoint += 150;
+ T T9 ?* S7 {) k1 p else if( m_nJob == JOB_RINGMASTER )
) v: ]5 |" Y% g1 z7 L nPoint += 160; X( Q( w9 H# _4 u9 P
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# k+ ]' J. ]9 R/ Q nPoint += 180;
& w% C! R* O5 n else if( m_nJob == JOB_ELEMENTOR )8 Y% S5 ]+ s. L9 O5 S& c
nPoint += 390;
+ `1 o' A' r4 X2 l: K else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )5 {% }3 G; O0 D/ m8 C
nPoint += 120;
$ e' z" u3 X0 z, F else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 }8 G4 [2 c# f/ z7 Q nPoint += 150;! u* `% j* A. g5 G* [
else if( nJob == JOB_FLORIST_HERO )
$ o+ H" N( G1 N% W nPoint += 160;
$ i: ^- }6 a( k9 t2 b' ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% x# `4 i2 b6 t
nPoint += 180;
$ W2 f$ i# R2 G5 g else if( nJob == JOB_ELEMENTORLORD_HERO )
5 o% d: k H0 _ Z nPoint += 390;+ |* b- G& P8 p% ]
' e n) v' x8 n AddSkillPoint( nPoint );
! V2 x% r. _/ a: B, [' u m_nLevel = nLevel;( A" g, A0 o0 D
( v K: ~- l2 K. c# L/ J
SetJobLevel( nLevel, nJob );
4 C6 @3 A, Z v m_nDeathLevel = nLevel;
; M7 o7 x& Q; N2 m0 ^! z9 P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, M! M) a1 |# w% H( Z1 w r* o1 _
if(IsMaster())
# G" K8 p+ I0 e0 N* Z4 ~ {/ S* U- P$ C8 Z: o' d0 N* H6 R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' `2 p( ], H: ?! R
if( nLevel > 59 && nLevel < 72 )# b3 E! R$ b2 e3 h* N
dwTmpSkLevel = 1;
& A/ S( J+ y# m: K9 M, i( ?6 z2 }* ?( B! r else if( nLevel > 71 && nLevel < 84 )3 O4 N3 J2 g: R; E
dwTmpSkLevel = 2;& n! e1 E6 [0 r
else if( nLevel > 83 && nLevel < 96 )3 U8 L6 S$ f! t
dwTmpSkLevel = 3;8 O) n0 x/ v2 W
else if( nLevel > 95 && nLevel < 108 ), \1 [! d% X: X% J* ~
dwTmpSkLevel = 4;
7 R6 R; l6 D, @9 m. O else if( nLevel > 107 && nLevel < 120 )
6 ]4 y6 v6 A& b dwTmpSkLevel = 5;& ?1 L8 `6 u7 B& H% E: G w7 E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ G0 I( k/ D1 L, |5 t
{ ! y) D+ q" @$ |1 R, }
LPSKILL lpSkill = &(m_aJobSkill);8 v: Z: R3 S% E3 C0 u9 \1 Z5 D
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 f4 H' j* N9 r; u {
. g" B+ w1 O2 Y/ `) h: {: G+ a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' x0 I. j5 o, n1 B
if( pSkillProp == NULL )3 O: u! {+ o; q) _. ?
continue;
: I6 a5 | ~' I* E. E2 ~5 w& G, z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& ^! c$ Y1 s* u! w4 D7 M9 W
continue;
' x N0 H* y& r; ^+ E lpSkill->dwLevel = dwTmpSkLevel;
! Y0 r: Q" S. R }7 g1 r" M2 H" a7 O3 E: ~+ H
}
' y# H+ ^* [+ z/ H1 t }( t% c: T5 U0 k# j
else if(IsHero())
& c( P/ k( x" H9 O* y& T {
/ n+ n: x# S+ k9 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 t8 j, ?& C( X# ]- n7 `
{
, W9 S- ^2 U4 e3 [, Z6 N/ V LPSKILL lpSkill = &(m_aJobSkill);8 j# W2 `' a% N; A5 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )( G: b+ V$ n- {7 c, r
{
) X) B1 k" K' J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 c4 Q7 D# c" U$ }3 D5 G- ~& L/ k# ~ if( pSkillProp == NULL )4 `8 {' l: Y6 z* M" d5 R' Q
continue;
5 x+ Q- }' I: s+ ]- B% a7 L6 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ K* w/ e6 Q! l6 x( Q1 Q1 T/ c continue;; {+ I& m% W) w2 I' A
lpSkill->dwLevel = 5;/ u3 d( `4 ~; y' S$ U- E6 H
}
# q0 ]" ]6 r4 l d3 Y }/ D' l2 y2 C" z# C9 b! X8 V
}
4 u# ?" p8 @6 E else if(IsLegendHero())
* F; q! G, e3 A' Z" H8 ?% e8 J {
3 ?" \* i" S0 n) L for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 ]( |" N. L A( i& Z8 T p( z
{ ' u; X- J H& ^: r2 N6 t9 D, H/ u
LPSKILL lpSkill = &(m_aJobSkill);
* V0 _$ {& t' ? @/ N w( O5 y if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 r& N$ Q& c" y( i {
" Q: s, f! p/ e. A, k+ M7 j; n9 w! } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , L+ ?" C* `$ i m
if( pSkillProp == NULL )
0 V+ G/ b A) W ~ continue;
6 n6 G& z5 N6 C6 j if( pSkillProp->dwItemKind1 != JTYPE_MASTER), I4 T1 @* x/ E' v+ V( l* v' _
continue;
2 i- ^1 I# O A: a lpSkill->dwLevel = 5;" l2 L' F3 U' V: |/ J
}
# w( v/ t: W% P' P/ b; M }
1 h) \2 X# \5 N2 U( v( y( h5 \ }
! s- L1 S+ F! J& N$ l4 P: l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. J' T. B7 {+ C; }1 u6 e s, E6 [
if( bGamma )2 E$ T7 s6 e4 s
{
7 k; `' g7 Y3 H* T5 t m_nExp1 = 0;5 }+ }# k7 z2 J1 d5 y
}
$ G4 X; a1 H- l/ ^6 u) i* ]2 T3 R6 W& Y3 y+ U% a, _
( (CUser*)this )->AddSetChangeJob( nJob );
# ^! [8 h& s9 x6 E% [2 Y9 O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );) s3 K6 R7 R* P0 ]
8 m* [& a- N$ q; m# w9 c" n
$ k( A% l9 r' \7 Z
#if __VER >= 11 // __SYS_PLAYER_DATA! x p& _4 t7 u+ m/ a( x" {
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* ]8 h0 u& E c" T1 @8 Y1 A#else // __SYS_PLAYER_DATA
7 n; t- r3 k, |1 S6 q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" Z ?2 C9 P4 h H' Q5 C; k! S: o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 ~5 F8 ^% _0 V- J& _5 Q
if( m_idGuild != 0 )
( D6 W9 O! h, m, V* q! ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ c a, K( C+ r
#endif // __SYS_PLAYER_DATA
9 S4 {3 g8 b* y# ^# E4 X5 H SetHitPoint( GetMaxHitPoint() );2 s* K, t/ U. ?9 w" F2 V: E+ G
SetManaPoint( GetMaxManaPoint() );6 y. [; P- L, q9 I: R9 z9 Y
SetFatiguePoint( GetMaxFatiguePoint() );( H3 x3 [) q$ o4 @8 K
if( nJob >= 1 && nJob <= 4 )
0 _' j/ M0 r+ Q6 S: f1 }, L {
" K; u+ }2 C* d, A! ?1 P* a m_nStr = m_nSta = m_nDex = m_nInt = 15;8 W& P( S7 b5 j7 O, m
m_nRemainGP = 28;
0 g. c3 o% t% B' B }
( N p- L7 T6 U" z5 z8 t( N% A$ Z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 s" b# o% ]4 ]; \' i {/ O' T' {( K" [0 t4 x
m_nRemainGP = 118;
+ w5 g5 \/ D0 n9 t //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: E0 G1 T6 `8 @8 } m_nStr = m_nSta = m_nDex = m_nInt = 15;- P8 ~8 h d2 U# H+ N! \+ s3 r; n: x
}
3 ?; U& s8 A' k. C if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! r9 U/ n% M0 H {) p! v1 o; j" ~& p1 |; E
CItemElem itemelem;
7 L+ i' d! J$ Q& J( o+ Z9 \/ L itemelem.m_nItemNum = 1;
" m/ L, e9 v: h: @( z( }' q: J. W itemelem.m_bCharged = TRUE;
( E& [7 G( ]. A. [& u BYTE nID;$ [ R! e5 z, p( S3 p# |
6 l! M& x1 Q* D& H9 V6 V& |$ k0 ~, k if( nJob == JOB_MENTALIST_HERO )$ V0 t6 F. W/ ~, A
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 R( I& N! \& }1 E! Y! F if( nJob == JOB_FORCEMASTER_HERO )
4 F. ~# M" f, T' o+ n itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# ]7 ?/ F! ~8 S1 U2 J% z0 T! m7 t
: H# B6 W& i8 X9 A/ L! k+ Y; K ( ( CUser*)this)->CreateItem( &itemelem, &nID );" P4 M0 u6 @, {5 i7 [9 g/ k# j
}# c( Q8 J% G* u6 b9 Q/ [+ a
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ J( ` h* N8 t( Z& S5 t9 x/ u ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 ~0 C' ^ z4 E& @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 a C1 G; T9 E! T4 \5 f5 r T0 H+ W /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, k9 p2 j2 i# a# ^/ a
( (CUser*)this )->AddTaskBar();*/: K \' g0 [$ W; W% G" n9 n
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ I. ^/ Z0 X) w' `2 G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ U: s# h6 X; G. Y* } ((CUser*)this)->CheckHonorStat();
2 d3 q# ~: I% y+ p ((CUser*)this)->AddHonorListAck();2 h, S4 j) d9 I* X% I) O
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 ^+ Y. G$ \+ Q" B4 Y: m% }
#endif // __HONORABLE_TITLE // ′Tà?0 u% a( V7 |3 Z, h& y2 x! \
}1 h V. z9 ?9 I$ G f
#endif // __WORLDSERVER0 T$ j4 P9 { O2 L$ y& f
} 5 V8 B+ h6 j! o7 F s5 X( ?
) V: N$ J4 r; @
然后你进入functextcmd.cpp并添加以下
+ ]; w+ S3 d. d9 y! S: T" R, w
% G! d3 g* k P. x" K+ d4 Z! E3 ]代码:+ M. D5 W0 p: N' L2 I3 k" @
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% w( T& D/ Y) ~/ b, l2 N4 @! o
下面插入" D% C4 p0 I# }( ?
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 p6 o' M! ~" \" i! p. f# @3 U; e
" m0 O( s& R+ e. V然后你去) i9 n% m) p: O
% ~( K* B. E5 b% h7 ^6 [代码:1 S4 e8 ^# N6 P; V! {$ q
代码8 l. ?" t+ ^0 B; M; q! A% y
BOOL TextCmd_ClearPropose( CScanner & s )
) [8 P! {6 {, ~7 e5 `{
( Q: [( K" J) O$ H9 i/ p7 Z3 V#ifdef __WORLDSERVER+ Z0 O+ X; U; b" y
CUser* pUser = (CUser*)s.dwValue;. F- u( Y; o# t( l5 C" u% `# i( B
g_dpDBClient.SendClearPropose();0 ?9 f& z( N/ q+ J& Q( x
#endif // __WORLDSERVER* F8 v' ^1 A. q* j9 y
return TRUE;# u- W& g+ S; m! k& K, [8 L# r8 e
}
& R& d2 Y9 }) s9 t5 I/ A下面插入6 ?' i2 p& E F; o
BOOL TextCmd_rebirth( CScanner& scanner )/ [" R, R4 F" s
{* q; ~% g2 D: A
#ifdef __WORLDSERVER
! B& b* ^! x4 @7 h. [, ]0 HCUser *pUser;
8 _* E& w) }( z: PpUser = (CUser*)scanner.dwValue;& i9 {: N( `* y, S7 m: P" J% q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' }3 m+ w+ _- d3 n# opUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 Q+ M- h" H0 u% Y! l- xelse
0 A# \* J: ?6 T* F; m- x) }pUser->AddText("你还未达到重生条件!");
9 S6 w) C7 n3 h0 Z, ?- ?7 N3 l#endif
; }/ I8 ^" q+ m+ X1 Dreturn TRUE;
$ m" t* T9 F! L9 B/ ?} ) |# P, ^" ]9 Q* y' J, Q
4 y( _! }% ]1 R. B6 V$ f
4 `7 W3 R- }4 u6 H4 c* Z& `9 j
5 V7 h, ~- {: D, e+ @/ u! u: S7 m8 ~8 Q+ i9 a
|
|