|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 \0 A: g4 u) k
; w6 _* n# U) m6 vMover.h2 s/ M% H/ e0 o# Z! r1 d; Y: p( k5 P
代码:' N A9 T4 d- Q( b: r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 f7 h6 W% `* D$ w8 t# u% M
) U6 B2 X9 m# i) T# [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! O- B4 D' `5 ?9 h! y) N n5 I
0 A9 B" X) h1 F7 C" o, r. q
然后你去mover.cpp添加
6 G5 j+ u; B5 H/ J( M
% v6 I6 Q, S' w. D+ \+ E1 I& U代码:( C$ z6 x/ m3 x8 G
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 s" \* E( U3 L( [8 @, f
{" K- a, [/ k; u5 C; n" P
#ifdef __WORLDSERVER' a, l: F# w: c9 U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& ~1 P/ _1 Z, {2 P MoverProp* pProp = GetProp();
! s* J* J- _" O7 J) P, @' } if( pProp )' ^9 H& Z0 H7 |* }2 c
{4 r6 d+ |% ~; n; S( H- {: v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 o$ Q, P8 Q" C6 ?
{4 y9 I# u" t+ _ E
AddChangeJob( nJob );
# F3 S. e: C" `2 C6 [7 t }else{
& {3 a3 z0 a% w2 X' v return;, W- u' T* P& l: _3 R! U
}( \- c8 H1 e' a$ u z' ?: u; K( {4 _
int nPoint = 0;0 m6 v2 [* O- n: }0 \; r
if( m_nJob == JOB_MERCENARY )
) ], }( I3 `( p. d' T nPoint += 40;% O# i9 V4 H, F+ W
else if( m_nJob == JOB_ACROBAT )) Z1 S( M, A! [3 V5 k9 z# M
nPoint += 50;% D! R/ z6 S5 o+ }; f9 V9 j9 }; q
else if( m_nJob == JOB_ASSIST )
! c3 {' A, ^5 }5 l! c; L* o; }" n nPoint += 60;4 u+ B, ]- o4 l1 J8 L" Q
else if( m_nJob == JOB_MAGICIAN )& H I4 y( j: o% x9 M' L9 M, Q$ s+ i
nPoint += 90;
7 r! t) U j. Q; E7 B else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 U z* H. C% J1 u( B- z
nPoint += 120;9 q6 p1 W* C+ g$ w: E. N* d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* t7 ~( j% j9 y$ c% @' T1 _6 m; R nPoint += 150;
9 d, y' U% w- q1 B3 o else if( m_nJob == JOB_RINGMASTER )
2 o$ ]8 A4 |" o nPoint += 160;# H7 X/ E8 b8 `0 `9 s# o; Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ |1 p% z1 [) P
nPoint += 180;3 t$ w" l' i6 v. {- e3 t* A
else if( m_nJob == JOB_ELEMENTOR )* L; m/ f* L# V8 t" ]) [
nPoint += 390;" x5 {1 p. S$ F) l5 R' E; O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" @6 n9 f7 V" H6 b# D nPoint += 120;
' y5 A6 p Q$ c8 o else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 h, f4 ^; F/ ]9 Z4 s9 F8 z; Q7 I! ?
nPoint += 150;% Q% B" I) E; a; \
else if( nJob == JOB_FLORIST_HERO ): V- k% D! S3 n" f- U# T
nPoint += 160;# I! s' Y: J5 M- ]9 j# d6 h* I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 V) y& M8 S3 E' z3 f( a/ F3 a1 ~4 P nPoint += 180;
4 }7 F0 z& C2 i4 A* N5 X else if( nJob == JOB_ELEMENTORLORD_HERO )
/ {6 f( R" w* D* T, Q$ U3 T nPoint += 390;0 t: w r9 q( J1 D# i4 `
7 F, D4 x' h( A3 F0 v
AddSkillPoint( nPoint );7 m) o! R) `/ F1 c
m_nLevel = nLevel;
8 T& O& N! A& ^6 L: |& Q
. @. F9 o7 h4 k9 L0 y8 B0 m( v+ S SetJobLevel( nLevel, nJob );$ v1 E/ Z( W4 B0 V+ ^
m_nDeathLevel = nLevel;7 s, D# E! ~" I# G4 u8 t! S( u# Z4 @7 A
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# [ O/ I) G7 V) y6 g( a
if(IsMaster())
1 _0 }6 k; R6 V4 ^, C$ b8 b {3 z) b; Q5 `' b2 A/ s4 M; `( h Y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* z q% h* C; Q4 d9 J. w0 n5 L
if( nLevel > 59 && nLevel < 72 )
/ O0 K' s$ M0 c2 ~ dwTmpSkLevel = 1;
+ S. p% f3 e4 i$ E: Z P4 {4 N/ G else if( nLevel > 71 && nLevel < 84 )
& g- Q" Q1 d9 i* J5 c8 b dwTmpSkLevel = 2;
% X6 h( j7 A, p0 g: U1 @ else if( nLevel > 83 && nLevel < 96 )
$ ?3 [. N1 i& ^5 E# R# N6 ] dwTmpSkLevel = 3;
' }7 ~3 ^, A/ b1 n: W% W) o else if( nLevel > 95 && nLevel < 108 )
* x/ q3 `. \5 c3 T/ m dwTmpSkLevel = 4;% r' O! m: [* {% z$ ?. F6 [
else if( nLevel > 107 && nLevel < 120 )
9 V; K6 Q' Y6 M) X, H dwTmpSkLevel = 5;
9 y+ f+ s, F l for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' `5 W G+ Y! e
{
" ~# V6 n- u: T/ J, q+ A0 y3 o7 b: \4 n LPSKILL lpSkill = &(m_aJobSkill);9 s5 R) u$ U/ |5 O7 k; ^: F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! \3 q1 b: n( j2 w% f& q, H7 H {
4 {/ T' p* {6 D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; O9 d& S, O) e' R" T2 P if( pSkillProp == NULL )3 U+ ~$ z# w* w& E. v
continue;
g, o! I7 w8 ~/ o5 N! L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ |$ j. {. `- M4 i) x
continue;
7 }# b& I& i' F' L- E lpSkill->dwLevel = dwTmpSkLevel;
/ g, h& g2 F/ ] }
, E4 s/ ^+ l0 z }
O& J6 \: g; N4 D% C }
1 ^2 d1 |0 \" v+ H' U! a4 i else if(IsHero()): W0 e4 ?) f3 S9 Z, I1 |, `
{6 V& L. ^3 h' O% X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' f4 z j) J1 G# F
{
" `6 q" u: \' {) `, t. Y LPSKILL lpSkill = &(m_aJobSkill);1 s% p1 R2 m9 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: \6 H, ^" o! z9 q5 F {
4 t. f4 N. G% ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; A; G9 h" a3 E; b if( pSkillProp == NULL )
1 N8 ]& L. C; @ continue;
9 Q9 Q2 {; c$ }" Y. b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" e2 _! v$ m( @4 Y& ^. i! P continue; t7 K& _9 l5 a; c* Q
lpSkill->dwLevel = 5;
3 [# t- ] `' M. Y" j9 K! t } w+ W$ X4 C* c2 K
}" \! V! S5 b' V* Z# m
}
# n. Z! v2 c8 P. I/ j else if(IsLegendHero())/ y; B7 t/ p3 V8 {
{% j" L3 e) t$ r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) A7 N: k% @) s8 {; J' u* n
{
+ E8 c) J4 x# Q, t( \ LPSKILL lpSkill = &(m_aJobSkill);0 c5 `7 J6 a/ G3 P& A" c% @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' e1 O. Z s# K% D: B; f+ N {
f1 Y8 j+ ]! w3 B( o V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" b2 W( x! j" _6 u, t0 j if( pSkillProp == NULL )3 t4 T% K( i- `
continue;
3 v7 w' u1 I( @, C/ m, J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 ^2 h# e* i. h" u# B continue;
0 U8 ?/ `0 f3 s+ O- `1 W lpSkill->dwLevel = 5;- K3 ]* V: }% l' @
}7 b1 A: u: u6 `+ ^* \7 P3 w# l
}
$ Z+ ^$ h7 X8 i6 t }8 F0 i, T; L- D/ w" ]# D" Q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- ]' ?' p; Z& N/ i if( bGamma )
) b9 g9 }( q9 e0 W# r3 c6 _ {
& c1 ^4 M+ V& J( I% U& z" I/ @ m_nExp1 = 0;
, _$ B; c* X& ~8 [( C" t5 W }
! Y9 u# t4 H+ t$ F% e
3 u4 S$ k* ~6 ^/ d/ ?5 x5 S ( (CUser*)this )->AddSetChangeJob( nJob );
- O! G3 U3 T& ~8 w N4 z7 f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ a/ j9 N6 _9 \' W) C: f9 e
) O m; W a+ a4 M3 @4 S
( b# H+ A1 J" ~/ A5 e#if __VER >= 11 // __SYS_PLAYER_DATA
! y; S/ r2 L5 U5 f2 j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& |' o- _9 a8 O: }6 K: s
#else // __SYS_PLAYER_DATA
' e$ ?. j1 `/ O# b g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ e }% n0 u. l V$ J4 m g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 J1 r2 U9 p/ b) D% Q8 Q' p if( m_idGuild != 0 )
& _1 e4 I# X( z7 F, U h0 { g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 {0 n- r0 F+ ?- G9 o* v
#endif // __SYS_PLAYER_DATA
2 ^ C/ q0 L" n( N2 @ SetHitPoint( GetMaxHitPoint() );
3 ~' ~& S9 x* l/ S% Q( T0 Y SetManaPoint( GetMaxManaPoint() );
7 A, S- D% ^# ^$ F2 t3 X5 ] SetFatiguePoint( GetMaxFatiguePoint() );* z0 S1 v. _- I- t( r" N3 }
if( nJob >= 1 && nJob <= 4 )6 v2 f. H7 j- B. z
{
0 @% x9 m0 g5 a& ]. f" ] m_nStr = m_nSta = m_nDex = m_nInt = 15;. c7 V( ]3 ?" W0 f
m_nRemainGP = 28;/ r. ]. l8 @1 O( x
}
$ O, J' ]' i: r, T3 o0 p. |3 d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 k# B2 P. h; P% S1 {
{
% D, m7 n. L) w8 I' Z( ? m_nRemainGP = 118;" o; p" [1 {4 v- W2 t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 j, x# e$ P# d' [) @- U& b8 `
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 h) @# N0 S z1 y" z, X2 r+ C
}/ |2 M3 ~! r, q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )/ e# ]) x6 N- T \* o* `
{
% Y* k1 {3 [: L5 T: l5 y5 i, }3 a CItemElem itemelem;
9 Y" @2 Y! T1 z# F% { itemelem.m_nItemNum = 1;3 E3 ^$ }" B1 A' {4 k" n5 J
itemelem.m_bCharged = TRUE;/ @0 } h: ^4 r7 G9 r
BYTE nID;8 x0 N" j P- n; Z
( e0 J! C: g5 i* ^& c5 z
if( nJob == JOB_MENTALIST_HERO )
2 l Z8 ^' K, ] itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. z5 C2 g' d5 l# h2 G4 X& v" z( b4 N
if( nJob == JOB_FORCEMASTER_HERO )
) E7 p( R2 D* H8 ^7 y itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' w/ U/ z3 q4 o: T1 V
: f8 D9 `- U1 ?& K% T
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 a }, A1 X6 E7 t! x0 i }
5 V. d& |1 S3 i# z/ `5 s3 N g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 Q: q) s9 u) U% Z4 A% c* k( s4 g
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
5 c: g% b) L* M6 r7 y: {2 M+ ` ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, B3 `. J' h' ~8 u+ K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ I3 ~' t, i/ n, h' S
( (CUser*)this )->AddTaskBar();*/
3 M: e( `/ m; N6 N/ ^ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 Y& [( A3 f$ X1 r. c% Y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? \' G) Q9 E' E5 {" n
((CUser*)this)->CheckHonorStat();
1 H' C9 ~' T( g7 n/ K; T' d ((CUser*)this)->AddHonorListAck();7 ]9 S! [( L4 @3 c
g_UserMng.AddHonorTitleChange( this, m_nHonor);7 k' c: r) A$ _% Z- ]. a
#endif // __HONORABLE_TITLE // ′Tà?% r* T- N1 G$ }+ Y
}1 d$ y0 e! c. d: t; G6 V4 P
#endif // __WORLDSERVER
1 [- K$ g& A& q# f5 B6 s/ ]} ; [. G3 g* S I/ E. g& K7 h8 ]
/ n( `7 D' U: h ^- f8 P) ] ~0 s然后你进入functextcmd.cpp并添加以下
5 e! n! q! d7 } o! Y# d, J! ~4 y0 G% I
代码:' g! B( @4 t" S) T1 h
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% @5 K* x! M3 o% E( ~* t% o7 F
下面插入7 G: v4 v5 u+ c. S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# w% @8 D5 F9 M/ t3 J& I0 C4 s- ~8 b8 B* J$ C
然后你去7 T8 n: r+ p6 O
/ | M( z" K) _! J6 a8 A代码:
0 x9 _ s$ J! T Z2 L N) d代码3 A! i" o; c$ @! b
BOOL TextCmd_ClearPropose( CScanner & s )
/ p, K) v5 X# t1 A+ M) k3 k' q0 y{1 f3 W: I+ c, n I- F4 R
#ifdef __WORLDSERVER9 |9 n; n4 D* T( n$ R6 z$ C
CUser* pUser = (CUser*)s.dwValue;8 @- i9 P. c1 ~
g_dpDBClient.SendClearPropose();! S `$ C: M4 E5 U D9 I, [ y, f8 R: B
#endif // __WORLDSERVER& W, y0 H2 j, {& w. q1 A; @& o& W
return TRUE;4 _1 H& {7 F8 t3 H, S5 h5 s
}% M# {4 {% }2 D) @
下面插入
1 i! }, c. S5 }+ w( v5 VBOOL TextCmd_rebirth( CScanner& scanner )+ e& D; Q+ I) J$ ^% \
{
+ P8 r) ]& `. p#ifdef __WORLDSERVER
- \# ~* H- f/ V+ X7 \CUser *pUser;
3 i! g/ j; l1 u+ R: VpUser = (CUser*)scanner.dwValue;8 [$ E* W8 z" @1 l/ c: H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- D% q6 N6 D; O5 M& s/ Z. e& spUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 W2 h% y7 Q i9 `+ ~( A, v
else
& [ D- |% a1 B& ?4 j6 q& ]pUser->AddText("你还未达到重生条件!");
2 G. D" R% c* T4 U5 k/ F7 @- O: A3 @" Q#endif
% x" r2 z7 {/ [% Mreturn TRUE;! K* D4 ^ X2 b
}
3 w2 D$ L" K( V9 ~ a8 p& W7 G9 o
, a4 W1 G! C& Z5 g0 e, t
) P9 {6 e2 {( p8 v& N7 K/ e& q8 K
|
|