|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; {) s8 b M$ ?
7 ^2 y" m7 S! p) _ ]* e$ ~9 I; T
Mover.h
1 f1 H1 b: m: _代码:1 ?9 p' H/ b4 N) z( g4 B$ E4 S
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# \) h" R- @* a9 y* q$ l1 w* _ E S: R# l" X
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! z0 I7 ^( |" N9 O
4 t: E. }; S6 b. v+ z8 ~5 } ~
然后你去mover.cpp添加
+ h4 z! G/ U, I' j) ]7 e- {( R$ P/ T, G7 x9 x+ N3 x; w
代码:4 ^0 \- T9 b) _) A9 A" j2 g: [
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 @3 X1 ?6 _; F' W
{
5 }* o! ]) m4 R/ M#ifdef __WORLDSERVER
% i, m6 R* \2 k4 o$ d! r // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 H$ w9 q4 p: f. | MoverProp* pProp = GetProp();
. W. O7 w1 F# n/ c1 j% o6 ~' R if( pProp )
: E% Y6 D+ E% j6 ~1 D4 h {
' b+ \1 C8 [. B z0 ? if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! {% a+ C8 U: B4 P* R2 m { |4 z9 x$ i- V; v2 r7 m8 F
AddChangeJob( nJob );
, Q! h N3 [8 y }else{
4 Q3 o1 m1 n3 @ I7 Y$ I return;
) Z3 z" k+ e, ^6 r8 H3 S# k5 Z }
* {/ {( G2 k0 C/ f4 F* l7 t int nPoint = 0;' F1 z v$ N0 v8 q/ L m, k& ?2 X/ F4 ~$ y
if( m_nJob == JOB_MERCENARY )
" O% f2 D# o4 `- V$ U, W nPoint += 40;" `9 Z+ ^8 ^- i* R
else if( m_nJob == JOB_ACROBAT )6 X2 z1 y* x t2 L' }
nPoint += 50;
" k6 L$ y* M/ `! M* i/ n, ^7 J else if( m_nJob == JOB_ASSIST ) c9 ?8 [- O/ W, W
nPoint += 60; \. g9 u# I4 w5 f
else if( m_nJob == JOB_MAGICIAN )1 \, M6 p) R M' z( L9 u, x! x
nPoint += 90;
9 \# ]3 T& d+ R1 c n7 m7 G. S else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- h: a M- g$ f/ T% A nPoint += 120;. Y- g4 [8 ?' M$ L: ^# k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' D( O& t! @6 a2 D. o nPoint += 150;
1 @& P3 G6 E8 ], b% G2 q else if( m_nJob == JOB_RINGMASTER )
8 f: n9 N7 ^6 X/ q nPoint += 160;7 H5 b3 r! d/ Q( O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! @' W6 O, z. E4 s: A nPoint += 180;
1 H2 T2 p- {! q; I3 J else if( m_nJob == JOB_ELEMENTOR )
0 f' B" r. K" W: D nPoint += 390;% }4 G5 g7 c, Z" y+ F0 k
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 }# H9 O1 l; ?1 H: N' g( z( O
nPoint += 120;
+ k& f6 W; b' r+ G( L8 r+ Z* d! k else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 s& _. E( u! a Q B
nPoint += 150;8 s# f0 u% h) U+ L
else if( nJob == JOB_FLORIST_HERO )
$ _: }: D. g! b$ q( N. T6 | nPoint += 160;! x+ _6 G, G+ d. E7 l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 } l7 {. i2 d/ `- Y% W$ n
nPoint += 180;- p3 e; c: d; A* \* }- c c: U
else if( nJob == JOB_ELEMENTORLORD_HERO )( h8 q+ H% b% e6 K2 G* S$ l" @
nPoint += 390;
/ T+ o7 {& k0 T+ |% g1 n7 R# {* w, ~& m% E
AddSkillPoint( nPoint );- v2 ^4 K9 Q# [8 Y
m_nLevel = nLevel;
" P4 `9 S y9 a; O) }+ `
# D2 _' r/ o) v% A b6 e SetJobLevel( nLevel, nJob );
9 V) F H3 ?; r* i% D m_nDeathLevel = nLevel;; f) B/ j) p9 F. G! K1 F
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 E4 \) P& |3 \) n& ^0 J: c+ P: h7 d if(IsMaster())
+ |8 Y( x2 }. i. O" G* P! l, h) f {4 H+ |; z, d6 \
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- T; Y! d9 M0 X
if( nLevel > 59 && nLevel < 72 )
1 B+ u; m8 Z# v f dwTmpSkLevel = 1;8 k+ q, y2 `7 T7 U9 u( T3 e& w& A
else if( nLevel > 71 && nLevel < 84 )* h% N( x; J0 V# z( r4 K6 u. N. h/ Q
dwTmpSkLevel = 2;
. x: E5 G0 j( }: M' H* e else if( nLevel > 83 && nLevel < 96 )3 T9 S7 _0 G+ o8 g" W3 }. T
dwTmpSkLevel = 3;
; [4 w1 K$ b$ f6 a7 t7 _ else if( nLevel > 95 && nLevel < 108 )6 t- b2 A1 V& h5 {! j# @
dwTmpSkLevel = 4;
# s. f3 c1 r3 }3 G a else if( nLevel > 107 && nLevel < 120 )
# w9 j0 S5 @. z" s' q, P; t dwTmpSkLevel = 5;
" y2 ^3 H6 K: z$ m: ?4 {5 Q) k* I for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 f- f3 t3 Y* g% p9 d. X1 ]
{ 9 r/ S! n y I& x# w
LPSKILL lpSkill = &(m_aJobSkill);
+ H9 P7 T6 a, Q8 d if( lpSkill && lpSkill->dwSkill != NULL_ID ); M: V5 D" ^" G9 E
{
! U; s k) V+ z2 r' e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % A$ T/ K# a: g
if( pSkillProp == NULL ) C0 `, R5 g) r- M
continue;
% @. {1 J: J- U C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 v B" q: N4 ], Z" ~9 t
continue;
5 V; ?/ _- ^% q( m$ D( Z lpSkill->dwLevel = dwTmpSkLevel;3 V6 f8 X# U% h& ]* n# ~
}5 ?4 ~8 R% t2 N0 I# F
}9 ^% g4 n$ X& d( C H4 P- e5 q/ y
}: v. K9 e( Y. g& R1 g: N& E* p3 W
else if(IsHero())- d7 ]7 Y. H9 r( |
{3 Z; \( y: ~) M2 o9 l. b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! `: B$ J! T6 p. S
{
3 D' o2 ^- O/ M& p, v LPSKILL lpSkill = &(m_aJobSkill);$ @, {- j4 d. L2 x2 c4 I6 G0 T; |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 [% O) o2 z8 l2 m; e {
$ e3 ~6 U. D# C0 e7 g, q- A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 L9 S8 @0 J) o7 f6 a! p& G if( pSkillProp == NULL )' E M/ b8 D; X# r, E
continue;% d* R; {% p' z, Z& z% ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) K- C9 ~4 B$ q" O continue;
) Q8 d3 \* i, w% ^* L lpSkill->dwLevel = 5;
( h) s5 E# U1 d: F1 ] }* C7 b' W7 _( d; c
}
0 G$ u: g- t' P7 b3 _9 K {9 e" ` U }
$ I1 L( B, c! C) z6 T* T4 f( ` else if(IsLegendHero())
: m0 e5 u) |: \- @8 v {: Z. _# G( B* W2 l: c9 |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 C4 E* L9 K7 M1 ~% G0 S {
2 t) X7 B$ K' p: K LPSKILL lpSkill = &(m_aJobSkill);
# A0 S. r& T6 ~8 S* k. F if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 ]7 q4 H. m! C {
. L7 p# C, L' K$ ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 A" c; p1 k5 F0 v5 }8 j/ B
if( pSkillProp == NULL )) i$ `' Q5 {; u
continue;, |/ n8 I$ Y& J; t0 `; C+ N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& N+ D$ \6 t( M6 M7 M# Y continue;
9 i2 _8 t3 e8 | lpSkill->dwLevel = 5;# j- C5 \9 V# A& X9 e% J
}
/ X+ m, u# g" B }7 I) [% e; R0 e: |- r, W
}+ E6 |& Y8 w6 ~& w
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 j/ N5 {( B9 C if( bGamma )
2 M. f. F. _" _ {" f; |2 a b( N3 P( ]$ u8 C
m_nExp1 = 0;7 U! o+ I, f. K9 v: }; j
}& R3 E6 L" B! K G6 y
) @, a2 b& \/ O' E4 E2 c$ m/ Q
( (CUser*)this )->AddSetChangeJob( nJob );% ]; e; ?; E8 d) b& n- A* R V
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. U4 c9 T/ g" M9 A0 Q
: e& u: R% t! G ~) i" [- I' @6 H% Z; k' C3 ?; v5 F! z
#if __VER >= 11 // __SYS_PLAYER_DATA, K+ G1 [) h j/ R( u+ N P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% C# o6 ]: l4 A# t#else // __SYS_PLAYER_DATA
: @* P( i4 _5 Y+ v! L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 ~) \ s7 f) C; D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- w* I; ]/ H2 V if( m_idGuild != 0 )
- {, u# R; A0 H. C: @ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% M, r; u6 d9 e9 }
#endif // __SYS_PLAYER_DATA
2 \2 \+ J) R' k. D: }% Q SetHitPoint( GetMaxHitPoint() );# ^" c b3 C9 y3 G6 i! B" y- o( U
SetManaPoint( GetMaxManaPoint() );# R! W9 }! X- C; n, z# [
SetFatiguePoint( GetMaxFatiguePoint() );
* v' b8 g7 o. P8 V' ^; K+ _ if( nJob >= 1 && nJob <= 4 )
7 y: l. j) B2 [1 c5 B/ o1 C. Z. V {
6 n+ |3 q% `0 y- N$ W6 j, F m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 m4 n+ u# u% S: R+ J) p. E m_nRemainGP = 28;
. t9 g! W7 W. [( g }9 j1 Y1 ^ x$ Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. t; D1 G% P2 W- y! H {8 ^# h+ O3 z5 ~; v/ o7 o. j
m_nRemainGP = 118;
5 y& Z# `. L6 [0 r- ^ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 V! v, y" q+ g0 E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. \! H6 H; f+ k- p, ] }
9 |% E: E" C" D) e if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! d# C/ {0 f3 O( j% {8 r5 s {' B" W! e1 _, }; U% h5 a5 U) u$ p
CItemElem itemelem;0 a& g- X% t! _7 V6 _& k! y) Y
itemelem.m_nItemNum = 1;
! s( H T* W" G& q: r d itemelem.m_bCharged = TRUE;
# W: M6 h1 T* s5 e' I% D& i BYTE nID;1 D: x- F N7 {. `( r3 V
. E& \' n' W$ U5 ^" w+ Q. m' A6 t if( nJob == JOB_MENTALIST_HERO )
8 S( S5 d9 ^, n4 a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: e7 D) H9 p% _3 h0 Q if( nJob == JOB_FORCEMASTER_HERO ), R3 J; W, X% y% B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# s n) }: T' ?& f, V' B9 L" c O) s; I, u+ R1 M
( ( CUser*)this)->CreateItem( &itemelem, &nID );& f& W( v8 W8 M; K
}
( i# c' \/ f( T4 S g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# }) F$ m' k4 | ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
b" J4 g& o' f- c3 \ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 m8 H! N1 c( E# {% f0 P& T' S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
w* O' }4 `/ d9 M5 F ( (CUser*)this )->AddTaskBar();*/: D, B3 Y; Y9 i/ |$ _; s0 ` S
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 O. M: Z- i+ R" E7 i2 | R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, P; B( ]; p+ Z/ i" V6 Y- E% m; N
((CUser*)this)->CheckHonorStat();
( j' J" v: ]: c: s: | ((CUser*)this)->AddHonorListAck();% Y" J- M; S$ M9 b+ M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" ?% d5 L( ?5 e6 E. b' I2 B#endif // __HONORABLE_TITLE // ′Tà?
5 O4 K2 K H3 u% U$ |" ~2 g5 m }' o$ ]' J+ a6 |! a4 H) X
#endif // __WORLDSERVER
% a" K) g$ w K3 a2 J/ M/ G$ I$ r1 E}
' I+ } ]2 @! V( s9 n, Q: \4 q; n" E$ L; {
然后你进入functextcmd.cpp并添加以下
+ c0 U4 B- z5 W- E) r V0 C( ~: { i7 w+ Q0 r/ G
代码:3 S5 O, q) H* ]+ e
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 I4 j% M! H" Y9 o) N9 x下面插入
% C5 H, o6 [+ e- c4 ~5 K! GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
N3 W; D" `- B1 _3 e* O2 O9 H( A ^; O% m0 ^) G6 b' r3 V
然后你去
A/ j$ W2 V& k* R& _/ v
3 ]/ [" x4 C; Z5 Z代码:6 }9 ]3 W: l" w4 y6 }% ]2 B
代码
& l4 W+ t; [" g- x- x+ ]" ^BOOL TextCmd_ClearPropose( CScanner & s )- Z2 K! V3 y3 U+ l) R. |
{* w! K. \1 H" x* s' p. R
#ifdef __WORLDSERVER) h) ^6 \7 D4 E! B3 v
CUser* pUser = (CUser*)s.dwValue;
+ `- F! s4 L! r; z" e) C g_dpDBClient.SendClearPropose();! E- n2 y4 g9 R4 @4 X9 ]! L$ t7 O
#endif // __WORLDSERVER! ?4 N; K% U8 ]; q! H# d5 L
return TRUE;" }. J9 x( N" l, n% ]4 e
}
/ `. e+ a: N; O下面插入9 L' s( \ G+ h; i7 t: ~5 Y0 _
BOOL TextCmd_rebirth( CScanner& scanner )) S) Q( T2 s- X! A
{
3 y q c+ L1 u* v3 X6 b#ifdef __WORLDSERVER
N8 S) B2 H+ K7 X* \5 NCUser *pUser;3 I k0 ?7 b9 J5 K0 r8 |9 O
pUser = (CUser*)scanner.dwValue;' x/ Q0 A I6 h- X
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! }3 [( o4 Z+ R# d b
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 R4 |1 {& S2 B5 w( m
else* Q* ^. z/ x, P* y; [9 r+ R
pUser->AddText("你还未达到重生条件!");
G# x8 I3 A. y& U( d#endif- d, Z' l/ S: _2 B
return TRUE;# s1 c2 ?, G5 Q3 P
} : a1 U# @5 v( a# ~
) o n/ p5 C- s
* ~8 R9 B' {) O. t, A* c7 [" r
0 {0 G0 K4 o s' e3 e/ F9 R5 b3 l" I7 j" V. X0 Q5 d: ^2 o
|
|