|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
i7 r/ I1 }! @/ y" X2 z$ h$ |8 T k. Y" X
Mover.h
/ O# T! T) a& i; A5 v* s! k代码:6 g1 c# T" M- j
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 F) @/ J5 X, C- h4 ~5 y) l
4 R b0 w' |3 G. E, U4 ], q: O下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , |$ t* u6 u# o* [9 M, |
8 r. N( t# N9 t, B( m r# r
然后你去mover.cpp添加
- d3 O( p: P# M+ I& h* R( k( o4 c! Z2 I j/ v
代码:% C& F* \9 S. V4 d) H3 v
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ ?1 C& a6 i$ v- {
{
) C1 |1 G, m* V; m4 W0 b5 ~) \0 M#ifdef __WORLDSERVER1 Z2 T0 O4 M8 ?) {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: f. T7 e0 B2 k0 K
MoverProp* pProp = GetProp();
4 ~0 d* M* L G B if( pProp )
4 c& K9 z& z0 U& _6 [3 T5 b {7 l; s; t& ]- K+ F
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# q v7 }' ^3 ]1 s o2 |& K {+ \' x7 H \# T( k
AddChangeJob( nJob );
9 ^, w a) M5 Y4 t D9 J4 p3 H }else{7 I. c5 V4 F( p& I: j. i) n
return;9 n; T( S; `7 | S$ A
}& T7 o' h- Z. m4 [9 u" f
int nPoint = 0;4 ?3 q- L' l `* f
if( m_nJob == JOB_MERCENARY )
* b/ `2 q" J, ?1 |3 l nPoint += 40;+ I( Y. E. B0 _2 S1 ?
else if( m_nJob == JOB_ACROBAT )+ B& |6 n$ \4 C
nPoint += 50;# B. f' w d5 x9 ]( [
else if( m_nJob == JOB_ASSIST )9 H9 Y( v1 `) q( Z+ D# @1 i+ P7 m2 q% S
nPoint += 60;
3 p/ ~& L- P0 a# L1 @ else if( m_nJob == JOB_MAGICIAN )
/ L; t7 H$ r! d* V1 ?6 X* _" E f( d nPoint += 90;: t! H! d4 C. r L2 e" y. W% V$ Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 k8 i. i- |( }5 o z( z
nPoint += 120;
% G0 c% [' [( h% W else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) W5 y: W$ O$ `5 W
nPoint += 150;
# M8 @! ~! R# k else if( m_nJob == JOB_RINGMASTER )/ q, [9 @; l4 L y
nPoint += 160;
. `' b2 N2 T8 `, b3 v else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
|; {/ a" L! J5 Y: C* w A/ i4 G8 ? nPoint += 180;; y' `: L* f1 T6 j3 c
else if( m_nJob == JOB_ELEMENTOR )
y' e; u) S0 p nPoint += 390;
: ?/ X: }1 V/ M else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" `+ Y9 Y; i, y+ O3 n( c. ? nPoint += 120;6 }0 E- _5 Y$ ~# G _! Q6 q; b
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' v* W/ _ p* L( i& o6 [" c& K1 { nPoint += 150;
" B& _3 S' D' S) L( |. k else if( nJob == JOB_FLORIST_HERO )( t: Q. R$ w2 p) ^" J2 j7 ^
nPoint += 160;
4 V: n% l5 T) |& O8 z" d4 a4 u else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! F& ?3 e. p# h q5 Z
nPoint += 180;
9 J/ d. `3 v( g else if( nJob == JOB_ELEMENTORLORD_HERO )
n q7 f; B7 p nPoint += 390;* P: G$ C, J6 q& u" ~) {5 H# J* T
: \' o$ d+ O" i' I' z+ b AddSkillPoint( nPoint );
$ k& a) d' h0 o& l' W m_nLevel = nLevel;
- `; Q) d6 ~7 t: B; _0 L8 X% X, o
) _# g. p1 T2 |& I0 s SetJobLevel( nLevel, nJob );" i; N r& j" U3 s4 o' v8 `8 [' T
m_nDeathLevel = nLevel;
! {3 Z. l: p5 R$ s! D( j1 a% A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( n+ K1 [5 r+ z8 S& ~
if(IsMaster()). k; v8 ]4 n1 v
{+ `/ t; S% I- P; i: R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& {5 A' \* v9 [ \3 `# O if( nLevel > 59 && nLevel < 72 )
! v' \4 Q" b! e" { dwTmpSkLevel = 1;, B; y/ d$ J; x7 [% e2 i
else if( nLevel > 71 && nLevel < 84 )
) K) `0 w7 _2 b) r7 ^! b- | dwTmpSkLevel = 2;
( h' w# D1 C7 w; B else if( nLevel > 83 && nLevel < 96 ) t5 r8 t$ l v) I" y$ q5 x
dwTmpSkLevel = 3;3 q. R/ {, }6 c$ W4 g6 D7 ~
else if( nLevel > 95 && nLevel < 108 )
; ^* t* C7 h3 m2 x7 n( p dwTmpSkLevel = 4;" k" k7 H4 q. P z# o
else if( nLevel > 107 && nLevel < 120 )
2 X- }0 A0 F, Z) {) p$ w% e dwTmpSkLevel = 5;
9 {) w9 G2 P) Q$ f for( int i = 0; i < MAX_SKILL_JOB; i++ )
- R3 B! A8 ?6 k2 ?2 g {
6 T, T3 Y! w1 X' l4 X LPSKILL lpSkill = &(m_aJobSkill);
) x( k( H0 E6 f. ]7 C if( lpSkill && lpSkill->dwSkill != NULL_ID )
# I* i. n( Z; ~9 Y8 r, ?3 D6 n/ t# h {6 y, {9 y+ o4 T) w5 N+ f3 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ o( Y! A' e1 p
if( pSkillProp == NULL )
" I, Y) o9 j; [8 v% K0 V; G! W$ R continue;0 e2 H0 ?1 d0 }: Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 G/ ^# D4 F3 u& w& h
continue;7 z& {! v2 q# @( U+ C7 T
lpSkill->dwLevel = dwTmpSkLevel;, e+ k, v+ O; F5 A
}* {% e, j0 N( O6 T5 j$ ~9 `
}
" O5 e6 g2 K0 Q% y" u5 }5 E& W. ^ }
8 R) u" }1 }" j! E ]- o* w else if(IsHero())
, j# K2 W) g2 c) J8 y9 l {6 u$ u% X% a& A, ?6 \$ t2 q4 e; N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ u |8 [7 K' ?4 u7 S: w. w; ~& Z2 q { g, }* d% _+ i" ~ n9 N1 n
LPSKILL lpSkill = &(m_aJobSkill);
( D. r$ Z2 X6 m/ ^% m% f! c; H) D if( lpSkill && lpSkill->dwSkill != NULL_ID )
) m* O Y8 s# {3 Q! E5 {! z: h# r {
0 t6 e5 ?* d0 }* I+ Q9 \( Q8 E" w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 V6 t& q$ n6 z if( pSkillProp == NULL )
1 l, q9 K; l1 Q w: P& S continue;% _( A. M R3 H* R0 Z1 B8 u) }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 I1 D9 B {2 H, n7 i7 J& [ continue;
! J0 j+ }% j/ B lpSkill->dwLevel = 5;6 E, R( x- a& j( b$ I6 `
}# s |, u" \: q$ e/ Q
}
' \" t- _0 s& Y/ P# v7 \ }- L9 \. }9 o* \1 G0 P4 k, m% t: p
else if(IsLegendHero())" p. k2 Q. e8 } s* R& N5 x
{
m, \( N; T* Y6 z' w for( int i = 0; i < MAX_SKILL_JOB; i++ ) - w- @6 m% F9 K- a8 {* E1 c) ]
{ + e' \+ J& M1 K
LPSKILL lpSkill = &(m_aJobSkill);, L/ K: k- W: |, b/ N( Q: P
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( Y1 N' i+ S' B1 O {6 V& ~5 b; b$ K/ _: q* H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
@3 z$ S$ i9 b: n& `) G if( pSkillProp == NULL )" v1 O& }5 W1 k X; n" j, ?
continue;9 J$ z+ U( J9 e0 n4 U( t7 Y' t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 s4 S7 \, ]( L. _- [
continue;6 G- z8 z. g% w8 `, W
lpSkill->dwLevel = 5;, `$ @: Q6 A, J
}
7 a5 Z) J, i# ]: g) u- h }
2 I1 u2 m% _* f2 N. w: K) G }
$ k& A+ I' g4 E1 i#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 {( a0 ], O. r if( bGamma )
1 |6 O7 M0 e0 z- G5 X# R V {+ e& ?& _7 j y; L8 b) c( u
m_nExp1 = 0;
% J6 H- F1 m8 Z, G. i- B+ W2 H+ V }
1 W: J& |/ i& z: @1 i; B; j* ^# _4 F, z$ N8 T. n0 I% |2 c7 W
( (CUser*)this )->AddSetChangeJob( nJob );
+ Z& E, [; u, N( C+ S2 a9 b g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );) z9 O7 u) U3 @4 |( M
1 f0 g q& B5 |$ o* v" m8 ~
6 s$ y2 J8 d1 ^' w2 G* D) {#if __VER >= 11 // __SYS_PLAYER_DATA; t+ C" R/ \: Q8 U6 N5 U
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* W) E0 b9 C0 p/ I
#else // __SYS_PLAYER_DATA# J7 g" Z' {7 v6 G
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, X- Z, B4 U1 x8 _+ v! I
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 [( H4 J& {) U7 }: i
if( m_idGuild != 0 )
1 \2 H' m7 B( _9 e( x. d7 y. T g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ G) E, a8 ~% Y& A6 z+ W. j#endif // __SYS_PLAYER_DATA5 R) J' Z) F6 s$ [( \" A3 h
SetHitPoint( GetMaxHitPoint() );
) z3 l/ Z3 {8 d5 K SetManaPoint( GetMaxManaPoint() );; {. L0 t; _% \5 o8 |
SetFatiguePoint( GetMaxFatiguePoint() );: a C6 k, S, h' a* S/ }
if( nJob >= 1 && nJob <= 4 )( ]& O3 k- }0 Q, t4 ~
{
3 J6 E4 P, [( K$ D( A9 x, @ m_nStr = m_nSta = m_nDex = m_nInt = 15;# T. ~" {# ~4 E# z& L
m_nRemainGP = 28;
0 P* I% m+ C' S! h2 W; D7 J }5 s# `# b/ k" x* U% \
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# d% N) I! F' Z+ Y8 J! w
{
' w; I8 P& W$ L6 F6 u9 d m_nRemainGP = 118; G/ `$ T' G8 z& F2 M% ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ l/ w3 V3 o# f/ U3 x" I m_nStr = m_nSta = m_nDex = m_nInt = 15;0 s7 T3 e6 b6 R6 J
}
. h' z& f9 k. r, v) v7 r8 j2 |/ Q2 ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 e" _3 H0 U6 W& b; h {
9 o9 ~: [$ g5 { {& j CItemElem itemelem;$ ?3 ~5 U* V. @" Z
itemelem.m_nItemNum = 1;7 }$ O; [9 C' e! c5 `' J* Y9 [) L
itemelem.m_bCharged = TRUE;0 {6 V* B* B( q; Y& s; g
BYTE nID;
$ V* |2 a; c* G* V) ?9 I, D4 X, m4 H% B Z
if( nJob == JOB_MENTALIST_HERO )
( s& i3 X- ~4 U- H2 x3 ~$ o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 L) ?; ?6 M5 h) u8 m4 y6 i5 f if( nJob == JOB_FORCEMASTER_HERO ). b! u8 Y' r- J0 N$ h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 |) X4 R9 I0 \6 O, G
1 e7 a0 G! |/ C8 E# [
( ( CUser*)this)->CreateItem( &itemelem, &nID );3 v5 G( \5 h0 E- z: D$ ?( h+ n9 Y2 a
}; J& m2 `) Z2 U$ e( J, r& r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 P0 Y! U+ E2 x% D& w
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: \: j) v+ H4 j C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 `0 ^- }5 k! K# \& ^3 B) g$ I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 {) i. L. S2 j: L; }7 l+ m0 Y ( (CUser*)this )->AddTaskBar();*/
# [' r+ u* T& O1 [, Z& s5 b ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 e( ]5 {) T5 j, Q& ~( }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ `) U9 a0 i& G4 f9 [% B ((CUser*)this)->CheckHonorStat();
% X9 B6 h( ]/ ?6 o8 r ((CUser*)this)->AddHonorListAck();: e8 x0 N8 a: ~; ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);% A5 k- {, h: N
#endif // __HONORABLE_TITLE // ′Tà?
1 `8 b& M) o# \7 r0 m0 y' e% m$ K1 [2 A }6 d* Y( U& M+ T9 ~% K
#endif // __WORLDSERVER
/ r% Y/ S5 @! M, S3 _( @} 9 j: `7 T9 d9 G7 d% _2 K7 V
6 _" ]8 ]' t) O ^. O) P c然后你进入functextcmd.cpp并添加以下
; V/ g% e' s1 X( z. {
. u& e4 R g7 Y代码:
% Z( B4 b2 y: B2 S3 Q" A+ bON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! m8 m% L1 F: X ]% y$ r* S: i下面插入
1 y8 M$ \- r: E/ NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 k1 A+ ]* Y; Z4 n0 Z, x! B8 t: s1 I: Y$ @4 \( @
然后你去8 E" Q3 i8 o+ `3 I5 Z
7 I. y; \7 j6 I3 n- i0 J' ~7 r代码:' N0 p Y d& Y6 D! N3 `
代码- E6 P5 o% U( v! V9 V; T
BOOL TextCmd_ClearPropose( CScanner & s )
7 x9 f- ^/ I5 ^+ K8 z{
) Z% g% b" o3 u; ~& a+ F#ifdef __WORLDSERVER9 _8 v- R) t. @0 Q9 E
CUser* pUser = (CUser*)s.dwValue;
3 y% y+ r B# l k* ] g_dpDBClient.SendClearPropose();
* V5 V6 Q3 E! ^, e4 \' s#endif // __WORLDSERVER
% k) l! {5 r% J3 M( E return TRUE;. U+ y- W: d# `# v
}! R5 S( ~' s6 k+ y
下面插入% M0 s' N( U4 ?5 I
BOOL TextCmd_rebirth( CScanner& scanner )
+ s0 N T! g _( [# B{
' x I+ S. Z' a3 Z) a4 u#ifdef __WORLDSERVER5 A; C1 {& U" W; J
CUser *pUser;4 K* c7 s" G$ v5 n
pUser = (CUser*)scanner.dwValue;
1 J1 d# N; h: @* Eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): H \: ?/ @4 p
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 M$ i- ]; ~+ M6 H
else% K1 Q9 u8 ?6 X" L* e$ I
pUser->AddText("你还未达到重生条件!");
2 @ K1 R7 b @" ]#endif- f3 N+ E" f2 r9 ?3 t
return TRUE;" ~* L5 N2 m7 M5 ^1 j }. ~- t
}
* B# v( L$ [) k$ E S! l& S+ C& E8 p X! n$ p, F3 b
3 U* k8 g* Q- X) i
8 U9 f' ^+ ~0 S4 C
+ Q& \! B9 i- K
|
|