|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# f# X2 W2 w3 j' J: R; V3 \, E- v& R& v# r3 c8 x! Z! Q
Mover.h
% t8 d6 R* }% g7 P* H代码:
( }% y1 F# u0 A2 S; B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* `; s- ~5 k' W2 D6 }+ v3 U
) B$ ?2 {+ z0 k, r1 U4 O% C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . N4 u7 m# p6 y8 ] z" o" F* O2 F
- w3 m- Q T7 I! U
然后你去mover.cpp添加
* C8 o1 D- I' [
7 l# o' o, {* _代码:
8 N) T1 W2 b5 L- M, qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ F* Y7 w. v7 I, l9 t( }{4 c# J0 K3 I* i: i0 \. a: P
#ifdef __WORLDSERVER
$ ^ k# L5 W3 T" V5 o+ H% T // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 v$ h" g" M; b' O* | MoverProp* pProp = GetProp();
# |. S o" y) w; `" N if( pProp )2 s; j( z2 |$ K( S
{( |/ L/ S3 |5 P f" ^. l6 ^. c
if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ H5 k) g" `& E
{
& Y+ b6 B q4 V5 L$ o7 a* ? AddChangeJob( nJob );1 L; N3 y* I" Y& T8 s+ @2 k3 E
}else{
/ d7 n5 j& T' K return;1 X$ K& _' b2 {1 A
}
6 Y4 O5 e# G% @ ^ int nPoint = 0;0 u; o4 S: r+ }1 {/ m7 j
if( m_nJob == JOB_MERCENARY )* N0 b& g9 [/ W+ Z* _7 i
nPoint += 40;$ D N9 H0 R* _8 M
else if( m_nJob == JOB_ACROBAT )
* }, k) Q1 p& X' m& d# y3 y nPoint += 50;
, z& U- J6 Z6 e+ j( V; B! l else if( m_nJob == JOB_ASSIST )7 e( l5 b: n t
nPoint += 60;4 t# z1 Q) ]& u2 {, V
else if( m_nJob == JOB_MAGICIAN )& R3 \( W1 U* a: Z1 H1 }
nPoint += 90;
7 C9 ^, i R. _ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 Y8 t* r' R% k% G9 f; Y nPoint += 120;
$ s% J& D+ O, T; }6 p% m6 k else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% U4 h# r! y4 X x0 ?( l
nPoint += 150;
2 _/ }% ?/ w9 z else if( m_nJob == JOB_RINGMASTER )" X" V2 Y2 D$ R* h8 E8 }
nPoint += 160;. Q) M0 f- N! M
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ a5 c& m7 ]+ e: |8 h
nPoint += 180;7 D* y0 d4 V) _
else if( m_nJob == JOB_ELEMENTOR )
: b' \% J) m) N% B+ s: I nPoint += 390;. m3 u! i- s" U$ N* e
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- a' A, h' h6 i4 { nPoint += 120;
+ t9 O! ^9 i; z7 e/ E" n) j else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); Y3 H9 @ Y( ^1 P. n& |2 T( B$ i
nPoint += 150;8 E( j& F! B, q" {2 ?; a) I
else if( nJob == JOB_FLORIST_HERO )
& L; r$ u {" y! o* x9 i! _7 U; b# v nPoint += 160; j" t( u( Z5 u. Q- X1 m s9 U7 J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: d0 ^4 k- t" s1 l nPoint += 180;
- K* b6 G$ S0 Y& G1 S/ x1 G else if( nJob == JOB_ELEMENTORLORD_HERO )4 u3 P+ s: ~- r8 W! X* O6 G
nPoint += 390; w% h( r3 |: v! ~: b
( P' d0 Z$ e/ w
AddSkillPoint( nPoint );0 ^" k4 E! H! t1 G* K3 f# N o
m_nLevel = nLevel;8 G/ n( D. |5 k
1 L: D! P! Q$ O- w8 `
SetJobLevel( nLevel, nJob );
' |0 X2 n$ X6 R* m; k m_nDeathLevel = nLevel;
' h+ b/ v4 [: e3 R$ ?#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 D$ Y1 j8 A" B6 v" n* [$ C if(IsMaster())
+ z! H5 J0 {( }9 b4 _. s5 B: _ {4 w3 G! ?3 r$ |# k3 o4 d: `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 k, ?+ r% V1 ]+ A* Q if( nLevel > 59 && nLevel < 72 )
! D) F: l9 g+ x dwTmpSkLevel = 1;
0 W; C5 M( q4 W else if( nLevel > 71 && nLevel < 84 )
) b' }& G% q) [9 O) z0 q3 ? dwTmpSkLevel = 2;
5 C' j8 G7 b# C/ Q! b; p3 } else if( nLevel > 83 && nLevel < 96 )* q1 E0 l+ P1 W- m
dwTmpSkLevel = 3;
" G# Q" j; w3 J else if( nLevel > 95 && nLevel < 108 )
+ b4 q, t+ L. l$ Y) U6 K dwTmpSkLevel = 4;0 l9 |5 n1 p# E( J
else if( nLevel > 107 && nLevel < 120 )3 a+ h1 H: u' Z; x/ Z
dwTmpSkLevel = 5;
1 G$ ]5 A# B& o" U( h, R5 Y3 V! B for( int i = 0; i < MAX_SKILL_JOB; i++ )
j3 T3 `6 f* P: [, G! E. U- x; R {
, B& E7 d* F, z P. {" @( w LPSKILL lpSkill = &(m_aJobSkill);
: c. A' S9 y* R* t8 R- `9 E if( lpSkill && lpSkill->dwSkill != NULL_ID )
; M) F( v1 t5 w {
1 i$ G$ o8 S5 m: v0 H* K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); [1 h# C" P6 w& L& B/ C* |" E
if( pSkillProp == NULL )
/ K# i( T6 Q+ e- A7 @* d continue;/ r/ n, N+ A! ]8 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 }2 P7 D: k7 |3 U* T, ]
continue;9 U& Z4 S0 a7 D. ^( a' e
lpSkill->dwLevel = dwTmpSkLevel;
- a$ o% x6 ]' t; j5 z }
2 @( `1 A% ^/ P+ L/ T }0 @8 K8 f* v7 c9 C3 f) J4 F
}
: O2 d, @7 }' s _* I else if(IsHero())
5 a$ q2 ^/ q/ q( s- l+ V {
Q0 s c4 b U( k y for( int i = 0; i < MAX_SKILL_JOB; i++ ) * R6 O- b7 l# t# ~ c( T% t
{ 6 `* V! Y7 X/ o$ u. w0 Q. k
LPSKILL lpSkill = &(m_aJobSkill);1 v; q3 p, W# s U* C+ e3 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )& |$ l$ x1 }& p* y! A; v
{, D, N5 A: P, k' P4 K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . W$ o' [( j3 W& x) Y L
if( pSkillProp == NULL )
5 i; T @4 k) G continue;* M4 R% }% a! ^8 o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" I8 \; K1 X" X$ H& j: v: U continue;9 M1 K" T# H# b
lpSkill->dwLevel = 5;8 E3 L1 m8 e+ Q: H9 j8 w
}
4 d7 n9 `/ F6 j3 V0 B }
( C! n o# J; M2 p+ j1 v }! c( b" g' B5 e) `; l
else if(IsLegendHero())$ Y. H5 Y' b$ T. }
{1 ^" M6 U. l0 k/ S' ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& q2 D* z9 ^# ]; F; {: w# p, C$ _ {
/ N+ W# V5 \! F, ] LPSKILL lpSkill = &(m_aJobSkill);
+ [5 p* k8 \2 G; K8 M1 H, b) D if( lpSkill && lpSkill->dwSkill != NULL_ID ): Z, W; A1 P; K! q
{# F9 d% f5 z {# b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # Q- P" z' I* r$ P' b- R* L
if( pSkillProp == NULL )
4 w) \7 H+ u Z: b5 {9 W0 l9 ? continue;( I8 G9 P4 N: A* e3 N# t. h. ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); a& p. \/ U" p' k" N3 Y
continue;
* g& S( _, a$ v3 P6 T7 x2 b3 I7 x lpSkill->dwLevel = 5;! U7 C" P5 s5 R: t q
}, |( p- T8 B# W4 r/ D
}7 t- H! e( t+ S: K' j- U
}; x0 @% @0 P8 n: n6 @
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& }% y/ z2 K2 h+ @6 v# y/ K
if( bGamma )3 z5 l- @9 ], s, `% m. Z3 s) ~
{2 v% O7 a7 T7 w" R. `$ m
m_nExp1 = 0;
: }7 p( o4 W! t8 P1 N8 G9 k }! m% r" I- O; I! L5 [( g
% c' q. ` W- v2 P0 N) c3 m) w
( (CUser*)this )->AddSetChangeJob( nJob );8 G+ x$ @$ M+ X1 m- J) j- N0 J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. L0 `9 v' [. p- c/ s0 ?
1 X* O* b/ W. t
4 z+ a7 w: g" }* Y
#if __VER >= 11 // __SYS_PLAYER_DATA5 S' h" U( u1 |: \- _, n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( J+ B/ f. `: E1 V0 l3 y# `/ g0 L$ }2 C
#else // __SYS_PLAYER_DATA
+ \* k1 _7 P+ Q* f5 ?5 N0 B' j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 x4 E3 R6 g* _9 \1 S1 B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" ?" O) e! h4 m- Y, s# Z+ V
if( m_idGuild != 0 )! @0 a6 \4 S- d0 Z5 `
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 u# O7 W6 k$ j; a#endif // __SYS_PLAYER_DATA Z; H: e5 _% x" l/ `' \
SetHitPoint( GetMaxHitPoint() );* R- \9 \# V; }" b a+ X0 ^0 J
SetManaPoint( GetMaxManaPoint() );) Y7 U. S, x0 n' F ^7 @
SetFatiguePoint( GetMaxFatiguePoint() );
- j: Q( m. F& p _ T if( nJob >= 1 && nJob <= 4 )3 u* L t1 P2 O |( E( q, M
{
* @6 q& p# c7 K m_nStr = m_nSta = m_nDex = m_nInt = 15;3 R. y( X% T! [; u5 c0 w
m_nRemainGP = 28;1 G" W1 s% [1 e2 {
}
" Y; z$ T* m8 q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 [/ n/ R3 t# e5 A7 f
{
# Q# R5 I& G2 O* ~- C' [ m_nRemainGP = 118;3 Y0 D- K, [) \2 V% X' F" K% }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( I) R4 A9 H/ e
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ Q* O( D- r; m3 [& K
}* b. Z/ c3 Y# {9 L( E3 @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. D/ P8 |- F N' O$ V+ U' w {
' c: B5 x3 @' T" o D CItemElem itemelem;
% H7 P9 F" P7 L7 Z) W |& p% |0 R: } itemelem.m_nItemNum = 1;
T/ E/ p2 g( z. z) S itemelem.m_bCharged = TRUE;7 }$ X2 J! U8 m1 M& L; K2 j% M
BYTE nID;
! {! k/ Q$ q1 H+ e0 `5 ]3 P- f' \7 W* l6 E
if( nJob == JOB_MENTALIST_HERO )/ ?, s4 b A' j m
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. }# K6 A/ `+ b) g9 r if( nJob == JOB_FORCEMASTER_HERO )7 {# o5 x, B. [" s- Q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 |/ {7 P' `6 J9 r% M- s; z* D
# B+ A9 I A* g& r, u r+ y3 l ( ( CUser*)this)->CreateItem( &itemelem, &nID );
, a9 h, u* R. p0 R1 Q }
, L; N9 C8 ~4 w9 H! v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 i# l, W1 o0 s ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 J$ m& D2 M4 \, \- V) f: u) C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% n, P' A+ `% x) J+ U( p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- z8 [. m( ~2 d! \ ( (CUser*)this )->AddTaskBar();*/
( o1 ?. {; e! C: _* B3 D ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: ^; x0 Y- \7 J( J# H6 U3 u#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 ?% [, J8 z3 C, _! W$ _1 N7 T) B
((CUser*)this)->CheckHonorStat();; Z" [ \ Y3 C2 @
((CUser*)this)->AddHonorListAck();
8 i4 D g" r: f$ ? h2 N g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 l; P# R$ F4 k1 [: w$ A#endif // __HONORABLE_TITLE // ′Tà?+ c. y. }+ \, F9 l8 C: m+ {; h0 N
}
5 j6 i. J2 S$ v#endif // __WORLDSERVER5 G3 N/ }, S6 ]3 W0 r W9 w5 S
}
, k c h4 p3 A- ^( u# a7 s$ U
+ w3 F$ p7 K! d2 Y% A+ C; F然后你进入functextcmd.cpp并添加以下
6 m5 h# J- t3 J4 Y$ e# ~5 S+ }9 s. T6 D3 t
代码:9 g' p7 p# e; p& i) _( z/ B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
M# { D% w' E: B! l6 l下面插入
; d& {) u3 u, iON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 M+ [5 B5 ?+ h) y
- X7 W, U U5 ^1 C" O# f( p {然后你去8 G) \" i$ B! o( S& B7 X! g
4 E( ^6 o9 |. M0 |2 E
代码:
, ]0 B+ {( x4 e7 o y8 B代码, y. Q/ Z# O4 O! b! J' }; _
BOOL TextCmd_ClearPropose( CScanner & s )
n1 b. q& i9 i- C/ r$ V! ]/ G7 Z{
7 M |/ A; O6 \ Z1 r#ifdef __WORLDSERVER2 Z; P& @# W0 }; e
CUser* pUser = (CUser*)s.dwValue;
1 D8 Y/ } C( @3 t9 b! h. _) r g_dpDBClient.SendClearPropose();
" y/ R3 F, e. R2 x3 W. Q#endif // __WORLDSERVER
- N1 O) n( Q" E; N8 J return TRUE;
4 T, x. I& ?/ B4 ]}
" t8 |% D: b0 d% i5 `7 R下面插入* d/ `, r: y! r5 L+ _) ~$ a
BOOL TextCmd_rebirth( CScanner& scanner )
7 |7 E$ V9 p2 Y- \{
2 q) Z8 |. d- V3 r. A#ifdef __WORLDSERVER
% z' Y+ ?) b% D% O2 d# \: d8 v- K7 _, yCUser *pUser;* \0 B& B. B6 z5 I: W& n' Q A" N
pUser = (CUser*)scanner.dwValue;/ S" }: ~! t1 k1 |1 r9 _
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 A3 L: @; I. \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 I; G* o. `5 |2 ~) I/ H. felse5 C- j% T2 Q2 U- ^: q, f/ m( I
pUser->AddText("你还未达到重生条件!");
# T: K# _0 e# d4 Q#endif
8 }& F- R' } {' a1 Mreturn TRUE;# N! {8 v7 t* K0 S. l) i0 P! ?" f7 z
}
' v3 J/ T! T# Q! Q* S, x4 P ~
7 `4 |' T$ T1 N8 F2 n) Q& ^0 b( i5 R6 \7 n# O s* q( m* `
0 E$ W; i2 _. U) q
1 t" K7 n& A! f$ R2 ?6 K) K# Y4 L |
|