|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 s9 K, h/ l# f) t
8 @! d: R) v, `4 `1 q
Mover.h
5 X" {. I% `" g/ g6 K0 ~- j' S代码:
& J5 f6 S0 L, V" [- }- I' R c9 y/ h: N找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' w! N) d% D. n/ J: C% P
; T7 R; l% T! D下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- i! g, V( H# C) r
' f3 b# }/ I! A9 k然后你去mover.cpp添加
; K. D ~1 u+ |5 N: i# \6 o! [. k0 G5 E6 P5 N6 `
代码:2 E, P. L% @; o7 w/ I
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 r$ f- E3 I7 s5 ~% k
{
) |2 G% Y1 W/ i4 x#ifdef __WORLDSERVER
/ ]4 \1 l0 H5 E6 S2 _2 d. a& B // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 V' d2 f! b5 E1 N8 p
MoverProp* pProp = GetProp();
x/ K- y' t. J# I if( pProp )
0 Z/ u/ u) }+ N% U: e. q {
% j- l# O; j; A4 g# f/ e if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 w! E0 K1 k$ B0 W! G
{
% y7 z# D4 t! r AddChangeJob( nJob );8 ~! b" G2 N' Z. ^" I5 P' q* U5 d" ]
}else{
6 ]. P) [4 b! d! y. z return;4 F: H' o, x ^: o% g
}% V7 m( W$ ^' u# H/ O' |. y( [# d
int nPoint = 0;
' f4 \% g8 m8 N o, w2 u if( m_nJob == JOB_MERCENARY ) B6 x. V. |% h! K
nPoint += 40;
1 K6 q, w3 Y) |. J) D' k2 C! q& V% a else if( m_nJob == JOB_ACROBAT )" S9 U6 \$ O8 F# E W# @! Z
nPoint += 50;( n) F1 s- G3 H& i0 k: J
else if( m_nJob == JOB_ASSIST )
$ u, q9 O: `$ S nPoint += 60;5 l% z" K/ s" Y' P$ y- r
else if( m_nJob == JOB_MAGICIAN )( _+ R+ V' S# b, _+ `! t
nPoint += 90;2 R: e3 O: ~( h8 Z6 C$ N5 H% \
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" u1 Z. }9 `0 _
nPoint += 120;, }# O0 t- x3 N+ O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( A; o: h0 G6 ~3 o- i) n4 k
nPoint += 150;% i$ k8 d- ~. |" ]& ~$ E
else if( m_nJob == JOB_RINGMASTER )" n# [+ t- m1 F8 _
nPoint += 160;# l3 x) ^- u0 s: X. e; {" T
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# j0 A7 ?. y" L, T& @ nPoint += 180;% Z$ f, `" g: ~9 T
else if( m_nJob == JOB_ELEMENTOR )# P" V1 \) G* D9 X8 m0 {5 E! r# t
nPoint += 390;
( n1 K2 A; P$ O: j) U& L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 c. h1 y. v8 A2 e$ |
nPoint += 120;: j8 [# h) m0 _7 Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: [, ]: o& k( s4 {$ H nPoint += 150;) A" a# Y+ E/ _. k8 q+ Y/ S
else if( nJob == JOB_FLORIST_HERO )# J( u3 A1 q; H4 e. y
nPoint += 160;/ b: P a# y7 A% p' g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); o# n% P3 K5 u$ n S& U( x
nPoint += 180;8 p! ]6 ^ H& S! j- z' ~
else if( nJob == JOB_ELEMENTORLORD_HERO )
* g$ O. U+ B1 w! l nPoint += 390;% ~2 d: Y& {0 X% l0 L
5 n5 R$ w8 [( K1 J% q1 z
AddSkillPoint( nPoint );
, _" B4 z8 k+ }$ ^8 o5 l+ l m_nLevel = nLevel;
, }% b$ O' q+ d0 I; y
5 t+ Z2 q6 J* } SetJobLevel( nLevel, nJob );
! T& {! ?( n, |+ T4 T4 z4 Y" X9 x4 k" |! L m_nDeathLevel = nLevel;4 Y, @* c6 V! @5 z. p8 e
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ I! r$ S' K# b6 \# d, z
if(IsMaster())& Z. u$ P! V* Z) {( z
{) t. U% B. M: K |2 W: A j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 F0 x# {' j1 x: y7 w6 c if( nLevel > 59 && nLevel < 72 )& u- a1 z) b8 a# @; } G0 R
dwTmpSkLevel = 1;
5 J) f* W! V! N& H# R: t0 S else if( nLevel > 71 && nLevel < 84 )6 T: r7 ~3 V! v r2 o5 I; ]2 V# h7 Z7 H
dwTmpSkLevel = 2;
& E& m5 V9 ^: V) G4 _ t3 \ else if( nLevel > 83 && nLevel < 96 )
: h' z m" A$ a dwTmpSkLevel = 3;' u3 F9 h( W1 u3 L
else if( nLevel > 95 && nLevel < 108 )
* A9 P& L' X* C6 Z: J dwTmpSkLevel = 4;( i- B6 K4 k* {6 W$ I
else if( nLevel > 107 && nLevel < 120 )
! S( E- L* R2 O. } dwTmpSkLevel = 5;2 K8 Q+ L! i& t+ t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; }; t, R4 z# X/ U {
+ e3 }; x1 K; ?& y. r LPSKILL lpSkill = &(m_aJobSkill);0 ]% U4 D% r; z& g. ?+ c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 g! @& [3 d } e! v3 q- H {2 T( g# C4 Z! N" a3 q$ U! {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " F0 v! C+ o) @+ @/ k$ r
if( pSkillProp == NULL )
$ I4 ^: M/ ?/ J, w# [. s continue;
* ]; C4 [' U* T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% R. D0 {8 ^6 ^, t( U( Z continue;
' x! O: K, S2 _ g$ O7 A lpSkill->dwLevel = dwTmpSkLevel;1 F0 N' P; B! [5 N
}
4 [) ~; {3 \( s6 W3 d }. ^& j" P9 |; H' M/ F
}3 |& m8 p7 W0 p3 V: ?) W
else if(IsHero())
+ W) n1 e9 K( `& a8 c {
; i: R2 H( x$ j% C5 N, B8 ?: P- I3 Y for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 \" w1 L7 ?8 Q2 u/ D/ f
{ . i( H7 K1 N" U- }* G7 m
LPSKILL lpSkill = &(m_aJobSkill);
2 F; u: A: Y) x7 P if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 ^4 \2 Q' [+ P {
6 N0 Y7 B3 l& i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 G# \7 c9 J/ p" E
if( pSkillProp == NULL )
9 v& C5 q/ ?% n. {+ |) R, _; i continue;0 q+ L O1 e4 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 V- `- f& p: N7 Q1 Z4 V8 w; D
continue;
" R( L4 ^( v% }2 I/ }; h$ F lpSkill->dwLevel = 5;
, f2 ~9 `1 e* R) K& C% P# C% c" I }
% c. j* t# h( M7 n }
" t* C# g b- n- M }
$ V8 a: R/ e$ |- E7 ^7 | else if(IsLegendHero())8 h. t9 O4 A) b2 m% A
{' t8 h2 f* B+ f, Z }0 S# h( B9 W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - T( r: f, |& o5 }3 W* X# A
{ ( J5 s! w* h( G3 _
LPSKILL lpSkill = &(m_aJobSkill);0 o# ?% i$ E8 S% i
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 s' O( G3 b5 S7 L! y% [+ z
{
* b& o! k( @ R9 k# |. d9 C x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( r2 o3 h S6 |9 d! w
if( pSkillProp == NULL )- A1 W# Q6 ~2 N$ U5 f$ v2 y( s
continue;
" c9 v- F% K' y8 C1 i3 G5 U* Q8 z- Q0 ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, \5 Z, Q6 N& |' z1 D3 L4 C continue;
5 Y8 y5 ~9 O' K4 Q7 \6 o( K: M lpSkill->dwLevel = 5;
* E m' Z& D0 D$ B( h }
" j1 } P8 J; f0 t }( i0 ]( C' @0 l
}# K0 L) L$ d; x1 X% G. R$ W3 N
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
C6 _: w( [% Z( u if( bGamma )* b% u$ X6 s3 T' j/ r! X7 r
{, ~; X/ M( _+ M7 s1 T5 R" Q) W7 g
m_nExp1 = 0;; |' A8 r8 J: n# e2 s
}! A/ C6 V: A" K# H
% K' C9 n' }' p" v4 ?' ~6 E
( (CUser*)this )->AddSetChangeJob( nJob );
. Y3 e9 z7 s* r, b T2 X8 L! V" B g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 p, e: S- H: k+ y; b9 \, W
' ^/ v; _' g; t7 f9 j' G; W6 T* U! q& b) r; c1 G6 p
#if __VER >= 11 // __SYS_PLAYER_DATA
5 P3 D/ W X* K2 ` n g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* L& D% c2 N! { c; B7 G# Q
#else // __SYS_PLAYER_DATA+ v: c- a) B$ l5 L) I" R: Q- P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( B/ x5 h) ~+ ]) }$ \1 C- B0 V; M
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 F8 V# Z, G) g3 V2 r: t- L6 E
if( m_idGuild != 0 )
6 S3 \& H: p) a, n9 q) V, | g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; M# \) H* [$ Y' W#endif // __SYS_PLAYER_DATA6 K7 O+ S- f- ?$ r) }/ o6 Y
SetHitPoint( GetMaxHitPoint() );
- t" r V3 p( z! A' j, S" E& F0 A SetManaPoint( GetMaxManaPoint() );. D. K9 h! ` A* M% v4 M5 z
SetFatiguePoint( GetMaxFatiguePoint() );* Y, u V: R/ o. B& |3 A* c1 L1 X
if( nJob >= 1 && nJob <= 4 )7 f) U. L' Q b! x1 j
{- \5 f# k4 s/ @: j0 \. t0 Z: P; H' x
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 p! Z3 A* F( x* ^+ Y
m_nRemainGP = 28;
/ i# L, l x: t+ j2 m }
' r- P/ d7 b3 @, ^/ H! p( v: E! s if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' V2 j, k2 w9 h
{/ M5 k. H* q$ _2 Y2 a9 m
m_nRemainGP = 118;
7 M8 U# S3 ]# y: p9 O7 ~7 b //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 O+ n \2 `2 D6 t" I m_nStr = m_nSta = m_nDex = m_nInt = 15;: z. ]7 H) Y4 v# G0 f+ b6 l
}. }6 T7 Q% F9 x5 N* f- G, J# H
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 g9 ~# z) f E7 r {
0 p5 Y% H! |3 o4 r; ? CItemElem itemelem;
7 ? R% Z D9 p0 p2 e itemelem.m_nItemNum = 1;
, t% H1 L* B) ^ N* `, } itemelem.m_bCharged = TRUE;2 Q+ M* D& v; E. m/ Y
BYTE nID;% v# V$ r9 _3 u% F
* r+ M* J1 r, A+ ?4 q h
if( nJob == JOB_MENTALIST_HERO )( n# r4 @+ I+ p q+ T
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 j0 Y6 ~3 f }0 U0 `4 w+ a+ v. Z if( nJob == JOB_FORCEMASTER_HERO )
) |4 X: r' k7 D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. [& i: t; Z' M; p1 G
6 C: n1 e3 Z, z1 @" \1 Q6 T8 ? ( ( CUser*)this)->CreateItem( &itemelem, &nID );( M1 y8 D& n j( j! i3 E* W
}7 l) d" ?/ {: R/ I$ u! T- j- b6 f
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( C8 h2 c2 W! v, M# t% p1 x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% K9 C/ Z8 r$ n1 k1 Z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: ]5 {8 j8 T; c% p8 n" N# _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ b3 k! `# m+ I7 m0 Y5 p
( (CUser*)this )->AddTaskBar();*/
# `# V1 K/ O9 X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, E; d5 ? F. V% b% N, J9 {4 J#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 T H3 A% M$ G
((CUser*)this)->CheckHonorStat();5 h. }3 [" ~3 D8 h# {, x
((CUser*)this)->AddHonorListAck();
! {: m$ e6 v: ~! i& ?/ \1 f, l g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 x* i" c3 z, k! y- O#endif // __HONORABLE_TITLE // ′Tà?# @5 T: s; T. d
}6 V( j, X( O/ c9 M) M1 W- w
#endif // __WORLDSERVER% y0 h; G; ^+ i" f
} ) }9 T! z. P: {1 _4 y2 W( V
( w1 r; x# J$ f* T
然后你进入functextcmd.cpp并添加以下3 E7 @( R; E. ~
1 m: S Z2 W. N7 F
代码:
* a+ X& a5 k) Y0 eON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 \2 ?: x3 u4 x下面插入' g, ]- M- @- v9 ^9 a$ r2 w& {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 5 j8 z/ E ^, O# [$ x
1 I( B2 C! u) b2 B" g( e
然后你去" p+ c2 u# q7 L
1 J7 x+ y! O: F
代码:. h( {. {# c$ Z
代码6 L7 g6 t" r) B2 _, W' Q/ B+ R, `2 r
BOOL TextCmd_ClearPropose( CScanner & s )" g! K0 C, n% {3 q# x* e+ z5 D: ?
{/ A: I* j' T: `* ^& ]5 @' U0 M& Z
#ifdef __WORLDSERVER
6 F: |" [4 ?) A4 f) T D. A CUser* pUser = (CUser*)s.dwValue;
2 s& ]8 u0 K* G. ?: f g_dpDBClient.SendClearPropose();
. ]/ X$ T. o8 [ i* ^$ y M0 ~0 C#endif // __WORLDSERVER. h" p+ E& T5 ^, n9 w2 p k O
return TRUE;
# W" a; ~% [2 }, R}! H: t6 V6 y) q8 {8 K/ ~' i
下面插入" N- F+ f$ P2 U% U* M9 Y- a
BOOL TextCmd_rebirth( CScanner& scanner )
3 @- E6 b& ~, _- ^{
; T5 A( F6 S1 M) @; l0 G#ifdef __WORLDSERVER
$ Q: g, O) { K1 J* d! pCUser *pUser;
, V+ O% l' O4 y XpUser = (CUser*)scanner.dwValue;& h/ j# ]2 e2 W$ J' S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& o" q# F! p( c) J, w" z3 apUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. O% t7 I' L0 v5 H# p! k) M5 M
else/ E- k2 x5 W1 L- G* k
pUser->AddText("你还未达到重生条件!");# m, e6 X8 }# |! [
#endif
7 O5 \& b% V. x3 l0 C$ Ureturn TRUE;, _& C& P# B' T5 D
} ( b8 h3 x0 b& x0 |
$ M0 j1 S6 Y# B; O1 h! \
6 ^: S, K- U6 w4 ^6 T% I Z" L* v6 O# o I. o
6 r8 T; q1 j) M6 A- Z
|
|