|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel4 c/ i# e5 ~5 i5 {8 R$ q: N3 q
7 A2 f8 `4 `. p1 s$ f7 x
Mover.h
N$ c0 b, C- G6 E& J$ o代码:+ P# U! s9 f! [, D0 }
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 G& k1 g% H, o9 _; U5 a$ b' I- C# k+ S; c. P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 F" z2 X+ Z) s5 O% l ]4 U) j3 E6 ^ N3 c/ N/ ~1 f
然后你去mover.cpp添加, a& O9 Z- S, b* h. G+ c8 z
1 Y1 k2 u5 d5 f7 s/ ^& |代码:2 u# h' @, f% O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 j# f7 _; l% _7 P{
3 @9 b2 M' H( O; j) G, \& B#ifdef __WORLDSERVER8 i+ ], o* S/ W2 Q* g/ Q1 c, y# w, u
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& r' _5 r3 p4 _- ? {1 b
MoverProp* pProp = GetProp();
. d+ U! e. o2 z) H if( pProp )2 Y4 C% @3 ~4 F9 t2 T. J( R
{
9 ] Q9 X' X7 t/ U, e. s if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 N6 F: C% k9 |' r% Y3 ~5 j {
7 \$ k9 r/ a2 P1 }! I9 u* E AddChangeJob( nJob ); E7 Y* A8 m7 }
}else{+ ?# r- T1 H7 v9 y! U
return;
5 r3 S, c' G+ m7 a# C4 b }& F2 d' s* X3 Q9 N
int nPoint = 0;
2 ?1 U8 x& l" z( A K, k if( m_nJob == JOB_MERCENARY )
( p6 K/ @+ @% ] nPoint += 40;
7 a) o1 ]7 g! D" h else if( m_nJob == JOB_ACROBAT )
* j4 x. @- n3 i' P nPoint += 50;
8 d/ I3 E2 x L0 e1 d# O9 y) V else if( m_nJob == JOB_ASSIST )" y: A1 o+ D- x/ |/ A) I
nPoint += 60;- J+ C9 t. Z+ i& \7 \+ n; N4 G- t
else if( m_nJob == JOB_MAGICIAN )
7 C7 Z! q) X7 x7 e% j5 x nPoint += 90;
3 I7 t6 w0 t. r3 S4 Y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( M$ O) o+ `8 S% ]0 B+ i+ o* d, H nPoint += 120;
- F3 Z/ V% \% a! l' n/ M2 Y6 O else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! v3 F! E) P" o, F% }2 H& A nPoint += 150;
" N/ z: s0 C. S0 B+ T$ n else if( m_nJob == JOB_RINGMASTER )' w6 v+ f! h) ]" y( ~, n) H* m
nPoint += 160;
5 P; `) }! ?' [. ` else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: D$ [- t& p2 Z! {# B1 g# _4 Y nPoint += 180;# ? v7 l* f q! @/ y
else if( m_nJob == JOB_ELEMENTOR )
/ J s. `, ?3 O7 [8 X) R& M1 A. z nPoint += 390;- ~; U3 ]; o7 B h {; N
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& Q) c. a' C9 Z5 P0 G
nPoint += 120;& u( d' }1 e5 {' ~: c
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 Q2 p* r v c# u' J* b. _
nPoint += 150;
! ^" n, I: A; Q: U, F else if( nJob == JOB_FLORIST_HERO )$ ` \ D$ y- o, M o8 |3 T+ e; W
nPoint += 160;
0 ^0 f( |+ t6 {8 p2 s( K else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), e2 D' D0 q' W. L7 P; c
nPoint += 180;# A5 S, V& X9 l% D' {6 r2 {! e% F
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 D/ w; H, ~' {% |8 k nPoint += 390;
7 a7 |/ }0 Q3 R3 R
4 W2 N% I" L( ?) b g5 J, }) ~& Z3 Z AddSkillPoint( nPoint );5 s$ q/ P# ]& X$ c& n3 s: N
m_nLevel = nLevel;
2 s# ?& g; B: Z9 X" q
/ O$ Q. f9 o$ G- w SetJobLevel( nLevel, nJob );
% G( h7 d' g. b m_nDeathLevel = nLevel;. B. Q2 ?; [+ h; {4 @& k
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# o% U2 t6 e* h' f+ C
if(IsMaster())/ }, K0 V5 v( W
{
1 X: f6 N+ ^ K" M int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. _) G1 }# Z' N/ Y! @1 k" x+ [. J% Q if( nLevel > 59 && nLevel < 72 )
* P. H* y, d3 [* \+ y' b! E+ \ dwTmpSkLevel = 1;7 r7 V4 Q8 h9 ~+ t: R" s$ e5 j' E
else if( nLevel > 71 && nLevel < 84 )
Z! J' D" o$ F& W dwTmpSkLevel = 2;$ Q& Z& L: `; {; g4 M
else if( nLevel > 83 && nLevel < 96 )
0 h; J- `5 e- @: `. a dwTmpSkLevel = 3;9 f1 w0 @+ z3 g$ w8 u9 n
else if( nLevel > 95 && nLevel < 108 )& o3 n& [: o7 w& K
dwTmpSkLevel = 4;
- q3 s* n$ n+ ^8 _/ q; z; U else if( nLevel > 107 && nLevel < 120 )
" e6 e# ^7 d! T: k dwTmpSkLevel = 5;
7 g6 y3 `9 H G for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 _8 y6 N8 z& C/ H7 v: h { 1 [* U8 t9 d# K
LPSKILL lpSkill = &(m_aJobSkill);
+ S$ Z k2 R/ x% |3 `+ I0 ] if( lpSkill && lpSkill->dwSkill != NULL_ID ), w( i3 A9 ~2 Y! H
{
8 ]% C2 [5 M2 Z: } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; o& ?/ n$ Y( }* m if( pSkillProp == NULL )7 [6 P% M3 ]9 {5 [( u1 A/ ~! q$ T- A
continue;. A' t! s' z9 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% s2 b$ Q' k7 ]0 H+ A
continue;
9 q6 s& ?. b5 C3 V7 w5 ? lpSkill->dwLevel = dwTmpSkLevel;
8 B1 Q5 I' `" S- O& h, G }, U1 u& w/ `6 J' Z4 _; J* p2 Z
}
# f# h' N. k' J1 U }
8 [* D* P4 A( q, N! j a else if(IsHero())
( }' n& @$ h9 q) d {$ M" O) Q( `( [: H" n1 j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ C% p6 [" _& r% c4 L& L4 f* _3 L# I
{ 8 g; l, C- j1 h% V" }8 O- ]
LPSKILL lpSkill = &(m_aJobSkill);
1 A8 o! Q# q+ M" I& E4 l if( lpSkill && lpSkill->dwSkill != NULL_ID )2 o/ o) I! G6 r# {6 A: G
{ e# x) i$ U% s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 F6 L# g2 X/ E. t' ?# s4 P
if( pSkillProp == NULL )
" i! h, l2 e' X2 k) K* s' | continue;
3 C" `8 E7 l; ~, d/ X ~4 _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, y( p* x3 I0 V! g6 W6 q continue;: ~! T$ p3 r5 [7 E d, I* q4 D
lpSkill->dwLevel = 5;
1 Q7 E- @ m1 I, y: u- | }
+ G: D. O1 o; u2 y }
6 {: j6 J6 E6 R0 C# n- T }& f2 v% C: w; e& m* w& \
else if(IsLegendHero())* l8 z7 l- p7 k# e1 q' v' v
{" \, Q6 P1 C! F& Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - f o0 h; h0 q& ^! @' g+ N6 [. [
{
% P8 a: U$ E* ]) N, b( Q) ` LPSKILL lpSkill = &(m_aJobSkill);4 }# B# l) h" `3 `5 H/ p( b
if( lpSkill && lpSkill->dwSkill != NULL_ID )% M' I3 ?. m" j" b `
{
+ ~3 L' r' h* x0 ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 K7 z; z$ k8 n0 f- \9 q if( pSkillProp == NULL )$ l& i6 @5 b. z/ c. I. ^8 O' D
continue;# d }2 y# ^- D+ m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* U: F" r% H( W1 f+ S5 b4 ]1 c continue;
" N D8 A8 _ Z1 f# y p+ X' N H4 n lpSkill->dwLevel = 5;
e: p2 d4 N3 t4 y }/ E: n& Z) B( w" {0 \3 z7 X c
}% C. Y; L, O8 I( U
}
$ ^: y! W* n5 l% K# S# F: \#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% ]# g$ {& S# p! R, g6 X) B3 g, z
if( bGamma )
) s7 O+ r) l+ [8 A' Z- p; w' y& c {/ K# @6 u, F, y: ]2 O" p4 D' L5 _
m_nExp1 = 0;9 @; Z2 }' }6 V7 ]$ b' N$ x% H
}
{* i/ i) s6 M" a; O: W' L
3 E Y+ D+ f) P ] ( (CUser*)this )->AddSetChangeJob( nJob );
2 J2 Y J+ Y: \) F: _$ E. i, _ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 `3 d- O5 S: y$ Z* ^# t6 N5 ?, s7 _$ |
) C# L7 r; R2 }0 _#if __VER >= 11 // __SYS_PLAYER_DATA
+ i9 F* m0 E( d7 u) F6 y. ?( v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 p' [; t. k( ?! S
#else // __SYS_PLAYER_DATA
& L5 _. ^3 o- Z& E+ {% w. `6 z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, s. @, q0 v& y7 {6 K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 V* D/ d2 h5 ?) ] if( m_idGuild != 0 )9 B( w7 ~8 O+ k5 ?& i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" r) T$ a( ?' W' d7 ^#endif // __SYS_PLAYER_DATA
& i! v; c P( j& q" y+ H SetHitPoint( GetMaxHitPoint() );, w8 L) m# i$ D# g
SetManaPoint( GetMaxManaPoint() );
, }# x9 A; p5 o L& n SetFatiguePoint( GetMaxFatiguePoint() );
) _# Y- o; ?% v0 K/ U if( nJob >= 1 && nJob <= 4 )
" S: K" d. s6 k1 B& \4 X {
7 ?0 d% x* P: {$ Z- L; b# `$ Y1 | m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 l5 i( G/ e, S. E6 I m_nRemainGP = 28;
; G0 R0 Z4 l7 S }
9 z- O9 Z: W. _5 T5 o/ d: I3 a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* O2 j7 l8 S+ x: F, z6 @
{! |% F0 Z6 ]9 L& `# o! |
m_nRemainGP = 118;
/ r7 f9 W4 {' ^; g8 K1 { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 U3 c4 Z8 N _/ b y# ~/ h: z7 [# c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* i3 ?- L: t( A# e }
f: R$ S3 ]" l ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ ]* I2 @; F( e) \+ D {8 P% S6 K) p/ y
CItemElem itemelem;
: b$ [. I5 t* M( n) q7 n itemelem.m_nItemNum = 1;1 o1 \% S V L1 i4 L' [0 O# G
itemelem.m_bCharged = TRUE;, w2 ?0 T) B2 ^* D* N& A
BYTE nID;
2 q& W6 s* w/ p" R6 G" I
2 o% k( x- ?3 N- r/ l if( nJob == JOB_MENTALIST_HERO )
1 \5 g+ N5 _9 _8 u# { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 X1 O6 N' D6 u9 J
if( nJob == JOB_FORCEMASTER_HERO )
3 {2 h4 @5 N R' R1 _! V' ^4 a5 y# o2 k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. S; h' Q# o$ R' G
: a8 }% K: M) b; g4 e ( ( CUser*)this)->CreateItem( &itemelem, &nID );& c8 n# ^4 R6 ^5 U( c$ P7 {6 ~4 q
}
0 M; X6 t6 ]% v! Q) m g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 D# M2 L, i8 [. l T( V; l ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 Z9 p3 i& A/ O3 p. b0 o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 e. b+ ^# Y! j7 G$ X8 B
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 z) I8 Q9 u% T) n( r+ m5 y4 Y* f5 u
( (CUser*)this )->AddTaskBar();*/* Z1 @: [) f& J# I! i3 H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" B" v) l* c& O+ R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& Z& p+ x( ~/ K; @6 t( K; J# @6 q ((CUser*)this)->CheckHonorStat();
6 U0 M3 ?9 J+ b" D ((CUser*)this)->AddHonorListAck();9 _% X- y7 m. N! T5 d3 [1 ^
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 D: I+ S- Y& k7 F5 |3 A#endif // __HONORABLE_TITLE // ′Tà?8 M/ T" s. \4 ]0 |0 ~
}3 b4 M5 x+ I5 n8 i. }
#endif // __WORLDSERVER* \% f' H1 a. n7 A
} 4 w' _. |7 a" X+ a
! Y0 E+ |4 x _/ Q1 S* |* A) J2 b
然后你进入functextcmd.cpp并添加以下
( L) X8 a! R1 G' p- L0 P
8 B4 m6 I8 F! x' e代码:0 e$ G- p1 ?+ ^; {/ F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 V+ _* A0 u3 Y6 \, `8 J下面插入 d4 M" l* V. R6 K( F. {) i
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! r' S) W+ n) e( t6 a$ C; t; }" p4 W/ {5 ?( K! o% R
然后你去
4 n/ S0 p$ _5 L. o) n7 m8 @8 r, @8 ~
代码:& ]0 U6 @: S# ^1 M) i
代码* s& M9 r+ Q; J7 q4 l/ d* k
BOOL TextCmd_ClearPropose( CScanner & s )
; A0 N4 K! ^$ I; X: Z0 ~2 |7 `$ ^{# ?7 n# E5 O+ @, n
#ifdef __WORLDSERVER
5 d0 m* u3 y& M3 | CUser* pUser = (CUser*)s.dwValue;3 o$ f J" M' [2 y2 `$ p* Y! b
g_dpDBClient.SendClearPropose();, i4 B4 _( L! H. [- m/ P. V4 P% k; K
#endif // __WORLDSERVER
9 k& v& Q0 u# T return TRUE;
, P2 _1 }/ x+ E$ r}3 E" S0 _4 Y1 Q8 f1 `6 n5 g. J
下面插入
6 S5 m9 s, P% T9 tBOOL TextCmd_rebirth( CScanner& scanner )0 f8 q, M1 R- Z; l8 C6 I4 C8 {# T! i2 Y
{ \* U N, {0 R
#ifdef __WORLDSERVER
; S/ D3 M3 ]/ wCUser *pUser;3 h% Z1 Z/ I s
pUser = (CUser*)scanner.dwValue;
' o g. b" J& j4 ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# m$ P- k7 j. {pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ l) O0 K5 u6 K1 i' W6 F8 Lelse
3 b t$ O% R# V0 npUser->AddText("你还未达到重生条件!");0 ]; j6 s3 t+ M1 B2 |$ F
#endif
* F* I3 L& o; v! q# C M" h2 Kreturn TRUE;
/ L* f$ Y) l) Q! I$ f. L2 p} ; N$ G. m/ @6 ?: U" Y2 Y
. Y0 X3 A2 J. e3 G; I
1 l: p8 J, O% |( x' x2 f
: B" S Z7 B+ v5 G* e. l
6 t# T- Q: o( R( } |
|