|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 r& W) M6 s3 i: y0 M. R7 g( k; K/ c7 q8 J6 j! R9 g
Mover.h8 n: v8 I" W* i
代码:
* `$ r7 G+ Y, p- A6 l, V找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 c6 {- R5 D0 R
2 k- U" B1 P5 f1 c) e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" T$ P$ L+ g* i3 @: V9 [. r8 w2 T. J! u8 X+ U# o
然后你去mover.cpp添加: z6 Z; U" ]. c) t
8 T) T1 |4 T+ K v- Z; Q2 D
代码:
! z; S) ?$ V0 tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" e" x- j: c& E{+ k# |# i v0 @
#ifdef __WORLDSERVER
. I2 J) P2 |+ b; ]6 [9 W- M // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, \9 J) H/ M% D3 z6 e/ U2 U6 ]+ ~5 f MoverProp* pProp = GetProp();$ J5 G+ P+ V2 U6 M$ Z! K, ]
if( pProp )
/ R/ {" B6 t( f1 y6 ^( ` {
9 O7 v# s4 `1 R/ @9 j& E% ]8 p4 E if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 C, p0 \+ r4 `/ z
{# ]) Q- k; Z' e& \' n$ M1 i6 Y) E x
AddChangeJob( nJob );. A2 S2 b6 G8 C! e o
}else{0 ^8 y1 F, E( i
return;
" W! Z5 S4 w. k# F% p9 P }
7 N5 {8 H0 h& ]% q; ]+ Q! K int nPoint = 0;
! T6 n3 ?4 _3 R4 R/ I if( m_nJob == JOB_MERCENARY )
! F$ Z, a; G, l nPoint += 40;5 N; c# H q; V
else if( m_nJob == JOB_ACROBAT )
5 F. M) X! b- x nPoint += 50;$ H, X( ], E! ?/ _: J; B" a
else if( m_nJob == JOB_ASSIST )9 ]% u/ y( B6 x A
nPoint += 60;, A3 T# g! J: Z5 g
else if( m_nJob == JOB_MAGICIAN )/ Z! M5 O/ [( H( \; X, v
nPoint += 90;
( y+ S7 ]+ z3 h: {& V9 v else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& _* W/ N& t2 `7 B. a' X P
nPoint += 120;* D- i6 U- L& y% M- B7 [
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" X7 O* Q% ]/ h/ M3 | nPoint += 150;
' ^: c) M8 W* s, z% P else if( m_nJob == JOB_RINGMASTER )
$ u$ i- v. ]" i. t, ]; `7 I nPoint += 160;
' S1 p8 {0 H) p% T; d6 ~9 z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! r3 s. @ B4 i: b& w1 e nPoint += 180;
6 b# |- N# P; l* }9 e; f/ R/ E- u else if( m_nJob == JOB_ELEMENTOR )
' d8 U5 O0 D1 [$ q: W: Q nPoint += 390;
6 T' F3 ?% ]$ i else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), T% s5 `- T( _0 u$ K( W
nPoint += 120;5 T6 x2 |7 C' Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- y; f* P- p, U: x+ a nPoint += 150;- a8 z; I: L5 w1 E
else if( nJob == JOB_FLORIST_HERO )+ ~" Z$ \. q2 e. b
nPoint += 160;
4 t8 U$ C$ `. l9 a+ T& C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 |" R9 W2 L% l6 D# {" e: p nPoint += 180;) ]7 q* w* r1 T
else if( nJob == JOB_ELEMENTORLORD_HERO )
5 T0 D% T0 X! W/ x- z2 M- a4 | nPoint += 390;
7 ?' `& B0 z( Y9 h* J( R( M. e+ O. k* h, w6 u" T U) e
AddSkillPoint( nPoint );
( Y+ E5 Y7 l' }1 p+ I m_nLevel = nLevel;* i7 z( _6 R( W0 Q) S
8 V5 V+ e8 @- |- X% c8 R SetJobLevel( nLevel, nJob );
4 V# `/ } `" F* ] m_nDeathLevel = nLevel;! B6 k$ |! \2 m1 H0 O" m
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ Q5 S' _; j7 ` S# k
if(IsMaster())6 H- ?) J* U/ Y# h
{; z! f2 i: Y- \5 U$ ^! e3 X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 r2 k4 X( R) u if( nLevel > 59 && nLevel < 72 )
2 M- P D+ c7 P. I4 w- N G7 {, M dwTmpSkLevel = 1;% b( c# A E" w: U# X/ w
else if( nLevel > 71 && nLevel < 84 ): ?4 {6 Q9 r* q! Z5 O: T7 t4 B1 C
dwTmpSkLevel = 2;
7 M- T3 I9 e4 T1 A$ [ else if( nLevel > 83 && nLevel < 96 )
( y4 B3 L! N3 H6 ?: M ^5 L dwTmpSkLevel = 3;
! t* J/ |. H1 L7 k9 F else if( nLevel > 95 && nLevel < 108 )" z) V" W2 Z. C" ]* ^0 [3 j
dwTmpSkLevel = 4;0 T0 [1 n" ^& H4 K$ ~, O8 D/ Q
else if( nLevel > 107 && nLevel < 120 )
% s) ^' [% p0 ~7 Y dwTmpSkLevel = 5;
# s* r- m" H4 a- n for( int i = 0; i < MAX_SKILL_JOB; i++ ) % x G3 I {. h6 v! q0 f( k3 Q
{ " r2 N* B+ Y! b! k* i2 y
LPSKILL lpSkill = &(m_aJobSkill);& r9 f0 g, ~0 @% n8 Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )" H- J U- Q* D7 R
{
7 X" m4 E& n. _/ ^, |3 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 `! H9 M# O( e- q5 e6 @5 D) ~+ {: Y
if( pSkillProp == NULL )
: T0 h6 g( b' z z" H continue;+ F9 m( g# s* \& G4 w0 G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# H, S u+ W- ~; E3 L/ G
continue;, k5 [. r5 o, M. X9 ~- g8 B& @, H
lpSkill->dwLevel = dwTmpSkLevel;% v; ^/ d3 K& g3 P" J6 V
}
) y. W( a2 W$ {1 y$ P! [+ Y ~1 W4 A/ y }1 g0 \5 s6 z. n
}
3 x# R' e0 u$ j else if(IsHero()) t+ m; Z. ?. }5 u2 r. O
{
% Z; R' A& \/ L$ c3 T# E for( int i = 0; i < MAX_SKILL_JOB; i++ )
" }% S! H9 V9 r2 f9 ^, X { 2 x+ O- J, c* ?+ q4 N9 Q4 ^( v) o
LPSKILL lpSkill = &(m_aJobSkill);
; Q9 ^: e3 b3 [8 n3 L if( lpSkill && lpSkill->dwSkill != NULL_ID )0 w( R! w' F9 {9 f
{; U+ v* u1 n; w7 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / u, h4 M/ u! y8 Q3 m$ B6 G
if( pSkillProp == NULL )9 d$ o% \6 E4 Q8 U* I
continue;& o5 [/ q( {+ {7 g1 l# @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 t$ t. K9 r, b: i
continue;; N6 z! k9 a! L L7 C+ l
lpSkill->dwLevel = 5; P! s9 L4 [8 b) j1 o3 ?
}
5 ~* H. J$ i( [5 Q }( C; ? d$ D4 K2 l% }
}
! T; g6 M1 P1 B4 \- G else if(IsLegendHero())) Z/ A3 m- R: X( M
{% y6 d( D4 b, h6 R% b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 T1 f3 t& N: u6 p7 J1 ]$ L {
( \, ?4 U9 ?" F( Q* z" l" r LPSKILL lpSkill = &(m_aJobSkill);
/ a4 w% y. h1 K. | if( lpSkill && lpSkill->dwSkill != NULL_ID )' I8 U7 K; t: J, ~3 j
{
* C2 f) R$ N/ m- e# [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) p$ r. S$ N: ~8 v5 S8 G' Y$ n& v
if( pSkillProp == NULL )
! U. c+ ]9 g2 P continue;
6 m2 y) w' {& T/ w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
E( t& T/ R7 T: C/ W9 \# b5 R continue;
, G1 F& c3 P/ [ lpSkill->dwLevel = 5;
8 [% s$ M3 r. `5 r1 Q0 t+ }7 ?$ c" c }9 m7 n; I9 I* x" @% K T
}6 q, c, W/ S) G+ G. E
}$ u$ C6 r9 j& W- F$ k7 e2 {' ^- ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 o+ Z' w W1 @
if( bGamma )& E! V6 A: ^1 y: V g. ], X7 \' Z
{
0 z; H0 c/ f' w. H2 H. J m_nExp1 = 0;5 j4 W) \/ [- @. @$ x Y M
}% Z: u. }' |: B _$ L
# g8 K: s6 e! ^4 l5 o ( (CUser*)this )->AddSetChangeJob( nJob );
; {9 L6 H; ^0 V# }5 C g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# L7 ^( F4 V7 A/ |9 x
b2 Q# M1 |1 {- j% J4 n9 N& K
" I3 t6 a4 W5 K/ Y- r#if __VER >= 11 // __SYS_PLAYER_DATA
# v9 Z4 S0 l8 q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 C+ s. R8 Q5 g* L7 {9 e
#else // __SYS_PLAYER_DATA
$ V0 K9 b! h$ H0 C g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 V" n# R6 l& S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 P- F u* w& o3 v% {# [ if( m_idGuild != 0 )5 L% G9 Y: a8 S9 q: n' R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ x' Z1 o5 Y1 r3 ?#endif // __SYS_PLAYER_DATA: }- W5 C1 s) A2 N2 r3 q+ R
SetHitPoint( GetMaxHitPoint() );: s) u3 |6 h; o% {+ i0 Q/ V
SetManaPoint( GetMaxManaPoint() );
7 F) F; m) @' h SetFatiguePoint( GetMaxFatiguePoint() );
" o0 i& O% i9 s( y i9 W9 H/ Z2 b if( nJob >= 1 && nJob <= 4 )0 |7 y$ U8 S F& n; N( J5 _1 ?
{; _$ }% e0 q( E1 }
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ N7 Y1 k5 g" ~' q. v- b m_nRemainGP = 28;$ Y& y# k' j- Y) t" q
}
9 l: T6 y) ?) |: h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 X" S n) x/ Y) B( p
{
8 u+ Y- S s- Z m_nRemainGP = 118;; d( V2 W" S% m1 ?$ k) O, x3 s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& F! p# _ Z( \: U
m_nStr = m_nSta = m_nDex = m_nInt = 15;
x& X. h. ?4 Y9 @# g }) U/ [5 Q: ^! K d! W$ u% Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 C) G0 [7 V1 ]$ z, S {! F0 F1 V/ I, Y$ G+ r
CItemElem itemelem;
3 |/ H. r& @$ s) Z$ u' }& A itemelem.m_nItemNum = 1;% o/ j' A2 R: x7 l% q1 A- F
itemelem.m_bCharged = TRUE;. ]1 K, N- a6 X" w8 W! N
BYTE nID;
# T1 ]6 e: H5 M5 P% }& v* K$ ?) k- a! n9 F+ A$ r- @! D
if( nJob == JOB_MENTALIST_HERO )+ {- m) X) g- R8 R$ u! I
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( ]1 J# m0 Q, W: R" n! ~ if( nJob == JOB_FORCEMASTER_HERO )
6 d, a- G3 i/ H; z2 @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 {; E( h$ C$ q+ g. f6 l9 L
$ d4 {9 ^1 I8 \; w6 n
( ( CUser*)this)->CreateItem( &itemelem, &nID );) U( l* ^4 ~4 W/ N' N
}' G4 \" g) \6 \
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 O9 ^5 D A, z! G! J' b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# q. t9 a) K* H4 ^, ]$ L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 z6 A7 E: M9 Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' b! K1 v+ W$ f4 @
( (CUser*)this )->AddTaskBar();*/
$ H$ C% n0 M& f0 @$ V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: ?% D6 e- O4 D/ K, z# F#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: n5 P: E2 R" `% L8 Y2 c ((CUser*)this)->CheckHonorStat();7 z, C# O$ W! f7 y
((CUser*)this)->AddHonorListAck();
) b0 ] y! V* @7 x$ M! H: u0 z g_UserMng.AddHonorTitleChange( this, m_nHonor);
( W! e+ S* l* \#endif // __HONORABLE_TITLE // ′Tà?. g0 e+ I9 J7 {$ {& P* g% d, w+ w
}
7 k5 ]+ @) p, m. ~/ F3 u5 f: u#endif // __WORLDSERVER
! `2 w o: W* o6 u+ B1 _- N} " x' [* T; m3 i7 A0 e
: [% P) P% g6 S. d+ p8 T然后你进入functextcmd.cpp并添加以下4 l$ n0 u0 E3 h2 @
/ H+ V2 C" e% A1 ~代码:
t5 {+ e1 F! F. V2 U* ~# SON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 v6 l4 O' f4 C6 ]$ g
下面插入9 S- h" M$ N8 }5 ^8 L
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: Z+ f- k! z! [' y$ v* `, w8 {; o7 ]* Y* H7 k
然后你去
' p4 z7 `; C4 k& j
0 p' Y4 [' v( a: X. C! V0 N代码:
7 ^1 r0 s/ V& M' _代码
+ t0 i8 W" @) H' i" }3 l1 y. gBOOL TextCmd_ClearPropose( CScanner & s )
7 t3 G2 m' w) q4 p{4 z5 o2 B- o7 O
#ifdef __WORLDSERVER( [9 n* ~5 |; D
CUser* pUser = (CUser*)s.dwValue;
$ r! D1 }) S& Q* T- |2 I! I g_dpDBClient.SendClearPropose();
5 l% \ ]/ N w. v; X: \#endif // __WORLDSERVER4 w( u8 o* F4 r8 O2 C
return TRUE;! R8 p8 P0 i; l
}
" h1 ]$ P( G- S1 y3 U下面插入1 E; ^( n g% M* L8 @
BOOL TextCmd_rebirth( CScanner& scanner ), @; Z$ i( Y# \1 Z! h7 |
{
$ ]$ @, m" m+ g/ j6 _ m' F#ifdef __WORLDSERVER; _ a' y+ c3 s0 K
CUser *pUser;
/ I; u- g6 y5 K3 d5 ], ~pUser = (CUser*)scanner.dwValue;
. b8 t+ ?, S4 iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 m9 b- @4 A1 E* r, upUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! O: ]4 K# J' u0 M
else
8 R% W$ p' r1 z$ G9 H p: w) vpUser->AddText("你还未达到重生条件!");
* S3 j& A, B, Q7 ]- T% n1 m/ ]#endif
3 f) A d' _) m8 p5 I& p- \* Nreturn TRUE;3 O f- m8 `7 w4 U" Q2 z
} ( j5 x& P9 a1 N
: E6 q" G6 k! S/ R
. M0 e8 Z M J5 u9 ~( P, Q4 b1 s& p% {$ B6 s, h# c% h
+ V& x6 s: y, o! c% s1 X |
|